From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219912; cv=none; d=zohomail.com; s=zohoarc; b=XuRSPHlk0Q9B+X3w39/r+9l8RQLkH0FC//jdmB8256jOxZ870ClVDOfgC3qy+wBCAe5vLvgD0BBUpGAeZCJYW+PAiQukrd5RqaJiL+TS+fJaAQK+pv24mwEzYnCx1wZN2Fry0KKbL6Ih5aOuQ/V48icJH7xRCmMKyVdhBg1ddko= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219912; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=aGpdOx5srQqBseabcnjAruwWDGp9OZFmOqRMpxt9nGw=; b=II7Z3tKyn/vJdwOQ1osqTP6C7oyxLaqcHOtwtl8qT5fuUrODKq5bED7WT1/q7Bous1BgUK2uDJfd90UzzTuThD2ZSTvCvzcIgknM58WEnKhOb+fOoFJvIHK3dCcoUWOhWO/ePIISH/q300hw/hfWuQIPANByN3ViA004b1VSYsM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176121991250510.187543909895567; Thu, 23 Oct 2025 04:45:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkQ-0001If-F9; Thu, 23 Oct 2025 07:44:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkL-0001Gr-1Q for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:46 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkI-0001aE-K3 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:44 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N5R1Fu023364; Thu, 23 Oct 2025 11:44:33 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v30w0ef0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:33 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9dfpb017052; Thu, 23 Oct 2025 11:44:32 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5krj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:32 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiUBF44564840 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:30 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C454820040; Thu, 23 Oct 2025 11:44:30 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BA84D20049; Thu, 23 Oct 2025 11:44:29 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:29 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=aGpdOx 5srQqBseabcnjAruwWDGp9OZFmOqRMpxt9nGw=; b=AL+fA6xfVH6M3kV1yXtMCK nKP2AcdPXw3qComzT65W4x/wa82rZ/F7RtHaRWveo7GOo4LZlpdGm4c4dkyXay+x yUb9Q11iRlWPS/SUfqf+S2MiXwADE4UTgWwjcLnNWuiXaWAyAKPYNgfoV3EXlc0Y EL/8CnYJjMsbpNgNPpTNRQVSrq2pziVXN06NM3LmDnVtqSSBVEtcdjrVrbZ7vbfd VX+Ui9LDLFGqLQKgEFZqWF3XlJIFNH1xMlbr4vwlMSfnz9owCn2jWdunPAa1rnqm tw09UNEFJlYSODDIAh7sFGvE8Y0WnvVCCLGroHI+ifvTsRm9gJ1Kho50TF/QTQ9A == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 01/32] ppc/spapr: remove deprecated machine pseries-3.0 Date: Thu, 23 Oct 2025 17:13:48 +0530 Message-ID: <20251023114422.3675018-2-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: BtFsqrKzjrnTIem3QKwC2V3-7yh85U7C X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX2tiAI+JCywUE TddDWRvkPJDscJbr0L0zHqDNVax7E4J19ZHOyzltL2jLaRNZXcHTpmFSOOOL5zfYbJpw+U4pTdb DqD0Fz+nBqF5Q+yU97LYVIjGUjQUO0yUYNUxS+v9biDbGey5q63rl9Ct0hLYXi9U9XUCOEHX6hS IciXzOu2UTG5pW5nsX+Jp9pJvj0VlQyW/mZO+JzUMntgzuqdaQFIGKNhhHNCeicQM2ofDBHhlWD 4+9GfWQb2qDttV6FH1cnRH8jCwWHa4ErWVkE2ElmdAgFA9H6byu+fkywKrptznOQCuCVM0vUUOC g8RYCNmcTJf+lWVii97Ja/Ud43LV0wKWJiNVhxd7T2+iV9HxHcDWJBxWRLXRdQj6U7FLJHoRAoq XTt1kKbXvCtOLxgd0eNHCPISpW9Egg== X-Authority-Analysis: v=2.4 cv=MIJtWcZl c=1 sm=1 tr=0 ts=68fa1521 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=aow-egSQAAAA:8 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=GhfPg2sD2UaM3MgJKtQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=gFNbaldVC-z-bsjSTzMo:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-ORIG-GUID: BtFsqrKzjrnTIem3QKwC2V3-7yh85U7C X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219914769158500 pseries-3.0 had been deprecated and due for removal now as per policy. Also remove legacy irq support which existed for pre pseries-3.1 machines. Suggested-by: C=C3=A9dric Le Goater Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-2-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 1 - include/hw/ppc/spapr_irq.h | 1 - hw/ppc/spapr.c | 27 +-------------------------- hw/ppc/spapr_events.c | 8 -------- hw/ppc/spapr_irq.c | 16 +--------------- hw/ppc/spapr_pci.c | 32 ++++---------------------------- hw/ppc/spapr_vio.c | 9 --------- 7 files changed, 6 insertions(+), 88 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 39bd5bd5ed..0c1e5132de 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -145,7 +145,6 @@ struct SpaprMachineClass { /*< public >*/ bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs = */ bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */ - bool legacy_irq_allocation; uint32_t nr_xirqs; bool broken_host_serial_model; /* present real host info to the guest = */ bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ diff --git a/include/hw/ppc/spapr_irq.h b/include/hw/ppc/spapr_irq.h index cb9a85f657..5ddd1107c3 100644 --- a/include/hw/ppc/spapr_irq.h +++ b/include/hw/ppc/spapr_irq.h @@ -100,7 +100,6 @@ typedef struct SpaprIrq { } SpaprIrq; =20 extern SpaprIrq spapr_irq_xics; -extern SpaprIrq spapr_irq_xics_legacy; extern SpaprIrq spapr_irq_xive; extern SpaprIrq spapr_irq_dual; =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index e0a2e5a984..3728ae2a5e 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3347,9 +3347,7 @@ static char *spapr_get_ic_mode(Object *obj, Error **e= rrp) { SpaprMachineState *spapr =3D SPAPR_MACHINE(obj); =20 - if (spapr->irq =3D=3D &spapr_irq_xics_legacy) { - return g_strdup("legacy"); - } else if (spapr->irq =3D=3D &spapr_irq_xics) { + if (spapr->irq =3D=3D &spapr_irq_xics) { return g_strdup("xics"); } else if (spapr->irq =3D=3D &spapr_irq_xive) { return g_strdup("xive"); @@ -3363,11 +3361,6 @@ static void spapr_set_ic_mode(Object *obj, const cha= r *value, Error **errp) { SpaprMachineState *spapr =3D SPAPR_MACHINE(obj); =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - error_setg(errp, "This machine only uses the legacy XICS backend, = don't pass ic-mode"); - return; - } - /* The legacy IRQ backend can not be set */ if (strcmp(value, "xics") =3D=3D 0) { spapr->irq =3D &spapr_irq_xics; @@ -5062,24 +5055,6 @@ static void spapr_machine_3_1_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(3, 1); =20 -/* - * pseries-3.0 - */ - -static void spapr_machine_3_0_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - - spapr_machine_3_1_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_3_0, hw_compat_3_0_len); - - smc->legacy_irq_allocation =3D true; - smc->nr_xirqs =3D 0x400; - smc->irq =3D &spapr_irq_xics_legacy; -} - -DEFINE_SPAPR_MACHINE(3, 0); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 832b0212f3..548a190ce8 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -1043,10 +1043,6 @@ void spapr_events_init(SpaprMachineState *spapr) { int epow_irq =3D SPAPR_IRQ_EPOW; =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - epow_irq =3D spapr_irq_findone(spapr, &error_fatal); - } - spapr_irq_claim(spapr, epow_irq, false, &error_fatal); =20 QTAILQ_INIT(&spapr->pending_events); @@ -1067,10 +1063,6 @@ void spapr_events_init(SpaprMachineState *spapr) if (spapr->use_hotplug_event_source) { int hp_irq =3D SPAPR_IRQ_HOTPLUG; =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - hp_irq =3D spapr_irq_findone(spapr, &error_fatal); - } - spapr_irq_claim(spapr, hp_irq, false, &error_fatal); =20 spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_HOT= _PLUG, diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index d6d368dd08..317d57a380 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -33,11 +33,6 @@ static const TypeInfo spapr_intc_info =3D { =20 static void spapr_irq_msi_init(SpaprMachineState *spapr) { - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - /* Legacy mode doesn't use this allocator */ - return; - } - spapr->irq_map_nr =3D spapr_irq_nr_msis(spapr); spapr->irq_map =3D bitmap_new(spapr->irq_map_nr); } @@ -286,11 +281,7 @@ uint32_t spapr_irq_nr_msis(SpaprMachineState *spapr) { SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); =20 - if (smc->legacy_irq_allocation) { - return smc->nr_xirqs; - } else { - return SPAPR_XIRQ_BASE + smc->nr_xirqs - SPAPR_IRQ_MSI; - } + return SPAPR_XIRQ_BASE + smc->nr_xirqs - SPAPR_IRQ_MSI; } =20 void spapr_irq_init(SpaprMachineState *spapr, Error **errp) @@ -588,11 +579,6 @@ int spapr_irq_find(SpaprMachineState *spapr, int num, = bool align, Error **errp) return first + ics->offset; } =20 -SpaprIrq spapr_irq_xics_legacy =3D { - .xics =3D true, - .xive =3D false, -}; - static void spapr_irq_register_types(void) { type_register_static(&spapr_intc_info); diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index f9095552e8..bdec8f0728 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -268,7 +268,6 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, SpaprM= achineState *spapr, target_ulong args, uint32_t nret, target_ulong rets) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); uint32_t config_addr =3D rtas_ld(args, 0); uint64_t buid =3D rtas_ldq(args, 1); unsigned int func =3D rtas_ld(args, 3); @@ -373,13 +372,8 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, Spapr= MachineState *spapr, } =20 /* Allocate MSIs */ - if (smc->legacy_irq_allocation) { - irq =3D spapr_irq_find(spapr, req_num, ret_intr_type =3D=3D RTAS_T= YPE_MSI, - &err); - } else { - irq =3D spapr_irq_msi_alloc(spapr, req_num, - ret_intr_type =3D=3D RTAS_TYPE_MSI, &err= ); - } + irq =3D spapr_irq_msi_alloc(spapr, req_num, + ret_intr_type =3D=3D RTAS_TYPE_MSI, &err); if (err) { error_reportf_err(err, "Can't allocate MSIs for device %x: ", config_addr); @@ -393,9 +387,7 @@ static void rtas_ibm_change_msi(PowerPCCPU *cpu, SpaprM= achineState *spapr, if (i) { spapr_irq_free(spapr, irq, i); } - if (!smc->legacy_irq_allocation) { - spapr_irq_msi_free(spapr, irq, req_num); - } + spapr_irq_msi_free(spapr, irq, req_num); error_reportf_err(err, "Can't allocate MSIs for device %x: ", config_addr); rtas_st(rets, 0, RTAS_OUT_HW_ERROR); @@ -1789,12 +1781,9 @@ static void spapr_phb_unrealize(DeviceState *dev) static void spapr_phb_destroy_msi(gpointer opaque) { SpaprMachineState *spapr =3D SPAPR_MACHINE(qdev_get_machine()); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); SpaprPciMsi *msi =3D opaque; =20 - if (!smc->legacy_irq_allocation) { - spapr_irq_msi_free(spapr, msi->first_irq, msi->num); - } + spapr_irq_msi_free(spapr, msi->first_irq, msi->num); spapr_irq_free(spapr, msi->first_irq, msi->num); g_free(msi); } @@ -1808,7 +1797,6 @@ static void spapr_phb_realize(DeviceState *dev, Error= **errp) SpaprMachineState *spapr =3D (SpaprMachineState *) object_dynamic_cast(qdev_get_machine(), TYPE_SPAPR_MACHINE); - SpaprMachineClass *smc =3D spapr ? SPAPR_MACHINE_GET_CLASS(spapr) : NU= LL; SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); SpaprPhbState *sphb =3D SPAPR_PCI_HOST_BRIDGE(sbd); PCIHostState *phb =3D PCI_HOST_BRIDGE(sbd); @@ -1956,18 +1944,6 @@ static void spapr_phb_realize(DeviceState *dev, Erro= r **errp) for (i =3D 0; i < PCI_NUM_PINS; i++) { int irq =3D SPAPR_IRQ_PCI_LSI + sphb->index * PCI_NUM_PINS + i; =20 - if (smc->legacy_irq_allocation) { - irq =3D spapr_irq_findone(spapr, errp); - if (irq < 0) { - error_prepend(errp, "can't allocate LSIs: "); - /* - * Older machines will never support PHB hotplug, ie, this= is an - * init only path and QEMU will terminate. No need to roll= back. - */ - return; - } - } - if (spapr_irq_claim(spapr, irq, true, errp) < 0) { error_prepend(errp, "can't allocate LSIs: "); goto unrealize; diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index 7759436a4f..c21a2a3274 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -507,15 +507,6 @@ static void spapr_vio_busdev_realize(DeviceState *qdev= , Error **errp) =20 dev->irq =3D spapr_vio_reg_to_irq(dev->reg); =20 - if (SPAPR_MACHINE_GET_CLASS(spapr)->legacy_irq_allocation) { - int irq =3D spapr_irq_findone(spapr, errp); - - if (irq < 0) { - return; - } - dev->irq =3D irq; - } - if (spapr_irq_claim(spapr, dev->irq, false, errp) < 0) { return; } --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219924; cv=none; d=zohomail.com; s=zohoarc; b=BXe4m9sY2VxlTN+TWuAfy95qHFYblDElp92PYaIh/UmFX2Y1uWwJaeSA5id1vjU9PWwRKcjGbBsytBRWBxwrOd0dAtExzFvAIKb+EQQo1v9XWYIXaSfMGRLPyxQFTj6yWuKpmP59sFfsBmLbIVSOyXKRhEKPfNeC3xJ7dAUgJ6Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e+B3LZWYy/aGnQ6XEPNZ0HRwmzqSsvz6GPL3axN2Jgw=; b=ScAWvUVb8FFDP2qmWxl50ivG2l9PeuAxi+A7dtymWQmhvgE6admozdcaRE4LMRbi+pDC3UOL4jMX5c1hswsir/sa3FkE+zQynF+/unVWL6701Ia4Si3edoKl2U/D19ob3R4PTjraIoJG46Ozi3Mu8koULOqDsXWuMS0g7X+/gwg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219924496970.1464662136576; Thu, 23 Oct 2025 04:45:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkI-0001G0-GG; Thu, 23 Oct 2025 07:44:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkF-0001FX-AM for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:39 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkD-0001Zd-5i for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:39 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8vksX025247; Thu, 23 Oct 2025 11:44:34 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wbs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:34 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8VA70014663; Thu, 23 Oct 2025 11:44:33 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdpmx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:33 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiVQp54133068 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:32 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CE91D20049; Thu, 23 Oct 2025 11:44:31 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 21DF620040; Thu, 23 Oct 2025 11:44:31 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:30 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=e+B3LZ WYy/aGnQ6XEPNZ0HRwmzqSsvz6GPL3axN2Jgw=; b=X5tJadD2Dyb+uQuCRulJaO 5ukVyqmgScyzpj0yyKaL1aCrDZRXXT4U93F56OTwijDV29m1Jb52v8u4Gay6xrT4 PCNV2LoEc7/8TSPOxRDGmw0qEOmKVdUkH2X4L2a4+G4hai0vwA34qzxhiLrq3nbK Zv0QXoX2/YmL+4Ck1ITLUZpl+gO1JTXifkrKanmdgOAJyVxBkDLzNfBEne2N0kir TZPyF+01I6m5IPrKpDrbpY0DRTR6ziyZplx8Sf9xtZ2LtxP1V3IV9Qs0wi7khH07 dKwGFZ9wLMJOdiWmrxjMkoSd8/kqmVDHTaYa4lis0b9H5jG0BPEOfD0nFzvwWc1g == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 02/32] hw/ppc/spapr: Remove SpaprMachineClass::nr_xirqs field Date: Thu, 23 Oct 2025 17:13:49 +0530 Message-ID: <20251023114422.3675018-3-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa1522 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=tlPyEYuBD3hQ0sVLCPoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXwC26evbUQ3d8 W25RtOnKKBHDC838J+0fhGwGGlhfpCQvu9TYG/6TsPzd4EuXcDHqiujhnJbLb6X9LZGits3DbkX hNxBSkXtgOAqhBRj+a3wDaokj2Y7KMhz7qAD1/gdtPagU9iQzBIBqX9O/4Zoiw1OL4arafc6a1y 8Opv/ElVpAfCFCv8Vg6gC9IhP2HLlyClFD28Gp22tGTM1U4LWVt/tyoKPgdthh5GCm5SZ0QyUFw RSdsrXgpZtPGrB1OLmM+0Zrj+pePB3XlGqM1FXk5BDvyEpn9fag09VVJDI8zitRKMKhTUIyQNTU nKnUocUgOdJDLoPwjIMjhhcyRzv/kWzwDQlizam8nS9fDERKW1CnCgV6PHTi1MhWmZtszNXUXqW +hbeBmhD1uMp1NUgiHlMGrKg+vui3Q== X-Proofpoint-GUID: c0oQ4I8TckB9cAtoWjxdnYKW5AJuWsW5 X-Proofpoint-ORIG-GUID: c0oQ4I8TckB9cAtoWjxdnYKW5AJuWsW5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219928395158500 From: Philippe Mathieu-Daud=C3=A9 The SpaprMachineClass::nr_xirqs field was only used by the pseries-3.0 machine, which got removed. Remove it as now unused. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-3-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 1 - hw/ppc/spapr.c | 1 - hw/ppc/spapr_irq.c | 22 +++++++--------------- 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 0c1e5132de..494367fb99 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -145,7 +145,6 @@ struct SpaprMachineClass { /*< public >*/ bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs = */ bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */ - uint32_t nr_xirqs; bool broken_host_serial_model; /* present real host info to the guest = */ bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ bool linux_pci_probe; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 3728ae2a5e..7be7fdaed8 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4691,7 +4691,6 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) smc->dr_phb_enabled =3D true; smc->linux_pci_probe =3D true; smc->smp_threads_vsmt =3D true; - smc->nr_xirqs =3D SPAPR_NR_XIRQS; xfc->match_nvt =3D spapr_match_nvt; vmc->client_architecture_support =3D spapr_vof_client_architecture_sup= port; vmc->quiesce =3D spapr_vof_quiesce; diff --git a/hw/ppc/spapr_irq.c b/hw/ppc/spapr_irq.c index 317d57a380..2ce323457b 100644 --- a/hw/ppc/spapr_irq.c +++ b/hw/ppc/spapr_irq.c @@ -279,15 +279,11 @@ void spapr_irq_dt(SpaprMachineState *spapr, uint32_t = nr_servers, =20 uint32_t spapr_irq_nr_msis(SpaprMachineState *spapr) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); - - return SPAPR_XIRQ_BASE + smc->nr_xirqs - SPAPR_IRQ_MSI; + return SPAPR_NR_XIRQS + SPAPR_XIRQ_BASE - SPAPR_IRQ_MSI; } =20 void spapr_irq_init(SpaprMachineState *spapr, Error **errp) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); - if (kvm_enabled() && kvm_kernel_irqchip_split()) { error_setg(errp, "kernel_irqchip split mode not supported on pseri= es"); return; @@ -308,7 +304,7 @@ void spapr_irq_init(SpaprMachineState *spapr, Error **e= rrp) object_property_add_child(OBJECT(spapr), "ics", obj); object_property_set_link(obj, ICS_PROP_XICS, OBJECT(spapr), &error_abort); - object_property_set_int(obj, "nr-irqs", smc->nr_xirqs, &error_abor= t); + object_property_set_int(obj, "nr-irqs", SPAPR_NR_XIRQS, &error_abo= rt); if (!qdev_realize(DEVICE(obj), NULL, errp)) { return; } @@ -322,7 +318,7 @@ void spapr_irq_init(SpaprMachineState *spapr, Error **e= rrp) int i; =20 dev =3D qdev_new(TYPE_SPAPR_XIVE); - qdev_prop_set_uint32(dev, "nr-irqs", smc->nr_xirqs + SPAPR_IRQ_NR_= IPIS); + qdev_prop_set_uint32(dev, "nr-irqs", SPAPR_NR_XIRQS + SPAPR_IRQ_NR= _IPIS); /* * 8 XIVE END structures per CPU. One for each available * priority @@ -349,7 +345,7 @@ void spapr_irq_init(SpaprMachineState *spapr, Error **e= rrp) } =20 spapr->qirqs =3D qemu_allocate_irqs(spapr_set_irq, spapr, - smc->nr_xirqs + SPAPR_IRQ_NR_IPIS); + SPAPR_NR_XIRQS + SPAPR_IRQ_NR_IPIS); =20 /* * Mostly we don't actually need this until reset, except that not @@ -364,11 +360,10 @@ int spapr_irq_claim(SpaprMachineState *spapr, int irq= , bool lsi, Error **errp) { SpaprInterruptController *intcs[] =3D ALL_INTCS(spapr); int i; - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); int rc; =20 assert(irq >=3D SPAPR_XIRQ_BASE); - assert(irq < (smc->nr_xirqs + SPAPR_XIRQ_BASE)); + assert(irq < (SPAPR_NR_XIRQS + SPAPR_XIRQ_BASE)); =20 for (i =3D 0; i < ARRAY_SIZE(intcs); i++) { SpaprInterruptController *intc =3D intcs[i]; @@ -388,10 +383,9 @@ void spapr_irq_free(SpaprMachineState *spapr, int irq,= int num) { SpaprInterruptController *intcs[] =3D ALL_INTCS(spapr); int i, j; - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); =20 assert(irq >=3D SPAPR_XIRQ_BASE); - assert((irq + num) <=3D (smc->nr_xirqs + SPAPR_XIRQ_BASE)); + assert((irq + num) <=3D (SPAPR_NR_XIRQS + SPAPR_XIRQ_BASE)); =20 for (i =3D irq; i < (irq + num); i++) { for (j =3D 0; j < ARRAY_SIZE(intcs); j++) { @@ -408,8 +402,6 @@ void spapr_irq_free(SpaprMachineState *spapr, int irq, = int num) =20 qemu_irq spapr_qirq(SpaprMachineState *spapr, int irq) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); - /* * This interface is basically for VIO and PHB devices to find the * right qemu_irq to manipulate, so we only allow access to the @@ -418,7 +410,7 @@ qemu_irq spapr_qirq(SpaprMachineState *spapr, int irq) * interfaces, we can change this if we need to in future. */ assert(irq >=3D SPAPR_XIRQ_BASE); - assert(irq < (smc->nr_xirqs + SPAPR_XIRQ_BASE)); + assert(irq < (SPAPR_NR_XIRQS + SPAPR_XIRQ_BASE)); =20 if (spapr->ics) { assert(ics_valid_irq(spapr->ics, irq)); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220293; cv=none; d=zohomail.com; s=zohoarc; b=BJZ+vmiRR6eHQlTgsNyxNjx9BPh7soxK/Mj1hJlc4urv08xpi3TEgCrmnroU5VAu4y2u9QgAojjY2v2WpbJD1DPtYASVIef8GTap88KX19sMWj9V6y6bLNJT5zh6sPFH6+EUgiKx0FeGBta8sMAnlC4XjfR/WtvWFAgjW9yYhCM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220293; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3evc8zgMd4yDoo0HZUV76MwS81vhCGcm/t7SODkPzw4=; b=N9BB9LVck32ctxK6uwxKeoCg4FlMtcBlPDXd84VCALboIhPZ8hugnQX6c1HpHVQZFl/nctztZeNRkYfFpCto7Kv/el+1HFqirBXoCoCFrQE2mV5vP1z+97uaJbAYyLeX8Z9j2ZcHnX+jSCA4z5NWavazw2sriHf4rwuZ9U32jYc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220293953866.7720706665023; Thu, 23 Oct 2025 04:51:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkm-0001it-Mz; Thu, 23 Oct 2025 07:45:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkP-0001IT-4S for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:50 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkM-0001an-Im for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:48 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7kbFT015153; Thu, 23 Oct 2025 11:44:36 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9w9u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:36 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAO12Q024677; Thu, 23 Oct 2025 11:44:35 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5dru-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:35 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiX8U31916532 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:33 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 37A062004E; Thu, 23 Oct 2025 11:44:33 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2B65A20049; Thu, 23 Oct 2025 11:44:32 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:31 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=3evc8z gMd4yDoo0HZUV76MwS81vhCGcm/t7SODkPzw4=; b=fm1NWELtNtbwdn/uzHs4iy YAjgr6CPEAASOS0uzTpVNG/lmwfpCYrDZEJNJLyfPVxrfgqy+lfo5CelF0ZEOjUE uL/p5IrJgzB7pWj8lcX/vvhzSaefKMDw+8BkCRcReWpbAylEA4Ch5QtsTyiLub4M pfNmNdWlxZwxqtOndLAGpB9S/8HW6HNpX1rWEHMDwrSi9VLYoWBXeyxIT2Hgy2bf zdvsmIfI7pOPxM54cnDDfbnuYoHC7ULslmZABJUy+TclozE3ALFkXEiqtBM93Sn9 q1WXbxAm3iHtxeezkbRLeH1HFGncbrpxpohfyIJSwkf+Np9BAMNmqLctYsq3GwRw == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 03/32] ppc/spapr: remove deprecated machine pseries-3.1 Date: Thu, 23 Oct 2025 17:13:50 +0530 Message-ID: <20251023114422.3675018-4-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: NLp6IHAwkFYwz8Zo97dFLfqenw8b49r8 X-Proofpoint-GUID: NLp6IHAwkFYwz8Zo97dFLfqenw8b49r8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX1MzE2k7Hxwpg z0WzcEu3QgQ8ACGPwVdh+xgRSTXD95r4LYQ3x5mdqprXofjQLseS1d090INCOQwh9sHamWy/lL6 BsgPPBg9jK6Nv8WY4WL6x06YhbYN8u21b8no2Cl+/tKd9xk1yCJ/Ly6Omopw3lPVLiYwUUiQMMX YGg7Zcc2TT5OhAXPAdFtgCiu/KvKcBcY+nsQ25t7X6T8xxVKFV7/P8/9HBY9P2Sk5LKGIxlD9to FHARe/byep9+RnPxk8o9wPXVG05tS6PEQQH7KOsmTOi6v1Xg6+Y0AKNaqTa/Km8J2ALFarkFpfv wHxkRWg+tj8Q5sWQ4bi5SK6OZjv95NNcTNLcAyGcf7OLscmQEDl0KUHxigRZ01Su8cFBDxmnqnI rCy2z5PsYS/1Tcy2n2s1I0Ica5lMlg== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa1524 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=aow-egSQAAAA:8 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=Yh3J_22oyFJWg4qsq-cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=gFNbaldVC-z-bsjSTzMo:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220297043158500 pseries-3.1 had been deprecated and due for removal now as per policy. Also remove backward compatibility flags and related code introduced for pre pseries-4.0 machines. Suggested-by: C=C3=A9dric Le Goater Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-4-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 3 -- hw/ppc/spapr.c | 62 ++++-------------------------------------- hw/ppc/spapr_hcall.c | 5 ---- 3 files changed, 5 insertions(+), 65 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 494367fb99..1db67784de 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -143,9 +143,6 @@ struct SpaprMachineClass { MachineClass parent_class; =20 /*< public >*/ - bool dr_phb_enabled; /* enable dynamic-reconfig/hotplug of PHBs = */ - bool update_dt_enabled; /* enable KVMPPC_H_UPDATE_DT */ - bool broken_host_serial_model; /* present real host info to the guest = */ bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ bool linux_pci_probe; bool smp_threads_vsmt; /* set VSMT to smp_threads by default */ diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 7be7fdaed8..efeea03741 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1182,7 +1182,6 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool = reset, size_t space) { MachineState *machine =3D MACHINE(spapr); MachineClass *mc =3D MACHINE_GET_CLASS(machine); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(machine); uint32_t root_drc_type_mask =3D 0; int ret; void *fdt; @@ -1213,16 +1212,10 @@ void *spapr_build_fdt(SpaprMachineState *spapr, boo= l reset, size_t space) /* Host Model & Serial Number */ if (spapr->host_model) { _FDT(fdt_setprop_string(fdt, 0, "host-model", spapr->host_model)); - } else if (smc->broken_host_serial_model && kvmppc_get_host_model(&buf= )) { - _FDT(fdt_setprop_string(fdt, 0, "host-model", buf)); - g_free(buf); } =20 if (spapr->host_serial) { _FDT(fdt_setprop_string(fdt, 0, "host-serial", spapr->host_serial)= ); - } else if (smc->broken_host_serial_model && kvmppc_get_host_serial(&bu= f)) { - _FDT(fdt_setprop_string(fdt, 0, "host-serial", buf)); - g_free(buf); } =20 _FDT(fdt_setprop_cell(fdt, 0, "#address-cells", 2)); @@ -1260,9 +1253,8 @@ void *spapr_build_fdt(SpaprMachineState *spapr, bool = reset, size_t space) =20 /* ibm,drc-indexes and friends */ root_drc_type_mask |=3D SPAPR_DR_CONNECTOR_TYPE_LMB; - if (smc->dr_phb_enabled) { - root_drc_type_mask |=3D SPAPR_DR_CONNECTOR_TYPE_PHB; - } + root_drc_type_mask |=3D SPAPR_DR_CONNECTOR_TYPE_PHB; + if (mc->nvdimm_supported) { root_drc_type_mask |=3D SPAPR_DR_CONNECTOR_TYPE_PMEM; } @@ -2063,9 +2055,7 @@ static const VMStateDescription vmstate_spapr_irq_map= =3D { =20 static bool spapr_dtb_needed(void *opaque) { - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(opaque); - - return smc->update_dt_enabled; + return true; /* backward migration compat */ } =20 static int spapr_dtb_pre_load(void *opaque) @@ -3009,10 +2999,8 @@ static void spapr_machine_init(MachineState *machine) * connectors for a PHBs PCI slots) are added as needed during their * parent's realization. */ - if (smc->dr_phb_enabled) { - for (i =3D 0; i < SPAPR_MAX_PHBS; i++) { - spapr_dr_connector_new(OBJECT(machine), TYPE_SPAPR_DRC_PHB, i); - } + for (i =3D 0; i < SPAPR_MAX_PHBS; i++) { + spapr_dr_connector_new(OBJECT(machine), TYPE_SPAPR_DRC_PHB, i); } =20 /* Set up PCI */ @@ -4095,11 +4083,6 @@ static bool spapr_phb_pre_plug(HotplugHandler *hotpl= ug_dev, DeviceState *dev, const unsigned windows_supported =3D spapr_phb_windows_supported(sphb); SpaprDrc *drc; =20 - if (dev->hotplugged && !smc->dr_phb_enabled) { - error_setg(errp, "PHB hotplug not supported for this machine"); - return false; - } - if (sphb->index =3D=3D (uint32_t)-1) { error_setg(errp, "\"index\" for PAPR PHB is mandatory"); return false; @@ -4125,16 +4108,10 @@ static bool spapr_phb_pre_plug(HotplugHandler *hotp= lug_dev, DeviceState *dev, =20 static void spapr_phb_plug(HotplugHandler *hotplug_dev, DeviceState *dev) { - SpaprMachineState *spapr =3D SPAPR_MACHINE(OBJECT(hotplug_dev)); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); SpaprPhbState *sphb =3D SPAPR_PCI_HOST_BRIDGE(dev); SpaprDrc *drc; bool hotplugged =3D spapr_drc_hotplugged(dev); =20 - if (!smc->dr_phb_enabled) { - return; - } - drc =3D spapr_drc_by_id(TYPE_SPAPR_DRC_PHB, sphb->index); /* hotplug hooks should check it's enabled before getting this far */ assert(drc); @@ -4260,7 +4237,6 @@ static void spapr_machine_device_unplug_request(Hotpl= ugHandler *hotplug_dev, { SpaprMachineState *sms =3D SPAPR_MACHINE(OBJECT(hotplug_dev)); MachineClass *mc =3D MACHINE_GET_CLASS(sms); - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); =20 if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { if (spapr_memory_hot_unplug_supported(sms)) { @@ -4275,10 +4251,6 @@ static void spapr_machine_device_unplug_request(Hotp= lugHandler *hotplug_dev, } spapr_core_unplug_request(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_SPAPR_PCI_HOST_BRIDGE= )) { - if (!smc->dr_phb_enabled) { - error_setg(errp, "PHB hot unplug not supported on this machine= "); - return; - } spapr_phb_unplug_request(hotplug_dev, dev, errp); } else if (object_dynamic_cast(OBJECT(dev), TYPE_SPAPR_TPM_PROXY)) { spapr_tpm_proxy_unplug(hotplug_dev, dev); @@ -4634,7 +4606,6 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) hc->unplug_request =3D spapr_machine_device_unplug_request; hc->unplug =3D spapr_machine_device_unplug; =20 - smc->update_dt_enabled =3D true; mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power10_v2.0"); mc->has_hotpluggable_cpus =3D true; mc->nvdimm_supported =3D true; @@ -4688,7 +4659,6 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) smc->default_caps.caps[SPAPR_CAP_AIL_MODE_3] =3D SPAPR_CAP_ON; spapr_caps_add_properties(smc); smc->irq =3D &spapr_irq_dual; - smc->dr_phb_enabled =3D true; smc->linux_pci_probe =3D true; smc->smp_threads_vsmt =3D true; xfc->match_nvt =3D spapr_match_nvt; @@ -5032,28 +5002,6 @@ static void spapr_machine_4_0_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(4, 0); =20 -/* - * pseries-3.1 - */ -static void spapr_machine_3_1_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - - spapr_machine_4_0_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_3_1, hw_compat_3_1_len); - - mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("power8_v2.0"); - smc->update_dt_enabled =3D false; - smc->dr_phb_enabled =3D false; - smc->broken_host_serial_model =3D true; - smc->default_caps.caps[SPAPR_CAP_CFPC] =3D SPAPR_CAP_BROKEN; - smc->default_caps.caps[SPAPR_CAP_SBBC] =3D SPAPR_CAP_BROKEN; - smc->default_caps.caps[SPAPR_CAP_IBS] =3D SPAPR_CAP_BROKEN; - smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] =3D SPAPR_CAP_OFF; -} - -DEFINE_SPAPR_MACHINE(3, 1); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index 8c1e0a4817..8f03b3e776 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -1475,16 +1475,11 @@ static target_ulong h_update_dt(PowerPCCPU *cpu, Sp= aprMachineState *spapr, target_ulong dt =3D ppc64_phys_to_real(args[0]); struct fdt_header hdr =3D { 0 }; unsigned cb; - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); void *fdt; =20 cpu_physical_memory_read(dt, &hdr, sizeof(hdr)); cb =3D fdt32_to_cpu(hdr.totalsize); =20 - if (!smc->update_dt_enabled) { - return H_SUCCESS; - } - /* Check that the fdt did not grow out of proportion */ if (cb > spapr->fdt_initial_size * 2) { trace_spapr_update_dt_failed_size(spapr->fdt_initial_size, cb, --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219930; cv=none; d=zohomail.com; s=zohoarc; b=nl+AJdBiGYeMHyjI8uVsIv3I/7bhho3XhMA0LXZxX2qiD3g8regjG30s7qw8fbIv6ZHDQQK/T0YuAHKPrBLVUPaG+jRAdoOwkqHOR5kqwTsiIKBKhJgRVsHMfz0rNSZavhTFBoFktYmPypKNfZ6FM4Usx7ku/d+zvkBJPAtYnAY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219930; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=jiEKWWyOzFcKs9G5MbbG6wff0diB/5Hd2AkM87nJ2BM=; b=AzaMduDleeKeMrZqF5Pc4VSbejb9kNVhsU0skkUPcI+0L3BH/fmip9kv8UbGVSvrSVQOUkTniEenldkfEcEEC7NgBIfr4Krjcz3DlSSnZa3PYr2Klu6K0oRBpTFNcMmvfNdWdQhhxKXUNrPJShNzdd5P7wQoEQCLfuWGmV44Aq4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219930420630.3967384306177; Thu, 23 Oct 2025 04:45:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkM-0001Gq-FN; Thu, 23 Oct 2025 07:44:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkH-0001Fp-8P for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:41 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkF-0001Zu-9K for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:41 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N51OWN017546; Thu, 23 Oct 2025 11:44:37 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx52-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:36 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NBV7mn011053; Thu, 23 Oct 2025 11:44:36 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqx1d6ee-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:35 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiYKO54657504 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:34 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4C00F20040; Thu, 23 Oct 2025 11:44:34 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 89B3C20049; Thu, 23 Oct 2025 11:44:33 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:33 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=jiEKWW yOzFcKs9G5MbbG6wff0diB/5Hd2AkM87nJ2BM=; b=SvG5hA3uLBa+XlvGACstnz 9KYwBG0YDVkWjEoJVlXITxt8qse2d5p976/V9uw7uZiHIx6yPSfsohatm/Tof5w4 q4zewpWQEbvvLKAseVNgCbWB4ESPPTifv2OLFkf2XLom5D04bxluEfYvXi1FM5wh HX7p/mnp6n8fg/zAZj3SOt7q1S9/56SgKfykO7v7aRjVgk/8g2Nv8uWbn977uS2Y Th2g5ggA1mLRLuMTNl6erQKbrkavYnmXl01XXxUliL4xgsoqJVHvx0nDpHV1k8eo z8rWMSt0RcPIkpGhnf2m4dQd1ADlZrkSAyJEtTiblZyeFzvA14gnRgEHFVpg/LvQ == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 04/32] hw/ppc/spapr: Inline spapr_dtb_needed() Date: Thu, 23 Oct 2025 17:13:51 +0530 Message-ID: <20251023114422.3675018-5-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa1524 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=aeNWSmdylBY4NdqMzywA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: u_My64QL4rLTsKONoP0ehZBOzLTcbi1A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX80YJ34IDw90E aY9qYnr54NWAtXHVwlNnm+hcLwhC77P7Sb6Dlwl6DU8lUqWWmmto5HAN9L+eJ2wtv7U9Ewaa4Ep /9ohbAwNmKxqpaJlxflqsOxvNMnsLp5hduY76GhfaBZi3tjxJs1Vt16PXje7f4ZQFWJq5+IsV7j 9qIuyXDDOYDIqTNg9Mb0i5P/SBL4Bkdrr5eNn7sari7oNQtou/vVX+tKhYBnJWXliI7aZSVgvLS o89ournytLOCAHKAk4gPXNR06oCLNNsQXKuRqb4Xaqq/pAXK9sbuJvogUvIAhlGQgQ7/t3qLYcH dHUwCl8JWCRe127BgbQpUGpK7737KroohNkfWa7uANB4MmBDrBV4eueB0Krk4vwmRIOLJkaUm4J nRMJmpTDCo9GjcwPqoJe44n6mwdS6w== X-Proofpoint-ORIG-GUID: u_My64QL4rLTsKONoP0ehZBOzLTcbi1A X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219931990154100 From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-5-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index efeea03741..ab46e3bd60 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2053,11 +2053,6 @@ static const VMStateDescription vmstate_spapr_irq_ma= p =3D { }, }; =20 -static bool spapr_dtb_needed(void *opaque) -{ - return true; /* backward migration compat */ -} - static int spapr_dtb_pre_load(void *opaque) { SpaprMachineState *spapr =3D (SpaprMachineState *)opaque; @@ -2073,7 +2068,6 @@ static const VMStateDescription vmstate_spapr_dtb =3D= { .name =3D "spapr_dtb", .version_id =3D 1, .minimum_version_id =3D 1, - .needed =3D spapr_dtb_needed, .pre_load =3D spapr_dtb_pre_load, .fields =3D (const VMStateField[]) { VMSTATE_UINT32(fdt_initial_size, SpaprMachineState), --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220320; cv=none; d=zohomail.com; s=zohoarc; b=j+diuAhspP7GBWRaO1Gh25Y8B+Nz4xqgh5fxds+MPwP/7ESaRU2REX8skZv48qGZOlvd+5nuZaXo3WEAOTAZcMAp+3IyzMcn9vffphSQc2XdqlAU0Y4j6HPwf2ZGnQOm8akjjeHdOVGd/3pZj3eHPu1ElR8jzzQaRgH3x/eCNVk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220320; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gumBZnsDL9HL0lcEHsF9XA4suBSXbHfK2Xn0Lw9jxU8=; b=ZI/W/HVQCgIxl2skrRiS9MzO6L/lv5M6PeGgHVkRGjgvL+Kxhtiz8Y58Ww29zvjtCIpmPu1pkiNQXUzdZ2d3li6W43A5UMSsJbTTp/xmWsAhhS7c9hbiKcfEB6h22RPvJBNU4uhtX6dixBtYqwZOjmSGkIYEolEw95RLWCAISAg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220320408580.6223816243927; Thu, 23 Oct 2025 04:52:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkO-0001Hr-Ed; Thu, 23 Oct 2025 07:44:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkK-0001GU-7l for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:44 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkI-0001aA-GI for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:44 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9pGRG016406; Thu, 23 Oct 2025 11:44:40 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v32hrcnf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:40 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9cOgq017066; Thu, 23 Oct 2025 11:44:39 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5krv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:39 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiZfV29557076 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:35 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7F47C20049; Thu, 23 Oct 2025 11:44:35 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9DAEA20040; Thu, 23 Oct 2025 11:44:34 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:34 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=gumBZn sDL9HL0lcEHsF9XA4suBSXbHfK2Xn0Lw9jxU8=; b=Qo0r4Xron3ATegUF/iDRY5 CVEVT6Gw88MpB7GE27Dj4QmVIHE9MHvQXEKrCbWzgaSjgvoPkdShPiIVYdewQHCg Z6Mi1UVFVQlN49XDcoZpDo323OyAafuIU9AE1af9Zwt6tZyf2zpM/7vkzh8UAoxN qhkya1pTrfS7pxBmw6WCmkrdhJrHd1GEyRFO/mFAIa5Ql1RjdCJIG7tgC0BOYEwC bIapKqG1L7m+dZXHt8o7QyQyyIi9eC5aZKzNCg++3gWsfaQXjE6dsbQ9RO8eJDFz 8eFUZXJ9g2LPzNe3Qf/e0MtGDLDxvhQMCPN+6f/N+Zi85KFCcoDR70Dy2akybZvQ == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Chinmay Rath Subject: [PULL 05/32] hw/ppc/spapr: Inline few SPAPR_IRQ_* uses Date: Thu, 23 Oct 2025 17:13:52 +0530 Message-ID: <20251023114422.3675018-6-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXx/At+VwklSHC LOmWzPJhqDLEyvIPuCbQo27FiE3TosoSsIyuAV8IZJrLcKF6iwkGgrX40cP7dw6RBm//YQ9a41P THoM7JE88/LjQkPl8qS7wbuOQYjb3EFN7cMwGTQBvjF5F9cajFw5SbkI4FdDVEfflbsgmMXEKnl 0utWsEnLKE3Pp2d4GTNvkRU1BvQbR/Eptsr4cfeakmxbFMGjWOKjauxt0QxRb5f5mvEomo6jQIs dufCgiWUJjrkIwWae999x93lQTdiXY4qqHV3HWxpn06omENtAbDQiRXh9zhQRMrBz97QnCbnobO MF3CYVHPE9ewsw4dK4ehFmRlTeiPMQaizq1RIceA91ATv8qGsKSbyC50cShxzxOFCGwPSS/4UkI PgSyETq0VlIsHorTC8GhqlvSrL33iw== X-Authority-Analysis: v=2.4 cv=OrVCCi/t c=1 sm=1 tr=0 ts=68fa1528 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=FGj2XIL8PdlB0YAdb_sA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: 0LpW3Eqi3yo943DM8HeY3uuNkWkMLCD0 X-Proofpoint-ORIG-GUID: 0LpW3Eqi3yo943DM8HeY3uuNkWkMLCD0 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220322630154100 From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Chinmay Rath Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-6-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr_events.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c index 548a190ce8..892ddc7f8f 100644 --- a/hw/ppc/spapr_events.c +++ b/hw/ppc/spapr_events.c @@ -1041,16 +1041,14 @@ void spapr_clear_pending_hotplug_events(SpaprMachin= eState *spapr) =20 void spapr_events_init(SpaprMachineState *spapr) { - int epow_irq =3D SPAPR_IRQ_EPOW; - - spapr_irq_claim(spapr, epow_irq, false, &error_fatal); + spapr_irq_claim(spapr, SPAPR_IRQ_EPOW, false, &error_fatal); =20 QTAILQ_INIT(&spapr->pending_events); =20 spapr->event_sources =3D spapr_event_sources_new(); =20 spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_EPOW, - epow_irq); + SPAPR_IRQ_EPOW); =20 /* NOTE: if machine supports modern/dedicated hotplug event source, * we add it to the device-tree unconditionally. This means we may @@ -1061,12 +1059,10 @@ void spapr_events_init(SpaprMachineState *spapr) * checking that it's enabled. */ if (spapr->use_hotplug_event_source) { - int hp_irq =3D SPAPR_IRQ_HOTPLUG; - - spapr_irq_claim(spapr, hp_irq, false, &error_fatal); + spapr_irq_claim(spapr, SPAPR_IRQ_HOTPLUG, false, &error_fatal); =20 spapr_event_sources_register(spapr->event_sources, EVENT_CLASS_HOT= _PLUG, - hp_irq); + SPAPR_IRQ_HOTPLUG); } =20 spapr->epow_notifier.notify =3D spapr_powerdown_req; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219948; cv=none; d=zohomail.com; s=zohoarc; b=UCl8dzXFHJtzmXVqVx+8p0gXvzGDH0RXreSbILFZFveTT7ZAr145DZVwvlAuv9CF23Hfb1dCUaDCc3lwfGVMkRtoUEEH9V4VJfSpmtkCcJypHjuPfbfHKPyJuH43U/NavqITHNRyjYb/dqbNuzgx2H7YzHTtDr7ElJEE1gOKOig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219948; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=iwOILTQPyUIhzJQ2xujjtNAW0LS1GXXW1cS88ypZ9r0=; b=hKrZ9/lCfC0rY4T21EQA/+5TkZ6T4Px4KdEKaPsAjlc4v7SE7SpzM9q4l3goTIb1kLV6L1e+e5FPdhGymZFHMKbvYibazTbk+yi0WcV+hmPx7acW4dGeC201sbBSAlHJqeY0gTXKB2NKbqKmU2pyvylm9Yl40cbW/5SYNN2qd74= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219948742235.29689812872186; Thu, 23 Oct 2025 04:45:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkS-0001JT-Jd; Thu, 23 Oct 2025 07:44:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkM-0001HI-HH for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:46 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkK-0001aL-6L for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:46 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N3aMWN026207; Thu, 23 Oct 2025 11:44:42 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx5b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:41 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N95Dlt017081; Thu, 23 Oct 2025 11:44:40 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5krx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:40 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiaES35062212 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:36 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B20FE2004B; Thu, 23 Oct 2025 11:44:36 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D12BB20040; Thu, 23 Oct 2025 11:44:35 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:35 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=iwOILT QPyUIhzJQ2xujjtNAW0LS1GXXW1cS88ypZ9r0=; b=OP1I9pa/KvDWLSjP+POdDL iBVfZRsAqZalzJlMq6wQUIED4VuSe8IFPX80SPzFa2es7W8FoL/yO5glQFrQTUJq xMSukq883UzpT80PIlsgr/xspJZghFiBDh1Ep2tDFQz0g1N7rFIhro6q7kuSnMrb SzsiznqsZTCWwPQmAxYFEYTdMJmTsSfxriwmBUAWU0uS3wqSVAV5gO2qjazRf54e BBG8a3JSuGZPnlBWWM1pJd+uBR10LkfzFClibpDhuf1w/2ZbQWtmL8CjrGOD9znp 7g5fde6bpWw0QwA6nH69nQy4CoIMxuIFDXjJOVejlhq4dPFsaOAENiIU9NSOSlIA == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Chinmay Rath Subject: [PULL 06/32] target/ppc/kvm: Remove kvmppc_get_host_serial() as unused Date: Thu, 23 Oct 2025 17:13:53 +0530 Message-ID: <20251023114422.3675018-7-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa152a cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=aeNWSmdylBY4NdqMzywA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: zkLxd_X0QadIcSewq0xZQViMBrxwyqWj X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX9llgxxs28n92 Dc4wbD6/1DAT+R9UWj/PRxL69KMeL4xehDyr6o3NiaymgMgihJ/qQe7sVlsOXeBUIDnNGnfUIGq YYx8r56SJcz6HE9UN5zIIrOPG2suNq2DvYzeS0De1SQ+D3mTfk/m9jrAEa5bHwbG1KdKPInCA5m A9xsOuOiSj4jLjdnpRNcTUcNkq9HSN2ZHK5t1SUQvOjdLjmnql+Cjd4Jz1eKw0+vUHsx11spydJ uio3e9wfu1rmAm5qu+xk+eeSpny2M/dUksSDMuFHshoIznB91wpWK9pfSTuz2WYj6XOHOOOnv7o OC+sPDjnygFi/I3c1+lL+GYzohAFrjeWInMcBIAh415SUXRjDLI/H74HM0r9sdLWR61DfeGFMP9 99MJ28tgIpAHtXw9udX39O56h76BHg== X-Proofpoint-ORIG-GUID: zkLxd_X0QadIcSewq0xZQViMBrxwyqWj X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219950186154100 From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Chinmay Rath Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-7-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- target/ppc/kvm_ppc.h | 6 ------ target/ppc/kvm.c | 6 ------ 2 files changed, 12 deletions(-) diff --git a/target/ppc/kvm_ppc.h b/target/ppc/kvm_ppc.h index a1d9ce9f9a..f24cc4de3c 100644 --- a/target/ppc/kvm_ppc.h +++ b/target/ppc/kvm_ppc.h @@ -22,7 +22,6 @@ uint32_t kvmppc_get_tbfreq(void); uint64_t kvmppc_get_clockfreq(void); bool kvmppc_get_host_model(char **buf); -bool kvmppc_get_host_serial(char **buf); int kvmppc_get_hasidle(CPUPPCState *env); int kvmppc_get_hypercall(CPUPPCState *env, uint8_t *buf, int buf_len); int kvmppc_set_interrupt(PowerPCCPU *cpu, int irq, int level); @@ -134,11 +133,6 @@ static inline bool kvmppc_get_host_model(char **buf) return false; } =20 -static inline bool kvmppc_get_host_serial(char **buf) -{ - return false; -} - static inline uint64_t kvmppc_get_clockfreq(void) { return 0; diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index cd60893a17..cb61e99f9d 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -1864,12 +1864,6 @@ uint32_t kvmppc_get_tbfreq(void) return cached_tbfreq; } =20 -bool kvmppc_get_host_serial(char **value) -{ - return g_file_get_contents("/proc/device-tree/system-id", value, NULL, - NULL); -} - bool kvmppc_get_host_model(char **value) { return g_file_get_contents("/proc/device-tree/model", value, NULL, NUL= L); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219967; cv=none; d=zohomail.com; s=zohoarc; b=ewvDkxryfdHoQ+sHCh/x8SIzfS1KpeoX62mH2exFSnqFXSRKrTo65aqsJiYn33tV+s2g8njx7qLL8oPD/tH2S2XobTIGix8TkHuWvRjE2HoAzuLMGH/+4KHzWBQkSluH0XGQxBo+9BxjytuKnP7smZV82o5/r10Onwfr7nAWCcY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219967; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GxcLpKpr/QtQZF/cMnjmsCw52HTcPqMgbEWgV3CIK5k=; b=Tl9SoDqYDv9Tahi0fUW7ObmCPYhekUAtdDDyVlL3g4+Xdk28wyIJBaabkU2gba81WLLvl3l1uePDF1uU7wVXuYD9Fz8bOccvbmgKGuxPpKqaQpn1UuXC0EH+5LAyl2vRsERUjv4aquZxdmfgnGFomf36O366/SED6d5ehchR/B0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176121996798469.53419571515803; Thu, 23 Oct 2025 04:46:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkS-0001JU-JP; Thu, 23 Oct 2025 07:44:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkL-0001Gy-Vq for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:46 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkJ-0001aN-Tg for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:45 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAuh7f007202; Thu, 23 Oct 2025 11:44:42 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v30w0ef8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:42 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NBAWCq002367; Thu, 23 Oct 2025 11:44:41 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9vm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:41 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBibx246727488 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:38 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E35E220049; Thu, 23 Oct 2025 11:44:37 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0FC7920040; Thu, 23 Oct 2025 11:44:37 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:36 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=GxcLpK pr/QtQZF/cMnjmsCw52HTcPqMgbEWgV3CIK5k=; b=Ws4AC6qXSLcA0rWCparsxs YIjSWmtevHQdoBe8WJTWy7lIGpe4FDZt8MrEfEcQ6gAFdhjeiE5LTowA+ErS6Z4M D6xAkq+JTvKU3pgJqoVC2r5nTgG/g2HYXzA4aVXyq75lbgbChurf60J9AsLnyVXr 0EHLPqU+etsThc88YILC8wkiviXEw8UEMRuQEv7aNY47OY/ndGoVj9ufJ+/5WvDj vl/dqQPsxm1Omk1cLPO6+BZueafkcyibZcXPmT+S2xZSW5eV1y6jgjVfI6cPPsUM YK/Tv0OvCCn2q4tzBd07rPs9g98yXOmDRAXMgOnMEkB0k/Gmt59ZpsDqJhUGu2/g == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Chinmay Rath Subject: [PULL 07/32] target/ppc/kvm: Remove kvmppc_get_host_model() as unused Date: Thu, 23 Oct 2025 17:13:54 +0530 Message-ID: <20251023114422.3675018-8-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: zK_LNzWCD7NxC4-OzKvRP-vaGJ5blasy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX5DvWsW/UVsAl 11RJ5yQD16prtpOJpHOqNVflCP7vnQdDVO6Lk1yHaiY7BaOLvSwTCKFPduWsQoTm2beSMt6n0vZ sFCm4WW0I6Isrt1V9OKAzr1ENRGnX6xqC+JnyqwRjGCMyy4vL2LqMttjpt564GToF2RYo1EgNxU ER5PpiH24wq8C/wYJCkRaB3Bp8uf4q19+z3jaJ27JH37rv9Jase4dWHZfI7va/STvIgoFZBnYa+ VkH6YFlBvu/8sVS7bbH2NM8Yn1LjyIJ1gPw/aSb+mRMfFCaBUP8IhGwdaQQ8JyOilM/Ns3knmft eoNIua7BBJyhBfFGRNItwEPkcWa3ymjxe/osMnAcNxnVqNzHkfETwLHtUKaC6kPMS0ylMmXKtUJ Vw1/Jh3fgIUE/a8ZrIGdGG9a0KEeAQ== X-Authority-Analysis: v=2.4 cv=MIJtWcZl c=1 sm=1 tr=0 ts=68fa152a cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=aeNWSmdylBY4NdqMzywA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-ORIG-GUID: zK_LNzWCD7NxC4-OzKvRP-vaGJ5blasy X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219970614154100 From: Philippe Mathieu-Daud=C3=A9 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Chinmay Rath Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-8-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- target/ppc/kvm_ppc.h | 6 ------ target/ppc/kvm.c | 5 ----- 2 files changed, 11 deletions(-) diff --git a/target/ppc/kvm_ppc.h b/target/ppc/kvm_ppc.h index f24cc4de3c..742881231e 100644 --- a/target/ppc/kvm_ppc.h +++ b/target/ppc/kvm_ppc.h @@ -21,7 +21,6 @@ =20 uint32_t kvmppc_get_tbfreq(void); uint64_t kvmppc_get_clockfreq(void); -bool kvmppc_get_host_model(char **buf); int kvmppc_get_hasidle(CPUPPCState *env); int kvmppc_get_hypercall(CPUPPCState *env, uint8_t *buf, int buf_len); int kvmppc_set_interrupt(PowerPCCPU *cpu, int irq, int level); @@ -128,11 +127,6 @@ static inline uint32_t kvmppc_get_tbfreq(void) return 0; } =20 -static inline bool kvmppc_get_host_model(char **buf) -{ - return false; -} - static inline uint64_t kvmppc_get_clockfreq(void) { return 0; diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index cb61e99f9d..43124bf1c7 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -1864,11 +1864,6 @@ uint32_t kvmppc_get_tbfreq(void) return cached_tbfreq; } =20 -bool kvmppc_get_host_model(char **value) -{ - return g_file_get_contents("/proc/device-tree/model", value, NULL, NUL= L); -} - /* Try to find a device tree node for a CPU with clock-frequency property = */ static int kvmppc_find_cpu_dt(char *buf, int buf_len) { --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220291; cv=none; d=zohomail.com; s=zohoarc; b=kT+F8tLtMuFqMmvaikT6joToOstHiETm9iYPK0UKw3xXvf6aNjkxs3g6TYNd14TStk9AN6diDewRf1/UvAvQwIMo8dQ1h2JNTHMPjOlLZeEuUtkEWSGGYxBTHpufBmIYbavXoSGJXULxdOlXckJxuz+0hgzuT1btyqc3uWGf2VI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220291; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SkGLAI6wR3emVs7t6GIaXUPTfsowf3owzDMsV/QcsGw=; b=kNnjKSl8k4ij13NQR1KbmDv/A9N59WSiRTqiqb882l4eD+OwOsYI0dLoAizCw0gXOJlKjkUiRxu77/+EufqPz1Aze0qrvoi4z1ajJSc6Bcy4jm+t5A2uRDlHaYXG4/RNdrYxNNiM+pHyhZQGnATcAUjZ31++9YpSJ02DcXZJVFc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220291175596.4344230319581; Thu, 23 Oct 2025 04:51:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001Jm-3f; Thu, 23 Oct 2025 07:44:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkN-0001I2-PZ for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:48 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkL-0001ad-8A for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:47 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N0CwAm024633; Thu, 23 Oct 2025 11:44:42 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31cgj1r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:41 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA8le5024690; Thu, 23 Oct 2025 11:44:41 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5ds3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:41 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBidsC7864602 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:39 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4F31420049; Thu, 23 Oct 2025 11:44:39 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 40E4220040; Thu, 23 Oct 2025 11:44:38 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:38 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=SkGLAI 6wR3emVs7t6GIaXUPTfsowf3owzDMsV/QcsGw=; b=Z62gMKFGF0EcC2NNJc1mwp QUI1H9bTTPFMIIoNfBPMQF6/j0Ibs6q/dxE7Q8VH3GxCGecxB0Z9HJWIZuVkKUR8 NSxCm28XnoaLx4RrDYBVZQOimLYti8HbBs/2dp0NWYDpV2lv3HZ4q5K1YbjjWDi3 xFoCidZr0mV4HgmSqpXGdpEXQpNFY1zsq+aXLkeqE0SxAxcErZBFWcuuKzQtKiJz BbTRG7lnIlUknkogxrLLs9/1GNYrTHN4QOZSo8U48ZiuUwcpYZZmFkN8l6plfdJA F2wapu94oXbGpDbr5ssonCmH8FtC7gNty4oyYS5fmdUxx4RtpxAm6NT8RkzwJQCw == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 08/32] ppc/spapr: remove deprecated machine pseries-4.0 Date: Thu, 23 Oct 2025 17:13:55 +0530 Message-ID: <20251023114422.3675018-9-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: PuIBsfIsj6kvwEMUHdBw8hQJcdb-HEHf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX0StCdBkVjNzj /mtbUv6uhVGAtHPJ3XN5USncIRMkwvZciMGHoxxsecYbWJJdTIVcF1KZccegpASZ6zn3sqemtEI 11OAV6hGYh1IFlFTFtXlxKTd+cZYHtZngQdUoWtOwNqOFqXiMfcrseZGTY02CV08n5rCKoKHhys Xep2WTDihFm/UrkuKREl9Fdw9b0xBENKQJF0aiArtbO8/+5EkeP7CMQsjxf7sx58u/CxCzb7VhQ 5GbCLtkxroj9ddg5Us3+MRQCx86TwYSugh8inUdMfa8aXtBzcUcl40UwZT9vRtL2XTFJyh97r2E YBNFO0pWrGQH9snLwrbU+Fmh+/lZPTqXBW7M1B+ygdoyaBZK+kUNYaF68IoqiZDhOQh44tSdVkt s2D3WMX71Wq4mhQdS9bIKjyY1xUGgw== X-Proofpoint-GUID: PuIBsfIsj6kvwEMUHdBw8hQJcdb-HEHf X-Authority-Analysis: v=2.4 cv=SKNPlevH c=1 sm=1 tr=0 ts=68fa152a cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=aow-egSQAAAA:8 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=VqWj-gOvcHZ2Xb4X8q8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=gFNbaldVC-z-bsjSTzMo:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220292487154100 pseries-4.0 had been deprecated and due for removal now as per policy. Also remove pre-4.1 migration hacks which were introduced for backward compatibility. Suggested-by: C=C3=A9dric Le Goater Reviewed-by: C=C3=A9dric Le Goater [PMD: Remove SpaprMachineClass::pre_4_1_migration field] Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-9-philmd@lina= ro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 3 --- hw/ppc/spapr.c | 27 --------------------------- hw/ppc/spapr_caps.c | 12 +----------- 3 files changed, 1 insertion(+), 41 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 1db67784de..58d31b096c 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -139,11 +139,8 @@ struct SpaprCapabilities { * SpaprMachineClass: */ struct SpaprMachineClass { - /*< private >*/ MachineClass parent_class; =20 - /*< public >*/ - bool pre_4_1_migration; /* don't migrate hpt-max-page-size */ bool linux_pci_probe; bool smp_threads_vsmt; /* set VSMT to smp_threads by default */ hwaddr rma_limit; /* clamp the RMA to this size */ diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ab46e3bd60..ea7d2a03aa 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4969,33 +4969,6 @@ static void spapr_machine_4_1_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(4, 1); =20 -/* - * pseries-4.0 - */ -static bool phb_placement_4_0(SpaprMachineState *spapr, uint32_t index, - uint64_t *buid, hwaddr *pio, - hwaddr *mmio32, hwaddr *mmio64, - unsigned n_dma, uint32_t *liobns, Error **er= rp) -{ - if (!spapr_phb_placement(spapr, index, buid, pio, mmio32, mmio64, n_dm= a, - liobns, errp)) { - return false; - } - return true; -} -static void spapr_machine_4_0_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - - spapr_machine_4_1_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_4_0, hw_compat_4_0_len); - smc->phb_placement =3D phb_placement_4_0; - smc->irq =3D &spapr_irq_xics; - smc->pre_4_1_migration =3D true; -} - -DEFINE_SPAPR_MACHINE(4, 0); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); diff --git a/hw/ppc/spapr_caps.c b/hw/ppc/spapr_caps.c index 0f94c192fd..170795ad6a 100644 --- a/hw/ppc/spapr_caps.c +++ b/hw/ppc/spapr_caps.c @@ -66,7 +66,6 @@ typedef struct SpaprCapabilityInfo { void (*apply)(SpaprMachineState *spapr, uint8_t val, Error **errp); void (*cpu_apply)(SpaprMachineState *spapr, PowerPCCPU *cpu, uint8_t val, Error **errp); - bool (*migrate_needed)(void *opaque); } SpaprCapabilityInfo; =20 static void spapr_cap_get_bool(Object *obj, Visitor *v, const char *name, @@ -336,11 +335,6 @@ static void cap_hpt_maxpagesize_apply(SpaprMachineStat= e *spapr, spapr_check_pagesize(spapr, qemu_minrampagesize(), errp); } =20 -static bool cap_hpt_maxpagesize_migrate_needed(void *opaque) -{ - return !SPAPR_MACHINE_GET_CLASS(opaque)->pre_4_1_migration; -} - static bool spapr_pagesize_cb(void *opaque, uint32_t seg_pshift, uint32_t pshift) { @@ -793,7 +787,6 @@ SpaprCapabilityInfo capability_table[SPAPR_CAP_NUM] =3D= { .type =3D "int", .apply =3D cap_hpt_maxpagesize_apply, .cpu_apply =3D cap_hpt_maxpagesize_cpu_apply, - .migrate_needed =3D cap_hpt_maxpagesize_migrate_needed, }, [SPAPR_CAP_NESTED_KVM_HV] =3D { .name =3D "nested-hv", @@ -982,11 +975,8 @@ int spapr_caps_post_migration(SpaprMachineState *spapr) static bool spapr_cap_##sname##_needed(void *opaque) \ { \ SpaprMachineState *spapr =3D opaque; \ - bool (*needed)(void *opaque) =3D \ - capability_table[cap].migrate_needed; \ \ - return needed ? needed(opaque) : true && \ - spapr->cmd_line_caps[cap] && \ + return spapr->cmd_line_caps[cap] && \ (spapr->eff.caps[cap] !=3D \ spapr->def.caps[cap]); \ } \ --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220087; cv=none; d=zohomail.com; s=zohoarc; b=mIcTHdD6BqFWEpxtiBY7lDzin16fAalF0+T3xbO7AnJkkawttT8B2PHsRwEV7Fumkn6gNCUnVbvBA2GiZX6igBWowPt7AbOKBUGCiCpnzNOq0HNocabKp10j/F67Aycs1hHxrEMQhV0qP0PnBAIvxd85c9NZh+ANPJ2Ui9t4YZI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220087; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=dcACo3S87IyV+ig7TtWdbS+8ojMBsIUe/dLyrFg9j/U=; b=WWFya9ZvJXvEDAcBB+xASgySy3/1D34bA+XvlVRXpNCcuLMBa0rOEYe8ZUhP2ixQCGJZPCbnK+t6IDp4J2H0+8vGbogx6Caf9Ufed+KdeiDEhNgCOs/Wb47LQItB53NrCj9p7CP7Jc7RVxfE+zK0I/Gs7gkd8xe9D0MeQJA00gs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220087550884.1903238322108; Thu, 23 Oct 2025 04:48:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001Js-Iw; Thu, 23 Oct 2025 07:44:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkQ-0001Iw-Hn for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:50 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkO-0001b5-5f for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:50 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N81Ye0016386; Thu, 23 Oct 2025 11:44:46 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wc2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:45 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA8V2w032092; Thu, 23 Oct 2025 11:44:44 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vp7n5eq0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:44 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiesd49676730 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:40 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8145E2004B; Thu, 23 Oct 2025 11:44:40 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9FDC920040; Thu, 23 Oct 2025 11:44:39 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:39 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=dcACo3 S87IyV+ig7TtWdbS+8ojMBsIUe/dLyrFg9j/U=; b=jm1QwXA8/qz82+vwsTy8GH v0XxY1DoLNFKgFMF7UWNgzjLeRLi1+5TDqAQWF8TeI6+x76SE+ufDxyWPF3As436 2cQwQQtgZe18esMuDpRiCMfwsSj3j4mqGndvvejm4O5sPGXxu/fNQGW1fTDaFxVx mQgduNX6yR+VSIUXZst8tcjcOv9nvq73QUnlIrEShcPnZTUV6jZalR2oQRkpgXu8 BCOhm4QCOe+mME/WSb6kE72IJZlaMoIKmqFqWqkccIbpM6197WqpsrACUjvuDYEH uhFgYTGteG+qV7PE6KoSrwG4ulZB0lU+AX1Wf2K5jSoZ4+yFk5OYEvV81xiJNn3w == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Chinmay Rath Subject: [PULL 09/32] hw/ppc/spapr: Remove SpaprMachineClass::phb_placement callback Date: Thu, 23 Oct 2025 17:13:56 +0530 Message-ID: <20251023114422.3675018-10-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa152d cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=l7mRzedawI2mqaqXN0wA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX7unxM4dIR/Iv DcH2ZlQbF+fm221Aa2A3PEgYV3iWdUR/T4Nd5lN59FY5EoGdAkfgBXjLjy7i854IVTg23/klDT5 ml49Tg9pUHkeZ6My02PLkj8P/cxATT8s2FSNPEE8JPjqbzZGHCIsPcUSCd6H8eNyu5LEzsaalTj QVSE2yzt0z0aMgHRzphUdPLwpdxQV63129NlSRlehZkJ6GMLx80XkHq/fivv0Aed3di8f8kuMT7 njM8e+999ObPuL9NwZ5XV8Rskkn+bWz0KHGUO/Eg7iSECLKDc82xN2XQHZVfX8C/h6iD28Qd9Xp 6S9rikEijgrOsEFoL6T/V5SzTMfzTNeS9zmNvpd3esgtU6ojxHooHKHGHaUT6J3jK2WWnQraIK0 y0OksnheU24paG519QbYueCdzQaSog== X-Proofpoint-GUID: z_E0x7NynJngwnBeXmqC8tk0kR1jEJng X-Proofpoint-ORIG-GUID: z_E0x7NynJngwnBeXmqC8tk0kR1jEJng X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220090018154100 From: Philippe Mathieu-Daud=C3=A9 The SpaprMachineClass::phb_placement callback was only used by the pseries-4.0 machine, which got removed. Remove it as now unused, directly calling spapr_phb_placement(). Move spapr_phb_placement() definition to avoid forward declaration. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Chinmay Rath Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-10-philmd@lin= aro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 5 -- hw/ppc/spapr.c | 114 ++++++++++++++++++++--------------------- 2 files changed, 55 insertions(+), 64 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 58d31b096c..bd783e92e1 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -147,11 +147,6 @@ struct SpaprMachineClass { bool pre_5_1_assoc_refpoints; bool pre_5_2_numa_associativity; bool pre_6_2_numa_affinity; - - bool (*phb_placement)(SpaprMachineState *spapr, uint32_t index, - uint64_t *buid, hwaddr *pio, - hwaddr *mmio32, hwaddr *mmio64, - unsigned n_dma, uint32_t *liobns, Error **errp); SpaprResizeHpt resize_hpt_default; SpaprCapabilities default_caps; SpaprIrq *irq; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ea7d2a03aa..371593d0b5 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4068,12 +4068,62 @@ int spapr_phb_dt_populate(SpaprDrc *drc, SpaprMachi= neState *spapr, return 0; } =20 +static bool spapr_phb_placement(SpaprMachineState *spapr, uint32_t index, + uint64_t *buid, hwaddr *pio, + hwaddr *mmio32, hwaddr *mmio64, + unsigned n_dma, uint32_t *liobns, Error **= errp) +{ + /* + * New-style PHB window placement. + * + * Goals: Gives large (1TiB), naturally aligned 64-bit MMIO window + * for each PHB, in addition to 2GiB 32-bit MMIO and 64kiB PIO + * windows. + * + * Some guest kernels can't work with MMIO windows above 1<<46 + * (64TiB), so we place up to 31 PHBs in the area 32TiB..64TiB + * + * 32TiB..(33TiB+1984kiB) contains the 64kiB PIO windows for each + * PHB stacked together. (32TiB+2GiB)..(32TiB+64GiB) contains the + * 2GiB 32-bit MMIO windows for each PHB. Then 33..64TiB has the + * 1TiB 64-bit MMIO windows for each PHB. + */ + const uint64_t base_buid =3D 0x800000020000000ULL; + int i; + + /* Sanity check natural alignments */ + QEMU_BUILD_BUG_ON((SPAPR_PCI_BASE % SPAPR_PCI_MEM64_WIN_SIZE) !=3D 0); + QEMU_BUILD_BUG_ON((SPAPR_PCI_LIMIT % SPAPR_PCI_MEM64_WIN_SIZE) !=3D 0); + QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM64_WIN_SIZE % SPAPR_PCI_MEM32_WIN_SIZE= ) !=3D 0); + QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM32_WIN_SIZE % SPAPR_PCI_IO_WIN_SIZE) != =3D 0); + /* Sanity check bounds */ + QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_IO_WIN_SIZE) > + SPAPR_PCI_MEM32_WIN_SIZE); + QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_MEM32_WIN_SIZE) > + SPAPR_PCI_MEM64_WIN_SIZE); + + if (index >=3D SPAPR_MAX_PHBS) { + error_setg(errp, "\"index\" for PAPR PHB is too large (max %llu)", + SPAPR_MAX_PHBS - 1); + return false; + } + + *buid =3D base_buid + index; + for (i =3D 0; i < n_dma; ++i) { + liobns[i] =3D SPAPR_PCI_LIOBN(index, i); + } + + *pio =3D SPAPR_PCI_BASE + index * SPAPR_PCI_IO_WIN_SIZE; + *mmio32 =3D SPAPR_PCI_BASE + (index + 1) * SPAPR_PCI_MEM32_WIN_SIZE; + *mmio64 =3D SPAPR_PCI_BASE + (index + 1) * SPAPR_PCI_MEM64_WIN_SIZE; + return true; +} + static bool spapr_phb_pre_plug(HotplugHandler *hotplug_dev, DeviceState *d= ev, Error **errp) { SpaprMachineState *spapr =3D SPAPR_MACHINE(OBJECT(hotplug_dev)); SpaprPhbState *sphb =3D SPAPR_PCI_HOST_BRIDGE(dev); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); const unsigned windows_supported =3D spapr_phb_windows_supported(sphb); SpaprDrc *drc; =20 @@ -4092,12 +4142,10 @@ static bool spapr_phb_pre_plug(HotplugHandler *hotp= lug_dev, DeviceState *dev, * This will check that sphb->index doesn't exceed the maximum number = of * PHBs for the current machine type. */ - return - smc->phb_placement(spapr, sphb->index, - &sphb->buid, &sphb->io_win_addr, - &sphb->mem_win_addr, &sphb->mem64_win_addr, - windows_supported, sphb->dma_liobn, - errp); + return spapr_phb_placement(spapr, sphb->index, + &sphb->buid, &sphb->io_win_addr, + &sphb->mem_win_addr, &sphb->mem64_win_addr, + windows_supported, sphb->dma_liobn, errp); } =20 static void spapr_phb_plug(HotplugHandler *hotplug_dev, DeviceState *dev) @@ -4345,57 +4393,6 @@ static const CPUArchIdList *spapr_possible_cpu_arch_= ids(MachineState *machine) return machine->possible_cpus; } =20 -static bool spapr_phb_placement(SpaprMachineState *spapr, uint32_t index, - uint64_t *buid, hwaddr *pio, - hwaddr *mmio32, hwaddr *mmio64, - unsigned n_dma, uint32_t *liobns, Error **= errp) -{ - /* - * New-style PHB window placement. - * - * Goals: Gives large (1TiB), naturally aligned 64-bit MMIO window - * for each PHB, in addition to 2GiB 32-bit MMIO and 64kiB PIO - * windows. - * - * Some guest kernels can't work with MMIO windows above 1<<46 - * (64TiB), so we place up to 31 PHBs in the area 32TiB..64TiB - * - * 32TiB..(33TiB+1984kiB) contains the 64kiB PIO windows for each - * PHB stacked together. (32TiB+2GiB)..(32TiB+64GiB) contains the - * 2GiB 32-bit MMIO windows for each PHB. Then 33..64TiB has the - * 1TiB 64-bit MMIO windows for each PHB. - */ - const uint64_t base_buid =3D 0x800000020000000ULL; - int i; - - /* Sanity check natural alignments */ - QEMU_BUILD_BUG_ON((SPAPR_PCI_BASE % SPAPR_PCI_MEM64_WIN_SIZE) !=3D 0); - QEMU_BUILD_BUG_ON((SPAPR_PCI_LIMIT % SPAPR_PCI_MEM64_WIN_SIZE) !=3D 0); - QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM64_WIN_SIZE % SPAPR_PCI_MEM32_WIN_SIZE= ) !=3D 0); - QEMU_BUILD_BUG_ON((SPAPR_PCI_MEM32_WIN_SIZE % SPAPR_PCI_IO_WIN_SIZE) != =3D 0); - /* Sanity check bounds */ - QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_IO_WIN_SIZE) > - SPAPR_PCI_MEM32_WIN_SIZE); - QEMU_BUILD_BUG_ON((SPAPR_MAX_PHBS * SPAPR_PCI_MEM32_WIN_SIZE) > - SPAPR_PCI_MEM64_WIN_SIZE); - - if (index >=3D SPAPR_MAX_PHBS) { - error_setg(errp, "\"index\" for PAPR PHB is too large (max %llu)", - SPAPR_MAX_PHBS - 1); - return false; - } - - *buid =3D base_buid + index; - for (i =3D 0; i < n_dma; ++i) { - liobns[i] =3D SPAPR_PCI_LIOBN(index, i); - } - - *pio =3D SPAPR_PCI_BASE + index * SPAPR_PCI_IO_WIN_SIZE; - *mmio32 =3D SPAPR_PCI_BASE + (index + 1) * SPAPR_PCI_MEM32_WIN_SIZE; - *mmio64 =3D SPAPR_PCI_BASE + (index + 1) * SPAPR_PCI_MEM64_WIN_SIZE; - return true; -} - static ICSState *spapr_ics_get(XICSFabric *dev, int irq) { SpaprMachineState *spapr =3D SPAPR_MACHINE(dev); @@ -4606,7 +4603,6 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) smc->resize_hpt_default =3D SPAPR_RESIZE_HPT_ENABLED; fwc->get_dev_path =3D spapr_get_fw_dev_path; nc->nmi_monitor_handler =3D spapr_nmi; - smc->phb_placement =3D spapr_phb_placement; vhc->cpu_in_nested =3D spapr_cpu_in_nested; vhc->deliver_hv_excp =3D spapr_exit_nested; vhc->hypercall =3D emulate_spapr_hypercall; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220031; cv=none; d=zohomail.com; s=zohoarc; b=kxCR4OwQfmc7itr9ktlmLfmkOeyFF+tqnPY8wl1VNdSpHcOZUka/DjkNGXZ2ouxbKKB4JkE3jAJgkKlXJ1J2S0yVYxfeFMZ43+BIjPKqksyerEwJef8KGZq8Kr+7j+chnA9Irc37FkB0C7I6/8z4Zlgm7QXeMasd5I0ponYz9NQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220031; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wih0cG6UAMGul2imA4gk0mNhbLpBRw+cuAyP66e7sFA=; b=IYsp+1YXXv8g0U0kdVpFMy3BxOHz/G80Cb1vNWHpF31aWzPv45prUk2Hbgkn7eS24CcqVKkch3ygEZBTX74BbeNldNI8oOo1U68TeFLd8VrcOCqW8UMhy3lZUEwNj/7/0eXMvNuiaGTljOFW+hD7abKkx0HJmRKYOQQPuR2M5Dw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220030997185.38864943699457; Thu, 23 Oct 2025 04:47:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkl-0001dW-2k; Thu, 23 Oct 2025 07:45:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkZ-0001PC-OS for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:01 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkV-0001c0-Ct for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:58 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N3aMWO026207; Thu, 23 Oct 2025 11:44:45 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx5f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:45 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA8XLE024303; Thu, 23 Oct 2025 11:44:43 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5ds9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:43 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBifHA46727562 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:42 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DCC7020040; Thu, 23 Oct 2025 11:44:41 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D29C020049; Thu, 23 Oct 2025 11:44:40 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:40 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=wih0cG 6UAMGul2imA4gk0mNhbLpBRw+cuAyP66e7sFA=; b=nWkNCTs75gvSSYgefLUS6H 3ArqbbItDqnz8NF6OsRn1Pt0v+fnf7Mq69Xl7xNOw7SZMErUkCGRUhChgF4pddlK 2x5stfzHChaiCeYVC61ngD0hGpOm7u4ZWEDMUEc0nE2Y4CvFp57R2thLSNBSeFrW 8nZPwbK5EcY5/ziT9fxXN5g8lWQRBXqNjUbPA0HJ9w/CBinmtr2DxalGaoM8KVzj ETMl0y5wfEhx/UpKMAi0xXBfV2t0R/s9baZ4pPdzjRMpymgsiNA/nR2nNGxLNAmX /aNO072U00Pspeokv8lUEqY+ZINbVsRt/OxUArJjcb3e9Ba4AkEmtNtflR77z5Pg == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 10/32] ppc/spapr: remove deprecated machine pseries-4.1 Date: Thu, 23 Oct 2025 17:13:57 +0530 Message-ID: <20251023114422.3675018-11-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa152d cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=aow-egSQAAAA:8 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=DRTwgpVIqhQ9bHD4Ks0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=gFNbaldVC-z-bsjSTzMo:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: jZK9Rvhs_qjY0Z5AnA_xe8EaQlrkRDJS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX+SSInFEZjA5g 3xmW90rSkFv0NjjNBcxT1LYHzPJb0shZnwEVFc0suDYY6ThMg19nfU/iqz7v4IpaQjQo4RtQqwb x2lxly83ccueK2xnHr7QMRrDB92izPgZdCG6sSCU/FYe1Im/hxRPEn6rIOkCTMO9Fqp3DnFVtIg wrUt46FUucziclWloQVPBtSK4B9OcjiBp1hx/nO6sGYyrqq/muKlatL31pnaUug5B2XDMyGTTHH GAQpoE3O1VKC6pXgER4x7tfKt8lh23IFb0hC4YFddJtRHpaRBtwiahFW0rHS5GoGMcHUFwOx+9r Jk9N4gScTIc36/hdLm0eWb4JgMfdwuJmlf6Yd5R6vbTMV1bWHYySVjC86dTFSN/FjVHvP9zDChY 9ShotR4rVfDh+mS+7ZcGXLBnGb1YGg== X-Proofpoint-ORIG-GUID: jZK9Rvhs_qjY0Z5AnA_xe8EaQlrkRDJS X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220033880158500 Remove the pseries-4.1 machine specific logic as had been deprecated and due for removal now as per policy. Suggested-by: C=C3=A9dric Le Goater Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-11-philmd@lin= aro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 2 -- hw/ppc/spapr.c | 37 +------------------------------------ 2 files changed, 1 insertion(+), 38 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index bd783e92e1..60d9a8a037 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -141,8 +141,6 @@ struct SpaprCapabilities { struct SpaprMachineClass { MachineClass parent_class; =20 - bool linux_pci_probe; - bool smp_threads_vsmt; /* set VSMT to smp_threads by default */ hwaddr rma_limit; /* clamp the RMA to this size */ bool pre_5_1_assoc_refpoints; bool pre_5_2_numa_associativity; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 371593d0b5..0e6218dc9c 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1072,7 +1072,6 @@ static void spapr_dt_ov5_platform_support(SpaprMachin= eState *spapr, void *fdt, static void spapr_dt_chosen(SpaprMachineState *spapr, void *fdt, bool rese= t) { MachineState *machine =3D MACHINE(spapr); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(machine); int chosen; =20 _FDT(chosen =3D fdt_add_subnode(fdt, 0, "chosen")); @@ -1143,9 +1142,7 @@ static void spapr_dt_chosen(SpaprMachineState *spapr,= void *fdt, bool reset) * We can deal with BAR reallocation just fine, advertise it * to the guest */ - if (smc->linux_pci_probe) { - _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0)); - } + _FDT(fdt_setprop_cell(fdt, chosen, "linux,pci-probe-only", 0)); =20 spapr_dt_ov5_platform_support(spapr, fdt, chosen); } @@ -2589,7 +2586,6 @@ static CPUArchId *spapr_find_cpu_slot(MachineState *m= s, uint32_t id, int *idx) static void spapr_set_vsmt_mode(SpaprMachineState *spapr, Error **errp) { MachineState *ms =3D MACHINE(spapr); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); Error *local_err =3D NULL; bool vsmt_user =3D !!spapr->vsmt; int kvm_smt =3D kvmppc_smt_threads(); @@ -2625,15 +2621,6 @@ static void spapr_set_vsmt_mode(SpaprMachineState *s= papr, Error **errp) return; } /* In this case, spapr->vsmt has been set by the command line */ - } else if (!smc->smp_threads_vsmt) { - /* - * Default VSMT value is tricky, because we need it to be as - * consistent as possible (for migration), but this requires - * changing it for at least some existing cases. We pick 8 as - * the value that we'd get with KVM on POWER8, the - * overwhelmingly common case in production systems. - */ - spapr->vsmt =3D MAX(8, smp_threads); } else { spapr->vsmt =3D smp_threads; } @@ -4649,8 +4636,6 @@ static void spapr_machine_class_init(ObjectClass *oc,= const void *data) smc->default_caps.caps[SPAPR_CAP_AIL_MODE_3] =3D SPAPR_CAP_ON; spapr_caps_add_properties(smc); smc->irq =3D &spapr_irq_dual; - smc->linux_pci_probe =3D true; - smc->smp_threads_vsmt =3D true; xfc->match_nvt =3D spapr_match_nvt; vmc->client_architecture_support =3D spapr_vof_client_architecture_sup= port; vmc->quiesce =3D spapr_vof_quiesce; @@ -4945,26 +4930,6 @@ static void spapr_machine_4_2_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(4, 2); =20 -/* - * pseries-4.1 - */ -static void spapr_machine_4_1_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - static GlobalProperty compat[] =3D { - /* Only allow 4kiB and 64kiB IOMMU pagesizes */ - { TYPE_SPAPR_PCI_HOST_BRIDGE, "pgsz", "0x11000" }, - }; - - spapr_machine_4_2_class_options(mc); - smc->linux_pci_probe =3D false; - smc->smp_threads_vsmt =3D false; - compat_props_add(mc->compat_props, hw_compat_4_1, hw_compat_4_1_len); - compat_props_add(mc->compat_props, compat, G_N_ELEMENTS(compat)); -} - -DEFINE_SPAPR_MACHINE(4, 1); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220322; cv=none; d=zohomail.com; s=zohoarc; b=TIT/bQd6sKea6MbReHywTKraCXrFjIws0bYn9LjdCa3QeK1yuPX7Cw5KRD3m6ut4f3yZT8VBK9catBM29gvEuTPPhKNt2Eba2hhb73G2kTGa4xCjbfpAy4YTszYgB1WzVrS1qalQnnDEDG8yIYytJ+BoFfobj2pVpkJcUw59mDA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220322; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0sCM4u3iEphtHlN1dpt9qYhAiTLimDJuilK5EN4Zb0g=; b=W1FQc0lB1HnQo8zHm9FrSNzOStrRycwihNxkZKBYg6MyiqB81HO8v0UzA2NpVrV3NkX0v1fdfCTnZsToas+AZIR0/A6cWao9PT35nqN0Q7wwT52HD5SiyXKOyClXblDAuwFzMhKbe3Z+jWxgMo575sB0RkpJwa4JQBdnYRSRHrY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220322213628.2277095001183; Thu, 23 Oct 2025 04:52:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkn-0001kg-Sy; Thu, 23 Oct 2025 07:45:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkX-0001Md-Lt for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:59 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkV-0001c2-Cr for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:57 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59MM4vmY013009; Thu, 23 Oct 2025 11:44:46 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31cgj1y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:45 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA8XLF024303; Thu, 23 Oct 2025 11:44:45 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5dsc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:45 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBihFB34537798 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:43 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4454B20049; Thu, 23 Oct 2025 11:44:43 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3A42D20040; Thu, 23 Oct 2025 11:44:42 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:42 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=0sCM4u 3iEphtHlN1dpt9qYhAiTLimDJuilK5EN4Zb0g=; b=MQ11uyE9xM+nduR/ydhP3U uKlwi1AzRYyT+jUMoIJEykw7cLD5rsuNsJcqlUf05pQPc17qfalEI78vG7GdRyNh sM8XnJatqKC5NmXHrkzrdfqC2ahdYie/cI8uM1rn3negly3HDQGhmiFbRCYJCvTa Ly6p2niQlBSkcxYSUDdIV5/bSI+A8bC1ClGfVk/arBoREbvyIRLyuHfAD696hB4B fSRMG5w1oRHg72jRP4Gb0g3eHc2gJXTJAhaohcss9+zynV/d61ABa5s1G7aS1EdS ijUtZrn1Mu7873KT6mO0cDS7QgLu/0r62h9BYCYu+A3boBiN39O2kVOpj07HfY1A == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 11/32] ppc/spapr: remove deprecated machine pseries-4.2 Date: Thu, 23 Oct 2025 17:13:58 +0530 Message-ID: <20251023114422.3675018-12-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: LIOrwgYOJnaETbg0OLYLPEIMHRSqd1KY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX5IrtneQB3F7s AKQ0LcJglAHSrd0CploUnr5JjI4eBnQAGFriSEuJ2G9INEqpTLtPz1lPe60xtqE/mCyDvV9ko5s w/rdq9lE0d/1wHqpnwAAiSLsJ6CvWu56yTz4NXHbc3MkB4k/t60giCl9o7luZWss0fU8GrqiCic zLE5rnRqXP5TGfn5tEfobvHYK6t5zSVjmXjz8fAmswLedlU5l5IwI1xV1F6hB6hzxoiQ9T4AXpY 5U5zUaxWBcw90LLi7wn7lGTJhVbI+0AvV3M/P1DozItdVhqKya2zc9JxO8XLh4m+O8lqfHjcMaw hCAxqyDpR7VdT7yM025ZQDm3iSbmS0PASw7bEojQ0+drgRnpnVAdy9buGzz5Wm+A5zSLjI8mvfc tXRYUAwk9bmOEtQOCpqCtcKLLg0diw== X-Proofpoint-GUID: LIOrwgYOJnaETbg0OLYLPEIMHRSqd1KY X-Authority-Analysis: v=2.4 cv=SKNPlevH c=1 sm=1 tr=0 ts=68fa152d cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=aow-egSQAAAA:8 a=20KFwNOVAAAA:8 a=VnNF1IyMAAAA:8 a=MSIEXOgWn6CInn48Bo0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=gFNbaldVC-z-bsjSTzMo:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220324761154100 Remove the pseries-4.2 machine specific logic as had been deprecated and due for removal now as per policy. Suggested-by: C=C3=A9dric Le Goater Reviewed-by: C=C3=A9dric Le Goater Signed-off-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/20251021084346.73671-12-philmd@lin= aro.org Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 1 - hw/ppc/spapr.c | 27 --------------------------- 2 files changed, 28 deletions(-) diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index 60d9a8a037..b9d884745f 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -141,7 +141,6 @@ struct SpaprCapabilities { struct SpaprMachineClass { MachineClass parent_class; =20 - hwaddr rma_limit; /* clamp the RMA to this size */ bool pre_5_1_assoc_refpoints; bool pre_5_2_numa_associativity; bool pre_6_2_numa_affinity; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 0e6218dc9c..117da76a3d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2729,7 +2729,6 @@ static PCIHostState *spapr_create_default_phb(void) static hwaddr spapr_rma_size(SpaprMachineState *spapr, Error **errp) { MachineState *machine =3D MACHINE(spapr); - SpaprMachineClass *smc =3D SPAPR_MACHINE_GET_CLASS(spapr); hwaddr rma_size =3D machine->ram_size; hwaddr node0_size =3D spapr_node0_size(machine); =20 @@ -2742,15 +2741,6 @@ static hwaddr spapr_rma_size(SpaprMachineState *spap= r, Error **errp) */ rma_size =3D MIN(rma_size, 1 * TiB); =20 - /* - * Clamp the RMA size based on machine type. This is for - * migration compatibility with older qemu versions, which limited - * the RMA size for complicated and mostly bad reasons. - */ - if (smc->rma_limit) { - rma_size =3D MIN(rma_size, smc->rma_limit); - } - if (rma_size < MIN_RMA_SLOF) { error_setg(errp, "pSeries SLOF firmware requires >=3D %" HWADDR_PRIx @@ -4913,23 +4903,6 @@ static void spapr_machine_5_0_class_options(MachineC= lass *mc) =20 DEFINE_SPAPR_MACHINE(5, 0); =20 -/* - * pseries-4.2 - */ -static void spapr_machine_4_2_class_options(MachineClass *mc) -{ - SpaprMachineClass *smc =3D SPAPR_MACHINE_CLASS(mc); - - spapr_machine_5_0_class_options(mc); - compat_props_add(mc->compat_props, hw_compat_4_2, hw_compat_4_2_len); - smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] =3D SPAPR_CAP_OFF; - smc->default_caps.caps[SPAPR_CAP_FWNMI] =3D SPAPR_CAP_OFF; - smc->rma_limit =3D 16 * GiB; - mc->nvdimm_supported =3D false; -} - -DEFINE_SPAPR_MACHINE(4, 2); - static void spapr_machine_register_types(void) { type_register_static(&spapr_machine_info); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219961; cv=none; d=zohomail.com; s=zohoarc; b=jIe32WWRXB6oN+AeCQ++t9ano/4pj/j6sChq7/QqK2V6Z1jJuTItBvfQuaDwulFOJPieLhn8HEUE46sH3mKw+v0jIIHf+xUWnzjc/TztDTMx1O8K63XuB29nq+lzlZE/nYUNqzttG9Qe+d8fPkGtuW7gPkyKJ0OPglCgi1av0kc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219961; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=H+48uAYpotk2iY/LwYGGOzuF9C4Vf0vGq+/I+DRjh38=; b=VsfovN6gd+OxIctQqJzj0kcIuxHmHbuD8QFHkdiHokymp7hialXoZyoddH+4t0Wh80bU01x+tTHBIBZi+3iM6gfzhIN9zRqReHiCBoSFyJAiaU6sYq875UBfg86OIQUENfP6gev9lXNLFkYvlNa7xRmPVW+oOWrbOJmNafiDi1Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219961622105.16530197720454; Thu, 23 Oct 2025 04:46:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkk-0001cX-Oj; Thu, 23 Oct 2025 07:45:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001Jr-Hv for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:53 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkR-0001bP-2f for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:53 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N71hbn027075; Thu, 23 Oct 2025 11:44:47 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9wa5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:46 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8Inmq014658; Thu, 23 Oct 2025 11:44:46 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdpn9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:45 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiiMp51839446 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:44 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5825820049; Thu, 23 Oct 2025 11:44:44 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 959D520040; Thu, 23 Oct 2025 11:44:43 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:43 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=H+48uAYpotk2iY/Lw YGGOzuF9C4Vf0vGq+/I+DRjh38=; b=DXRUUnHH0npoVf8csRYvyp3R2CXeR63Gp 3RTAhZJxaEWEJKJhwtIeshrI0DIXZZhMtGXDnmA50bP9SMwCnGs3Dn32pI826MbQ B94lNG9fe1AFqOqv0+nIWhLhqrCiyUgSIA0o2zfuw6VsMsDmlCJjp8X+1Y+ZM5PC eHjQP7bkN+RfcDVdmfeEy8n2C8a2d1muxIXQ3RKpEjwo64omELbY1ORWE2eVA0gS 5wJDCRJna8jvwM/Lm6NzVoTAKldmlDFpWljNfCPDesDF2G2QiY3ez9HC2/RPcgRC 0AHA3PaVx91K2s4G6IeOuqrl3sZwRM/rCK2VtTe0qgAQTj/RWgzAw== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan Subject: [PULL 12/32] ppc/amigaone: Free allocated struct Date: Thu, 23 Oct 2025 17:13:59 +0530 Message-ID: <20251023114422.3675018-13-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 8oIS3WVz-f063-DFaV6g-QU1_m808P1E X-Proofpoint-GUID: 8oIS3WVz-f063-DFaV6g-QU1_m808P1E X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXxDLz/BkzAMxI VvjUMLqT5z48r7dpUBoL6/6SSeCj44iPwHhC6OImBYgJTekIZgom7xIQM/GA0KjFPOBgnBeLGOg lgZoUHxVHVSfluBSG+s6RcTWSRirHw86ABLYPWmSlBvd/yxNYINCF7tl7esGDNOkWijvo04MdQA YI5PH16RGGns600Ob6PUB4WhR/QG94x4z7gwi/M3hZCPV20NKZjeGNJBC4Aln9LIgu5kP0955He yD5qaO6l98AIjmclwbQk1dI5EgleeX1ONXJtrXjdTkeHwBW/A30F+4XtQXHuRZizrZtdk3ZnU4H 28Efko4B6/IFPEAoxK4W4AzWr6nGy7rwUevG5kR6uRbp959NTXuvXAll50jvBvunnUCdrhyB7s7 3VcesrWdzbQwuNQfKJ1UD7NfTWYt4g== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa152e cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=F02M0vMrOoqODbYQAHQA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219964851158500 Content-Type: text/plain; charset="utf-8" From: BALATON Zoltan In create_bd_info function a bd_info struct is allocated but never freed. Mark it g_autofree to avoid leaking it. Fixes: 34f053d86b (ppc/amigaone: Add kernel and initrd support) Resolves: Coverity CID 1641398 Signed-off-by: BALATON Zoltan Reviewed-by: Harsh Prateek Bora Link: https://lore.kernel.org/qemu-devel/20251022211649.9A09E5972E5@zero.ei= k.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/amigaone.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/ppc/amigaone.c b/hw/ppc/amigaone.c index 12279f42bc..47fb016b4a 100644 --- a/hw/ppc/amigaone.c +++ b/hw/ppc/amigaone.c @@ -221,7 +221,7 @@ struct bd_info { =20 static void create_bd_info(hwaddr addr, ram_addr_t ram_size) { - struct bd_info *bd =3D g_new0(struct bd_info, 1); + g_autofree struct bd_info *bd =3D g_new0(struct bd_info, 1); =20 bd->bi_memsize =3D cpu_to_be32(ram_size); bd->bi_flashstart =3D cpu_to_be32(PROM_ADDR); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220073; cv=none; d=zohomail.com; s=zohoarc; b=D1wM0X6SKJ6aM9J4qPGWh012o6hyE/RuRb6K+NwccVWvk20Xxqg+G/BFjmO9bOwEyU8e7H178mA3U5c8AJvfTYNdFCdHHjDZEtgsbXJ+8LpmGQ8DxHQlnGksSiIKmR3tR4ebtrToCApA+/ffg0wVhNCV8wN4oUex+EW1Fw6OCIY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220073; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=F2zvCZZKnwkSIy2nK4nOujNUpszAHJy7OIMaxanqzYs=; b=e5AXozO00qIVWuk+JVohRgMkU0GkQuOEhHwCVV6WJLlN3SwijMOsQR5hGwf3kfzylt7uSgdDG23voWrR3P7d/HFV7LwJQP6iM1SJdfR17aIwdsF+Cdn6SfcOc3jGtd4eS/sP+3s1AOXhhRsNZ7BFwwPrUnEQWMeqcMkebrPwGYg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220073380545.1383518843704; Thu, 23 Oct 2025 04:47:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkb-0001PZ-GW; Thu, 23 Oct 2025 07:45:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001K2-SL for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:55 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkR-0001bc-UV for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:53 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N6rB3V010978; Thu, 23 Oct 2025 11:44:48 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx5k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:48 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NBEt30002306; Thu, 23 Oct 2025 11:44:47 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9vx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:47 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBijrg57606408 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:45 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8E8962004E; Thu, 23 Oct 2025 11:44:45 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A95C120040; Thu, 23 Oct 2025 11:44:44 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:44 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=F2zvCZZKnwkSIy2nK 4nOujNUpszAHJy7OIMaxanqzYs=; b=mFllwbn10lGYIwPNjiQHgl2dXUx7lM8XA AP38+YoRggucssqFCK30j1vmFKOl925/azQRX73uIXwUjdW3A9V/eCValCwO4NzG Ox+r734i1nwwDdmoEXCiTNgPBvLDnE790K07gUEn/xymtbMPawxbq1RZAz7zBWJb OMaaVAJLroU0c7gaoSOB48xKvr4coxcsqBrdV5vlx0bbpJJ75ez24vfYbGiG2E+F nwg2J/ZdTzJE4rSsB4xZphxh9gkt3IaNHqZtfgJDJUTEdyVBYULPBIVI8ScBl1M9 +oQ/0Fsdnl6J1dEdQSdrzd4qRPJXapoSH4ZD4Te+HmkF9r1i1R5pA== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , Alexey Kardashevskiy Subject: [PULL 13/32] ppc/vof: Make nextprop behave more like Open Firmware Date: Thu, 23 Oct 2025 17:14:00 +0530 Message-ID: <20251023114422.3675018-14-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa1530 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EGYj-OwPAAAA:8 a=VnNF1IyMAAAA:8 a=7LDE652QjO-iVNhJKY0A:9 a=xQyHFheebwQZ3wMG2Lhb:22 a=oH34dK2VZjykjzsv8OSz:22 a=poXaRoVlC6wW9_mwW8W4:22 a=Z5ABNNGmrOfJ6cZ5bIyy:22 a=UDnyf2zBuKT2w-IlGP_r:22 X-Proofpoint-GUID: HmqfAXncq3HcjOyLXxcrHh6xEtL8fBa5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX01U1idoARlj0 q5Wt/38NQTo0W6StQgZ5/QUrpTTi66FKBdsH9sbg5bu93WwqFQNfiEF/P0CvCHgJsZVMLONO17c MwdNUonwEh+fICW8HTUO3XI8POCon6XNeA8lggnmWncxR1U6hqNZrGa1ElG5RWzecNbWipOZLs+ 0y7/DW3y2TAi2zFjnXkRRz39o/qm2CgiIL+bNR5ghvLphnbo4eN5NKFTUA2Vtj4flq+x8ykc/LS 2hR+IEDVoMJfBbl/uyrAOSKkFm5agethVW8v2rl7RQN61lT+u/VfD8JvhZcdSInbQqLUeGqfBzS HYVcAmKNBdZ+xCwi7/Vd/O/JdTPmsEH0zhGMWHC5mPCzD6hykKV+NmPbKnOc7rZkKXoiY6hLJjh tEVK08niZ1veeWdsoVA1wEGJIYmlRQ== X-Proofpoint-ORIG-GUID: HmqfAXncq3HcjOyLXxcrHh6xEtL8fBa5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220075987154100 Content-Type: text/plain; charset="utf-8" From: BALATON Zoltan The FDT does not normally store name properties but reconstructs it from path but Open Firmware specification says each node should at least have this property. This is correctly handled in getprop but nextprop should also return it even if not present as a property. Explicit name properties are still allowed because they are needed e.g. on the root node that guests expect to have specific names as seen on real machines instead of being empty so sometimes the node name may need to be overriden. For example on pegasos MorphOS checks the name of "/" and expects to find bplan,Pegasos2 which is how it identifies the machine. Signed-off-by: BALATON Zoltan Reviewed-by: Alexey Kardashevskiy Link: https://lore.kernel.org/qemu-devel/366f14ce852415cc079727c54ac21a2aa6= ff3917.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/vof.c | 50 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/hw/ppc/vof.c b/hw/ppc/vof.c index f14efa3a7c..5ecfc68910 100644 --- a/hw/ppc/vof.c +++ b/hw/ppc/vof.c @@ -353,34 +353,50 @@ static uint32_t vof_nextprop(const void *fdt, uint32_= t phandle, { int offset, nodeoff =3D fdt_node_offset_by_phandle(fdt, phandle); char prev[OF_PROPNAME_LEN_MAX + 1]; - const char *tmp; + const char *tmp =3D NULL; + bool match =3D false; =20 if (readstr(prevaddr, prev, sizeof(prev))) { return PROM_ERROR; } - - fdt_for_each_property_offset(offset, fdt, nodeoff) { - if (!fdt_getprop_by_offset(fdt, offset, &tmp, NULL)) { - return 0; + /* + * "name" may or may not be present in fdt but we should still return = it. + * Do that first and then skip it if seen later. + */ + if (prev[0] =3D=3D '\0') { + tmp =3D "name"; + } else { + if (strcmp(prev, "name") =3D=3D 0) { + prev[0] =3D '\0'; } - if (prev[0] =3D=3D '\0' || strcmp(prev, tmp) =3D=3D 0) { - if (prev[0] !=3D '\0') { - offset =3D fdt_next_property_offset(fdt, offset); - if (offset < 0) { - return 0; - } - } + fdt_for_each_property_offset(offset, fdt, nodeoff) { if (!fdt_getprop_by_offset(fdt, offset, &tmp, NULL)) { return 0; } - - if (VOF_MEM_WRITE(nameaddr, tmp, strlen(tmp) + 1) !=3D MEMTX_O= K) { - return PROM_ERROR; + if (strcmp(tmp, "name") =3D=3D 0) { + continue; + } + if (match) { + break; } - return 1; + if (strcmp(prev, tmp) =3D=3D 0) { + match =3D true; + continue; + } + if (prev[0] =3D=3D '\0') { + break; + } + } + if (offset < 0) { + return 0; } } - + if (tmp) { + if (VOF_MEM_WRITE(nameaddr, tmp, strlen(tmp) + 1) !=3D MEMTX_OK) { + return PROM_ERROR; + } + return 1; + } return 0; } =20 --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220282; cv=none; d=zohomail.com; s=zohoarc; b=XKHC07e1RYh43CxHg4Mp6w6k4gTYM+h3yhbZvgS9bUYiWokCTaifIa3zl1AC7Nh6duSsE5r8EGUV/LYNuKYYSpX5vvZR6YPcM4/y2sWkVBeVMbWGwG62PTc1tj9hLwikeK+3vv3t5D47urSicdgHz4OTzgWaOoMUvA1QhLjXUhs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220282; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5qJcKAaxEhbQQl8EHZhB8vzb0tre6FGBmz2jv71gkIY=; b=V6bMJ6oEMEUn/BY82BrNRop6/BoTZ168g6qyEFpVnncCnjwlnskNOA2OFN/2LbN0u7f8jCbg9olh7BuNz21ufY8EQG6hECGJdEJBmhbYpT2+a0JqhQ3vHeYPAi5hGoI7/GAtU45T+sDeb1KuAxbgNQ7nLnAuyzfJ9gPmlnQAv2w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17612202829361021.7224496412194; Thu, 23 Oct 2025 04:51:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtke-0001Ue-Pl; Thu, 23 Oct 2025 07:45:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkV-0001Ln-Rk for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:57 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001bj-JZ for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:55 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N6tu8e019265; Thu, 23 Oct 2025 11:44:49 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v30w0efh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:49 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA6V7m032166; Thu, 23 Oct 2025 11:44:48 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vp7n5eq6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:48 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBikda6357402 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:46 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 95BE320049; Thu, 23 Oct 2025 11:44:46 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DE20E20040; Thu, 23 Oct 2025 11:44:45 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:45 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=5qJcKAaxEhbQQl8EH ZhB8vzb0tre6FGBmz2jv71gkIY=; b=kfLIs1KI3CKGoWWwL5o10SE3WtggupC6S 9njqUQNt3mtz17tZOy7kEMxlZRva5bavpM9GXCUh259dUVkuVKGHmi8N3T1jGLBg 9yCePM2DUce5rKuV0hjrLr485Ki4Nyff/EiE9s1HllWIrt6YPyrGev8fb4RYHdOH qMtaC9/tipw7R1KEJFCoClThZQrApObGQKt/vh4Ej1wsBvvkJ86x1I2MmxXdMHRK 77xsphkj7sfPkcenAcdyMO+dwLGloxvvqc2aybJVml1jggvITEKGFycCgEJmcfCP Qg91J8FnuiVuH/quyEaVuToF+PmUdH81C75DHPXWMLg9BZu7Bxs7A== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan Subject: [PULL 14/32] hw/ppc/pegasos2: Remove explicit name properties from device tree Date: Thu, 23 Oct 2025 17:14:01 +0530 Message-ID: <20251023114422.3675018-15-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: PR1PM0ERzV9Qw77kM-0nfL6EZ_DxNo06 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX0yd1PqFkA8uC GiJOpqmH1GVYlBlqCjAgwF2IUEQwL5j19OaVniCATiJOn0e1bDzVbedRyoq6PxONkkTyBEoWw43 8eOd6268gARn0JXd1DQym2BxSRDoYQXitXdiwIgWxqoWsK+pAnVw8W+cs1w0d1iz6Tvtia9NKfT Sj2xHfCCnLuwrj8GIIV90jerzzTcLz7T4wAhSLpJVQ9ubWlc9h0qPHeYwa0T47+SfAVX5mUNT/s +ZOjEAXfVEn1LkkNWozS4E93pdSWXYOi1IDSJB7kogv+Q/Sjry/5X1yualBTVHTUVO0Z8wv7QEp wX8VdhtKQ6g5ACi+CVEVn2Rl1HIRXcDvtFEPcXU3vYV2808r2rKV2J/NUypnrUwc2JLwBJ9nr+o Qj/1/TxFS7ZEh7pXyobXAlNh3EQorQ== X-Authority-Analysis: v=2.4 cv=MIJtWcZl c=1 sm=1 tr=0 ts=68fa1531 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=VppXks6di9rBbx2e8wcA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-ORIG-GUID: PR1PM0ERzV9Qw77kM-0nfL6EZ_DxNo06 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220284125154100 Content-Type: text/plain; charset="utf-8" From: BALATON Zoltan These are not needed any more now that VOF can handle it. Signed-off-by: BALATON Zoltan Reviewed-by: Harsh Prateek Bora Link: https://lore.kernel.org/qemu-devel/fa36ab5a04e10c6acb89583f646aad83df= 2b0b13.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index e15cf96427..73995624e5 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -662,7 +662,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) qemu_fdt_setprop_cell(fi->fdt, fi->path, "#size-cells", 1); qemu_fdt_setprop_cell(fi->fdt, fi->path, "#address-cells", 2); qemu_fdt_setprop_string(fi->fdt, fi->path, "device_type", "isa"); - qemu_fdt_setprop_string(fi->fdt, fi->path, "name", "isa"); =20 /* additional devices */ g_string_printf(name, "%s/lpt@i3bc", fi->path); @@ -677,7 +676,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(8); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "lpt"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "lpt"); =20 g_string_printf(name, "%s/fdc@i3f0", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -691,7 +689,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(8); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "fdc"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "fdc"); =20 g_string_printf(name, "%s/timer@i40", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -701,7 +698,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(8); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "timer"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "timer"); =20 g_string_printf(name, "%s/rtc@i70", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -716,7 +712,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(2); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "rtc"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "rtc"); =20 g_string_printf(name, "%s/keyboard@i60", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -729,7 +724,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(5); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "keyboard"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "keyboard"); =20 g_string_printf(name, "%s/8042@i60", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -743,7 +737,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(5); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", ""); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "8042"); =20 g_string_printf(name, "%s/serial@i2f8", fi->path); qemu_fdt_add_subnode(fi->fdt, name->str); @@ -757,7 +750,6 @@ static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *= fi) cells[2] =3D cpu_to_be32(8); qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "serial"); - qemu_fdt_setprop_string(fi->fdt, name->str, "name", "serial"); =20 g_string_free(name, TRUE); } @@ -846,7 +838,6 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, v= oid *opaque) j +=3D 5; } qemu_fdt_setprop(fi->fdt, node->str, "reg", cells, j * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, node->str, "name", name ?: pn); if (pci_get_byte(&d->config[PCI_INTERRUPT_PIN])) { qemu_fdt_setprop_cell(fi->fdt, node->str, "interrupts", pci_get_byte(&d->config[PCI_INTERRUPT_PIN])); @@ -916,7 +907,6 @@ static void *build_fdt(MachineState *machine, int *fdt_= size) qemu_fdt_setprop_cell(fdt, "/pci@c0000000", "#size-cells", 2); qemu_fdt_setprop_cell(fdt, "/pci@c0000000", "#address-cells", 3); qemu_fdt_setprop_string(fdt, "/pci@c0000000", "device_type", "pci"); - qemu_fdt_setprop_string(fdt, "/pci@c0000000", "name", "pci"); =20 fi.path =3D "/pci@c0000000"; pci_bus =3D mv64361_get_pci_bus(pm->mv, 0); @@ -951,7 +941,6 @@ static void *build_fdt(MachineState *machine, int *fdt_= size) qemu_fdt_setprop_cell(fdt, "/pci@80000000", "#size-cells", 2); qemu_fdt_setprop_cell(fdt, "/pci@80000000", "#address-cells", 3); qemu_fdt_setprop_string(fdt, "/pci@80000000", "device_type", "pci"); - qemu_fdt_setprop_string(fdt, "/pci@80000000", "name", "pci"); =20 fi.path =3D "/pci@80000000"; pci_bus =3D mv64361_get_pci_bus(pm->mv, 1); @@ -959,7 +948,6 @@ static void *build_fdt(MachineState *machine, int *fdt_= size) =20 qemu_fdt_add_subnode(fdt, "/failsafe"); qemu_fdt_setprop_string(fdt, "/failsafe", "device_type", "serial"); - qemu_fdt_setprop_string(fdt, "/failsafe", "name", "failsafe"); =20 qemu_fdt_add_subnode(fdt, "/rtas"); qemu_fdt_setprop_cell(fdt, "/rtas", "system-reboot", RTAS_SYSTEM_REBOO= T); @@ -989,14 +977,12 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-display-device", 0); qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-size", 20); qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-version", 1); - qemu_fdt_setprop_string(fdt, "/rtas", "name", "rtas"); =20 /* cpus */ qemu_fdt_add_subnode(fdt, "/cpus"); qemu_fdt_setprop_cell(fdt, "/cpus", "#cpus", 1); qemu_fdt_setprop_cell(fdt, "/cpus", "#address-cells", 1); qemu_fdt_setprop_cell(fdt, "/cpus", "#size-cells", 0); - qemu_fdt_setprop_string(fdt, "/cpus", "name", "cpus"); =20 /* FIXME Get CPU name from CPU object */ const char *cp =3D "/cpus/PowerPC,G4"; @@ -1048,7 +1034,6 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) cells[1] =3D 0; qemu_fdt_setprop(fdt, cp, "reg", cells, 2 * sizeof(cells[0])); qemu_fdt_setprop_string(fdt, cp, "device_type", "cpu"); - qemu_fdt_setprop_string(fdt, cp, "name", strrchr(cp, '/') + 1); =20 /* memory */ qemu_fdt_add_subnode(fdt, "/memory@0"); @@ -1056,7 +1041,6 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) cells[1] =3D cpu_to_be32(machine->ram_size); qemu_fdt_setprop(fdt, "/memory@0", "reg", cells, 2 * sizeof(cells[0])); qemu_fdt_setprop_string(fdt, "/memory@0", "device_type", "memory"); - qemu_fdt_setprop_string(fdt, "/memory@0", "name", "memory"); =20 qemu_fdt_add_subnode(fdt, "/chosen"); if (pm->initrd_addr && pm->initrd_size) { @@ -1067,7 +1051,6 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) } qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", machine->kernel_cmdline ?: ""); - qemu_fdt_setprop_string(fdt, "/chosen", "name", "chosen"); =20 qemu_fdt_add_subnode(fdt, "/openprom"); qemu_fdt_setprop_string(fdt, "/openprom", "model", "Pegasos2,1.1"); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220227; cv=none; d=zohomail.com; s=zohoarc; b=hVvp1F56mh4Pczwmw66EF9g11QmPuSwBxydvsx1fLTUiOfjI3CJgAT28NNN7pqJ8H6Xam451pdtZqphoTo124bto1u3NvWsgnkrwpfStXaP0qzf8owlrugbG7E6LkptmWDBI1D2kxHUSw26OQSnEabJRR3YfIIb3XrtzpGnLUg4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220227; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=QSlvDGnDDl4b+7RChUQZhL4Jt0GxsEYvIJPaC1ZJN0U=; b=oGCRt5ra7pqk2s/iMUgChW5lrCKovP/DpuK+SK2fSGGVUGTnxQxlLtrumtDsyq0SEqLxbVGJSHS+aBHhgCIheN7dg1483PxmW4wIEPfrMYSgfYwCMA88sRSTAG4EV31MY5SPr16GoIRLVQP48clBGEIGG+GrsAzUOBZ1A3WZOdI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220227521461.97565279317973; Thu, 23 Oct 2025 04:50:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtke-0001TM-8L; Thu, 23 Oct 2025 07:45:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkW-0001Lp-MK for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:57 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkT-0001bh-I4 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:56 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8B7wI015123; Thu, 23 Oct 2025 11:44:50 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v32hrcnx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:50 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NB1VkC011075; Thu, 23 Oct 2025 11:44:49 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqx1d6ep-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:49 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBimDp46203140 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:48 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id F16AA20049; Thu, 23 Oct 2025 11:44:47 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E8D2820040; Thu, 23 Oct 2025 11:44:46 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:46 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=QSlvDG nDDl4b+7RChUQZhL4Jt0GxsEYvIJPaC1ZJN0U=; b=FbNR2HUJGE74om9hmTvg3t W3g90nmSX81rx6Gdw3XuJHK6oKgj29Il1SXlxHzIaQYmBCh2HT1ht5FIYdkWTZrP eLS9CwyrUykFRTxEPl52WUVm8FV2s2ERSC8SSu78x/n5um4xjex3TcGS0ypr8BiG ba0DfKZD3GChOiLsRVnQSjjETgNDYJ4GPozQbEyt3OT2lxEpoEXP9X0DGzJ6AB8O hcFDXsvMqXsj69cEFdOcPw/iRZzI9laXN33slbs6zHgpT7YCfTPoHK2s4Uw6I8l9 8bdBfHdCJF/bytwdfO8nWLXkwGaDhcXZ6/VO+nkD9QdRC2yW2++xp0Gbs7eoCrFg == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 15/32] hw/ppc/pegasos2: Change device tree generation Date: Thu, 23 Oct 2025 17:14:02 +0530 Message-ID: <20251023114422.3675018-16-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX7Fi4OudSCHzE stdxqMbimdqz63nGkbbMfYsAUWeE90rwkLU/I2FOV+TQSNarOHbYGUhDuOezxiAZ1BsmI27IS/o oVN7bPfzi9/H37megza1pKMaPkM5vrh570l3z3oDLaLonQ900wrufMqIbF3VzEz9Ka+vYuD98r8 wac/HL/uSTOy5TAiqv41T0u3y2WwbLTkxds2LRB0XPywafNQz0wll4jctY7LL9DHiLaEZFjw+AW zAegCEhn5USC27B2PO3XWSSgNxg+0ZfIpGbXO/PmLdec1jcIujjH89ejStl8x6ovEzgo8V1WE7M TwMHNN1Qp9qLyTtjB8i310BUczwsBuQBcnaQRlzr3pjXeYHVlL6fF7REonNUFZKbia4ACJ16Uxc JcGgw0am+WFYiZm6wntvkYr9lsxCdw== X-Authority-Analysis: v=2.4 cv=OrVCCi/t c=1 sm=1 tr=0 ts=68fa1532 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=VdymBoROAfzTdu8dDj8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: 2cNUZ2Q073hnOelRoZx7twOm_72ZziWI X-Proofpoint-ORIG-GUID: 2cNUZ2Q073hnOelRoZx7twOm_72ZziWI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220229652154100 From: BALATON Zoltan We generate a flattened device tree programmatically for VOF. Change this to load the static parts from a device tree blob and only generate the parts that depend on run time conditions such as CPU type, memory size and PCI devices. Moving the static parts in a dts makes the board code simpler and more generic. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/383891fc2696609b27d2de9773efe1b4f4= 93e333.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 291 +++++++-------------------------------- pc-bios/dtb/meson.build | 1 + pc-bios/dtb/pegasos2.dtb | Bin 0 -> 1701 bytes pc-bios/dtb/pegasos2.dts | 167 ++++++++++++++++++++++ 4 files changed, 219 insertions(+), 240 deletions(-) create mode 100644 pc-bios/dtb/pegasos2.dtb create mode 100644 pc-bios/dtb/pegasos2.dts diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 73995624e5..f4787397dc 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -58,16 +58,8 @@ #define BUS_FREQ_HZ 133333333 =20 #define PCI0_CFG_ADDR 0xcf8 -#define PCI0_MEM_BASE 0xc0000000 -#define PCI0_MEM_SIZE 0x20000000 -#define PCI0_IO_BASE 0xf8000000 -#define PCI0_IO_SIZE 0x10000 - #define PCI1_CFG_ADDR 0xc78 -#define PCI1_MEM_BASE 0x80000000 -#define PCI1_MEM_SIZE 0x40000000 #define PCI1_IO_BASE 0xfe000000 -#define PCI1_IO_SIZE 0x10000 =20 #define TYPE_PEGASOS2_MACHINE MACHINE_TYPE_NAME("pegasos2") OBJECT_DECLARE_TYPE(Pegasos2MachineState, MachineClass, PEGASOS2_MACHINE) @@ -411,7 +403,11 @@ static void pegasos2_machine_reset(MachineState *machi= ne, ResetType type) error_report("Memory for initrd is in use"); exit(1); } + fdt =3D build_fdt(machine, &sz); + if (!fdt) { + exit(1); + } /* FIXME: VOF assumes entry is same as load address */ d[0] =3D cpu_to_be64(pm->kernel_entry); d[1] =3D cpu_to_be64(pm->kernel_size - (pm->kernel_entry - pm->kernel_= addr)); @@ -654,113 +650,12 @@ static void dt_usb(PCIBus *bus, PCIDevice *d, FDTInf= o *fi) qemu_fdt_setprop_string(fi->fdt, fi->path, "device_type", "usb"); } =20 -static void dt_isa(PCIBus *bus, PCIDevice *d, FDTInfo *fi) -{ - GString *name =3D g_string_sized_new(64); - uint32_t cells[3]; - - qemu_fdt_setprop_cell(fi->fdt, fi->path, "#size-cells", 1); - qemu_fdt_setprop_cell(fi->fdt, fi->path, "#address-cells", 2); - qemu_fdt_setprop_string(fi->fdt, fi->path, "device_type", "isa"); - - /* additional devices */ - g_string_printf(name, "%s/lpt@i3bc", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(7); - cells[1] =3D 0; - qemu_fdt_setprop(fi->fdt, name->str, "interrupts", - cells, 2 * sizeof(cells[0])); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x3bc); - cells[2] =3D cpu_to_be32(8); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "lpt"); - - g_string_printf(name, "%s/fdc@i3f0", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(6); - cells[1] =3D 0; - qemu_fdt_setprop(fi->fdt, name->str, "interrupts", - cells, 2 * sizeof(cells[0])); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x3f0); - cells[2] =3D cpu_to_be32(8); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "fdc"); - - g_string_printf(name, "%s/timer@i40", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x40); - cells[2] =3D cpu_to_be32(8); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "timer"); - - g_string_printf(name, "%s/rtc@i70", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_string(fi->fdt, name->str, "compatible", "ds1385-rtc"= ); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(8); - cells[1] =3D 0; - qemu_fdt_setprop(fi->fdt, name->str, "interrupts", - cells, 2 * sizeof(cells[0])); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x70); - cells[2] =3D cpu_to_be32(2); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "rtc"); - - g_string_printf(name, "%s/keyboard@i60", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D 0; - qemu_fdt_setprop(fi->fdt, name->str, "interrupts", - cells, 2 * sizeof(cells[0])); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x60); - cells[2] =3D cpu_to_be32(5); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "keyboard"); - - g_string_printf(name, "%s/8042@i60", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_cell(fi->fdt, name->str, "#interrupt-cells", 2); - qemu_fdt_setprop_cell(fi->fdt, name->str, "#size-cells", 0); - qemu_fdt_setprop_cell(fi->fdt, name->str, "#address-cells", 1); - qemu_fdt_setprop_string(fi->fdt, name->str, "interrupt-controller", ""= ); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x60); - cells[2] =3D cpu_to_be32(5); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", ""); - - g_string_printf(name, "%s/serial@i2f8", fi->path); - qemu_fdt_add_subnode(fi->fdt, name->str); - qemu_fdt_setprop_cell(fi->fdt, name->str, "clock-frequency", 0); - cells[0] =3D cpu_to_be32(3); - cells[1] =3D 0; - qemu_fdt_setprop(fi->fdt, name->str, "interrupts", - cells, 2 * sizeof(cells[0])); - cells[0] =3D cpu_to_be32(1); - cells[1] =3D cpu_to_be32(0x2f8); - cells[2] =3D cpu_to_be32(8); - qemu_fdt_setprop(fi->fdt, name->str, "reg", cells, 3 * sizeof(cells[0]= )); - qemu_fdt_setprop_string(fi->fdt, name->str, "device_type", "serial"); - - g_string_free(name, TRUE); -} - static struct { const char *id; const char *name; void (*dtf)(PCIBus *bus, PCIDevice *d, FDTInfo *fi); } device_map[] =3D { { "pci11ab,6460", "host", NULL }, - { "pci1106,8231", "isa", dt_isa }, { "pci1106,571", "ide", dt_ide }, { "pci1106,3044", "firewire", NULL }, { "pci1106,3038", "usb", dt_usb }, @@ -780,7 +675,10 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, = void *opaque) pci_get_word(&d->config[PCI_VENDOR_ID= ]), pci_get_word(&d->config[PCI_DEVICE_ID= ])); =20 - if (pci_get_word(&d->config[PCI_CLASS_DEVICE]) =3D=3D + if (!strcmp(pn, "pci1106,8231")) { + return; /* ISA bridge and devices are included in dtb */ + } + if (pci_get_word(&d->config[PCI_CLASS_DEVICE]) =3D=3D PCI_CLASS_NETWORK_ETHERNET) { name =3D "ethernet"; } else if (pci_get_word(&d->config[PCI_CLASS_DEVICE]) >> 8 =3D=3D @@ -858,131 +756,9 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d,= void *opaque) g_string_free(node, TRUE); } =20 -static void *build_fdt(MachineState *machine, int *fdt_size) +static void add_cpu_info(void *fdt, PowerPCCPU *cpu) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); - PowerPCCPU *cpu =3D pm->cpu; - PCIBus *pci_bus; - FDTInfo fi; - uint32_t cells[16]; - void *fdt =3D create_device_tree(fdt_size); - - fi.fdt =3D fdt; - - /* root node */ - qemu_fdt_setprop_string(fdt, "/", "CODEGEN,description", - "Pegasos CHRP PowerPC System"); - qemu_fdt_setprop_string(fdt, "/", "CODEGEN,board", "Pegasos2"); - qemu_fdt_setprop_string(fdt, "/", "CODEGEN,vendor", "bplan GmbH"); - qemu_fdt_setprop_string(fdt, "/", "revision", "2B"); - qemu_fdt_setprop_string(fdt, "/", "model", "Pegasos2"); - qemu_fdt_setprop_string(fdt, "/", "device_type", "chrp"); - qemu_fdt_setprop_cell(fdt, "/", "#address-cells", 1); - qemu_fdt_setprop_string(fdt, "/", "name", "bplan,Pegasos2"); - - /* pci@c0000000 */ - qemu_fdt_add_subnode(fdt, "/pci@c0000000"); - cells[0] =3D 0; - cells[1] =3D 0; - qemu_fdt_setprop(fdt, "/pci@c0000000", "bus-range", - cells, 2 * sizeof(cells[0])); - qemu_fdt_setprop_cell(fdt, "/pci@c0000000", "pci-bridge-number", 1); - cells[0] =3D cpu_to_be32(PCI0_MEM_BASE); - cells[1] =3D cpu_to_be32(PCI0_MEM_SIZE); - qemu_fdt_setprop(fdt, "/pci@c0000000", "reg", cells, 2 * sizeof(cells[= 0])); - cells[0] =3D cpu_to_be32(0x01000000); - cells[1] =3D 0; - cells[2] =3D 0; - cells[3] =3D cpu_to_be32(PCI0_IO_BASE); - cells[4] =3D 0; - cells[5] =3D cpu_to_be32(PCI0_IO_SIZE); - cells[6] =3D cpu_to_be32(0x02000000); - cells[7] =3D 0; - cells[8] =3D cpu_to_be32(PCI0_MEM_BASE); - cells[9] =3D cpu_to_be32(PCI0_MEM_BASE); - cells[10] =3D 0; - cells[11] =3D cpu_to_be32(PCI0_MEM_SIZE); - qemu_fdt_setprop(fdt, "/pci@c0000000", "ranges", - cells, 12 * sizeof(cells[0])); - qemu_fdt_setprop_cell(fdt, "/pci@c0000000", "#size-cells", 2); - qemu_fdt_setprop_cell(fdt, "/pci@c0000000", "#address-cells", 3); - qemu_fdt_setprop_string(fdt, "/pci@c0000000", "device_type", "pci"); - - fi.path =3D "/pci@c0000000"; - pci_bus =3D mv64361_get_pci_bus(pm->mv, 0); - pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); - - /* pci@80000000 */ - qemu_fdt_add_subnode(fdt, "/pci@80000000"); - cells[0] =3D 0; - cells[1] =3D 0; - qemu_fdt_setprop(fdt, "/pci@80000000", "bus-range", - cells, 2 * sizeof(cells[0])); - qemu_fdt_setprop_cell(fdt, "/pci@80000000", "pci-bridge-number", 0); - cells[0] =3D cpu_to_be32(PCI1_MEM_BASE); - cells[1] =3D cpu_to_be32(PCI1_MEM_SIZE); - qemu_fdt_setprop(fdt, "/pci@80000000", "reg", cells, 2 * sizeof(cells[= 0])); - qemu_fdt_setprop_cell(fdt, "/pci@80000000", "8259-interrupt-acknowledg= e", - 0xf1000cb4); - cells[0] =3D cpu_to_be32(0x01000000); - cells[1] =3D 0; - cells[2] =3D 0; - cells[3] =3D cpu_to_be32(PCI1_IO_BASE); - cells[4] =3D 0; - cells[5] =3D cpu_to_be32(PCI1_IO_SIZE); - cells[6] =3D cpu_to_be32(0x02000000); - cells[7] =3D 0; - cells[8] =3D cpu_to_be32(PCI1_MEM_BASE); - cells[9] =3D cpu_to_be32(PCI1_MEM_BASE); - cells[10] =3D 0; - cells[11] =3D cpu_to_be32(PCI1_MEM_SIZE); - qemu_fdt_setprop(fdt, "/pci@80000000", "ranges", - cells, 12 * sizeof(cells[0])); - qemu_fdt_setprop_cell(fdt, "/pci@80000000", "#size-cells", 2); - qemu_fdt_setprop_cell(fdt, "/pci@80000000", "#address-cells", 3); - qemu_fdt_setprop_string(fdt, "/pci@80000000", "device_type", "pci"); - - fi.path =3D "/pci@80000000"; - pci_bus =3D mv64361_get_pci_bus(pm->mv, 1); - pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); - - qemu_fdt_add_subnode(fdt, "/failsafe"); - qemu_fdt_setprop_string(fdt, "/failsafe", "device_type", "serial"); - - qemu_fdt_add_subnode(fdt, "/rtas"); - qemu_fdt_setprop_cell(fdt, "/rtas", "system-reboot", RTAS_SYSTEM_REBOO= T); - qemu_fdt_setprop_cell(fdt, "/rtas", "hibernate", RTAS_HIBERNATE); - qemu_fdt_setprop_cell(fdt, "/rtas", "suspend", RTAS_SUSPEND); - qemu_fdt_setprop_cell(fdt, "/rtas", "power-off", RTAS_POWER_OFF); - qemu_fdt_setprop_cell(fdt, "/rtas", "set-indicator", RTAS_SET_INDICATO= R); - qemu_fdt_setprop_cell(fdt, "/rtas", "display-character", - RTAS_DISPLAY_CHARACTER); - qemu_fdt_setprop_cell(fdt, "/rtas", "write-pci-config", - RTAS_WRITE_PCI_CONFIG); - qemu_fdt_setprop_cell(fdt, "/rtas", "read-pci-config", - RTAS_READ_PCI_CONFIG); - /* Pegasos2 firmware misspells check-exception and guests use that */ - qemu_fdt_setprop_cell(fdt, "/rtas", "check-execption", - RTAS_CHECK_EXCEPTION); - qemu_fdt_setprop_cell(fdt, "/rtas", "event-scan", RTAS_EVENT_SCAN); - qemu_fdt_setprop_cell(fdt, "/rtas", "set-time-of-day", - RTAS_SET_TIME_OF_DAY); - qemu_fdt_setprop_cell(fdt, "/rtas", "get-time-of-day", - RTAS_GET_TIME_OF_DAY); - qemu_fdt_setprop_cell(fdt, "/rtas", "nvram-store", RTAS_NVRAM_STORE); - qemu_fdt_setprop_cell(fdt, "/rtas", "nvram-fetch", RTAS_NVRAM_FETCH); - qemu_fdt_setprop_cell(fdt, "/rtas", "restart-rtas", RTAS_RESTART_RTAS); - qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-error-log-max", 0); - qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-event-scan-rate", 0); - qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-display-device", 0); - qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-size", 20); - qemu_fdt_setprop_cell(fdt, "/rtas", "rtas-version", 1); - - /* cpus */ - qemu_fdt_add_subnode(fdt, "/cpus"); - qemu_fdt_setprop_cell(fdt, "/cpus", "#cpus", 1); - qemu_fdt_setprop_cell(fdt, "/cpus", "#address-cells", 1); - qemu_fdt_setprop_cell(fdt, "/cpus", "#size-cells", 0); + uint32_t cells[2]; =20 /* FIXME Get CPU name from CPU object */ const char *cp =3D "/cpus/PowerPC,G4"; @@ -1034,15 +810,43 @@ static void *build_fdt(MachineState *machine, int *f= dt_size) cells[1] =3D 0; qemu_fdt_setprop(fdt, cp, "reg", cells, 2 * sizeof(cells[0])); qemu_fdt_setprop_string(fdt, cp, "device_type", "cpu"); +} + +static void *load_dtb(const char *filename, int *fdt_size) +{ + void *fdt; + g_autofree char *name =3D qemu_find_file(QEMU_FILE_TYPE_DTB, filename); + + if (!name) { + error_report("Could not find dtb file '%s'", filename); + return NULL; + } + fdt =3D load_device_tree(name, fdt_size); + if (!fdt) { + error_report("Could not load dtb file '%s'", name); + } + return fdt; +} =20 - /* memory */ - qemu_fdt_add_subnode(fdt, "/memory@0"); +static void *build_fdt(MachineState *machine, int *fdt_size) +{ + Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); + FDTInfo fi; + PCIBus *pci_bus; + uint32_t cells[2]; + void *fdt =3D load_dtb("pegasos2.dtb", fdt_size); + + if (!fdt) { + return NULL; + } + qemu_fdt_setprop_string(fdt, "/", "name", "bplan,Pegasos2"); + + /* Set memory size */ cells[0] =3D 0; cells[1] =3D cpu_to_be32(machine->ram_size); qemu_fdt_setprop(fdt, "/memory@0", "reg", cells, 2 * sizeof(cells[0])); - qemu_fdt_setprop_string(fdt, "/memory@0", "device_type", "memory"); =20 - qemu_fdt_add_subnode(fdt, "/chosen"); + /* Boot parameters */ if (pm->initrd_addr && pm->initrd_size) { qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", pm->initrd_addr + pm->initrd_size); @@ -1052,8 +856,15 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", machine->kernel_cmdline ?: ""); =20 - qemu_fdt_add_subnode(fdt, "/openprom"); - qemu_fdt_setprop_string(fdt, "/openprom", "model", "Pegasos2,1.1"); + add_cpu_info(fdt, pm->cpu); + + fi.fdt =3D fdt; + fi.path =3D "/pci@c0000000"; + pci_bus =3D mv64361_get_pci_bus(pm->mv, 0); + pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); + fi.path =3D "/pci@80000000"; + pci_bus =3D mv64361_get_pci_bus(pm->mv, 1); + pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); =20 return fdt; } diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build index 993032949f..f14648f3a4 100644 --- a/pc-bios/dtb/meson.build +++ b/pc-bios/dtb/meson.build @@ -1,6 +1,7 @@ dtbs =3D [ 'bamboo.dtb', 'canyonlands.dtb', + 'pegasos2.dtb', 'petalogix-ml605.dtb', 'petalogix-s3adsp1800.dtb', ] diff --git a/pc-bios/dtb/pegasos2.dtb b/pc-bios/dtb/pegasos2.dtb new file mode 100644 index 0000000000000000000000000000000000000000..29c35216ec2d77e4083a3ef618c= a185925fb5d61 GIT binary patch literal 1701 zcmb_cyKWRQ6!nns2oQw;9TbZ~fl!Q+2&AN25u&7m6$nwJh`gS=3DyH;k#6WhC+r9h#h zgAYK01`0YPJ|IXGlptz8fP#XKNGRf7&v-N0P;#X^bI!5v!;hISllwmzJMo4ww#eA{ zXMA5npGH52juw4K{Y8NfJ)@G1;d{Kqq!B-kJ|#OQFLlx;&@VNhEv&W+6`jVeEZp`A z;WOyhn|UI#+G^Td8|oCl^pE(9#znxB_TRbQMd%&WutYzoInD*N%HgafDZr5q)Xo=3D1OP zKP)-kq39KDZm|6TP^2KToze-{>2Z+j?JsurL&^Pp+d)!CM+@~n7SwZ`6MZW=3Dy{JS) zYm@(JZDV`&cbJoEA6eUP6uni}wu=3DHeS5yu9s z5MJkyR)*oa(A`|S**>FHnlMEki}r7QMsc418p{A z)nh1g&q(^7>7(R5Fg~XzG^LPZW%2hl;6)dO23XH=3DD@DeQaOFfWMjM{!Hc!Pi7P3wl z$Nl%7^^8b)3!Ln*0$ZmIur@gER0>?Tcq|6Yj_`vzOm;wSa@YnL79wJf2hXL>TB^Np{Mo0(7XIELQq`=3D}Vr~fJzZZX@n_(P3ZM>WA@v>xmKwcJ2cYsX}wv2@G8 zRu?ikU`AwZuxxSR))H44W;Wg2aUnM|-A^EH1Eap0Mj_-`H^r>1*|oS;7{~qsTcHaV literal 0 HcmV?d00001 diff --git a/pc-bios/dtb/pegasos2.dts b/pc-bios/dtb/pegasos2.dts new file mode 100644 index 0000000000..0ddb9e3bec --- /dev/null +++ b/pc-bios/dtb/pegasos2.dts @@ -0,0 +1,167 @@ +/* + * QEMU Pegasos2 Device Tree Source + * + * Copyright 2025 BALATON Zoltan + * SPDX-License-Identifier: GPL-2.0-or-later + * + * This is partial source, more info will be filled in by board code. + */ + +/dts-v1/; + +/ { + #address-cells =3D <1>; + device_type =3D "chrp"; + model =3D "Pegasos2"; + revision =3D "2B"; + CODEGEN,vendor =3D "bplan GmbH"; + CODEGEN,board =3D "Pegasos2"; + CODEGEN,description =3D "Pegasos CHRP PowerPC System"; + + openprom { + model =3D "Pegasos2,1.1"; + }; + + chosen { + }; + + memory@0 { + device_type =3D "memory"; + reg =3D <0 0>; + }; + + cpus { + #size-cells =3D <0>; + #address-cells =3D <1>; + #cpus =3D <1>; + }; + + rtas { + rtas-version =3D <1>; + rtas-size =3D <20>; + rtas-display-device =3D <0>; + rtas-event-scan-rate =3D <0>; + rtas-error-log-max =3D <0>; + restart-rtas =3D <0>; + nvram-fetch =3D <1>; + nvram-store =3D <2>; + get-time-of-day =3D <3>; + set-time-of-day =3D <4>; + event-scan =3D <6>; + /* Pegasos2 firmware misspells check-exception */ + check-execption =3D <7>; + read-pci-config =3D <8>; + write-pci-config =3D <9>; + display-character =3D <10>; + set-indicator =3D <11>; + power-off =3D <17>; + suspend =3D <18>; + hibernate =3D <19>; + system-reboot =3D <20>; + }; + + failsafe { + device_type =3D "serial"; + }; + + pci@80000000 { + device_type =3D "pci"; + #address-cells =3D <3>; + #size-cells =3D <2>; + clock-frequency =3D <33333333>; + ranges =3D <0x01000000 0 0x00000000 0xfe000000 0 0x00010000 + 0x02000000 0 0x80000000 0x80000000 0 0x40000000>; + 8259-interrupt-acknowledge =3D <0xf1000cb4>; + reg =3D <0x80000000 0x40000000>; + pci-bridge-number =3D <0>; + bus-range =3D <0 0>; + + isa@c { + vendor-id =3D <0x1106>; + device-id =3D <0x8231>; + revision-id =3D <0x10>; + class-code =3D <0x60100>; + /* Pegasos firmware has subsystem-id and + subsystem-vendor-id swapped */ + subsystem-id =3D <0x1af4>; + subsystem-vendor-id =3D <0x1100>; + reg =3D <0x6000 0 0 0 0>; + device_type =3D "isa"; + #address-cells =3D <2>; + #size-cells =3D <1>; + eisa-slots =3D <0>; + clock-frequency =3D <8333333>; + slot-names =3D <0>; + + serial@i2f8 { + device_type =3D "serial"; + reg =3D <1 0x2f8 8>; + interrupts =3D <3 0>; + clock-frequency =3D <1843200>; + compatible =3D "pnpPNP,501"; + }; + + 8042@i60 { + device_type =3D ""; + reg =3D <1 0x60 5>; + clock-frequency =3D <0>; + compatible =3D "chrp,8042"; + interrupt-controller =3D ""; + #address-cells =3D <1>; + #size-cells =3D <0>; + #interrupt-cells =3D <2>; + + }; + + keyboard@i60 { + device_type =3D "keyboard"; + reg =3D <1 0x60 5>; + interrupts =3D <1 0>; + compatible =3D "pnpPNP,303"; + }; + + rtc@i70 { + device_type =3D "rtc"; + reg =3D <1 0x70 2>; + interrupts =3D <8 0>; + clock-frequency =3D <0>; + compatible =3D "ds1385-rtc"; + }; + + timer@i40 { + device_type =3D "timer"; + reg =3D <1 0x40 8>; + clock-frequency =3D <0>; + compatible =3D "pnpPNP,100"; + }; + + fdc@i3f0 { + device_type =3D "fdc"; + reg =3D <1 0x3f0 8>; + interrupts =3D <6 0>; + clock-frequency =3D <0>; + compatible =3D "pnpPNP,700"; + }; + + lpt@i3bc { + device_type =3D "lpt"; + reg =3D <1 0x3bc 8>; + interrupts =3D <7 0>; + clock-frequency =3D <0>; + compatible =3D "pnpPNP,400"; + }; + }; + }; + + pci@c0000000 { + device_type =3D "pci"; + #address-cells =3D <3>; + #size-cells =3D <2>; + clock-frequency =3D <66666666>; + ranges =3D <0x01000000 0 0x00000000 0xf8000000 0 0x00010000 + 0x02000000 0 0xc0000000 0xc0000000 0 0x20000000>; + reg =3D <0xc0000000 0x20000000>; + pci-bridge-number =3D <1>; + bus-range =3D <0 0>; + }; +}; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220080; cv=none; d=zohomail.com; s=zohoarc; b=FxuucQz4UPKVQmntE0g7coe90bE7atRtlodo0T5P7pzrQigUSUzXqEfiTN+QLKOWLec9BueH1W2egAAvXQcQBSOqH9om6DiwLFhnobUFW3LqGPSHcnidyQZskfCCj19VNgxTi1XED9xtmNR7l8O0WmAv8P+2Y6CrSxQjdTb0kck= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220080; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=MLbS2Zxde9nv+p/z5o8rHSvwi5Bt6B6KkQCG6FaD6w0=; b=D4dOosHs6lZPoc8VVs3KsLBI08diiUFR2Vx7xakxbHQ4YJl8ohbBWmtQjOg7PFecmBB87FZpzUmpjGkz2wPB1HV8I108sIx+uWsoxmDOgRxLKD0hXJuQkzm325WD5MNvRr5Gx6cDxEgSoiffBJDPgOB7tKe8iMBLHUg+qutIrNw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220080829424.8461853592678; Thu, 23 Oct 2025 04:48:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkq-0001lv-Sl; Thu, 23 Oct 2025 07:45:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkZ-0001P2-Mo for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:01 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkW-0001cB-Gs for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:58 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N6OILQ007627; Thu, 23 Oct 2025 11:44:52 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wcd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:52 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAk0uo024940; Thu, 23 Oct 2025 11:44:51 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5dsj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:51 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBinRd29360420 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:49 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2EB4C20049; Thu, 23 Oct 2025 11:44:49 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4E46420040; Thu, 23 Oct 2025 11:44:48 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:48 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=MLbS2Z xde9nv+p/z5o8rHSvwi5Bt6B6KkQCG6FaD6w0=; b=lO3W5NBe1n5YDCjA2RneAc CBDMgXLKOF2ZHJyN+zaiuVvCgFnM4KzPoJlMi0gXc9xpY2M2ViGtz+gmIgzkFTqz Bt2GI7HNSk5FuIh7PPkQPGtm1oe3/6N3yjMle0ozICpHVkqqu+EwpFGyzTKlqz7O +5AqBfEIfl2Lt6cHlCChpX6VrUnaoAUzmOx7PfU/VtHvAAGMMgjdkTcnzGiDnYz9 fUaKhKZcy1xFiDsOzhA/s1WDwlPWWcK2wEc1QDNWiD3PoWInymqfT3vBnM7TnKE+ x0iB+fioqAFdNKN94fBSKWJxfI0rhlowTxFi99VDqpZTpOjZRx3JuCLdauF/rX7Q == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 16/32] hw/ppc/pegasos2: Remove fdt pointer from machine state Date: Thu, 23 Oct 2025 17:14:03 +0530 Message-ID: <20251023114422.3675018-17-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa1534 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=MSIEXOgWn6CInn48Bo0A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXyTgpIJniRYv3 Y5rz19jX4fSFN5JjbHBYwZ0P6+OF66CIek3CS0Kdn2kCDqUU21xkZLe6d81L/yB5qHauuUvC9HJ K0cVDPmChvqA3eTKG8b+SdRCRF//Be7vaSRp1uK742XaUR6Lfcngny3288EYPRRaspwH+aZBNka dcnWEZQpotaBYd+Cni652NTM3QDg+OqDWgzMYpTLeej3Uk8b0TrgZXKEQLGk8f+mAcKMtG5V6WL 9ckdi+5eWrhHABfrdOK74/WxXBHgNs2U0gw1c4qggopfaCNow+AirC47QHsq8oYc8zhMyXNeC0N 7Mzb6VD8awXo0tHpBcoEkQ1dF9KWGIjEiuq4EefnlMDnWNFyzhZ/xa37YYgIp/2uFFyUz/yvfHi ELJE5X9AJjbqul5lFDgyxGVjzn+xPA== X-Proofpoint-GUID: diU60jPht6yQsikJi6Z01S13YddkrvjB X-Proofpoint-ORIG-GUID: diU60jPht6yQsikJi6Z01S13YddkrvjB X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220084280158500 From: BALATON Zoltan The machine class has a field for storing the fdt so we don't need our own and can use that instead. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/f4355b8d2889aba19d28001e61ac3f9937= fc5250.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index f4787397dc..2ba579dddf 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -74,7 +74,6 @@ struct Pegasos2MachineState { qemu_irq mv_pirq[PCI_NUM_PINS]; qemu_irq via_pirq[PCI_NUM_PINS]; Vof *vof; - void *fdt_blob; uint64_t kernel_addr; uint64_t kernel_entry; uint64_t kernel_size; @@ -413,13 +412,11 @@ static void pegasos2_machine_reset(MachineState *mach= ine, ResetType type) d[1] =3D cpu_to_be64(pm->kernel_size - (pm->kernel_entry - pm->kernel_= addr)); qemu_fdt_setprop(fdt, "/chosen", "qemu,boot-kernel", d, sizeof(d)); =20 - g_free(pm->fdt_blob); - pm->fdt_blob =3D fdt; - vof_build_dt(fdt, pm->vof); vof_client_open_store(fdt, pm->vof, "/chosen", "stdout", "/failsafe"); =20 /* Set machine->fdt for 'dumpdtb' QMP/HMP command */ + g_free(machine->fdt); machine->fdt =3D fdt; =20 pm->cpu->vhyp =3D PPC_VIRTUAL_HYPERVISOR(machine); @@ -559,7 +556,7 @@ static void pegasos2_hypercall(PPCVirtualHypervisor *vh= yp, PowerPCCPU *cpu) } else if (env->gpr[3] =3D=3D KVMPPC_H_RTAS) { env->gpr[3] =3D pegasos2_rtas(cpu, pm, env->gpr[4]); } else if (env->gpr[3] =3D=3D KVMPPC_H_VOF_CLIENT) { - int ret =3D vof_client_call(MACHINE(pm), pm->vof, pm->fdt_blob, + int ret =3D vof_client_call(MACHINE(pm), pm->vof, MACHINE(pm)->fdt, env->gpr[4]); env->gpr[3] =3D (ret ? H_PARAMETER : H_SUCCESS); } else { --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220377; cv=none; d=zohomail.com; s=zohoarc; b=RXvu++1AXTALXhIQqpZKtV28T5Qqhql/WIoE5t3oFK+NuvfFcFDtUKlGVSOxLBJfEhUzGgoQBqRS0Ru0PpfO0N1YDkWV1TTRmbLdE7gUMfAVdzD105Z6hTAhZkR6A8KWnOBxQcAnOCWnvCOQPfVPoT6EKNQFxsv+MdO7V3+NG7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220377; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EyGce5BYg9S+8n9a9Rw7o7tsF5KsQMLdcxs+HlA08vU=; b=ixUIy5fCsWU8hFK4pazlmmP8zPIDZZvb2WpJvQbUUMP1TGevIBq4AI2j1wADR8iWRj2oZnwQImp+61bJlwtUFYepLYYrXpzQvp0DK+PCBbwoFbCzFPT0xxrBbEK1lncuVIU8iunyU2J/N3EZSO+Nifcilex8CDVuWrouGBqV3xM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220377839456.27188489192633; Thu, 23 Oct 2025 04:52:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkm-0001hZ-D1; Thu, 23 Oct 2025 07:45:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkZ-0001P5-NA for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:01 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkX-0001cJ-1a for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:44:59 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7kbFV015153; Thu, 23 Oct 2025 11:44:53 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9wak-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:53 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NBEt32002306; Thu, 23 Oct 2025 11:44:52 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9w0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:52 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBionN37355982 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:50 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 61B8620049; Thu, 23 Oct 2025 11:44:50 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7FD8420040; Thu, 23 Oct 2025 11:44:49 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:49 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=EyGce5 BYg9S+8n9a9Rw7o7tsF5KsQMLdcxs+HlA08vU=; b=Lc/LYOyWHP9ND3yvyduM7C kiQ9XehgnNIzAF9abWrgzdqa57CgYaAlkspHyrOXrPNOhwck8+P5zFvncnltRK7R /kkl8i4TN5MAnpJT2N2OOsyZ3Ggu0JXqQKQp9UPWBE+W20eGhp0E3dpC6WJlhaDW liAthsuqxZkAYLMxHXkn4GUB6zBbuq+mRZYqMxgzSmKr27+7HhcoIgsj0eyC5icH D6r7kt6uFEHgcwrt2OkGOme7ohQGhFVJxTLZNPAXO8Ifk1u2tI417NvXTLnAj4CJ /sCJQYxhHlrI430HR43rOjsLyxD88ty9mq4PZTaNCMQWCB5S7J0qET+oIiVfeU1w == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 17/32] hw/ppc/pegasos2: Rename mv field in machine state Date: Thu, 23 Oct 2025 17:14:04 +0530 Message-ID: <20251023114422.3675018-18-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: Jt6u2DWegQ4NHRNiKtMHap6bOpy9RX87 X-Proofpoint-GUID: Jt6u2DWegQ4NHRNiKtMHap6bOpy9RX87 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXx0s64GR46bL7 modQzYeV5pZTKenaNUHLhLsGLHNsbuHtieerlbg6SKfYVLtTKCxZ11Lbq8QWiF1pPoK6sT5h90w y4Zq0OKSbQSi6X7jUnsmYIdfD1sCEcurve4U4e5qII4VrXiwRfTCYPWo9tA6yCXtW9CrckeVpXB Lkx8LhD0g6PMKGAHyoOBMQl+yf8m7WPv21IBv44PFWimaTrWcClWmz3GdqgHn9TC7mFycH805sz 4shjcfutmUh5MqFUCpyyYZ+lkdtC9m2g/x0nb4FjfVSpQOaAieZQozRnK46lrPHTGX8RpiQ0yFw lNfARsqiZDaj3Qu3gl7DRStB79+5L9XqvXzPlsy+EqJGptSlW8cVXwIze5yv6R8rgjok4K+L/dt 9o3pKPJfVWzudHJSzk1CyY6Ax6wCow== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa1535 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=VqWj-gOvcHZ2Xb4X8q8A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220379743158500 From: BALATON Zoltan Use more generic name for the field used to store the north bridge in the machine state. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/f1c189f16a260377abe0d270e778f27386= 49446a.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 2ba579dddf..9b89c7ecc2 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -68,7 +68,7 @@ struct Pegasos2MachineState { MachineState parent_obj; =20 PowerPCCPU *cpu; - DeviceState *mv; + DeviceState *nb; /* north bridge */ IRQState pci_irqs[PCI_NUM_PINS]; OrIRQState orirq[PCI_NUM_PINS]; qemu_irq mv_pirq[PCI_NUM_PINS]; @@ -166,12 +166,12 @@ static void pegasos2_init(MachineState *machine) } =20 /* Marvell Discovery II system controller */ - pm->mv =3D DEVICE(sysbus_create_simple(TYPE_MV64361, -1, + pm->nb =3D DEVICE(sysbus_create_simple(TYPE_MV64361, -1, qdev_get_gpio_in(DEVICE(pm->cpu), PPC6xx_INPUT_I= NT))); for (i =3D 0; i < PCI_NUM_PINS; i++) { - pm->mv_pirq[i] =3D qdev_get_gpio_in_named(pm->mv, "gpp", 12 + i); + pm->mv_pirq[i] =3D qdev_get_gpio_in_named(pm->nb, "gpp", 12 + i); } - pci_bus =3D mv64361_get_pci_bus(pm->mv, 1); + pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); =20 /* VIA VT8231 South Bridge (multifunction PCI device) */ via =3D OBJECT(pci_new_multifunction(PCI_DEVFN(12, 0), TYPE_VT8231_ISA= )); @@ -190,7 +190,7 @@ static void pegasos2_init(MachineState *machine) object_resolve_path_component(via, "rtc"), "date"); qdev_connect_gpio_out_named(DEVICE(via), "intr", 0, - qdev_get_gpio_in_named(pm->mv, "gpp", 31)); + qdev_get_gpio_in_named(pm->nb, "gpp", 31)); =20 dev =3D PCI_DEVICE(object_resolve_path_component(via, "ide")); pci_ide_create_devs(dev); @@ -208,7 +208,7 @@ static void pegasos2_init(MachineState *machine) DeviceState *pd; g_autofree const char *pn =3D g_strdup_printf("pcihost%d", h); =20 - pd =3D DEVICE(object_resolve_path_component(OBJECT(pm->mv), pn)); + pd =3D DEVICE(object_resolve_path_component(OBJECT(pm->nb), pn)); assert(pd); for (i =3D 0; i < PCI_NUM_PINS; i++) { OrIRQState *ori =3D &pm->orirq[i]; @@ -267,7 +267,7 @@ static void pegasos2_init(MachineState *machine) static uint32_t pegasos2_mv_reg_read(Pegasos2MachineState *pm, uint32_t addr, uint32_t len) { - MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->mv), 0); + MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 0); uint64_t val =3D 0xffffffffULL; memory_region_dispatch_read(r, addr, &val, size_memop(len) | MO_LE, MEMTXATTRS_UNSPECIFIED); @@ -277,7 +277,7 @@ static uint32_t pegasos2_mv_reg_read(Pegasos2MachineSta= te *pm, static void pegasos2_mv_reg_write(Pegasos2MachineState *pm, uint32_t addr, uint32_t len, uint32_t val) { - MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->mv), 0); + MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 0); memory_region_dispatch_write(r, addr, val, size_memop(len) | MO_LE, MEMTXATTRS_UNSPECIFIED); } @@ -857,10 +857,10 @@ static void *build_fdt(MachineState *machine, int *fd= t_size) =20 fi.fdt =3D fdt; fi.path =3D "/pci@c0000000"; - pci_bus =3D mv64361_get_pci_bus(pm->mv, 0); + pci_bus =3D mv64361_get_pci_bus(pm->nb, 0); pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); fi.path =3D "/pci@80000000"; - pci_bus =3D mv64361_get_pci_bus(pm->mv, 1); + pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); =20 return fdt; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220058; cv=none; d=zohomail.com; s=zohoarc; b=GpfvfWbTMubZ7DcUSOZX1ZF/3CCBkAPu6oVle3Q/FsBZGF8aRHPKZUK/MVeh7yd7MRiCfKlpXMKx0a48oi3ZJb/R5M79lQn6zoko0I4KANofW8fEXc3C1LUyij1zYZ7FVjgLAFjP6C+zb7fmwpBjf24kNwq4mhi5CSO3nO/mWks= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220058; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4r3gcimnVaxRH11Ad0jfuJA9DZCx9TNezn3pCJerEKE=; b=ZJ9WQ+6+p3QQOE0g1/ivZD8hQ/k4ZLY0jacC+4772p2FmxOlmrPSa6Yx7rEWNEWsdGpiu/sH8X6R9xXRkzJM438TLEWVnymlLeYy5xyQ3R6ueknPQlgXdCf7Ol6afyYLkyOdgEIUjKKj3uo0meJDtN7YNjDTDnfp5q2BkOBBArQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220058206910.5844277088937; Thu, 23 Oct 2025 04:47:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkn-0001kn-UK; Thu, 23 Oct 2025 07:45:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkb-0001Pq-Fn for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:01 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkZ-0001ck-Fu for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:01 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N2YUVU007314; Thu, 23 Oct 2025 11:44:55 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx5t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:54 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9JpC4017072; Thu, 23 Oct 2025 11:44:53 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5kse-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:53 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBipiP42205584 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:51 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9487720049; Thu, 23 Oct 2025 11:44:51 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B315020040; Thu, 23 Oct 2025 11:44:50 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:50 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=4r3gci mnVaxRH11Ad0jfuJA9DZCx9TNezn3pCJerEKE=; b=a1J0OFeF+GDIBnrY23cqeM +nEH4hCUaEl7eqFpost53zYktHbiK+Pq6SZGaBl/slIvWk7l5ti76473vL5NgRYS j/EGELZ0JFpL14rtyM3P4CreEq5yyN6G3L17JTB+2qMpHG4KIWPV2qcN9kobSDmG ansRXJ4eoKsTOMl9BlbAi/6tAi35o+4FJiC6SsmR4sB8Tt6mOXtVttn0HgZ+heGJ qDrKHNdGSjFQIVjBTzfTCuHJDwpdsDlB9QriZ8svaz4fMO+hKtD+bAb5wCOaCJWV 8IiXOgTOhZ0MFRHLp1aZF2iuKACyjSzl6mKri7uuWTPlVnCVmkAdyKcBkOfwp6eg == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 18/32] hw/ppc/pegasos2: Add south bridge pointer in the machine state Date: Thu, 23 Oct 2025 17:14:05 +0530 Message-ID: <20251023114422.3675018-19-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa1536 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=TGpnWNUbWJQoO7jwSJQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: i00rv5ciNdmsRnZ9LUGZs0OHiEjvJigP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXwqEqZEL6xRdY niKl/tAS82kboMgJG3TJS5u/S2geS3jTuEE9/5PcKpVmzfgySiu0d7Ipbufrz1a2Ce0IaolY/OB C/PQGmHPFj/F8HUsIwh+UTMmAQoSSF7r9+k181aHY35jNePFp+2pFvMFg1LfS0mYsda6V7QcxdV 2gUOSW5fNj3UNIlNJPauVgsQMk1dgBkDv8dBmEWzS6ETt+aML3ZrV3fnOINAsx85bXtqdzrv5Fm DJHR3+R0AfB0k5uc3pyOixB8W7P5snyut9dajGw6Xi2s/1q5fJd90ZrT3qHtal0y0GFvhUABQss VtbB5ZVaE8uCe0/TbqR8HL6yW7hE7SlQMRexM4ZJ2FEr0obLbaRy5LncHg+DltC5isVkPmAeLMF 4qejOKbJlW+lWdC3U1tvtgmmlJqHJg== X-Proofpoint-ORIG-GUID: i00rv5ciNdmsRnZ9LUGZs0OHiEjvJigP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220059602154100 From: BALATON Zoltan Add field for the south bridge in machine state to have both north and south bridges in it. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/654d3223b418d5bb2ba08a2b014375c2ab= f341aa.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 9b89c7ecc2..4b63f0e175 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -69,6 +69,7 @@ struct Pegasos2MachineState { =20 PowerPCCPU *cpu; DeviceState *nb; /* north bridge */ + DeviceState *sb; /* south bridge */ IRQState pci_irqs[PCI_NUM_PINS]; OrIRQState orirq[PCI_NUM_PINS]; qemu_irq mv_pirq[PCI_NUM_PINS]; @@ -174,7 +175,8 @@ static void pegasos2_init(MachineState *machine) pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); =20 /* VIA VT8231 South Bridge (multifunction PCI device) */ - via =3D OBJECT(pci_new_multifunction(PCI_DEVFN(12, 0), TYPE_VT8231_ISA= )); + pm->sb =3D DEVICE(pci_new_multifunction(PCI_DEVFN(12, 0), TYPE_VT8231_= ISA)); + via =3D OBJECT(pm->sb); =20 /* Set properties on individual devices before realizing the south bri= dge */ if (machine->audiodev) { --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220032; cv=none; d=zohomail.com; s=zohoarc; b=EG5Sui3OCvHArHl7HEFo5PUZ0cFizdrAwrzgycntAT4zHy+xhgGs55+SsArt5QuNzHq2f/v6mQIFOKMDMK0MRY2g+JpU2l5b72UId/zDJ3SwVU2sErqNm98KjRVNp71vu7KG3Ip5JHAozP5stYTol0E69nwVa3IQEIShjI/ys20= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220032; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=9iBxiBLeBwvy9mCaX1xtUVuE7Oh9PcyzMKCkJrJ5pgE=; b=T5aAm2QjBSiealwN9s7eoKnTqKAezDM+UdxLAfVD/ixjw9GlYl7uM/NhSoOceCKe8T6zdh3hMDlHqI5AxxCW/+SfrFsFsSKgdyLa6nh0QWIlPgo3K8s6jzk6fJQcYZ2lNvtliSwGffUvgbfrD5Nv8eFy6RAICa8kkr3HZSR1hMU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220032449743.7884438077391; Thu, 23 Oct 2025 04:47:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtko-0001lB-7H; Thu, 23 Oct 2025 07:45:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkm-0001hT-8c for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:12 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkj-0001cn-Oa for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:11 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7h6Wg002474; Thu, 23 Oct 2025 11:44:55 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:55 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NB1VkE011075; Thu, 23 Oct 2025 11:44:54 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqx1d6ew-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:54 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiq1u54133090 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:53 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C7C9520049; Thu, 23 Oct 2025 11:44:52 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E6E8E20040; Thu, 23 Oct 2025 11:44:51 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:51 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=9iBxiB LeBwvy9mCaX1xtUVuE7Oh9PcyzMKCkJrJ5pgE=; b=JADJ6kV3PZYJ9mYaX8M2e6 DWKIDNY4ok7mAKaVt9WOsni9DxywG1rebVyMs5CbVNRG/QiftpPzf1HakQDgXuXf zJcQ66ExPOxxHNYJ17i5fIxPtvJRqiNApC/FNFlMaZnZM7Y+yAJRPOPEgYPfm4J8 WMmZyFqgMM/0iEk5FSOh/IH77A3UIfATHSO+LM9usseQUiEiktOPWfZ/tIpvq4S4 t/ejyiYOY4Dqs5lIRLFJUsu4v03An6tO2lp66j9HPTzr+649pN36vymJ7GSVF87e ujIqiKBo7OyoNmu4Yqm1cIqr1L5hPPk5DTzK/IuixblcRDBsVJakJLBz3YamE6zQ == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 19/32] hw/ppc/pegasos2: Move PCI IRQ routing setup to a function Date: Thu, 23 Oct 2025 17:14:06 +0530 Message-ID: <20251023114422.3675018-20-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa1537 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=Px54sdigDSgh_EqQyywA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX3y5IAoMDpRxd KOnunwJPC2u805aMyb/QTzFsO01CfqF0LIo0panc8WDRUk922FepYY7O+qiP4xCFbn9cXN91J++ pAzNRejb38g4lV/a2xBH57Xhti/ccLM1XxDGLaX81fUbv0OuBZnro0NBHGiN7gmQbKMLZdg5/4M 4rrEh1ddG2pWCBsifppt7CLlPQ/CUyKtuuQoq/t33RbVxKF39AvIUJLdgRikLRriN6iYNucCPW5 LSt+ityDVtArJn4OC1+8ZYTowo8zYKjCl8parFzPk+8z4qaPJe6yx4f9mf3ooiD79rsyoznjVAn kqMrSmLbrL6osWq3L7L7UJ/33t5zYAE7wYvoWzC3sLfGYI+DaX/miuE0ntr0DSzzXukWyhB6lma Xyb19Hkko6Zzgvo/VE5ePjAT5TRh8A== X-Proofpoint-GUID: m6WPlVmswBiPIJDGYmGGFERud3uOD02G X-Proofpoint-ORIG-GUID: m6WPlVmswBiPIJDGYmGGFERud3uOD02G X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220037843158500 From: BALATON Zoltan Collect steps of setting up PCI IRQ routing in one function. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/f5ff16a6933ab6e1f9e194d16ef85364ac= 3cf6df.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 66 +++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 4b63f0e175..2f9bd3eac5 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -107,6 +107,38 @@ static void pegasos2_pci_irq(void *opaque, int n, int = level) qemu_set_irq(pm->via_pirq[n], level); } =20 +/* Set up PCI interrupt routing: lines from pci.0 and pci.1 are ORed */ +static void pegasos2_setup_pci_irq(Pegasos2MachineState *pm) +{ + for (int h =3D 0; h < 2; h++) { + DeviceState *pd; + g_autofree const char *pn =3D g_strdup_printf("pcihost%d", h); + + pd =3D DEVICE(object_resolve_path_component(OBJECT(pm->nb), pn)); + assert(pd); + for (int i =3D 0; i < PCI_NUM_PINS; i++) { + OrIRQState *ori =3D &pm->orirq[i]; + + if (h =3D=3D 0) { + g_autofree const char *n =3D g_strdup_printf("pci-orirq[%d= ]", i); + + object_initialize_child_with_props(OBJECT(pm), n, + ori, sizeof(*ori), + TYPE_OR_IRQ, &error_fat= al, + "num-lines", "2", NULL); + qdev_realize(DEVICE(ori), NULL, &error_fatal); + qemu_init_irq(&pm->pci_irqs[i], pegasos2_pci_irq, pm, i); + qdev_connect_gpio_out(DEVICE(ori), 0, &pm->pci_irqs[i]); + pm->mv_pirq[i] =3D qdev_get_gpio_in_named(pm->nb, "gpp", 1= 2 + i); + pm->via_pirq[i] =3D qdev_get_gpio_in_named(pm->sb, "pirq",= i); + } + qdev_connect_gpio_out(pd, i, qdev_get_gpio_in(DEVICE(ori), h)); + } + } + qdev_connect_gpio_out_named(pm->sb, "intr", 0, + qdev_get_gpio_in_named(pm->nb, "gpp", 31)); +} + static void pegasos2_init(MachineState *machine) { Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); @@ -118,7 +150,6 @@ static void pegasos2_init(MachineState *machine) I2CBus *i2c_bus; const char *fwname =3D machine->firmware ?: PROM_FILENAME; char *filename; - int i; ssize_t sz; uint8_t *spd_data; =20 @@ -169,9 +200,6 @@ static void pegasos2_init(MachineState *machine) /* Marvell Discovery II system controller */ pm->nb =3D DEVICE(sysbus_create_simple(TYPE_MV64361, -1, qdev_get_gpio_in(DEVICE(pm->cpu), PPC6xx_INPUT_I= NT))); - for (i =3D 0; i < PCI_NUM_PINS; i++) { - pm->mv_pirq[i] =3D qdev_get_gpio_in_named(pm->nb, "gpp", 12 + i); - } pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); =20 /* VIA VT8231 South Bridge (multifunction PCI device) */ @@ -185,14 +213,9 @@ static void pegasos2_init(MachineState *machine) } =20 pci_realize_and_unref(PCI_DEVICE(via), pci_bus, &error_abort); - for (i =3D 0; i < PCI_NUM_PINS; i++) { - pm->via_pirq[i] =3D qdev_get_gpio_in_named(DEVICE(via), "pirq", i); - } object_property_add_alias(OBJECT(machine), "rtc-time", object_resolve_path_component(via, "rtc"), "date"); - qdev_connect_gpio_out_named(DEVICE(via), "intr", 0, - qdev_get_gpio_in_named(pm->nb, "gpp", 31)); =20 dev =3D PCI_DEVICE(object_resolve_path_component(via, "ide")); pci_ide_create_devs(dev); @@ -205,30 +228,7 @@ static void pegasos2_init(MachineState *machine) /* other PC hardware */ pci_vga_init(pci_bus); =20 - /* PCI interrupt routing: lines from pci.0 and pci.1 are ORed */ - for (int h =3D 0; h < 2; h++) { - DeviceState *pd; - g_autofree const char *pn =3D g_strdup_printf("pcihost%d", h); - - pd =3D DEVICE(object_resolve_path_component(OBJECT(pm->nb), pn)); - assert(pd); - for (i =3D 0; i < PCI_NUM_PINS; i++) { - OrIRQState *ori =3D &pm->orirq[i]; - - if (h =3D=3D 0) { - g_autofree const char *n =3D g_strdup_printf("pci-orirq[%d= ]", i); - - object_initialize_child_with_props(OBJECT(pm), n, - ori, sizeof(*ori), - TYPE_OR_IRQ, &error_fat= al, - "num-lines", "2", NULL); - qdev_realize(DEVICE(ori), NULL, &error_fatal); - qemu_init_irq(&pm->pci_irqs[i], pegasos2_pci_irq, pm, i); - qdev_connect_gpio_out(DEVICE(ori), 0, &pm->pci_irqs[i]); - } - qdev_connect_gpio_out(pd, i, qdev_get_gpio_in(DEVICE(ori), h)); - } - } + pegasos2_setup_pci_irq(pm); =20 if (machine->kernel_filename) { sz =3D load_elf(machine->kernel_filename, NULL, NULL, NULL, --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220233; cv=none; d=zohomail.com; s=zohoarc; b=enKG2zxV8gfAub94tdTuR65koAmNg7IGom+AcBx4c4wcsyKnkD2+QpDjurujmbNk/iyFsUhyfPio11ZI+UVWlQAyIVMSmPXNCdplkH5zUiH3TXByrvjUYk+XLV24/f1oq8V6ORmsO22/635bHiiU3EScWmsAKBtUrZgBZNF7Wzo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220233; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=+0H0Da7VdCvdfrj0RFNrEHQOMPnaTngWJ/qx5eIWKFQ=; b=RBd+2wwVWhgynjQWFp7dtJ0Wee97aXVhzELiGwsRQKmvfNuOchSO7dpFU4YBQFdBWXbuzgthluVpW3AdvnbxjGAr3iBdX5sW67yF6cP0l1cBKYy7RVP0ppxMCyfarrOz9Jl4TxRflKbGVE8ucxl1Jcqr4EiJL9QB6l4Xsu3ExjQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17612202337891010.8362644251793; Thu, 23 Oct 2025 04:50:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkx-0002IX-26; Thu, 23 Oct 2025 07:45:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkn-0001kM-5I for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:13 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkk-0001dA-Q8 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:12 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7psTK027549; Thu, 23 Oct 2025 11:44:56 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx64-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:56 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAhERG002320; Thu, 23 Oct 2025 11:44:55 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9w6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:55 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBisCk40435984 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:54 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 04F2220049; Thu, 23 Oct 2025 11:44:54 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2546420040; Thu, 23 Oct 2025 11:44:53 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:52 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=+0H0Da 7VdCvdfrj0RFNrEHQOMPnaTngWJ/qx5eIWKFQ=; b=HfHH8JV/l5DBcWi8AGWh8n cSHshGH/0OhAmDRr89wdmn23xI5GAXBXzNtPQa5lndnEuVFUw+Xux4N+U7Ncdvy/ X1iz8rb3z5dfqWktlLaYtuBFmwh/mNQnh4kSAvTAfsb2hZMwvpQEtZgBTFS163O9 t+N+yQerWupJTyTglzRTVcQIriKvH1+vW4GhbYy/XuhJ4eKrr5doFj9fDQ1SQGB+ W1o9SNOA9AW9eJtEA5E07olLXissRLGboFHs6Vpdgt4GWR/wfUaSOMLzodfoMM97 oyjkLeBa1i4Rhch6/RG37oZKq1YVy76ZMv8O8F2e8ef/FmYSfiZ26j2+v21LI+2A == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 20/32] hw/ppc/pegasos2: Move hardware specific parts out of machine reset Date: Thu, 23 Oct 2025 17:14:07 +0530 Message-ID: <20251023114422.3675018-21-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa1538 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=29-1D86bl-XE_ZHJWoEA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: FVHNL2FyZZ20jBquFvBW7MPCdF9o7_t_ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX10XT0CjoRUhC 6DicrGb8SqEFaOHkXERG2Jk50Lc6hfILXDvsmln2y1EPsSTeHhr1mGHkzE7cNRrkWVvnkUTLui3 YNCMq0nZ9/4Ip3+LuwC+qNoXD5neV3CPlCfL8+U731Z0ShUT1vB2fAqFPg9CN69cd59ioYoU9PU ObxmWAttyxZxOY6FTDbsAFi3eUaHkj0OV82Ih5FzZgX1mdp+yYk5fKlu4HKMGQOhoSKLCNMIb9e OX+IYe7l9SGW4SPyWRiH1uze1DgQetBViolYKksUKm+sxOIc3mXs22nz/yByEQkCaP69iqBrzOe ajYyo+94mTmScn9xBxZ3AVJg7WeFkg737gFp+HWwoBrrjc669CD7fzuXjEWShWhywNbuARBBEOB 5W31Gdi3rJ40Vd1OjAjmplaSrjj0dA== X-Proofpoint-ORIG-GUID: FVHNL2FyZZ20jBquFvBW7MPCdF9o7_t_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220235657154100 From: BALATON Zoltan Move the pegasos2 specific chipset reset out from machine reset to a separate function and move generic parts that are not pegasos2 specific from build_fdt to machine reset so now build_fdt only contains pegasos2 specific parts and can be renamed accordingly. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/f6633a68a72aad4fefb8d2373b52561f8c= a8d41d.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 79 ++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 38 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 2f9bd3eac5..ed3070204b 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -57,10 +57,6 @@ =20 #define BUS_FREQ_HZ 133333333 =20 -#define PCI0_CFG_ADDR 0xcf8 -#define PCI1_CFG_ADDR 0xc78 -#define PCI1_IO_BASE 0xfe000000 - #define TYPE_PEGASOS2_MACHINE MACHINE_TYPE_NAME("pegasos2") OBJECT_DECLARE_TYPE(Pegasos2MachineState, MachineClass, PEGASOS2_MACHINE) =20 @@ -82,7 +78,7 @@ struct Pegasos2MachineState { uint64_t initrd_size; }; =20 -static void *build_fdt(MachineState *machine, int *fdt_size); +static void *pegasos2_build_fdt(Pegasos2MachineState *pm, int *fdt_size); =20 static void pegasos2_cpu_reset(void *opaque) { @@ -284,6 +280,9 @@ static void pegasos2_mv_reg_write(Pegasos2MachineState = *pm, uint32_t addr, MEMTXATTRS_UNSPECIFIED); } =20 +#define PCI0_CFG_ADDR 0xcf8 +#define PCI1_CFG_ADDR 0xc78 + static uint32_t pegasos2_pci_config_read(Pegasos2MachineState *pm, int bus, uint32_t addr, uint32_t len) { @@ -308,23 +307,12 @@ static void pegasos2_pci_config_write(Pegasos2Machine= State *pm, int bus, =20 static void pegasos2_superio_write(uint8_t addr, uint8_t val) { - cpu_physical_memory_write(PCI1_IO_BASE + 0x3f0, &addr, 1); - cpu_physical_memory_write(PCI1_IO_BASE + 0x3f1, &val, 1); + cpu_physical_memory_write(0xfe0003f0, &addr, 1); + cpu_physical_memory_write(0xfe0003f1, &val, 1); } =20 -static void pegasos2_machine_reset(MachineState *machine, ResetType type) +static void pegasos2_chipset_reset(Pegasos2MachineState *pm) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); - void *fdt; - uint64_t d[2]; - int sz; - - qemu_devices_reset(type); - if (!pm->vof) { - return; /* Firmware should set up machine so nothing to do */ - } - - /* Otherwise, set up devices that board firmware would normally do */ pegasos2_mv_reg_write(pm, 0, 4, 0x28020ff); pegasos2_mv_reg_write(pm, 0x278, 4, 0xa31fc); pegasos2_mv_reg_write(pm, 0xf300, 4, 0x11ff0400); @@ -387,6 +375,23 @@ static void pegasos2_machine_reset(MachineState *machi= ne, ResetType type) =20 pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 6) << 8) | PCI_INTERRUPT_LINE, 2, 0x309); +} + +static void pegasos2_machine_reset(MachineState *machine, ResetType type) +{ + Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); + void *fdt; + uint32_t c[2]; + uint64_t d[2]; + int sz; + + qemu_devices_reset(type); + if (!pm->vof) { + return; /* Firmware should set up machine so nothing to do */ + } + + /* Otherwise, set up devices that board firmware would normally do */ + pegasos2_chipset_reset(pm); =20 /* Device tree and VOF set up */ vof_init(pm->vof, machine->ram_size, &error_fatal); @@ -405,10 +410,25 @@ static void pegasos2_machine_reset(MachineState *mach= ine, ResetType type) exit(1); } =20 - fdt =3D build_fdt(machine, &sz); + fdt =3D pegasos2_build_fdt(pm, &sz); if (!fdt) { exit(1); } + + /* Set memory size */ + c[0] =3D 0; + c[1] =3D cpu_to_be32(machine->ram_size); + qemu_fdt_setprop(fdt, "/memory@0", "reg", c, sizeof(c)); + + /* Boot parameters */ + if (pm->initrd_addr && pm->initrd_size) { + qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", + pm->initrd_addr + pm->initrd_size); + qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", + pm->initrd_addr); + } + qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", + machine->kernel_cmdline ?: ""); /* FIXME: VOF assumes entry is same as load address */ d[0] =3D cpu_to_be64(pm->kernel_entry); d[1] =3D cpu_to_be64(pm->kernel_size - (pm->kernel_entry - pm->kernel_= addr)); @@ -827,12 +847,10 @@ static void *load_dtb(const char *filename, int *fdt_= size) return fdt; } =20 -static void *build_fdt(MachineState *machine, int *fdt_size) +static void *pegasos2_build_fdt(Pegasos2MachineState *pm, int *fdt_size) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); FDTInfo fi; PCIBus *pci_bus; - uint32_t cells[2]; void *fdt =3D load_dtb("pegasos2.dtb", fdt_size); =20 if (!fdt) { @@ -840,21 +858,6 @@ static void *build_fdt(MachineState *machine, int *fdt= _size) } qemu_fdt_setprop_string(fdt, "/", "name", "bplan,Pegasos2"); =20 - /* Set memory size */ - cells[0] =3D 0; - cells[1] =3D cpu_to_be32(machine->ram_size); - qemu_fdt_setprop(fdt, "/memory@0", "reg", cells, 2 * sizeof(cells[0])); - - /* Boot parameters */ - if (pm->initrd_addr && pm->initrd_size) { - qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-end", - pm->initrd_addr + pm->initrd_size); - qemu_fdt_setprop_cell(fdt, "/chosen", "linux,initrd-start", - pm->initrd_addr); - } - qemu_fdt_setprop_string(fdt, "/chosen", "bootargs", - machine->kernel_cmdline ?: ""); - add_cpu_info(fdt, pm->cpu); =20 fi.fdt =3D fdt; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220275; cv=none; d=zohomail.com; s=zohoarc; b=Hb4RLJsr4OByGuqtPQhXsrvYKpLoAWnMGzlqBIpBYH15g1kK6h6RRbkekIUq/fLe1U7Wh+YzX7QIMrSxss3MHoCmNVWv3XmrSh9uj5gHcl6AOgrZ1cNlxuf/cINHbKo0XQpjnRYjrLzpaBbEqHwkvhxq39ZPJFsDjcQZbQpEqms= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220275; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=xy+FpDSQIuSIz8SH+Jrmw+29iCnIy43AKGGljobRpnk=; b=J8TtJfGdrvbk5nzwwpbdKWJls3IcptXV+S7diztYYV0w5PohIluB6JutJEKQrOBFV+ZofkVgRJO2Kmsut9sbwKMUd6uJFH+kdGEVOYcXrJYUnEDGBydCCDfM6MWir5FjnasinSwuTA1tlLdXEVC9zLC+5suUTBBibV+771WeIl8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220275630733.0373320665548; Thu, 23 Oct 2025 04:51:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtku-0002Ao-F0; Thu, 23 Oct 2025 07:45:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkp-0001lx-5v for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:15 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkm-0001dJ-8y for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:14 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N48UEW015154; Thu, 23 Oct 2025 11:44:58 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9wau-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:57 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9C5DE014685; Thu, 23 Oct 2025 11:44:57 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdpnw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:56 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBituX49873324 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:55 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 45ACC20049; Thu, 23 Oct 2025 11:44:55 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 56DB020040; Thu, 23 Oct 2025 11:44:54 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:54 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=xy+FpD SQIuSIz8SH+Jrmw+29iCnIy43AKGGljobRpnk=; b=D7J3xZKDfz72+93mEcymJr +yOOWBCnuzmLZhlmMtKMBHSBLytO1Di2QEq23MJ5dKW80im8fkN9nmu8higukx22 WI5StfOdofcnfF75owws8pwEp2ofl4q5/k/SrVbUbhoY3sH8LT4ERPmEAtO7xn2u +mF7l+QSkzqDkfRYkHC2Bu9RaGh8JmGjW6u8thPB0gJJ+RS8DoXGwy9a3AKocmIg qirtWNSh+O9IH3e6dykjEK3ZJ3BIPB/XbInOk8AFF30dLExxkobe8egA9xrCHZdj lOuNs14R7hxl7zq0Fe3UAapPQUZHfM/NyPN8HuPG06gE9AzG9J4aSHx2rKonxPPA == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 21/32] hw/ppc/pegasos2: Introduce abstract superclass Date: Thu, 23 Oct 2025 17:14:08 +0530 Message-ID: <20251023114422.3675018-22-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: PM2hKii3YUWOpvLQV7gRF6FuJY0f-E8d X-Proofpoint-GUID: PM2hKii3YUWOpvLQV7gRF6FuJY0f-E8d X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX9WfqXy9sL9XI vA776eqs7pzRWkVnk4RUgSuZxwruxbB2qcWxmZ/iXKPMFpwJ06nbqhOTtTNGncf04zcC2e9DK5Y Pi67oNVTLOucSlphiG5rOe+oiZSPlAH2pbIFN7bOayV8/cubJ1UpkjKTwaGU2mZ4B5qW8ZlguFP WM003Rw8bmpG5Fzt0lUKtHKc8jEcxhsDmcR0vb4x49KEK24igSo0+Z7a1fdjGWRDjf1nGf3fU51 w8OYjkzZyfkS8Tt5lznELqU+2Ke42i5l93LhQo8BTR6O8mYKBE9J1+HIU5BTGgi12xi/gMn4T70 tBw3RzvjKQf+M7t50sW93OtIVhdaWdEjCyAjeifZmGzVtsf0eZaj7q+PPJ3nk/vuQxaMo1G1OKX otaAXPO1MuYvLBp5OuRnYFpWIpFSEg== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa1539 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=PatsMKc-9FYN22uO058A:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220278377154100 From: BALATON Zoltan Rename machine state struct to PegasosMachineState as it will be used for pegasos1 too. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/a09590a5da4572c9d392542f5c3793e6eb= 08ab9e.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 66 ++++++++++++++++++++++++----------------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index ed3070204b..f5b56c0e94 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -57,10 +57,10 @@ =20 #define BUS_FREQ_HZ 133333333 =20 -#define TYPE_PEGASOS2_MACHINE MACHINE_TYPE_NAME("pegasos2") -OBJECT_DECLARE_TYPE(Pegasos2MachineState, MachineClass, PEGASOS2_MACHINE) +#define TYPE_PEGASOS_MACHINE MACHINE_TYPE_NAME("pegasos") +OBJECT_DECLARE_SIMPLE_TYPE(PegasosMachineState, PEGASOS_MACHINE) =20 -struct Pegasos2MachineState { +struct PegasosMachineState { MachineState parent_obj; =20 PowerPCCPU *cpu; @@ -78,12 +78,12 @@ struct Pegasos2MachineState { uint64_t initrd_size; }; =20 -static void *pegasos2_build_fdt(Pegasos2MachineState *pm, int *fdt_size); +static void *pegasos2_build_fdt(PegasosMachineState *pm, int *fdt_size); =20 static void pegasos2_cpu_reset(void *opaque) { PowerPCCPU *cpu =3D opaque; - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(current_machine); + PegasosMachineState *pm =3D PEGASOS_MACHINE(current_machine); =20 cpu_reset(CPU(cpu)); cpu->env.spr[SPR_HID1] =3D 7ULL << 28; @@ -96,7 +96,7 @@ static void pegasos2_cpu_reset(void *opaque) =20 static void pegasos2_pci_irq(void *opaque, int n, int level) { - Pegasos2MachineState *pm =3D opaque; + PegasosMachineState *pm =3D opaque; =20 /* PCI interrupt lines are connected to both MV64361 and VT8231 */ qemu_set_irq(pm->mv_pirq[n], level); @@ -104,7 +104,7 @@ static void pegasos2_pci_irq(void *opaque, int n, int l= evel) } =20 /* Set up PCI interrupt routing: lines from pci.0 and pci.1 are ORed */ -static void pegasos2_setup_pci_irq(Pegasos2MachineState *pm) +static void pegasos2_setup_pci_irq(PegasosMachineState *pm) { for (int h =3D 0; h < 2; h++) { DeviceState *pd; @@ -137,7 +137,7 @@ static void pegasos2_setup_pci_irq(Pegasos2MachineState= *pm) =20 static void pegasos2_init(MachineState *machine) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); + PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); CPUPPCState *env; MemoryRegion *rom =3D g_new(MemoryRegion, 1); PCIBus *pci_bus; @@ -262,7 +262,7 @@ static void pegasos2_init(MachineState *machine) } } =20 -static uint32_t pegasos2_mv_reg_read(Pegasos2MachineState *pm, +static uint32_t pegasos2_mv_reg_read(PegasosMachineState *pm, uint32_t addr, uint32_t len) { MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 0); @@ -272,7 +272,7 @@ static uint32_t pegasos2_mv_reg_read(Pegasos2MachineSta= te *pm, return val; } =20 -static void pegasos2_mv_reg_write(Pegasos2MachineState *pm, uint32_t addr, +static void pegasos2_mv_reg_write(PegasosMachineState *pm, uint32_t addr, uint32_t len, uint32_t val) { MemoryRegion *r =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 0); @@ -283,7 +283,7 @@ static void pegasos2_mv_reg_write(Pegasos2MachineState = *pm, uint32_t addr, #define PCI0_CFG_ADDR 0xcf8 #define PCI1_CFG_ADDR 0xc78 =20 -static uint32_t pegasos2_pci_config_read(Pegasos2MachineState *pm, int bus, +static uint32_t pegasos2_pci_config_read(PegasosMachineState *pm, int bus, uint32_t addr, uint32_t len) { hwaddr pcicfg =3D bus ? PCI1_CFG_ADDR : PCI0_CFG_ADDR; @@ -296,7 +296,7 @@ static uint32_t pegasos2_pci_config_read(Pegasos2Machin= eState *pm, int bus, return val; } =20 -static void pegasos2_pci_config_write(Pegasos2MachineState *pm, int bus, +static void pegasos2_pci_config_write(PegasosMachineState *pm, int bus, uint32_t addr, uint32_t len, uint32_= t val) { hwaddr pcicfg =3D bus ? PCI1_CFG_ADDR : PCI0_CFG_ADDR; @@ -311,7 +311,7 @@ static void pegasos2_superio_write(uint8_t addr, uint8_= t val) cpu_physical_memory_write(0xfe0003f1, &val, 1); } =20 -static void pegasos2_chipset_reset(Pegasos2MachineState *pm) +static void pegasos2_chipset_reset(PegasosMachineState *pm) { pegasos2_mv_reg_write(pm, 0, 4, 0x28020ff); pegasos2_mv_reg_write(pm, 0x278, 4, 0xa31fc); @@ -379,7 +379,7 @@ static void pegasos2_chipset_reset(Pegasos2MachineState= *pm) =20 static void pegasos2_machine_reset(MachineState *machine, ResetType type) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(machine); + PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); void *fdt; uint32_t c[2]; uint64_t d[2]; @@ -463,7 +463,7 @@ enum pegasos2_rtas_tokens { RTAS_SYSTEM_REBOOT =3D 20, }; =20 -static target_ulong pegasos2_rtas(PowerPCCPU *cpu, Pegasos2MachineState *p= m, +static target_ulong pegasos2_rtas(PowerPCCPU *cpu, PegasosMachineState *pm, target_ulong args_real) { AddressSpace *as =3D CPU(cpu)->as; @@ -566,7 +566,7 @@ static bool pegasos2_cpu_in_nested(PowerPCCPU *cpu) =20 static void pegasos2_hypercall(PPCVirtualHypervisor *vhyp, PowerPCCPU *cpu) { - Pegasos2MachineState *pm =3D PEGASOS2_MACHINE(vhyp); + PegasosMachineState *pm =3D PEGASOS_MACHINE(vhyp); CPUPPCState *env =3D &cpu->env; =20 /* The TCG path should also be holding the BQL at this point */ @@ -629,24 +629,26 @@ static void pegasos2_machine_class_init(ObjectClass *= oc, const void *data) vmc->setprop =3D pegasos2_setprop; } =20 -static const TypeInfo pegasos2_machine_info =3D { - .name =3D TYPE_PEGASOS2_MACHINE, - .parent =3D TYPE_MACHINE, - .class_init =3D pegasos2_machine_class_init, - .instance_size =3D sizeof(Pegasos2MachineState), - .interfaces =3D (const InterfaceInfo[]) { - { TYPE_PPC_VIRTUAL_HYPERVISOR }, - { TYPE_VOF_MACHINE_IF }, - { } +static const TypeInfo pegasos_machine_types[] =3D { + { + .name =3D TYPE_PEGASOS_MACHINE, + .parent =3D TYPE_MACHINE, + .instance_size =3D sizeof(PegasosMachineState), + .abstract =3D true, + .interfaces =3D (const InterfaceInfo[]) { + { TYPE_PPC_VIRTUAL_HYPERVISOR }, + { TYPE_VOF_MACHINE_IF }, + { } + }, + }, + { + .name =3D MACHINE_TYPE_NAME("pegasos2"), + .parent =3D TYPE_PEGASOS_MACHINE, + .class_init =3D pegasos2_machine_class_init, }, }; =20 -static void pegasos2_machine_register_types(void) -{ - type_register_static(&pegasos2_machine_info); -} - -type_init(pegasos2_machine_register_types) +DEFINE_TYPES(pegasos_machine_types) =20 /* FDT creation for passing to firmware */ =20 @@ -847,7 +849,7 @@ static void *load_dtb(const char *filename, int *fdt_si= ze) return fdt; } =20 -static void *pegasos2_build_fdt(Pegasos2MachineState *pm, int *fdt_size) +static void *pegasos2_build_fdt(PegasosMachineState *pm, int *fdt_size) { FDTInfo fi; PCIBus *pci_bus; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219930; cv=none; d=zohomail.com; s=zohoarc; b=I5M5oxa6ZRJgpyEViK4m+61VGp/sBeHs3oKR41vI4MJDvbUywC5Da3+Ammc4Ls7P7Qe9Y8/PplXoRLwTsZ9c78Gj9HZVPUjg0yPgr197+0Rv/JZ1tj3nGh/cU3Gprf/w6h2l1+8r8+3UxXALykV2lErH4R7vv8ut7NYTZB74L9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219930; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=f4ju6tnbA9LleG/LPghMVR1nyMC4C0tekWOoHQ2wu7Y=; b=mk3WbshDq1x0xwQwnrLFKqqaHuv1IgDAOeIhnrIHoADA7+ZGANrZeeHmoSiIZXmr9QUbZAnw5t+eUrop6Tlg9/cn+bbVA8PuEX2qUx6qUbiiSYqz+yyxjWKxl3BTKAQP60yYBje9hpxWDdcdZuH8NBfwNQ/K95WtEOO29I/plz4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219930859717.2353460701855; Thu, 23 Oct 2025 04:45:30 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtks-000239-Nw; Thu, 23 Oct 2025 07:45:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkq-0001t2-KD for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:16 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkn-0001ds-WC for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:16 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9VQmp015962; Thu, 23 Oct 2025 11:45:00 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:59 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NA6V7n032166; Thu, 23 Oct 2025 11:44:58 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vp7n5eqf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:58 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBiuFr26083736 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:56 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 786DB20049; Thu, 23 Oct 2025 11:44:56 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 968DF20040; Thu, 23 Oct 2025 11:44:55 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:55 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=f4ju6t nbA9LleG/LPghMVR1nyMC4C0tekWOoHQ2wu7Y=; b=Kv0K/khMjh0UXKa37HmR4Q NQmetAjx7nuPblXgYWf0abNddzyS3tfLHhjLj2A4Yv7L3H1Zs5GNjrE7HCc5FnsW 4NPl0BL79No8U5S/cLeYMc4jUYf4Zevw3+nuqCOTB/Hgb8pA2BJAaYuAa3/LwgJq iGNniqCVnalFMkyXZtgpPPzfkbl8V3cGjgcLuqfEnlQWk6RkVrfGUfHc/fAZ3/XB WZV57cyVL4OhXgE7A2Y3foNEVHxGuEO1ub8OZaFBZ7e8X5GONzd1cJlbDwEccMuy 36nBh6iyxwpmlGP+Lv7DDRfTx9kw9R4e5K2PfFWj1CplzRrK0Ci5ntk3JvEhCI+A == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 22/32] hw/ppc/pegasos2: Add bus frequency to machine state Date: Thu, 23 Oct 2025 17:14:09 +0530 Message-ID: <20251023114422.3675018-23-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa153b cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=djEQ4dHztmMVuQhaAQsA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXx+dFAVOwHKfR NZRjPyuSFJfX9zUcj7jnK2MWpanW2LBp8y9RRzpiSbqfsGb8UGrdr/dbpn7+9GPF4Br1pHRUsmJ YuIwKJQFoPXNW9NWQN3/Bd+hwF/zaZjR6yg4ch1+QmEEajgSIY226O4mECV30WABG6dEIVh05X/ oad8eevXtCNZdiDqRH0oUicm7h1yrypPmoSfezoPYxkVoy2grMRz54t5sMaIjtdbOkqnA3nNukn 5sjieC0S13RkmTptj1dJwYWJRnqHOfYK5HEEVIZyDbgVCGfc6x7urWolh1m+KUhvOxCjo175Cmx kQgzBn2zJ4qc3/YnRdv81DWVyzFiHeH8SM/wvlKQPvAuBBc91xydmc0ItYho2SuP+Z+fWgtdFaP gJAhBXRMV4Z98Hk5kEShbfaLSHmRAQ== X-Proofpoint-GUID: nNEmX0vyE6csLMjZa0myAKjbYB_KYoYZ X-Proofpoint-ORIG-GUID: nNEmX0vyE6csLMjZa0myAKjbYB_KYoYZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219936645158500 From: BALATON Zoltan Store the bus frequency in the machine state and set it from instance init method. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/b69e21e353b7d7f22a34db5f13443f60f5= 1c7238.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index f5b56c0e94..7eaefcf9a0 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -55,8 +55,6 @@ #define H_PRIVILEGE -3 /* Caller not privileged */ #define H_PARAMETER -4 /* Parameter invalid, out-of-range or conflicting= */ =20 -#define BUS_FREQ_HZ 133333333 - #define TYPE_PEGASOS_MACHINE MACHINE_TYPE_NAME("pegasos") OBJECT_DECLARE_SIMPLE_TYPE(PegasosMachineState, PEGASOS_MACHINE) =20 @@ -66,6 +64,7 @@ struct PegasosMachineState { PowerPCCPU *cpu; DeviceState *nb; /* north bridge */ DeviceState *sb; /* south bridge */ + int bus_freq_hz; IRQState pci_irqs[PCI_NUM_PINS]; OrIRQState orirq[PCI_NUM_PINS]; qemu_irq mv_pirq[PCI_NUM_PINS]; @@ -135,7 +134,7 @@ static void pegasos2_setup_pci_irq(PegasosMachineState = *pm) qdev_get_gpio_in_named(pm->nb, "gpp", 31)); } =20 -static void pegasos2_init(MachineState *machine) +static void pegasos_init(MachineState *machine) { PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); CPUPPCState *env; @@ -158,7 +157,7 @@ static void pegasos2_init(MachineState *machine) } =20 /* Set time-base frequency */ - cpu_ppc_tb_init(env, BUS_FREQ_HZ / 4); + cpu_ppc_tb_init(env, pm->bus_freq_hz / 4); qemu_register_reset(pegasos2_cpu_reset, pm->cpu); =20 /* RAM */ @@ -610,7 +609,7 @@ static void pegasos2_machine_class_init(ObjectClass *oc= , const void *data) VofMachineIfClass *vmc =3D VOF_MACHINE_CLASS(oc); =20 mc->desc =3D "Genesi/bPlan Pegasos II"; - mc->init =3D pegasos2_init; + mc->init =3D pegasos_init; mc->reset =3D pegasos2_machine_reset; mc->block_default_type =3D IF_IDE; mc->default_boot_order =3D "cd"; @@ -629,6 +628,13 @@ static void pegasos2_machine_class_init(ObjectClass *o= c, const void *data) vmc->setprop =3D pegasos2_setprop; } =20 +static void pegasos2_init(Object *obj) +{ + PegasosMachineState *pm =3D PEGASOS_MACHINE(obj); + + pm->bus_freq_hz =3D 133333333; +} + static const TypeInfo pegasos_machine_types[] =3D { { .name =3D TYPE_PEGASOS_MACHINE, @@ -645,6 +651,7 @@ static const TypeInfo pegasos_machine_types[] =3D { .name =3D MACHINE_TYPE_NAME("pegasos2"), .parent =3D TYPE_PEGASOS_MACHINE, .class_init =3D pegasos2_machine_class_init, + .instance_init =3D pegasos2_init, }, }; =20 @@ -777,7 +784,7 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, v= oid *opaque) g_string_free(node, TRUE); } =20 -static void add_cpu_info(void *fdt, PowerPCCPU *cpu) +static void add_cpu_info(void *fdt, PowerPCCPU *cpu, int bus_freq) { uint32_t cells[2]; =20 @@ -824,8 +831,8 @@ static void add_cpu_info(void *fdt, PowerPCCPU *cpu) qemu_fdt_setprop_cell(fdt, cp, "reservation-granule-size", 4); qemu_fdt_setprop_cell(fdt, cp, "timebase-frequency", cpu->env.tb_env->tb_freq); - qemu_fdt_setprop_cell(fdt, cp, "bus-frequency", BUS_FREQ_HZ); - qemu_fdt_setprop_cell(fdt, cp, "clock-frequency", BUS_FREQ_HZ * 7.5); + qemu_fdt_setprop_cell(fdt, cp, "bus-frequency", bus_freq); + qemu_fdt_setprop_cell(fdt, cp, "clock-frequency", bus_freq * 7.5); qemu_fdt_setprop_cell(fdt, cp, "cpu-version", cpu->env.spr[SPR_PVR]); cells[0] =3D 0; cells[1] =3D 0; @@ -860,7 +867,7 @@ static void *pegasos2_build_fdt(PegasosMachineState *pm= , int *fdt_size) } qemu_fdt_setprop_string(fdt, "/", "name", "bplan,Pegasos2"); =20 - add_cpu_info(fdt, pm->cpu); + add_cpu_info(fdt, pm->cpu, pm->bus_freq_hz); =20 fi.fdt =3D fdt; fi.path =3D "/pci@c0000000"; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219955; cv=none; d=zohomail.com; s=zohoarc; b=gRR0j9YxkK92p841zc4g7cqOTFGa3hxmtOhuF9NMJay1w3jx5KHlHHK1iR82dgjvbDVPe9z9ianmg3Dx0GplI2H/7Dnm9mA6Xxh3j3DfeDBFgC6puyXamhcvgCiYDqQ1Y2z/QV2vsWodvKayBwQCkSI6XJAwbjtTk0f7qFg6s50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219955; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=C7Y5NP2Npdw6iAypcFayCOM0FsVSamrJy/I3zDO0a84=; b=mn9hRtSd4b8cyzn+yDUeAw2649coChqkSHFEYh9PUX+e31ssAXxMRGeqBN+AgkSd3t2RAiOo0Vh3Cb9N9KxCyN9+xuBa9E+0yrZfIL3UILqnk8tDWDhu0RQvIcIIele9Lo9eMbprAzdi3NIoXANIlQ4WqK4in8HRi8tnrxsH7FM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219955784288.2863245962641; Thu, 23 Oct 2025 04:45:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtks-0001zs-MU; Thu, 23 Oct 2025 07:45:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkg-0001YY-DJ for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:08 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkd-0001dp-El for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:05 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59MLaLh1002476; Thu, 23 Oct 2025 11:45:00 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v30w0eg2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:45:00 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAk0uq024940; Thu, 23 Oct 2025 11:44:59 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5dss-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:44:59 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBivOP34537852 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:57 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AC6E520049; Thu, 23 Oct 2025 11:44:57 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CBCEC20040; Thu, 23 Oct 2025 11:44:56 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:56 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=C7Y5NP 2Npdw6iAypcFayCOM0FsVSamrJy/I3zDO0a84=; b=hoKXxV0g/HFfRACTomU5In sRSWi5aXGIFZ2sMJJkhDTqW6MeUI6eOoS+tGfdiWdNw6lb+xGXDtqwRHqO++Jlq/ XJnc3pnDMhriPufTkaJYRd6ReM27oyUJ24SgjC9tkMQr2mpMFa4Pl2pz9EDf2dTG jtWRTWAyQZj0+/4n99IckeVICy8UYXzltsEb+NdKuYFvXh6/SMfkTuTpL4Bw+tFF w4gxfB0Vr3OmIGfIFDaYPnMVz/z9qRqbBr4PONyGWigfgfY/LkYk2dnzsktf+vyG w1Y/3Iq6qc7ZPyrbWDtOhxl+EUji88/wOKHmqOqXY39RltPAlr/n93+ArKdQ78FQ == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 23/32] hw/ppc/pegasos2: Add Pegasos I emulation Date: Thu, 23 Oct 2025 17:14:10 +0530 Message-ID: <20251023114422.3675018-24-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: iGQaiR2_69pqvUHNvdIooiV5M635lcw3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX4DdZK6TxAuSQ e68TWROBxZyXvGCo88x6FEluMc0Td8EeVSWwcTk/UbGrsVx4EESojSrpQe3+rAcD2Hd6mv6DCEU UrU7hd3UT6i6n2ArbNhzY0STfHLTjEVlv253so0NmD3EFsV8E0rR08rpk8e7IbAKSwFLksgw1kp bj6lC25YhK71YzdKajYOsb92sJYZ3eCcyiDpZEp/ix5yF67aNBer9ULkxajHZHlzXtjVmhV+Hzr j/z4b8K33FbGqBQlECCrgThRDwV+n6hhh0XfTPQmhIL0KSBYYZW7L3sAAt5dHO46Oj8BWg7rgUs Sa2O9eD2vOty0/3/2ynKDs0j9upLvn7ixRYitu6L7QxyLF+LcMMUayLEWKYJCWMLWPqk6IXaoFc Emw6mdT9+fYElUdoZ6d3NSJoKAdGLA== X-Authority-Analysis: v=2.4 cv=MIJtWcZl c=1 sm=1 tr=0 ts=68fa153c cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=dyx6wcTaBH8QTcpR19sA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-ORIG-GUID: iGQaiR2_69pqvUHNvdIooiV5M635lcw3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 spamscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219958497154100 From: BALATON Zoltan The Pegasos II is a redesign of the original Pegasos (later marked I) that replaces the north bridge and has updated firmware but otherwise these are very similar. The Pegasos uses the same north bridge that AmigaOne used which we already emulate so we can also easily emulate Pegasos I. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/8f5bd07553b41d83a54f9df0bb93b76b22= dea5c5.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- hw/ppc/pegasos2.c | 156 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 117 insertions(+), 39 deletions(-) diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index 7eaefcf9a0..a11f3c99ed 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -1,5 +1,5 @@ /* - * QEMU PowerPC CHRP (Genesi/bPlan Pegasos II) hardware System Emulator + * QEMU PowerPC CHRP (Genesi/bPlan Pegasos I/II) hardware System Emulator * * Copyright (c) 2018-2021 BALATON Zoltan * @@ -15,6 +15,7 @@ #include "hw/pci/pci_host.h" #include "hw/irq.h" #include "hw/or-irq.h" +#include "hw/pci-host/articia.h" #include "hw/pci-host/mv64361.h" #include "hw/isa/vt82c686.h" #include "hw/ide/pci.h" @@ -55,12 +56,18 @@ #define H_PRIVILEGE -3 /* Caller not privileged */ #define H_PARAMETER -4 /* Parameter invalid, out-of-range or conflicting= */ =20 +typedef enum { + PEGASOS1 =3D 1, + PEGASOS2 =3D 2, +} PegasosMachineType; + #define TYPE_PEGASOS_MACHINE MACHINE_TYPE_NAME("pegasos") OBJECT_DECLARE_SIMPLE_TYPE(PegasosMachineState, PEGASOS_MACHINE) =20 struct PegasosMachineState { MachineState parent_obj; =20 + PegasosMachineType type; PowerPCCPU *cpu; DeviceState *nb; /* north bridge */ DeviceState *sb; /* south bridge */ @@ -79,7 +86,7 @@ struct PegasosMachineState { =20 static void *pegasos2_build_fdt(PegasosMachineState *pm, int *fdt_size); =20 -static void pegasos2_cpu_reset(void *opaque) +static void pegasos_cpu_reset(void *opaque) { PowerPCCPU *cpu =3D opaque; PegasosMachineState *pm =3D PEGASOS_MACHINE(current_machine); @@ -89,6 +96,8 @@ static void pegasos2_cpu_reset(void *opaque) if (pm->vof) { cpu->env.gpr[1] =3D 2 * VOF_STACK_SIZE - 0x20; cpu->env.nip =3D 0x100; + } else if (pm->type =3D=3D PEGASOS1) { + cpu->env.nip =3D 0xfffc0100; } cpu_ppc_tb_reset(&cpu->env); } @@ -139,13 +148,15 @@ static void pegasos_init(MachineState *machine) PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); CPUPPCState *env; MemoryRegion *rom =3D g_new(MemoryRegion, 1); - PCIBus *pci_bus; + PCIBus *pci_bus =3D NULL; Object *via; PCIDevice *dev; I2CBus *i2c_bus; const char *fwname =3D machine->firmware ?: PROM_FILENAME; char *filename; + hwaddr prom_addr; ssize_t sz; + int devfn; uint8_t *spd_data; =20 /* init CPU */ @@ -158,7 +169,7 @@ static void pegasos_init(MachineState *machine) =20 /* Set time-base frequency */ cpu_ppc_tb_init(env, pm->bus_freq_hz / 4); - qemu_register_reset(pegasos2_cpu_reset, pm->cpu); + qemu_register_reset(pegasos_cpu_reset, pm->cpu); =20 /* RAM */ if (machine->ram_size > 2 * GiB) { @@ -176,12 +187,16 @@ static void pegasos_init(MachineState *machine) if (!machine->firmware && !pm->vof) { pm->vof =3D g_malloc0(sizeof(*pm->vof)); } - memory_region_init_rom(rom, NULL, "pegasos2.rom", PROM_SIZE, &error_fa= tal); - memory_region_add_subregion(get_system_memory(), PROM_ADDR, rom); + prom_addr =3D PROM_ADDR; + if (pm->type =3D=3D PEGASOS1) { + prom_addr +=3D PROM_SIZE; + } + memory_region_init_rom(rom, NULL, "rom", PROM_SIZE, &error_fatal); + memory_region_add_subregion(get_system_memory(), prom_addr, rom); sz =3D load_elf(filename, NULL, NULL, NULL, NULL, NULL, NULL, NULL, ELFDATA2MSB, PPC_ELF_MACHINE, 0, 0); if (sz <=3D 0) { - sz =3D load_image_targphys(filename, pm->vof ? 0 : PROM_ADDR, PROM= _SIZE); + sz =3D load_image_targphys(filename, pm->vof ? 0 : prom_addr, PROM= _SIZE); } if (sz <=3D 0 || sz > PROM_SIZE) { error_report("Could not load firmware '%s'", filename); @@ -192,13 +207,37 @@ static void pegasos_init(MachineState *machine) pm->vof->fw_size =3D sz; } =20 - /* Marvell Discovery II system controller */ - pm->nb =3D DEVICE(sysbus_create_simple(TYPE_MV64361, -1, - qdev_get_gpio_in(DEVICE(pm->cpu), PPC6xx_INPUT_I= NT))); - pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); + /* north bridge */ + switch (pm->type) { + case PEGASOS1: + { + MemoryRegion *pci_mem, *mr; + + /* Articia S */ + pm->nb =3D DEVICE(sysbus_create_simple(TYPE_ARTICIA, 0xfe000000, N= ULL)); + pci_mem =3D sysbus_mmio_get_region(SYS_BUS_DEVICE(pm->nb), 1); + mr =3D g_new(MemoryRegion, 1); + memory_region_init_alias(mr, OBJECT(pm->nb), "pci-mem-low", pci_me= m, + 0, 0x1000000); + memory_region_add_subregion(get_system_memory(), 0xfd000000, mr); + mr =3D g_new(MemoryRegion, 1); + memory_region_init_alias(mr, OBJECT(pm->nb), "pci-mem-high", pci_m= em, + 0x80000000, 0x7d000000); + memory_region_add_subregion(get_system_memory(), 0x80000000, mr); + pci_bus =3D PCI_BUS(qdev_get_child_bus(pm->nb, "pci.0")); + break; + } + case PEGASOS2: + /* Marvell Discovery II system controller */ + pm->nb =3D DEVICE(sysbus_create_simple(TYPE_MV64361, -1, + qdev_get_gpio_in(DEVICE(pm->cpu), PPC6xx_INPUT_INT= ))); + pci_bus =3D mv64361_get_pci_bus(pm->nb, 1); + break; + } =20 /* VIA VT8231 South Bridge (multifunction PCI device) */ - pm->sb =3D DEVICE(pci_new_multifunction(PCI_DEVFN(12, 0), TYPE_VT8231_= ISA)); + devfn =3D PCI_DEVFN(pm->type =3D=3D PEGASOS1 ? 7 : 12, 0); + pm->sb =3D DEVICE(pci_new_multifunction(devfn, TYPE_VT8231_ISA)); via =3D OBJECT(pm->sb); =20 /* Set properties on individual devices before realizing the south bri= dge */ @@ -223,7 +262,21 @@ static void pegasos_init(MachineState *machine) /* other PC hardware */ pci_vga_init(pci_bus); =20 - pegasos2_setup_pci_irq(pm); + /* pci interrupt routing */ + switch (pm->type) { + case PEGASOS1: + qdev_connect_gpio_out_named(pm->sb, "intr", 0, + qdev_get_gpio_in(DEVICE(pm->cpu), + PPC6xx_INPUT_INT)); + for (int i =3D 0; i < PCI_NUM_PINS; i++) { + qdev_connect_gpio_out(pm->nb, i, + qdev_get_gpio_in_named(pm->sb, "pirq", i= )); + } + break; + case PEGASOS2: + pegasos2_setup_pci_irq(pm); + break; + } =20 if (machine->kernel_filename) { sz =3D load_elf(machine->kernel_filename, NULL, NULL, NULL, @@ -376,7 +429,7 @@ static void pegasos2_chipset_reset(PegasosMachineState = *pm) PCI_INTERRUPT_LINE, 2, 0x309); } =20 -static void pegasos2_machine_reset(MachineState *machine, ResetType type) +static void pegasos_machine_reset(MachineState *machine, ResetType type) { PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); void *fdt; @@ -387,6 +440,9 @@ static void pegasos2_machine_reset(MachineState *machin= e, ResetType type) qemu_devices_reset(type); if (!pm->vof) { return; /* Firmware should set up machine so nothing to do */ + } else if (pm->type =3D=3D PEGASOS1) { + error_report("VOF is not supported by this machine"); + exit(1); } =20 /* Otherwise, set up devices that board firmware would normally do */ @@ -558,12 +614,12 @@ static target_ulong pegasos2_rtas(PowerPCCPU *cpu, Pe= gasosMachineState *pm, } } =20 -static bool pegasos2_cpu_in_nested(PowerPCCPU *cpu) +static bool pegasos_cpu_in_nested(PowerPCCPU *cpu) { return false; } =20 -static void pegasos2_hypercall(PPCVirtualHypervisor *vhyp, PowerPCCPU *cpu) +static void pegasos_hypercall(PPCVirtualHypervisor *vhyp, PowerPCCPU *cpu) { PegasosMachineState *pm =3D PEGASOS_MACHINE(vhyp); CPUPPCState *env =3D &cpu->env; @@ -574,7 +630,7 @@ static void pegasos2_hypercall(PPCVirtualHypervisor *vh= yp, PowerPCCPU *cpu) if (FIELD_EX64(env->msr, MSR, PR)) { qemu_log_mask(LOG_GUEST_ERROR, "Hypercall made with MSR[PR]=3D1\n"= ); env->gpr[3] =3D H_PRIVILEGE; - } else if (env->gpr[3] =3D=3D KVMPPC_H_RTAS) { + } else if (env->gpr[3] =3D=3D KVMPPC_H_RTAS && pm->type =3D=3D PEGASOS= 2) { env->gpr[3] =3D pegasos2_rtas(cpu, pm, env->gpr[4]); } else if (env->gpr[3] =3D=3D KVMPPC_H_VOF_CLIENT) { int ret =3D vof_client_call(MACHINE(pm), pm->vof, MACHINE(pm)->fdt, @@ -596,56 +652,78 @@ static target_ulong vhyp_encode_hpt_for_kvm_pr(PPCVir= tualHypervisor *vhyp) return POWERPC_CPU(current_cpu)->env.spr[SPR_SDR1]; } =20 -static bool pegasos2_setprop(MachineState *ms, const char *path, - const char *propname, void *val, int vallen) +static bool pegasos_setprop(MachineState *ms, const char *path, + const char *propname, void *val, int vallen) { return true; } =20 -static void pegasos2_machine_class_init(ObjectClass *oc, const void *data) +static void pegasos_machine_init(MachineClass *mc) { - MachineClass *mc =3D MACHINE_CLASS(oc); - PPCVirtualHypervisorClass *vhc =3D PPC_VIRTUAL_HYPERVISOR_CLASS(oc); - VofMachineIfClass *vmc =3D VOF_MACHINE_CLASS(oc); + PPCVirtualHypervisorClass *vhc =3D PPC_VIRTUAL_HYPERVISOR_CLASS(mc); + VofMachineIfClass *vmc =3D VOF_MACHINE_CLASS(mc); =20 - mc->desc =3D "Genesi/bPlan Pegasos II"; mc->init =3D pegasos_init; - mc->reset =3D pegasos2_machine_reset; + mc->reset =3D pegasos_machine_reset; mc->block_default_type =3D IF_IDE; mc->default_boot_order =3D "cd"; mc->default_display =3D "std"; - mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("7457_v1.2"); - mc->default_ram_id =3D "pegasos2.ram"; + mc->default_ram_id =3D "ram"; mc->default_ram_size =3D 512 * MiB; machine_add_audiodev_property(mc); =20 - vhc->cpu_in_nested =3D pegasos2_cpu_in_nested; - vhc->hypercall =3D pegasos2_hypercall; + vhc->cpu_in_nested =3D pegasos_cpu_in_nested; + vhc->hypercall =3D pegasos_hypercall; vhc->cpu_exec_enter =3D vhyp_nop; vhc->cpu_exec_exit =3D vhyp_nop; vhc->encode_hpt_for_kvm_pr =3D vhyp_encode_hpt_for_kvm_pr; =20 - vmc->setprop =3D pegasos2_setprop; + vmc->setprop =3D pegasos_setprop; +} + +static void pegasos1_init(Object *obj) +{ + PegasosMachineState *pm =3D PEGASOS_MACHINE(obj); + + pm->type =3D PEGASOS1; + pm->bus_freq_hz =3D 33000000; +} + +static void pegasos1_machine_class_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Genesi/bPlan Pegasos I"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("750cxe_v3.1b"); } =20 static void pegasos2_init(Object *obj) { PegasosMachineState *pm =3D PEGASOS_MACHINE(obj); =20 + pm->type =3D PEGASOS2; pm->bus_freq_hz =3D 133333333; } =20 +static void pegasos2_machine_class_init(ObjectClass *oc, const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + + mc->desc =3D "Genesi/bPlan Pegasos II"; + mc->default_cpu_type =3D POWERPC_CPU_TYPE_NAME("7457_v1.2"); +} + +DEFINE_MACHINE_EXTENDED("pegasos", MACHINE, PegasosMachineState, + pegasos_machine_init, true, (const InterfaceInfo[]= ) { + { TYPE_PPC_VIRTUAL_HYPERVISOR }, + { TYPE_VOF_MACHINE_IF }, { } }) + static const TypeInfo pegasos_machine_types[] =3D { { - .name =3D TYPE_PEGASOS_MACHINE, - .parent =3D TYPE_MACHINE, - .instance_size =3D sizeof(PegasosMachineState), - .abstract =3D true, - .interfaces =3D (const InterfaceInfo[]) { - { TYPE_PPC_VIRTUAL_HYPERVISOR }, - { TYPE_VOF_MACHINE_IF }, - { } - }, + .name =3D MACHINE_TYPE_NAME("pegasos1"), + .parent =3D TYPE_PEGASOS_MACHINE, + .class_init =3D pegasos1_machine_class_init, + .instance_init =3D pegasos1_init, }, { .name =3D MACHINE_TYPE_NAME("pegasos2"), --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761219953; cv=none; d=zohomail.com; s=zohoarc; b=iUzXBoYXSSSneSzuFCYfKhSRHGHrRK8PqGAKuAIT3TmrQeDNb3Ikh/xPrlr1zUysj9vRNzHtHUTEfiivMnqgG6MqZ+VYf7Cs3PaqAHmnEvUtAaxCQrMlOXDH2ZgctGtkzJArys5QvFQs1yH3tJolxLSm+f6wrYCnaFELk0kv2uE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761219953; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=VCLy0ITo4Ij8PRTVh5hCcLrXPft42Qv41/BjkN+xhH8=; b=nSSsXfFbmIMve/3kVRwgFtea5H6jdtl7ES62VHKFj6mmeHABdK7v34aN4SG5Sq872n/ZGcWACP6z++gztUbA5yMPqsY2PfA5Pfi8oP2L517CpUGPk+Vi3F5VRpYUWXfPkSeUzBSGXh46t1bzguf+tc2bfA0Gi+7gUcBZp/jQ3xQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761219953268915.269860130431; Thu, 23 Oct 2025 04:45:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtl2-0002ZG-MQ; Thu, 23 Oct 2025 07:45:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkv-0002Fc-HG for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:21 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkq-0001oq-5Q for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:21 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N3o6WA001436; Thu, 23 Oct 2025 11:45:01 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9wb0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:45:01 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9FJvK014848; Thu, 23 Oct 2025 11:45:00 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdpp1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 23 Oct 2025 11:45:00 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBix3D50594290 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:44:59 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E5CFE20049; Thu, 23 Oct 2025 11:44:58 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0A6A720040; Thu, 23 Oct 2025 11:44:58 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:57 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=VCLy0I To4Ij8PRTVh5hCcLrXPft42Qv41/BjkN+xhH8=; b=qySi372wGJkpNNshSHlni7 99lb0kunPEp41muNhZrfbC+/d9pgV5gRm+uyYFgIEaLg94rPjuSLSwGTvNNGqNZv byLTmkUyfZS3pIbyaXDGTSoOQ89cvrztAKnG8Lky+wQF0JIOAq41VDpv+0Qoji3o 9xQpBAJfFmr3+dWfHUO9VGfSz5AAkrPSeqRR+NmUwTxpzGhkOcBhImZBTMqPEe2G vnNYTv3qVDeqvmtrgtBW09F6dWaGsHYjEIa5J8cnlOMLrImnm5i0pwXQFyUdF5ae CPBlsOypymgI528E7DgZbIr0UFi8BXNSG/ZHM7I+dE+KfBpOXC0FYIyXMQrTRWHQ == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PULL 24/32] hw/ppc/pegasos2: Add VOF support for pegasos1 Date: Thu, 23 Oct 2025 17:14:11 +0530 Message-ID: <20251023114422.3675018-25-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: PRsQHeVdlCOEkRUYNWdVtOL48B8siQcO X-Proofpoint-GUID: PRsQHeVdlCOEkRUYNWdVtOL48B8siQcO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX1MSxwUtnTJSS sxzyzmNypsjGSlbedqcsXqqSGJUQJpvIRroLXy5w6qiW41clddIoydLrwJCB+OIRYH3s7VuwCWb nqqbo+MeajaUWOzuQAZfTWUJmvOmKgcuHRK5C9P2CMl7b4jWWjazqyYB6Cp+UAB+TAF21+G3h1l 8Y6Tjhwo+P2CR8Zw6YKzkMJacrnJ9EUtmhKu66AD+pHm4WHurXINC6ZJOZHGiHnJase2j0V7F8d QFtn3CkqapuzfhZm5YkxCypUCtk3r9yQDYSbB14nE3whjD795gYW7aj8QEthiket7Hc76oFE4Km yoFUMEZeMJzMk1MTWHLNQjjSto/tY1vgCfOQIgGfA/d3mBQn1wbv1XSbysi2nleYteaBZXKmqIt 0wHFjqEWTZPLog9SnlGyp9vOpvZaYA== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa153d cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=VnNF1IyMAAAA:8 a=oel9PUnJIl26fRhH_UYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761219956523154100 From: BALATON Zoltan When running without firmware ROM using Virtual Open Firmware we need to do some hardware initialisation and provide the device tree as the machine firmware would normally do. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daud=C3=A9 Link: https://lore.kernel.org/qemu-devel/d2d7f173dbd436b47382f384d5a93eb7e7= 13424e.1761176219.git.balaton@eik.bme.hu Signed-off-by: Harsh Prateek Bora --- MAINTAINERS | 1 + hw/ppc/pegasos2.c | 140 +++++++++++++++++++++++++++++++++------ pc-bios/dtb/meson.build | 1 + pc-bios/dtb/pegasos1.dtb | Bin 0 -> 857 bytes pc-bios/dtb/pegasos1.dts | 125 ++++++++++++++++++++++++++++++++++ 5 files changed, 246 insertions(+), 21 deletions(-) create mode 100644 pc-bios/dtb/pegasos1.dtb create mode 100644 pc-bios/dtb/pegasos1.dts diff --git a/MAINTAINERS b/MAINTAINERS index 36eef27b41..684d7a5b37 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1652,6 +1652,7 @@ F: hw/ppc/pegasos2.c F: hw/pci-host/mv64361.c F: hw/pci-host/mv643xx.h F: include/hw/pci-host/mv64361.h +F: pc-bios/dtb/pegasos[12].dt[sb] =20 amigaone M: BALATON Zoltan diff --git a/hw/ppc/pegasos2.c b/hw/ppc/pegasos2.c index a11f3c99ed..93696ed381 100644 --- a/hw/ppc/pegasos2.c +++ b/hw/ppc/pegasos2.c @@ -84,6 +84,7 @@ struct PegasosMachineState { uint64_t initrd_size; }; =20 +static void *pegasos1_build_fdt(PegasosMachineState *pm, int *fdt_size); static void *pegasos2_build_fdt(PegasosMachineState *pm, int *fdt_size); =20 static void pegasos_cpu_reset(void *opaque) @@ -314,6 +315,82 @@ static void pegasos_init(MachineState *machine) } } =20 +static void pegasos_superio_write(uint8_t addr, uint8_t val) +{ + cpu_physical_memory_write(0xfe0003f0, &addr, 1); + cpu_physical_memory_write(0xfe0003f1, &val, 1); +} + +static void pegasos1_pci_config_write(PegasosMachineState *pm, int bus, + uint32_t addr, uint32_t len, uint32_= t val) +{ + addr |=3D BIT(31); + cpu_physical_memory_write(0xfec00cf8, &addr, 4); + cpu_physical_memory_write(0xfee00cfc, &val, len); +} + +static void pegasos1_chipset_reset(PegasosMachineState *pm) +{ + uint8_t elcr =3D 0x2e; + cpu_physical_memory_write(0xfe0004d1, &elcr, sizeof(elcr)); + + pegasos1_pci_config_write(pm, 0, PCI_COMMAND, 2, PCI_COMMAND_IO | + PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + PCI_INTERRUPT_LINE, 2, 0x9); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + 0x50, 1, 0x6); + pegasos_superio_write(0xf4, 0xbe); + pegasos_superio_write(0xf6, 0xef); + pegasos_superio_write(0xf7, 0xfc); + pegasos_superio_write(0xf2, 0x14); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + 0x51, 1, 0x3d); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + 0x55, 1, 0x90); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + 0x56, 1, 0x99); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 0) << 8) | + 0x57, 1, 0x90); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 1) << 8) | + PCI_INTERRUPT_LINE, 2, 0x10e); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 1) << 8) | + PCI_CLASS_PROG, 1, 0xf); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 1) << 8) | + 0x40, 1, 0xb); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 1) << 8) | + 0x50, 4, 0x17171717); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 1) << 8) | + PCI_COMMAND, 2, 0x87); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 2) << 8) | + PCI_INTERRUPT_LINE, 2, 0x409); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 2) << 8) | + PCI_COMMAND, 2, 0x7); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 3) << 8) | + PCI_INTERRUPT_LINE, 2, 0x409); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 3) << 8) | + PCI_COMMAND, 2, 0x7); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 4) << 8) | + PCI_INTERRUPT_LINE, 2, 0x9); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 4) << 8) | + 0x48, 4, 0x2001); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 4) << 8) | + 0x41, 1, 0); + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 4) << 8) | + 0x90, 4, 0x1000); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 5) << 8) | + PCI_INTERRUPT_LINE, 2, 0x309); + + pegasos1_pci_config_write(pm, 0, (PCI_DEVFN(7, 6) << 8) | + PCI_INTERRUPT_LINE, 2, 0x309); +} + static uint32_t pegasos2_mv_reg_read(PegasosMachineState *pm, uint32_t addr, uint32_t len) { @@ -357,12 +434,6 @@ static void pegasos2_pci_config_write(PegasosMachineSt= ate *pm, int bus, pegasos2_mv_reg_write(pm, pcicfg + 4, len, val); } =20 -static void pegasos2_superio_write(uint8_t addr, uint8_t val) -{ - cpu_physical_memory_write(0xfe0003f0, &addr, 1); - cpu_physical_memory_write(0xfe0003f1, &val, 1); -} - static void pegasos2_chipset_reset(PegasosMachineState *pm) { pegasos2_mv_reg_write(pm, 0, 4, 0x28020ff); @@ -379,10 +450,10 @@ static void pegasos2_chipset_reset(PegasosMachineStat= e *pm) PCI_INTERRUPT_LINE, 2, 0x9); pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 0) << 8) | 0x50, 1, 0x6); - pegasos2_superio_write(0xf4, 0xbe); - pegasos2_superio_write(0xf6, 0xef); - pegasos2_superio_write(0xf7, 0xfc); - pegasos2_superio_write(0xf2, 0x14); + pegasos_superio_write(0xf4, 0xbe); + pegasos_superio_write(0xf6, 0xef); + pegasos_superio_write(0xf7, 0xfc); + pegasos_superio_write(0xf2, 0x14); pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 0) << 8) | 0x50, 1, 0x2); pegasos2_pci_config_write(pm, 1, (PCI_DEVFN(12, 0) << 8) | @@ -432,7 +503,7 @@ static void pegasos2_chipset_reset(PegasosMachineState = *pm) static void pegasos_machine_reset(MachineState *machine, ResetType type) { PegasosMachineState *pm =3D PEGASOS_MACHINE(machine); - void *fdt; + void *fdt =3D NULL; uint32_t c[2]; uint64_t d[2]; int sz; @@ -440,13 +511,22 @@ static void pegasos_machine_reset(MachineState *machi= ne, ResetType type) qemu_devices_reset(type); if (!pm->vof) { return; /* Firmware should set up machine so nothing to do */ - } else if (pm->type =3D=3D PEGASOS1) { - error_report("VOF is not supported by this machine"); - exit(1); } =20 /* Otherwise, set up devices that board firmware would normally do */ - pegasos2_chipset_reset(pm); + switch (pm->type) { + case PEGASOS1: + pegasos1_chipset_reset(pm); + fdt =3D pegasos1_build_fdt(pm, &sz); + break; + case PEGASOS2: + pegasos2_chipset_reset(pm); + fdt =3D pegasos2_build_fdt(pm, &sz); + break; + } + if (!fdt) { + exit(1); + } =20 /* Device tree and VOF set up */ vof_init(pm->vof, machine->ram_size, &error_fatal); @@ -465,11 +545,6 @@ static void pegasos_machine_reset(MachineState *machin= e, ResetType type) exit(1); } =20 - fdt =3D pegasos2_build_fdt(pm, &sz); - if (!fdt) { - exit(1); - } - /* Set memory size */ c[0] =3D 0; c[1] =3D cpu_to_be32(machine->ram_size); @@ -761,6 +836,8 @@ static struct { const char *name; void (*dtf)(PCIBus *bus, PCIDevice *d, FDTInfo *fi); } device_map[] =3D { + { "pci10cc,660", "host", NULL }, + { "pci10cc,661", "host", NULL }, { "pci11ab,6460", "host", NULL }, { "pci1106,571", "ide", dt_ide }, { "pci1106,3044", "firewire", NULL }, @@ -846,7 +923,7 @@ static void add_pci_device(PCIBus *bus, PCIDevice *d, v= oid *opaque) qemu_fdt_setprop_cell(fi->fdt, node->str, "interrupts", pci_get_byte(&d->config[PCI_INTERRUPT_PIN])); } - /* Pegasos2 firmware has subsystem-id amd subsystem-vendor-id swapped = */ + /* Pegasos firmware has subsystem-id and subsystem-vendor-id swapped */ qemu_fdt_setprop_cell(fi->fdt, node->str, "subsystem-vendor-id", pci_get_word(&d->config[PCI_SUBSYSTEM_ID])); qemu_fdt_setprop_cell(fi->fdt, node->str, "subsystem-id", @@ -934,6 +1011,27 @@ static void *load_dtb(const char *filename, int *fdt_= size) return fdt; } =20 +static void *pegasos1_build_fdt(PegasosMachineState *pm, int *fdt_size) +{ + FDTInfo fi; + PCIBus *pci_bus; + void *fdt =3D load_dtb("pegasos1.dtb", fdt_size); + + if (!fdt) { + return NULL; + } + qemu_fdt_setprop_string(fdt, "/", "name", "bplan,Pegasos"); + + add_cpu_info(fdt, pm->cpu, pm->bus_freq_hz); + + fi.fdt =3D fdt; + fi.path =3D "/pci@80000000"; + pci_bus =3D PCI_BUS(qdev_get_child_bus(pm->nb, "pci.0")); + pci_for_each_device_reverse(pci_bus, 0, add_pci_device, &fi); + + return fdt; +} + static void *pegasos2_build_fdt(PegasosMachineState *pm, int *fdt_size) { FDTInfo fi; diff --git a/pc-bios/dtb/meson.build b/pc-bios/dtb/meson.build index f14648f3a4..81bdd7580e 100644 --- a/pc-bios/dtb/meson.build +++ b/pc-bios/dtb/meson.build @@ -1,6 +1,7 @@ dtbs =3D [ 'bamboo.dtb', 'canyonlands.dtb', + 'pegasos1.dtb', 'pegasos2.dtb', 'petalogix-ml605.dtb', 'petalogix-s3adsp1800.dtb', diff --git a/pc-bios/dtb/pegasos1.dtb b/pc-bios/dtb/pegasos1.dtb new file mode 100644 index 0000000000000000000000000000000000000000..3b863b25288a59bcede9459ff42= afad713dde741 GIT binary patch literal 857 zcmZ8fO>Yx15OvxjK&T3w=3D^-c=3DRCQ5Ogp}S|g(^KkM8yI1P1Ue)2P zwH4Vq`;8bw1HZ>;t21Y#4($Qs>6oU{8xI*8@T`9T8sbOnw^Lh4-5HhX(Mm_{-ksVl z)<#k543FN8J7aT6ZanN9FMLHMid)8#w$22?9P@Cm<{Ue{7yY!q`;sNG#%QTC<4J?o zyrj~&#eOd+b^U#g+qE9l=3D58l32d?gA=3Di#Evk%Mn^%78T-ar4cvKZ`unPh?(rIUyvm zp(f1smX2*md1FhM>Vd@`{15zY&OI5A?*GZ_uJ49eCK4S?0+5L{U+AknfX#fBK literal 0 HcmV?d00001 diff --git a/pc-bios/dtb/pegasos1.dts b/pc-bios/dtb/pegasos1.dts new file mode 100644 index 0000000000..e5ef9db866 --- /dev/null +++ b/pc-bios/dtb/pegasos1.dts @@ -0,0 +1,125 @@ +/* + * QEMU Pegasos1 Device Tree Source + * + * Copyright 2025 BALATON Zoltan + * SPDX-License-Identifier: GPL-2.0-or-later + * + * This is partial source, more info will be filled in by board code. + */ + +/dts-v1/; + +/ { + #address-cells =3D <1>; + device_type =3D "chrp"; + model =3D "Pegasos"; + revision =3D "1A"; + CODEGEN,vendor =3D "bplan GmbH"; + CODEGEN,board =3D "Pegasos"; + CODEGEN,description =3D "Pegasos CHRP PowerPC System"; + + openprom { + model =3D "Pegasos,0.1b123"; + }; + + chosen { + }; + + memory@0 { + device_type =3D "memory"; + reg =3D <0 0>; + }; + + cpus { + #size-cells =3D <0>; + #address-cells =3D <1>; + #cpus =3D <1>; + }; + + failsafe { + device_type =3D "serial"; + }; + + pci@80000000 { + device_type =3D "pci"; + #address-cells =3D <3>; + #size-cells =3D <2>; + clock-frequency =3D <33333333>; + 8259-interrupt-acknowledge =3D <0xfef00000>; + reg =3D <0x80000000 0x7f000000>; + ranges =3D <0x01000000 0 0x00000000 0xfe000000 0 0x00800000 + 0x02000000 0 0x80000000 0x80000000 0 0x7d000000 + 0x02000000 0 0xfd000000 0xfd000000 0 0x01000000>; + bus-range =3D <0 0>; + + isa@7 { + vendor-id =3D <0x1106>; + device-id =3D <0x8231>; + revision-id =3D <0x10>; + class-code =3D <0x60100>; + /* Pegasos firmware has subsystem-id and */ + /* subsystem-vendor-id swapped */ + subsystem-id =3D <0x1af4>; + subsystem-vendor-id =3D <0x1100>; + reg =3D <0x3800 0 0 0 0>; + device_type =3D "isa"; + #address-cells =3D <2>; + #size-cells =3D <1>; + eisa-slots =3D <0>; + clock-frequency =3D <8333333>; + slot-names =3D <0>; + + serial@i2f8 { + device_type =3D "serial"; + reg =3D <1 0x2f8 8>; + interrupts =3D <3 0>; + clock-frequency =3D <0>; + }; + + 8042@i60 { + device_type =3D ""; + reg =3D <1 0x60 5>; + clock-frequency =3D <0>; + interrupt-controller =3D ""; + #address-cells =3D <1>; + #size-cells =3D <0>; + #interrupt-cells =3D <2>; + + }; + + keyboard@i60 { + device_type =3D "keyboard"; + reg =3D <1 0x60 5>; + interrupts =3D <1 0>; + }; + + rtc@i70 { + device_type =3D "rtc"; + reg =3D <1 0x70 2>; + interrupts =3D <8 0>; + clock-frequency =3D <0>; + compatible =3D "ds1385-rtc"; + }; + + timer@i40 { + device_type =3D "timer"; + reg =3D <1 0x40 8>; + clock-frequency =3D <0>; + }; + + fdc@i3f0 { + device_type =3D "fdc"; + reg =3D <1 0x3f0 8>; + interrupts =3D <6 0>; + clock-frequency =3D <0>; + }; + + lpt@i3bc { + device_type =3D "lpt"; + reg =3D <1 0x3bc 8>; + interrupts =3D <7 0>; + clock-frequency =3D <0>; + }; + }; + }; +}; --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220228; cv=none; d=zohomail.com; s=zohoarc; b=Hw5TAgCmOJygG9MPtZBLfpWvoHsuzuVD+vUTnVEuRpz/MXHJMbjdi1jdYHdIVH2OHE12h5K9vWtrFkdZnn5GoX+aNxkyC2XauCF8djQcbvOQxdZrYmn3kn8MasdbFYTe5eEqC2FVf4dT3Z++6kpa03IDqcUMZK9TvWUkdNUlvKw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220228; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SHOv8aCPVVBUZ4TJUuYP+d/H3Z0VMw1ie/M0KiCcZSg=; b=Jr4cNRc4EDMKEl7zAau7OuK+wGPhdtRj2NHhxVkRQaPgp1XcGvjueRa3TYHRzbOhTaPbkBEsY2HzCZSeCafckZ47QtF8wUl/nzBR17tKHj/yRwTGrd42DRfPX4ldfEO/BSqHTBN8NDOTnjaC2lzHl3pemzs1ULa7Xp8T7uzkCWI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220228404774.3752643180297; Thu, 23 Oct 2025 04:50:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkr-0001yW-Hm; Thu, 23 Oct 2025 07:45:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkj-0001bv-MY for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:10 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkh-0001pF-0p for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:09 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9o7KV009802 for ; Thu, 23 Oct 2025 11:45:06 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31cgj32-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:05 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9cOgs017066 for ; Thu, 23 Oct 2025 11:45:05 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5kt3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:05 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj0hk20447982 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:00 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4E12820049; Thu, 23 Oct 2025 11:45:00 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4449020040; Thu, 23 Oct 2025 11:44:59 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:44:59 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=SHOv8a CPVVBUZ4TJUuYP+d/H3Z0VMw1ie/M0KiCcZSg=; b=dsUb0kGUQFFbxcqEdr9T80 FuoLm3Qi6Ubuf8aqw9Pl6FFTDqWEmW8mJQR9rDLQ73e6JNWC/lq98j1B1NxbgmIh QemvbhUJY/bWtHr1n9tTUnqSotL3R0Yh7zHBsIveP9H9EZ1GUrr9b0N514LUEyrJ d4ilKXw0dZD1hUtgFKINvxYAmmwJsoAOkVd710Yf+MYfivbFZ5aQoIpscY22SXAT aWbrcO+tY5NXBz4+O/Ki0zFa+OHcPfYAgCSfTR9JRoOiKZ3nvxbSLhTrFjme2uar TdkmmXsP12UztpH36Mto8agixVyYG48fWC7mAK6Ye2fE+jSJvlE/4DSJS0Gv/YFg == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 25/32] hw/ppc: Implement fadump register command Date: Thu, 23 Oct 2025 17:14:12 +0530 Message-ID: <20251023114422.3675018-26-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: KlwvTHJWBsr0J48q2ksXo9We4Q1uySrO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX+M/cge9urr9U QHJWXqlxXawhPHcLJqW7/nzgJmsTTIXolh6Uzua43NZKIyRnRAmLTQLhSTfzfuBJOX+ZV4lRHtA TCs8uqOMhmLcJf7t8AZ/YvUQthIDiz5iNfKEqGBFTwnaD6urmtCPIvoOJOmp0hRy8ULe6iaVAvN fAxufyHdmscPozdhalrC+nXFc4gqNJq4VcgolQ4WgJL5JMPS4tmFlDD/IAWJ8BOrjqeIcuD4J+F Jasql2T/RexWVBJxgLJImMrryPzX1Wqf8GEPCAIWj2yi353NoJ3BPJrt0ZNtzxvRbXqya/RxZqG FhXODSYHj8Vr/0e+mxVIXZbbjQ951Sa0fvHMmYv80XX9jrXGGsJP2zn9Bk6j/JEvQfIGnmi822k ttUHwvoLD4CrO53z0N9wG5eeWxoiNQ== X-Proofpoint-GUID: KlwvTHJWBsr0J48q2ksXo9We4Q1uySrO X-Authority-Analysis: v=2.4 cv=SKNPlevH c=1 sm=1 tr=0 ts=68fa1541 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=l8_VZ6W0Klpo2I8UYZoA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220229638154100 From: Aditya Gupta Add skeleton to handle "ibm,configure-kernel-dump" rtas call in QEMU, including register, unregister and invalidate commands. The register just verifies the structure of the fadump memory structure passed by kernel, and set fadump_registered in spapr state to true. Verify basic details mandated by the PAPR, such as number of inputs/output, and add handling for the three fadump commands: regiser/unregister/invalidate. The checks are based on the table in following requirement in PAPR v2.13: "R1=E2=80=937.3.30=E2=80=931. For the Configure Platform Assisted Kerne= l Dump option ..." Relevant section for the register command in PAPR is: Section 7.3.30: "ibm,configure-kernel-dump RTAS call" (PAPR v2.13) Note: Any modifications made by the kernel to the fadump memory structure after the 'ibm,configure-kernel-dump' RTAS call returns will not be reflected in QEMU, as QEMU retains the fadump memory structure that was provided during fadump registration. The kernel must unregister and re-register fadump to apply any changes to the fadump memory structure. Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-2-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr.h | 11 ++- include/hw/ppc/spapr_fadump.h | 69 +++++++++++++++++++ hw/ppc/spapr_fadump.c | 123 ++++++++++++++++++++++++++++++++++ hw/ppc/spapr_rtas.c | 71 ++++++++++++++++++++ hw/ppc/meson.build | 1 + 5 files changed, 274 insertions(+), 1 deletion(-) create mode 100644 include/hw/ppc/spapr_fadump.h create mode 100644 hw/ppc/spapr_fadump.c diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index b9d884745f..28cf2723d8 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -13,6 +13,7 @@ #include "hw/ppc/xics.h" /* For ICSState */ #include "hw/ppc/spapr_tpm_proxy.h" #include "hw/ppc/spapr_nested.h" /* For SpaprMachineStateNested */ +#include "hw/ppc/spapr_fadump.h" /* For FadumpMemStruct */ =20 struct SpaprVioBus; struct SpaprPhbState; @@ -267,6 +268,11 @@ struct SpaprMachineState { Error *fwnmi_migration_blocker; =20 SpaprWatchdog wds[WDT_MAX_WATCHDOGS]; + + /* Fadump State */ + bool fadump_registered; + bool fadump_dump_active; + FadumpMemStruct registered_fdm; }; =20 #define H_SUCCESS 0 @@ -692,6 +698,8 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); #define RTAS_OUT_PARAM_ERROR -3 #define RTAS_OUT_NOT_SUPPORTED -3 #define RTAS_OUT_NO_SUCH_INDICATOR -3 +#define RTAS_OUT_DUMP_ALREADY_REGISTERED -9 +#define RTAS_OUT_DUMP_ACTIVE -10 #define RTAS_OUT_NOT_AUTHORIZED -9002 #define RTAS_OUT_SYSPARM_PARAM_ERROR -9999 =20 @@ -754,8 +762,9 @@ void push_sregs_to_kvm_pr(SpaprMachineState *spapr); #define RTAS_IBM_SUSPEND_ME (RTAS_TOKEN_BASE + 0x2A) #define RTAS_IBM_NMI_REGISTER (RTAS_TOKEN_BASE + 0x2B) #define RTAS_IBM_NMI_INTERLOCK (RTAS_TOKEN_BASE + 0x2C) +#define RTAS_CONFIGURE_KERNEL_DUMP (RTAS_TOKEN_BASE + 0x2D) =20 -#define RTAS_TOKEN_MAX (RTAS_TOKEN_BASE + 0x2D) +#define RTAS_TOKEN_MAX (RTAS_TOKEN_BASE + 0x2E) =20 /* RTAS ibm,get-system-parameter token values */ #define RTAS_SYSPARM_SPLPAR_CHARACTERISTICS 20 diff --git a/include/hw/ppc/spapr_fadump.h b/include/hw/ppc/spapr_fadump.h new file mode 100644 index 0000000000..f64f339204 --- /dev/null +++ b/include/hw/ppc/spapr_fadump.h @@ -0,0 +1,69 @@ +/* + * Firmware Assisted Dump in PSeries + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef PPC_SPAPR_FADUMP_H +#define PPC_SPAPR_FADUMP_H + +#include "qemu/osdep.h" +#include "cpu.h" + +/* Fadump commands */ +#define FADUMP_CMD_REGISTER 1 +#define FADUMP_CMD_UNREGISTER 2 +#define FADUMP_CMD_INVALIDATE 3 + +#define FADUMP_VERSION 1 + +/* + * The Firmware Assisted Dump Memory structure supports a maximum of 10 se= ctions + * in the dump memory structure. Presently, three sections are used for + * CPU state data, HPTE & Parameters area, while the remaining seven secti= ons + * can be used for boot memory regions. + */ +#define FADUMP_MAX_SECTIONS 10 + +typedef struct FadumpSection FadumpSection; +typedef struct FadumpSectionHeader FadumpSectionHeader; +typedef struct FadumpMemStruct FadumpMemStruct; + +struct SpaprMachineState; + +/* Kernel Dump section info */ +/* All fields are in big-endian */ +struct FadumpSection { + uint32_t request_flag; + uint16_t source_data_type; + uint16_t error_flags; + uint64_t source_address; + uint64_t source_len; + uint64_t bytes_dumped; + uint64_t destination_address; +}; + +/* ibm,configure-kernel-dump header. */ +struct FadumpSectionHeader { + uint32_t dump_format_version; + uint16_t dump_num_sections; + uint16_t dump_status_flag; + uint32_t offset_first_dump_section; + + /* Fields for disk dump option. */ + uint32_t dd_block_size; + uint64_t dd_block_offset; + uint64_t dd_num_blocks; + uint32_t dd_offset_disk_path; + + /* Maximum time allowed to prevent an automatic dump-reboot. */ + uint32_t max_time_auto; +}; + +/* Note: All the data in these structures is in big-endian */ +struct FadumpMemStruct { + FadumpSectionHeader header; + FadumpSection rgn[FADUMP_MAX_SECTIONS]; +}; + +uint32_t do_fadump_register(struct SpaprMachineState *, target_ulong); +#endif /* PPC_SPAPR_FADUMP_H */ diff --git a/hw/ppc/spapr_fadump.c b/hw/ppc/spapr_fadump.c new file mode 100644 index 0000000000..2c9f024c2d --- /dev/null +++ b/hw/ppc/spapr_fadump.c @@ -0,0 +1,123 @@ +/* + * Firmware Assisted Dump in PSeries + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/log.h" +#include "hw/ppc/spapr.h" + +/* + * Handle the "FADUMP_CMD_REGISTER" command in 'ibm,configure-kernel-dump' + * + * Note: Any changes made by the kernel to the fadump memory struct won't + * reflect in QEMU after the 'ibm,configure-kernel-dump' RTAS call has ret= urned, + * as we store the passed fadump memory structure passed during fadump + * registration. + * Kernel has to invalidate & re-register fadump, if it intends to make any + * changes to the fadump memory structure + * + * Returns: + * * RTAS_OUT_SUCCESS: On successful registration + * * RTAS_OUT_PARAM_ERROR: If parameters are not correct, eg. too many + * sections, invalid memory addresses that we are + * unable to read, etc + * * RTAS_OUT_DUMP_ALREADY_REGISTERED: Dump already registered + * * RTAS_OUT_HW_ERROR: Misc issue such as memory access failures + */ +uint32_t do_fadump_register(SpaprMachineState *spapr, target_ulong args) +{ + FadumpSectionHeader header; + FadumpSection regions[FADUMP_MAX_SECTIONS] =3D {0}; + target_ulong fdm_addr =3D rtas_ld(args, 1); + target_ulong fdm_size =3D rtas_ld(args, 2); + AddressSpace *default_as =3D &address_space_memory; + MemTxResult io_result; + MemTxAttrs attrs; + uint64_t next_section_addr; + uint16_t dump_num_sections; + + /* Mark the memory transaction as privileged memory access */ + attrs.user =3D 0; + attrs.memory =3D 1; + + if (spapr->fadump_registered) { + /* FADump already registered */ + return RTAS_OUT_DUMP_ALREADY_REGISTERED; + } + + if (spapr->fadump_dump_active) { + return RTAS_OUT_DUMP_ACTIVE; + } + + if (fdm_size < sizeof(FadumpSectionHeader)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Header size is invalid: " TARGET_FMT_lu "\n", fdm_siz= e); + return RTAS_OUT_PARAM_ERROR; + } + + /* Ensure fdm_addr points to a valid RMR-memory/RMA-memory buffer */ + if ((fdm_addr <=3D 0) || ((fdm_addr + fdm_size) > spapr->rma_size)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Invalid fdm address: " TARGET_FMT_lu "\n", fdm_addr); + return RTAS_OUT_PARAM_ERROR; + } + + /* Try to read the passed fadump header */ + io_result =3D address_space_read(default_as, fdm_addr, attrs, + &header, sizeof(header)); + if (io_result !=3D MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Unable to read fdm: " TARGET_FMT_lu "\n", fdm_addr); + + return RTAS_OUT_HW_ERROR; + } + + /* Verify that we understand the fadump header version */ + if (header.dump_format_version !=3D cpu_to_be32(FADUMP_VERSION)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Unknown fadump header version: 0x%x\n", + header.dump_format_version); + return RTAS_OUT_PARAM_ERROR; + } + + /* Reset dump status flags */ + header.dump_status_flag =3D 0; + + dump_num_sections =3D be16_to_cpu(header.dump_num_sections); + + if (dump_num_sections > FADUMP_MAX_SECTIONS) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Too many sections: %d sections\n", dump_num_sections); + return RTAS_OUT_PARAM_ERROR; + } + + next_section_addr =3D + fdm_addr + + be32_to_cpu(header.offset_first_dump_section); + + for (int i =3D 0; i < dump_num_sections; ++i) { + /* Read the fadump section from memory */ + io_result =3D address_space_read(default_as, next_section_addr, at= trs, + ®ions[i], sizeof(regions[i])); + if (io_result !=3D MEMTX_OK) { + qemu_log_mask(LOG_UNIMP, + "FADump: Unable to read fadump %dth section\n", i); + return RTAS_OUT_PARAM_ERROR; + } + + next_section_addr +=3D sizeof(regions[i]); + } + + spapr->fadump_registered =3D true; + spapr->fadump_dump_active =3D false; + + /* Store the registered fadump memory struct */ + spapr->registered_fdm.header =3D header; + for (int i =3D 0; i < dump_num_sections; ++i) { + spapr->registered_fdm.rgn[i] =3D regions[i]; + } + + return RTAS_OUT_SUCCESS; +} diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 143bc8c379..6042fc72e5 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -344,6 +344,73 @@ static void rtas_ibm_set_system_parameter(PowerPCCPU *= cpu, rtas_st(rets, 0, ret); } =20 +/* Papr Section 7.4.9 ibm,configure-kernel-dump RTAS call */ +static void rtas_configure_kernel_dump(PowerPCCPU *cpu, + SpaprMachineState *spapr, + uint32_t token, uint32_t nargs, + target_ulong args, + uint32_t nret, target_ulong rets) +{ + target_ulong cmd =3D rtas_ld(args, 0); + uint32_t ret_val; + + /* Number of outputs has to be 1 */ + if (nret !=3D 1) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: ibm,configure-kernel-dump called with nret !=3D 1.\n"= ); + rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + return; + } + + /* Number of inputs has to be 3 */ + if (nargs !=3D 3) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: ibm,configure-kernel-dump called with nargs !=3D 3.\n= "); + rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + return; + } + + switch (cmd) { + case FADUMP_CMD_REGISTER: + ret_val =3D do_fadump_register(spapr, args); + if (ret_val !=3D RTAS_OUT_SUCCESS) { + rtas_st(rets, 0, ret_val); + return; + } + break; + case FADUMP_CMD_UNREGISTER: + if (spapr->fadump_dump_active) { + rtas_st(rets, 0, RTAS_OUT_DUMP_ACTIVE); + return; + } + + spapr->fadump_registered =3D false; + spapr->fadump_dump_active =3D false; + memset(&spapr->registered_fdm, 0, sizeof(spapr->registered_fdm)); + break; + case FADUMP_CMD_INVALIDATE: + if (!spapr->fadump_dump_active) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Nothing to invalidate, no dump active\n"); + + rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + } + + spapr->fadump_registered =3D false; + spapr->fadump_dump_active =3D false; + memset(&spapr->registered_fdm, 0, sizeof(spapr->registered_fdm)); + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Unknown command: " TARGET_FMT_lu "\n", cmd); + + rtas_st(rets, 0, RTAS_OUT_PARAM_ERROR); + return; + } + + rtas_st(rets, 0, RTAS_OUT_SUCCESS); +} + static void rtas_ibm_os_term(PowerPCCPU *cpu, SpaprMachineState *spapr, uint32_t token, uint32_t nargs, @@ -659,6 +726,10 @@ static void core_rtas_register_types(void) spapr_rtas_register(RTAS_IBM_NMI_INTERLOCK, "ibm,nmi-interlock", rtas_ibm_nmi_interlock); =20 + /* Register fadump rtas call */ + spapr_rtas_register(RTAS_CONFIGURE_KERNEL_DUMP, "ibm,configure-kernel-= dump", + rtas_configure_kernel_dump); + qtest_set_command_cb(spapr_qtest_callback); } =20 diff --git a/hw/ppc/meson.build b/hw/ppc/meson.build index 170b90ae7d..6b7c1f4f49 100644 --- a/hw/ppc/meson.build +++ b/hw/ppc/meson.build @@ -26,6 +26,7 @@ ppc_ss.add(when: 'CONFIG_PSERIES', if_true: files( 'spapr_nvdimm.c', 'spapr_rtas_ddw.c', 'spapr_numa.c', + 'spapr_fadump.c', 'pef.c', )) ppc_ss.add(when: ['CONFIG_PSERIES', 'CONFIG_TCG'], if_true: files( --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220140; cv=none; d=zohomail.com; s=zohoarc; b=Ly0R3p9f6+JqYqPAVMUOg4VBWY/wRcIlqxT8fviFm6uXuEy5k1XHuSwuQ+HPI/z7BfIHSU+1a36GtkS0PAbcuIUtrP2UG0pjC8c8UWRy3JSEp9r3EqtcAfxsw1KqErglgMkNJO3wV2uJxE5OJDE2wt0xxy6Ate99Aqz7YyyDFlY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220140; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=kPGBKPiIs5nX76EZjTNh7xq+nu8zr82vTL9W4BNifQE=; b=DdtUIfyJPJNiKPZdFxwhY62fp/4LlvWblI8XPDJ5omuY6huuIi3lcp3eBMlAm+8/yuak5QEJK8sR4rcDMEMfuAI4CUHr04iOA1spZ0zREpERF1Ag/PFqMCmBnSmpjbtADcBk6RFWEcLueI8meeug15SF0HesitmJ7rUEoVzfcjk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220140478606.3449537167631; Thu, 23 Oct 2025 04:49:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtlA-0002sG-KL; Thu, 23 Oct 2025 07:45:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkx-0002Is-2J for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:23 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkr-0001pO-SG for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:22 -0400 Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7mFTU031838 for ; Thu, 23 Oct 2025 11:45:06 GMT Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v33fhx6u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:06 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N7jWMk011020 for ; Thu, 23 Oct 2025 11:45:05 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqx1d6fj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:05 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj1qj54723062 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:01 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A969320040; Thu, 23 Oct 2025 11:45:01 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9EF4E20049; Thu, 23 Oct 2025 11:45:00 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:00 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=kPGBKP iIs5nX76EZjTNh7xq+nu8zr82vTL9W4BNifQE=; b=Y6HQposEipw51yFUNxjJhu dOVgD0GGJpAzzGAT3iEmlvPuJ2RweCMEpn6cmyttxKsVidA6Ff9J3EnlkcNO5tKp SfcG1ZXjMdt2d5RRs5qZqwWFiYsynVLJvWZK9y0jXwP5KOVU6f1MtbkhTLizAxM8 NBJifsvMb28n87yTwwneprEORIYVK19lG8w8gHm3WCTnUYZrQHsIWc94rEdFr2vO /x5XB0ZghmIC3rw7Yp0JYP5cBwsU9V7WMBvlMCddqE9fXzXtUIAaWNbK4pqbYkC1 cXITS017xfVQ8n6b/5MFCRjGuGrt6cJP5JHdOqErSNNVyGzrdrgkaRi6B/BdcNCA == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 26/32] hw/ppc: Trigger Fadump boot if fadump is registered Date: Thu, 23 Oct 2025 17:14:13 +0530 Message-ID: <20251023114422.3675018-27-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FMYWBuos c=1 sm=1 tr=0 ts=68fa1542 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=EnqhkoKPK9QirTlNTXYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: cwsPXMf8Sq4EVOCemDjTWGaCMp9i4ewP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX2eCrD+4+y20N tvFOXC3UDTeBQaKcf8+gUZ9mLowsfz5Vfkc3whWSV9BoqR7B8B7/XWZoRJTca4l7SbtjaqGVCI4 SeSgoC7CG8j5vlc0ZLyJmlNViH+4zQFHVbj0eeG1YOcCXEHIt4aoJJOTtscDXiMuRVZW9uodo+U 30bM3I+Fu2A8dgkc7sG6tGMxbRVJ4hSBYN/ofatCw1gYoNAzinspkQPta3GRl2nWs7uKGxEUXsd 2D1PbvCMl05hhlREaOqM05TcDDoWVtjrv0pix+D79jqGVCewaOIajmF/sDw3wjfEaK/3B8cw0YK DWFEWobukWQSAqjpE9yh8CYvOV5IhyvLqDylUxz95Dew+8ZO7MW6iQ+T0gazNYpJRj0UM/x+Azf dE8Aj1LF8SbCvfY6dQ2S4AgoGkSYgA== X-Proofpoint-ORIG-GUID: cwsPXMf8Sq4EVOCemDjTWGaCMp9i4ewP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 phishscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220141052158500 From: Aditya Gupta According to PAPR: R1=E2=80=937.3.30=E2=80=933. When the platform receives an ibm,os-term = RTAS call, or on a system reset without an ibm,nmi-interlock RTAS call, if the platform has a dump structure registered through the ibm,configure-kernel-dump call, the platform must process each registered kernel dump section as required and, when available, present the dump structure information to the operating system through the =E2=80=9Cibm,kernel-dump=E2=80=9D property, updated with st= atus for each dump section, until the dump has been invalidated through the ibm,configure-kernel-dump RTAS call. If Fadump has been registered, trigger an Fadump boot (memory preserving boot), if QEMU recieves a 'ibm,os-term' rtas call. Implementing the fadump boot as: * pause all vcpus (will need to save registers later) * preserve memory regions specified by fadump (will be implemented in future) * do a memory preserving reboot (GUEST_RESET in QEMU doesn't clear the memory) Memory regions registered by fadump will be handled in a later patch. Note: Preserving memory regions is not implemented yet so on an "ibm,os-term" call will just trigger a reboot in QEMU if fadump is registered, and the second kernel will boot as a normal boot (not fadump boot) Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-3-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr_fadump.h | 6 +++ hw/ppc/spapr_fadump.c | 77 +++++++++++++++++++++++++++++++++++ hw/ppc/spapr_rtas.c | 5 +++ 3 files changed, 88 insertions(+) diff --git a/include/hw/ppc/spapr_fadump.h b/include/hw/ppc/spapr_fadump.h index f64f339204..1cb90c9d63 100644 --- a/include/hw/ppc/spapr_fadump.h +++ b/include/hw/ppc/spapr_fadump.h @@ -16,6 +16,11 @@ =20 #define FADUMP_VERSION 1 =20 +/* Dump status flags */ +#define FADUMP_STATUS_DUMP_PERFORMED 0x8000 +#define FADUMP_STATUS_DUMP_TRIGGERED 0x4000 +#define FADUMP_STATUS_DUMP_ERROR 0x2000 + /* * The Firmware Assisted Dump Memory structure supports a maximum of 10 se= ctions * in the dump memory structure. Presently, three sections are used for @@ -66,4 +71,5 @@ struct FadumpMemStruct { }; =20 uint32_t do_fadump_register(struct SpaprMachineState *, target_ulong); +void trigger_fadump_boot(struct SpaprMachineState *, target_ulong); #endif /* PPC_SPAPR_FADUMP_H */ diff --git a/hw/ppc/spapr_fadump.c b/hw/ppc/spapr_fadump.c index 2c9f024c2d..53e5c12c76 100644 --- a/hw/ppc/spapr_fadump.c +++ b/hw/ppc/spapr_fadump.c @@ -7,6 +7,7 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "hw/ppc/spapr.h" +#include "system/cpus.h" =20 /* * Handle the "FADUMP_CMD_REGISTER" command in 'ibm,configure-kernel-dump' @@ -121,3 +122,79 @@ uint32_t do_fadump_register(SpaprMachineState *spapr, = target_ulong args) =20 return RTAS_OUT_SUCCESS; } + +/* Preserve the memory locations registered for fadump */ +static bool fadump_preserve_mem(void) +{ + /* + * TODO: Implement preserving memory regions requested during fadump + * registration + */ + return false; +} + +/* + * Trigger a fadump boot, ie. next boot will be a crashkernel/fadump boot + * with fadump dump active. + * + * This is triggered by ibm,os-term RTAS call, if fadump was registered. + * + * It preserves the memory and sets 'FADUMP_STATUS_DUMP_TRIGGERED' as + * fadump status, which can be used later to add the "ibm,kernel-dump" + * device tree node as presence of 'FADUMP_STATUS_DUMP_TRIGGERED' signifies + * next boot as fadump boot in our case + */ +void trigger_fadump_boot(SpaprMachineState *spapr, target_ulong spapr_retc= ode) +{ + FadumpSectionHeader *header =3D &spapr->registered_fdm.header; + + pause_all_vcpus(); + + /* Preserve the memory locations registered for fadump */ + if (!fadump_preserve_mem()) { + /* Failed to preserve the registered memory regions */ + rtas_st(spapr_retcode, 0, RTAS_OUT_HW_ERROR); + + /* Cause a reboot */ + qemu_system_guest_panicked(NULL); + return; + } + + /* + * Mark next boot as fadump boot + * + * Note: These is some bit of assumption involved here, as PAPR doesn't + * specify any use of the dump status flags, nor does the kernel use it + * + * But from description in Table 136 in PAPR v2.13, it looks like: + * FADUMP_STATUS_DUMP_TRIGGERED + * =3D Dump was triggered by the previous system boot (PAPR says) + * =3D Next boot will be a fadump boot (Assumed) + * + * FADUMP_STATUS_DUMP_PERFORMED + * =3D Dump performed (Set to 0 by caller of the + * ibm,configure-kernel-dump call) (PAPR says) + * =3D Firmware has performed the copying/dump of requested regio= ns + * (Assumed) + * =3D Dump is active for the next boot (Assumed) + */ + header->dump_status_flag =3D cpu_to_be16( + FADUMP_STATUS_DUMP_TRIGGERED | /* Next boot will be fadump bo= ot */ + FADUMP_STATUS_DUMP_PERFORMED /* Dump is active */ + ); + + /* Reset fadump_registered for next boot */ + spapr->fadump_registered =3D false; + spapr->fadump_dump_active =3D true; + + /* + * Then do a guest reset + * + * Requirement: + * GUEST_RESET is expected to NOT clear the memory, as is the case when + * this is merged + */ + qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); + + rtas_st(spapr_retcode, 0, RTAS_OUT_SUCCESS); +} diff --git a/hw/ppc/spapr_rtas.c b/hw/ppc/spapr_rtas.c index 6042fc72e5..1f78fe406e 100644 --- a/hw/ppc/spapr_rtas.c +++ b/hw/ppc/spapr_rtas.c @@ -420,6 +420,11 @@ static void rtas_ibm_os_term(PowerPCCPU *cpu, target_ulong msgaddr =3D rtas_ld(args, 0); char msg[512]; =20 + if (spapr->fadump_registered) { + /* If fadump boot works, control won't come back here */ + return trigger_fadump_boot(spapr, rets); + } + cpu_physical_memory_read(msgaddr, msg, sizeof(msg) - 1); msg[sizeof(msg) - 1] =3D 0; =20 --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220134; cv=none; d=zohomail.com; s=zohoarc; b=Oa9yIwh0bPcxcWCUcMH+XOFZIqtnGd/kL+6vPO3Jm4oBdGLM3u4b4Ji03uzXNtGZjRueFtJ1UCaKqiGM4P0MtZd5627o+v6WD2rziuJwoGfyIe1tdAf6ITZXygiXpfk9iR4LWBZYVS7xeLTAAC17aA/EmhSfI9Lxusj3kJHMjHc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220134; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=e5ZRH5Zmk9CV95UyFQSWujU4DCdRUIn5aby8B+0zOBg=; b=UUwi/N2KrLerwNGTkP75RIcoqGZeSmzPeYl/0rz+Zoy/RsOLNTaqyXY9K73/3YOuAFrjL6M0tTD4kdNzRXYQ4u10QpEoY5j5WGYqRoDPgLtyYC2D1gP6cAo4xFAKHdtqiO5ie/J0vDLk5Hr4n9/ZJiJ+cT2BSAeoDnBlyipF1OY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220134285597.7985957013526; Thu, 23 Oct 2025 04:48:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtl8-0002ha-Do; Thu, 23 Oct 2025 07:45:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkw-0002IH-G2 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:22 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkt-0001pZ-3Q for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:22 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N10DfK018793 for ; Thu, 23 Oct 2025 11:45:07 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wdb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:07 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAo5wg002324 for ; Thu, 23 Oct 2025 11:45:06 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9wp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:06 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj3gZ29360450 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:03 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1015B20049; Thu, 23 Oct 2025 11:45:03 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0606020040; Thu, 23 Oct 2025 11:45:02 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:01 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=e5ZRH5Zmk9CV95UyF QSWujU4DCdRUIn5aby8B+0zOBg=; b=V6E2xdMaIb7wWRABXstSyVBD6rNVktKXk xaNH8vDDQoVsVz9qlgaQon2jOeXimCCq3ChGVeU9DlFEePcf5ULEIS9Aoyk8Mcuq 4SeZtKeAnBzebUo0CjGxyRJbvqNhkfu8Uc7CTjOwVM7r+55rwehPX3XpRLMnic6A RlL9gBncE19EfSmObTJlhkSUcVqBBxcJnr9jH6uIu35YjouiwHYqEu435CHGzUt2 TfTdKvAWre80fKd3bxnH3yCHdnYtOdePEgeLP3C2TV0G5tqeHVV6/rM9OpI0a0C8 JkR7S8hFbpcqcKnT2DtZs3W0PX9a1yRKek14LD/rLArFxlt985epA== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 27/32] hw/ppc: Preserve memory regions registered for fadump Date: Thu, 23 Oct 2025 17:14:14 +0530 Message-ID: <20251023114422.3675018-28-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa1543 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=8rT69PE5f5DtODXktdUA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX9K6uldJhdULe mdFXrtgHl3IWAmb+SMU/8V1yZdSn56LNDoDwpBpXwiv8wsxtCS9TFt1g2qoObcnn2pC26OUCfXL I3J9Kno2rMnUDkdp1UvPkcPEbd3OaiCOTZCPikN1T6VwZw2kLf6iX9cJjLnt0uOr4xcQ7MXWail xlrhj4SkRGQCJpYsb+VOYnru/6nXXY5s65VRaZ2OaXHClMMIG2Zhcjr/UmrIG11TDIoSm6Dzt6I CqF+8Dk2egpaA7RVuMbD78UzmaQK31Th/tveFGlQ628kpjj644C6W2vgdyQUxTnXQw7tYUNbWkx fDIShGyRh/1YGke2UDEBpYTx8Nq3Wz8Ad5fuZXc8jehEzkGuYBCo3eSnDqXc8WkQSQsHdiHVpdH vod/qLSAB2y2MVuxJJulaq47Z3DyaQ== X-Proofpoint-GUID: 81mPDdt8gNj-_mcHQ3Q03kSxykgqy_Nx X-Proofpoint-ORIG-GUID: 81mPDdt8gNj-_mcHQ3Q03kSxykgqy_Nx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220135014158500 Content-Type: text/plain; charset="utf-8" From: Aditya Gupta While the first kernel boots, it registers memory regions for fadump such as: * CPU state data (has to be populated by the platform) * HPTE state data (has to be populated by the platform) * Real Mode Regions (platform should copy it to requested destination addresses) * OS defined regions (such as parameter save area) Platform is also expected to modify the 'bytes_dumped' to the length of data preserved/copied by platform (ideally same as the source length passed by kernel). The kernel passes source address and length for the memory regions, and a destination address to where the memory is to be copied. Implement the preserving/copying of the Real Mode Regions and the Parameter Save Area in QEMU Pseries The regions are copied in chunks instead of copying all at once. Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-4-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr_fadump.h | 18 ++++ hw/ppc/spapr_fadump.c | 183 +++++++++++++++++++++++++++++++++- 2 files changed, 196 insertions(+), 5 deletions(-) diff --git a/include/hw/ppc/spapr_fadump.h b/include/hw/ppc/spapr_fadump.h index 1cb90c9d63..71be2ad92c 100644 --- a/include/hw/ppc/spapr_fadump.h +++ b/include/hw/ppc/spapr_fadump.h @@ -16,11 +16,29 @@ =20 #define FADUMP_VERSION 1 =20 +/* Firmware provided dump sections */ +#define FADUMP_CPU_STATE_DATA 0x0001 +#define FADUMP_HPTE_REGION 0x0002 +#define FADUMP_REAL_MODE_REGION 0x0011 + +/* OS defined sections */ +#define FADUMP_PARAM_AREA 0x0100 + +/* Dump request flag */ +#define FADUMP_REQUEST_FLAG 0x00000001 + /* Dump status flags */ #define FADUMP_STATUS_DUMP_PERFORMED 0x8000 #define FADUMP_STATUS_DUMP_TRIGGERED 0x4000 #define FADUMP_STATUS_DUMP_ERROR 0x2000 =20 +/* Region dump error flags */ +#define FADUMP_ERROR_INVALID_DATA_TYPE 0x8000 +#define FADUMP_ERROR_INVALID_SOURCE_ADDR 0x4000 +#define FADUMP_ERROR_LENGTH_EXCEEDS_SOURCE 0x2000 +#define FADUMP_ERROR_INVALID_DEST_ADDR 0x1000 +#define FAUDMP_ERROR_DEST_TOO_SMALL 0x0800 + /* * The Firmware Assisted Dump Memory structure supports a maximum of 10 se= ctions * in the dump memory structure. Presently, three sections are used for diff --git a/hw/ppc/spapr_fadump.c b/hw/ppc/spapr_fadump.c index 53e5c12c76..5068a9d83d 100644 --- a/hw/ppc/spapr_fadump.c +++ b/hw/ppc/spapr_fadump.c @@ -7,7 +7,9 @@ #include "qemu/osdep.h" #include "qemu/log.h" #include "hw/ppc/spapr.h" +#include "qemu/units.h" #include "system/cpus.h" +#include =20 /* * Handle the "FADUMP_CMD_REGISTER" command in 'ibm,configure-kernel-dump' @@ -123,14 +125,185 @@ uint32_t do_fadump_register(SpaprMachineState *spapr= , target_ulong args) return RTAS_OUT_SUCCESS; } =20 +/* + * Copy the source region of given fadump section, to the destination + * address mentioned in the region + * + * Also set the region's error flag, if the copy fails due to non-existent + * address (MEMTX_DECODE_ERROR) or permission issues (MEMTX_ACCESS_ERROR) + * + * Returns true if successful copy + * + * Returns false in case of any other error, being treated as hardware + * error for fadump purposes + */ +static bool do_preserve_region(FadumpSection *region) +{ + AddressSpace *default_as =3D &address_space_memory; + MemTxResult io_result; + MemTxAttrs attrs; + uint64_t src_addr, src_len, dest_addr; + uint64_t num_chunks; + g_autofree void *copy_buffer =3D NULL; + + src_addr =3D be64_to_cpu(region->source_address); + src_len =3D be64_to_cpu(region->source_len); + dest_addr =3D be64_to_cpu(region->destination_address); + + /* Mark the memory transaction as privileged memory access */ + attrs.user =3D 0; + attrs.memory =3D 1; + + /* + * Optimisation: Skip copy if source and destination are same + * (eg. param area) + */ + if (src_addr =3D=3D dest_addr) { + region->bytes_dumped =3D cpu_to_be64(src_len); + return true; + } + +#define FADUMP_CHUNK_SIZE ((size_t)(32 * MiB)) + copy_buffer =3D g_try_malloc(FADUMP_CHUNK_SIZE); + if (copy_buffer =3D=3D NULL) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed allocating memory (size: %zu) for copying" + " reserved memory regions\n", FADUMP_CHUNK_SIZE); + } + + num_chunks =3D ceil((src_len * 1.0f) / FADUMP_CHUNK_SIZE); + for (uint64_t chunk_id =3D 0; chunk_id < num_chunks; ++chunk_id) { + /* Take minimum of bytes left to copy, and chunk size */ + uint64_t copy_len =3D MIN( + src_len - (chunk_id * FADUMP_CHUNK_SIZE), + FADUMP_CHUNK_SIZE + ); + + /* Copy the source region to destination */ + io_result =3D address_space_read(default_as, src_addr, attrs, + copy_buffer, copy_len); + if ((io_result & MEMTX_DECODE_ERROR) || + (io_result & MEMTX_ACCESS_ERROR)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to decode/access address in section: %d\n", + region->source_data_type); + + /* + * Invalid source address is not an hardware error, instead + * wrong parameter from the kernel. + * Return true to let caller know to continue reading other + * sections + */ + region->error_flags =3D FADUMP_ERROR_INVALID_SOURCE_ADDR; + region->bytes_dumped =3D 0; + return true; + } else if (io_result !=3D MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to read source region in section: %d\n", + region->source_data_type); + + return false; + } + + io_result =3D address_space_write(default_as, dest_addr, attrs, + copy_buffer, copy_len); + if ((io_result & MEMTX_DECODE_ERROR) || + (io_result & MEMTX_ACCESS_ERROR)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to decode/access address in section: %d\n", + region->source_data_type); + + /* + * Invalid destination address is not an hardware error, + * instead wrong parameter from the kernel. + * Return true to let caller know to continue reading other + * sections + */ + region->error_flags =3D FADUMP_ERROR_INVALID_DEST_ADDR; + region->bytes_dumped =3D 0; + return true; + } else if (io_result !=3D MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to write destination in section: %d\n", + region->source_data_type); + + return false; + } + + src_addr +=3D FADUMP_CHUNK_SIZE; + dest_addr +=3D FADUMP_CHUNK_SIZE; + } +#undef FADUMP_CHUNK_SIZE + + /* + * Considering address_space_write would have copied the + * complete region + */ + region->bytes_dumped =3D cpu_to_be64(src_len); + return true; +} + /* Preserve the memory locations registered for fadump */ -static bool fadump_preserve_mem(void) +static bool fadump_preserve_mem(SpaprMachineState *spapr) { + FadumpMemStruct *fdm =3D &spapr->registered_fdm; + uint16_t dump_num_sections, data_type; + + assert(spapr->fadump_registered); + /* - * TODO: Implement preserving memory regions requested during fadump - * registration + * Handle all sections + * + * CPU State Data and HPTE regions are handled in their own cases + * + * RMR regions and any custom OS reserved regions such as parameter + * save area, are handled by simply copying the source region to + * destination address */ - return false; + dump_num_sections =3D be16_to_cpu(fdm->header.dump_num_sections); + for (int i =3D 0; i < dump_num_sections; ++i) { + data_type =3D be16_to_cpu(fdm->rgn[i].source_data_type); + + /* Reset error_flags & bytes_dumped for now */ + fdm->rgn[i].error_flags =3D 0; + fdm->rgn[i].bytes_dumped =3D 0; + + /* If kernel did not request for the memory region, then skip it */ + if (be32_to_cpu(fdm->rgn[i].request_flag) !=3D FADUMP_REQUEST_FLAG= ) { + qemu_log_mask(LOG_UNIMP, + "FADump: Skipping copying region as not requested\n"); + continue; + } + + switch (data_type) { + case FADUMP_CPU_STATE_DATA: + /* TODO: Add CPU state data */ + break; + case FADUMP_HPTE_REGION: + /* TODO: Add hpte state data */ + break; + case FADUMP_REAL_MODE_REGION: + case FADUMP_PARAM_AREA: + /* Copy the memory region from region's source to its destinat= ion */ + if (!do_preserve_region(&fdm->rgn[i])) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to preserve dump section: %d\n", + be16_to_cpu(fdm->rgn[i].source_data_type)); + fdm->header.dump_status_flag |=3D + cpu_to_be16(FADUMP_STATUS_DUMP_ERROR); + } + + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Skipping unknown source data type: %d\n", data_ty= pe); + + fdm->rgn[i].error_flags =3D + cpu_to_be16(FADUMP_ERROR_INVALID_DATA_TYPE); + } + } + + return true; } =20 /* @@ -151,7 +324,7 @@ void trigger_fadump_boot(SpaprMachineState *spapr, targ= et_ulong spapr_retcode) pause_all_vcpus(); =20 /* Preserve the memory locations registered for fadump */ - if (!fadump_preserve_mem()) { + if (!fadump_preserve_mem(spapr)) { /* Failed to preserve the registered memory regions */ rtas_st(spapr_retcode, 0, RTAS_OUT_HW_ERROR); =20 --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220001; cv=none; d=zohomail.com; s=zohoarc; b=eNZcXt4uRqTZ1/jn+8V9Fh/ldKDUMmVDriYhadyzTS7i5vZ0z+8JJmJsOqQqfGLu1vuLGcxBRuXi5cLUs4eiJUjq5cjT4sOvEemX1QiuLyoeTLu5rcciAd5AMwxNEouqscMnMlBYlLdvwF1S6wLEMxNvmSWFkp/ngdW1reEGR3Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220001; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=G5m1HjdetVDWVXHFjJnYfx+Onlw+MmmbV4Ew3Z6582w=; b=aVBeiG7IZrvxZnJ4/VCMXbAbGTTRv1/2LBl+Uu/xKXoMLyaESaH3IcecXhU2N3tvG5rXyMKOghr9PkP66rQ5Ah0NVGpxDFSozLD830D63mJxNFV3ULKZfbNx77vkEZp5PymDMYlHS9mdK9oWssw2xTS+EoARtnE6ysyxITtMFxQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220001572587.110514012391; Thu, 23 Oct 2025 04:46:41 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtlF-0003Cz-15; Thu, 23 Oct 2025 07:45:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtky-0002OH-2g for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:24 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtku-0001pl-QO for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:23 -0400 Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9se4N023244 for ; Thu, 23 Oct 2025 11:45:09 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v3271wdg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:09 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAxYjd002281 for ; Thu, 23 Oct 2025 11:45:08 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vqejn9wv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:07 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj4lp38273310 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:04 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 690D020049; Thu, 23 Oct 2025 11:45:04 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 6115D20040; Thu, 23 Oct 2025 11:45:03 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:03 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=G5m1HjdetVDWVXHFj JnYfx+Onlw+MmmbV4Ew3Z6582w=; b=Oj+Iq08RpGEJCX2FkLcKdtykRhGoq3D/n pjFLpK6XYaQnaym1UJW2o6ZEm5L9eDJqsX8Oxq6p+ySoclpE1ZQldef4mEVFV7kD Mw1k/88030F6nRMFEMj/3zKsxSNFn8ljAuMIPJeRWmbtje9Mz+bHN7q9CYvRXuh7 Qw43ZgM5xjG3DvAG4YANTAPKVUgSxF7kVFApU/43aS6YVWMINBWYn9cjsNrbSLAy LidG3Ni69PN8+SlbbL9e45HEQVZgt/Rp919sQ+d5HXor3eJ93aQKT7Wrt2bx1Pmb 1Ad7/LJ3dNndh9NZxe9wBiWw/pKoGZu1haL34NJHMwyToVpua/32Q== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 28/32] hw/ppc: Implement saving CPU state in Fadump Date: Thu, 23 Oct 2025 17:14:15 +0530 Message-ID: <20251023114422.3675018-29-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=EJELElZC c=1 sm=1 tr=0 ts=68fa1545 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=zxgWIWaIXYGjLxZ_zYYA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX7Tp4VIW7SmB4 SqM99wufUEYXrc0iWwbH3e46MXIdhLK4x8BvqWbwWmBwGb56j0s4wozIixTMDnMVhw+R+kFsBEZ 4sUnporKCtnEo1nD7oYqKkh/D7NtNJ4DRjZkMCabDXmXCm5mhK8iKywBXKo2JLj6Xul+gd+wvQR aQfj2oH7rGYHu/BQX46TtW6ixmAL7n/B+AAdYejFrEY5LABZ5KdzRUk5bhCKQYt8Cqyfrw2s+kJ v5whhTdYT15bgTsnNn7Zf3JcGKFVEwS0q1PF7kX7FI19BDnBN+mcSbLHJj0UMMvlAkFvc6EMsXu xF1zXtfrd1/8to/vjrNyr7hlf/fEyFA9KbwYAHufOSocKCwPs+paKmI7/JiEVNSQk8sS96bw6JB qi8bKQ3IXwk2o1/t/JZOgaSgl6ix1A== X-Proofpoint-GUID: jHdSMF1hRFEmdAgFG6WjwWqpfb0F4xSR X-Proofpoint-ORIG-GUID: jHdSMF1hRFEmdAgFG6WjwWqpfb0F4xSR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 spamscore=0 malwarescore=0 phishscore=0 adultscore=0 lowpriorityscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220003039154100 Content-Type: text/plain; charset="utf-8" From: Aditya Gupta Kernel expects CPU states/register states in the format mentioned in "Register Save Area" in PAPR. The platform (in our case, QEMU) saves each CPU register in the form of an array of "register entries", the start and end of this array is signified by "CPUSTRT" and "CPUEND" register entries respectively. The CPUSTRT and CPUEND register entry also has 4-byte logical CPU ID, thus storing the CPU ID corresponding to the array of register entries. Each register, and CPUSTRT, CPUEND has a predefined identifier. Implement calculating identifier for a given register in 'fadump_str_to_u64', which has been taken from the linux kernel Similarly GPRs also have predefined identifiers, and a corresponding 64-bit resiter value (split into two 32-bit cells). Implement calculation of GPR identifiers with 'fadump_gpr_id_to_u64' PAPR has restrictions on particular order of few registers, and is free to be in any order for other registers. Some registers mentioned in PAPR have not been exported as they are not implemented in QEMU / don't make sense in QEMU. Implement saving of CPU state according to the PAPR document Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-5-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- include/hw/ppc/spapr_fadump.h | 31 +++ hw/ppc/spapr_fadump.c | 361 +++++++++++++++++++++++++++++++++- 2 files changed, 390 insertions(+), 2 deletions(-) diff --git a/include/hw/ppc/spapr_fadump.h b/include/hw/ppc/spapr_fadump.h index 71be2ad92c..fde2830e94 100644 --- a/include/hw/ppc/spapr_fadump.h +++ b/include/hw/ppc/spapr_fadump.h @@ -47,9 +47,17 @@ */ #define FADUMP_MAX_SECTIONS 10 =20 +/* Number of register entries stored per cpu */ +#define FADUMP_PER_CPU_REG_ENTRIES (32 /*GPR*/ + 45 /*others*/ + 2 /*STRT = & END*/) + +/* Mask of CPU ID in CPUSTRT and CPUEND entries */ +#define FADUMP_CPU_ID_MASK ((1ULL << 32) - 1) + typedef struct FadumpSection FadumpSection; typedef struct FadumpSectionHeader FadumpSectionHeader; typedef struct FadumpMemStruct FadumpMemStruct; +typedef struct FadumpRegSaveAreaHeader FadumpRegSaveAreaHeader; +typedef struct FadumpRegEntry FadumpRegEntry; =20 struct SpaprMachineState; =20 @@ -88,6 +96,29 @@ struct FadumpMemStruct { FadumpSection rgn[FADUMP_MAX_SECTIONS]; }; =20 +/* + * The firmware-assisted dump format. + * + * The register save area is an area in the partition's memory used to pre= serve + * the register contents (CPU state data) for the active CPUs during a fir= mware + * assisted dump. The dump format contains register save area header follo= wed + * by register entries. Each list of registers for a CPU starts with "CPUS= TRT" + * and ends with "CPUEND". + */ + +/* Register save area header. */ +struct FadumpRegSaveAreaHeader { + uint64_t magic_number; + uint32_t version; + uint32_t num_cpu_offset; +}; + +/* Register entry. */ +struct FadumpRegEntry { + uint64_t reg_id; + uint64_t reg_value; +}; + uint32_t do_fadump_register(struct SpaprMachineState *, target_ulong); void trigger_fadump_boot(struct SpaprMachineState *, target_ulong); #endif /* PPC_SPAPR_FADUMP_H */ diff --git a/hw/ppc/spapr_fadump.c b/hw/ppc/spapr_fadump.c index 5068a9d83d..fdd4929148 100644 --- a/hw/ppc/spapr_fadump.c +++ b/hw/ppc/spapr_fadump.c @@ -9,8 +9,73 @@ #include "hw/ppc/spapr.h" #include "qemu/units.h" #include "system/cpus.h" +#include "system/hw_accel.h" #include =20 +/* + * Copy the ascii values for first 8 characters from a string into u64 + * variable at their respective indexes. + * e.g. + * The string "FADMPINF" will be converted into 0x4641444d50494e46 + */ +static uint64_t fadump_str_to_u64(const char *str) +{ + uint64_t val =3D 0; + int i; + + for (i =3D 0; i < sizeof(val); i++) { + val =3D (*str) ? (val << 8) | *str++ : val << 8; + } + return val; +} + +/** + * Get the identifier id for register entries of GPRs + * + * It gives the same id as 'fadump_str_to_u64' when the complete string id + * of the GPR is given, ie. + * + * fadump_str_to_u64("GPR05") =3D=3D fadump_gpr_id_to_u64(5); + * fadump_str_to_u64("GPR12") =3D=3D fadump_gpr_id_to_u64(12); + * + * And so on. Hence this can be implemented by creating a dynamic + * string for each GPR, such as "GPR00", "GPR01", ... "GPR31" + * Instead of allocating a string, an observation from the math of + * 'fadump_str_to_u64' or from PAPR tells us that there's a pattern + * in the identifier IDs, such that the first 4 bytes are affected only by + * whether it is GPR0*, GPR1*, GPR2*, GPR3*. + * Upper half of 5th byte is always 0x3. Lower half (nibble) of 5th byte + * is the tens digit of the GPR id, ie. GPR ID / 10. + * Upper half of 6th byte is always 0x3. Lower half (nibble) of 5th byte + * is the ones digit of the GPR id, ie. GPR ID % 10 + * + * For example, for GPR 29, the 5th and 6th byte will be 0x32 and 0x39 + */ +static uint64_t fadump_gpr_id_to_u64(uint32_t gpr_id) +{ + uint64_t val =3D 0; + + /* Valid range of GPR id is only GPR0 to GPR31 */ + assert(gpr_id < 32); + + /* Below calculations set the 0th to 5th byte */ + if (gpr_id <=3D 9) { + val =3D fadump_str_to_u64("GPR0"); + } else if (gpr_id <=3D 19) { + val =3D fadump_str_to_u64("GPR1"); + } else if (gpr_id <=3D 29) { + val =3D fadump_str_to_u64("GPR2"); + } else { + val =3D fadump_str_to_u64("GPR3"); + } + + /* Set the 6th byte */ + val |=3D 0x30000000; + val |=3D ((gpr_id % 10) << 24); + + return val; +} + /* * Handle the "FADUMP_CMD_REGISTER" command in 'ibm,configure-kernel-dump' * @@ -243,7 +308,291 @@ static bool do_preserve_region(FadumpSection *region) return true; } =20 -/* Preserve the memory locations registered for fadump */ +/* + * Populate the passed CPUs register entries, in the buffer starting at + * the argument 'curr_reg_entry' + * + * The register entries is an array of pair of register id and register + * value, as described in Table 591/592 in section "H.1 Register Save Area" + * in PAPR v2.13 + * + * Returns pointer just past this CPU's register entries, which can be used + * as the start address for next CPU's register entries + */ +static FadumpRegEntry *populate_cpu_reg_entries(CPUState *cpu, + FadumpRegEntry *curr_reg_entry) +{ + CPUPPCState *env; + PowerPCCPU *ppc_cpu; + uint32_t num_regs_per_cpu =3D 0; + + ppc_cpu =3D POWERPC_CPU(cpu); + env =3D cpu_env(cpu); + num_regs_per_cpu =3D 0; + + /* + * CPUSTRT and CPUEND register entries follow this format: + * + * 8 Bytes Reg ID (BE) | 4 Bytes (0x0) | 4 Bytes Logical CPU ID (BE) + */ + curr_reg_entry->reg_id =3D + cpu_to_be64(fadump_str_to_u64("CPUSTRT")); + curr_reg_entry->reg_value =3D cpu_to_be64( + ppc_cpu->vcpu_id & FADUMP_CPU_ID_MASK); + ++curr_reg_entry; + +#define REG_ENTRY(id, val) \ + do { \ + curr_reg_entry->reg_id =3D \ + cpu_to_be64(fadump_str_to_u64(#id)); \ + curr_reg_entry->reg_value =3D cpu_to_be64(val); \ + ++curr_reg_entry; \ + ++num_regs_per_cpu; \ + } while (0) + + REG_ENTRY(ACOP, env->spr[SPR_ACOP]); + REG_ENTRY(AMR, env->spr[SPR_AMR]); + REG_ENTRY(BESCR, env->spr[SPR_BESCR]); + REG_ENTRY(CFAR, env->spr[SPR_CFAR]); + REG_ENTRY(CIABR, env->spr[SPR_CIABR]); + + /* Save the condition register */ + REG_ENTRY(CR, ppc_get_cr(env)); + + REG_ENTRY(CTR, env->spr[SPR_CTR]); + REG_ENTRY(CTRL, env->spr[SPR_CTRL]); + REG_ENTRY(DABR, env->spr[SPR_DABR]); + REG_ENTRY(DABRX, env->spr[SPR_DABRX]); + REG_ENTRY(DAR, env->spr[SPR_DAR]); + REG_ENTRY(DAWR0, env->spr[SPR_DAWR0]); + REG_ENTRY(DAWR1, env->spr[SPR_DAWR1]); + REG_ENTRY(DAWRX0, env->spr[SPR_DAWRX0]); + REG_ENTRY(DAWRX1, env->spr[SPR_DAWRX1]); + REG_ENTRY(DPDES, env->spr[SPR_DPDES]); + REG_ENTRY(DSCR, env->spr[SPR_DSCR]); + REG_ENTRY(DSISR, env->spr[SPR_DSISR]); + REG_ENTRY(EBBHR, env->spr[SPR_EBBHR]); + REG_ENTRY(EBBRR, env->spr[SPR_EBBRR]); + + REG_ENTRY(FPSCR, env->fpscr); + REG_ENTRY(FSCR, env->spr[SPR_FSCR]); + + /* Save the GPRs */ + for (int gpr_id =3D 0; gpr_id < 32; ++gpr_id) { + curr_reg_entry->reg_id =3D + cpu_to_be64(fadump_gpr_id_to_u64(gpr_id)); + curr_reg_entry->reg_value =3D + cpu_to_be64(env->gpr[gpr_id]); + ++curr_reg_entry; + ++num_regs_per_cpu; + } + + REG_ENTRY(IAMR, env->spr[SPR_IAMR]); + REG_ENTRY(IC, env->spr[SPR_IC]); + REG_ENTRY(LR, env->spr[SPR_LR]); + + REG_ENTRY(MSR, env->msr); + REG_ENTRY(NIA, env->nip); /* NIA */ + REG_ENTRY(PIR, env->spr[SPR_PIR]); + REG_ENTRY(PSPB, env->spr[SPR_PSPB]); + REG_ENTRY(PVR, env->spr[SPR_PVR]); + REG_ENTRY(RPR, env->spr[SPR_RPR]); + REG_ENTRY(SPURR, env->spr[SPR_SPURR]); + REG_ENTRY(SRR0, env->spr[SPR_SRR0]); + REG_ENTRY(SRR1, env->spr[SPR_SRR1]); + REG_ENTRY(TAR, env->spr[SPR_TAR]); + REG_ENTRY(TEXASR, env->spr[SPR_TEXASR]); + REG_ENTRY(TFHAR, env->spr[SPR_TFHAR]); + REG_ENTRY(TFIAR, env->spr[SPR_TFIAR]); + REG_ENTRY(TIR, env->spr[SPR_TIR]); + REG_ENTRY(UAMOR, env->spr[SPR_UAMOR]); + REG_ENTRY(VRSAVE, env->spr[SPR_VRSAVE]); + REG_ENTRY(VSCR, env->vscr); + REG_ENTRY(VTB, env->spr[SPR_VTB]); + REG_ENTRY(WORT, env->spr[SPR_WORT]); + REG_ENTRY(XER, env->spr[SPR_XER]); + + /* + * Ignoring transaction checkpoint and few other registers + * mentioned in PAPR as not supported in QEMU + */ +#undef REG_ENTRY + + /* End the registers for this CPU with "CPUEND" reg entry */ + curr_reg_entry->reg_id =3D + cpu_to_be64(fadump_str_to_u64("CPUEND")); + curr_reg_entry->reg_value =3D cpu_to_be64( + ppc_cpu->vcpu_id & FADUMP_CPU_ID_MASK); + + /* + * Ensure number of register entries saved matches the expected + * 'FADUMP_PER_CPU_REG_ENTRIES' count + * + * This will help catch an error if in future a new register entry + * is added/removed while not modifying FADUMP_PER_CPU_REG_ENTRIES + */ + assert(FADUMP_PER_CPU_REG_ENTRIES =3D=3D num_regs_per_cpu + 2 /*CPUSTR= T+CPUEND*/); + + ++curr_reg_entry; + + return curr_reg_entry; +} + +/* + * Populate the "Register Save Area"/CPU State as mentioned in section "H.1 + * Register Save Area" in PAPR v2.13 + * + * It allocates the buffer for this region, then populates the register + * entries + * + * Returns the pointer to the buffer (which should be deallocated by the + * callers), and sets the size of this buffer in the argument + * 'cpu_state_len' + */ +static void *get_cpu_state_data(uint64_t *cpu_state_len) +{ + FadumpRegSaveAreaHeader reg_save_hdr; + FadumpRegEntry *reg_entries; + FadumpRegEntry *curr_reg_entry; + CPUState *cpu; + + uint32_t num_reg_entries; + uint32_t reg_entries_size; + uint32_t num_cpus =3D 0; + + void *cpu_state_buffer =3D NULL; + uint64_t offset =3D 0; + + CPU_FOREACH(cpu) { + ++num_cpus; + } + + reg_save_hdr.version =3D cpu_to_be32(0); + reg_save_hdr.magic_number =3D + cpu_to_be64(fadump_str_to_u64("REGSAVE")); + + /* Reg save area header is immediately followed by num cpus */ + reg_save_hdr.num_cpu_offset =3D + cpu_to_be32(sizeof(FadumpRegSaveAreaHeader)); + + num_reg_entries =3D num_cpus * FADUMP_PER_CPU_REG_ENTRIES; + reg_entries_size =3D num_reg_entries * sizeof(FadumpRegEntry); + + reg_entries =3D g_new(FadumpRegEntry, num_reg_entries); + + /* Pointer to current CPU's registers */ + curr_reg_entry =3D reg_entries; + + /* Populate register entries for all CPUs */ + CPU_FOREACH(cpu) { + cpu_synchronize_state(cpu); + curr_reg_entry =3D populate_cpu_reg_entries(cpu, curr_reg_entry); + } + + *cpu_state_len =3D 0; + *cpu_state_len +=3D sizeof(reg_save_hdr); /* reg save header */ + *cpu_state_len +=3D 0xc; /* padding as in PAPR */ + *cpu_state_len +=3D sizeof(__be32); /* num_cpus */ + *cpu_state_len +=3D reg_entries_size; /* reg entries */ + + cpu_state_buffer =3D g_malloc(*cpu_state_len); + + memcpy(cpu_state_buffer + offset, + ®_save_hdr, sizeof(reg_save_hdr)); + offset +=3D sizeof(reg_save_hdr); + + /* Write num_cpus */ + num_cpus =3D cpu_to_be32(num_cpus); + memcpy(cpu_state_buffer + offset, &num_cpus, sizeof(__be32)); + offset +=3D sizeof(__be32); + + /* Write the register entries */ + memcpy(cpu_state_buffer + offset, reg_entries, reg_entries_size); + offset +=3D reg_entries_size; + + return cpu_state_buffer; +} + +/* + * Save the CPU State Data (aka "Register Save Area") in given region + * + * Region argument is expected to be of CPU_STATE_DATA type + * + * Returns false only in case of Hardware Error, such as failure to + * read/write a valid address. + * + * Otherwise, even in case of unsuccessful copy of CPU state data for reas= ons + * such as invalid destination address or non-fatal error errors likely + * caused due to invalid parameters, return true and set region->error_fla= gs + */ +static bool do_populate_cpu_state(FadumpSection *region) +{ + uint64_t dest_addr =3D be64_to_cpu(region->destination_address); + uint64_t cpu_state_len =3D 0; + g_autofree void *cpu_state_buffer =3D NULL; + AddressSpace *default_as =3D &address_space_memory; + MemTxResult io_result; + MemTxAttrs attrs; + + assert(region->source_data_type =3D=3D cpu_to_be16(FADUMP_CPU_STATE_DA= TA)); + + /* Mark the memory transaction as privileged memory access */ + attrs.user =3D 0; + attrs.memory =3D 1; + + cpu_state_buffer =3D get_cpu_state_data(&cpu_state_len); + + io_result =3D address_space_write(default_as, dest_addr, attrs, + cpu_state_buffer, cpu_state_len); + if ((io_result & MEMTX_DECODE_ERROR) || + (io_result & MEMTX_ACCESS_ERROR)) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to decode/access address in CPU State Region's" + " destination address: 0x%016" PRIx64 "\n", dest_addr); + + /* + * Invalid source address is not an hardware error, instead + * wrong parameter from the kernel. + * Return true to let caller know to continue reading other + * sections + */ + region->error_flags =3D FADUMP_ERROR_INVALID_SOURCE_ADDR; + region->bytes_dumped =3D 0; + return true; + } else if (io_result !=3D MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to write CPU state region.\n"); + + return false; + } + + /* + * Set bytes_dumped in cpu state region, so kernel knows platform have + * exported it + */ + region->bytes_dumped =3D cpu_to_be64(cpu_state_len); + + if (region->source_len !=3D region->bytes_dumped) { + /* + * Log the error, but don't fail the dump collection here, let + * kernel handle the mismatch + */ + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Mismatch in CPU State region's length exported:" + " Kernel expected: 0x%" PRIx64 " bytes," + " QEMU exported: 0x%" PRIx64 " bytes\n", + be64_to_cpu(region->source_len), + be64_to_cpu(region->bytes_dumped)); + } + + return true; +} + +/* + * Preserve the memory locations registered for fadump + * + * Returns false only in case of RTAS_OUT_HW_ERROR, otherwise true + */ static bool fadump_preserve_mem(SpaprMachineState *spapr) { FadumpMemStruct *fdm =3D &spapr->registered_fdm; @@ -277,7 +626,15 @@ static bool fadump_preserve_mem(SpaprMachineState *spa= pr) =20 switch (data_type) { case FADUMP_CPU_STATE_DATA: - /* TODO: Add CPU state data */ + if (!do_populate_cpu_state(&fdm->rgn[i])) { + qemu_log_mask(LOG_GUEST_ERROR, + "FADump: Failed to store CPU State Data"); + fdm->header.dump_status_flag |=3D + cpu_to_be16(FADUMP_STATUS_DUMP_ERROR); + + return false; + } + break; case FADUMP_HPTE_REGION: /* TODO: Add hpte state data */ --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220269; cv=none; d=zohomail.com; s=zohoarc; b=PBpnhXf4ayH8PZhzHb2Ta4yH+goYQaH+D1td/iXHcIxGFDb6xBOnQcrOdZa78HK59F3omouOnSU6Cati2EQE0kvTtXePqJoShNf3FTdDy/TpKwIoqPchOpNhfwBFAMFFmdyBtOZaP3uk0Hqvqo1z3mfJ1vyjlDh0HFGgm6ofbvM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220269; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=ygRf9NyfBUDoDxvgYFqY0DYBipiX5f6R1l75fevs5k0=; b=k2zDBfWlRvE7jCfIEdFOKNjWSrwWlqtgcG8TtHkWjmnnGMZfnEKDXBnmgWGxuIH2ghmzGGjBrIsuAWycnqBTZW3Nn1DPLAM+VQEYx3+QXGicqRhr8NSYmjD/2RiF5zlD/BaG7rtDKXKaRT0K5h8iQN8Ui4r87/3Hx4QuUt7mrGo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17612202690701006.5330629840138; Thu, 23 Oct 2025 04:51:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtkt-00027b-A8; Thu, 23 Oct 2025 07:45:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtko-0001l9-3k for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:14 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkl-0001pv-96 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:13 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N990kJ002342 for ; Thu, 23 Oct 2025 11:45:10 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31cgj3a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:10 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8VA7A014663 for ; Thu, 23 Oct 2025 11:45:09 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdppu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:09 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj5mj52166934 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:05 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C32E620049; Thu, 23 Oct 2025 11:45:05 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B979F20040; Thu, 23 Oct 2025 11:45:04 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:04 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=ygRf9NyfBUDoDxvgY FqY0DYBipiX5f6R1l75fevs5k0=; b=O/pAL1+tEN0cI63zR4P3HiNR5FGO9jmwM Ac6JHvSjwWjfmX36TBFHJScDqU0GcHopbEl/XsfhJTWIpjon/xOyggFGnYI5R1hT S+H776F+t01fWeuAfm8IZUYbIwGoaNJckivn9rD0xabyHhmkgzHTrgvQMsa4J2k/ UY32fCJ/s1bpngOqBiWhKzkBUOc/oOiAerpyvYKDBHMRHlCupy9ksH4FkLSr3vHS 0UtU9oYlA9839qbSUFIIZnnRrFRbST92bwys+1Y9y13XFmsECeH5O1gylg2QoeTS XF8EdLnFHj6rDXuNmpgMyexHjMoTgw0pF8bVH7BeUsF1B0Q+7aCVg== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 29/32] hw/ppc: Pass dump-sizes property for fadump in device tree Date: Thu, 23 Oct 2025 17:14:16 +0530 Message-ID: <20251023114422.3675018-30-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: SKwi05ohmzNjDMO-4TVe5bXdmMgfjpi5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX4pTylZOufuM3 muwH1bkSU43kZnGlYWLWG/Xnk61a6yNpKbd+E923EgH7pMY7ZfZ8Wk0alP2M8ZIdj9uMj6hD1hb pbPfZeSNxulOGsFRt56XrIFUxMnyJHQ0u+t9FSBx2N3gTLJb20RlizydyB+dxUYG8ipN/98v5Q1 7+wNLI0zCDv6SkcU4eihq2KoQ2YzLU4z9z7x61VrggGQ7RxCmAaggivBRmhkBBrA7I5X3zFOMUq vSvN1gZ+WP27yFnCwqkNGFHSwch47fBa2O5Pv+1bS4uvq0r+BQzrgjKn3Bro9igakpgvq6jg6gK 4eXT36O+M/A4AbB079sxvo6PxICz8sXLm0vVGVpWjSLnfyoUlCzSEIli6cOLdcnlZ62tGigfp4H ij5NCOtq8Cj7IDsI8ZoMuWtol7aBNA== X-Proofpoint-GUID: SKwi05ohmzNjDMO-4TVe5bXdmMgfjpi5 X-Authority-Analysis: v=2.4 cv=SKNPlevH c=1 sm=1 tr=0 ts=68fa1546 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=fff_gh8wo2OfEAVniKgA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220272496158500 Content-Type: text/plain; charset="utf-8" From: Aditya Gupta Platform (ie. QEMU) is expected to pass few device tree properties for details for fadump: * "ibm,configure-kernel-dump-sizes": Space required to store dump data for firmware provided dump sections (ie. CPU & HPTE regions) * "ibm,configure-kernel-dump-version": Versions of fadump supported Pass the above device tree nodes so that kernel can reserve sufficient space for preserving the CPU state data Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-6-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr.c | 57 +++++++++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_fadump.c | 6 ++--- 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 117da76a3d..d6cfb9acbc 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -900,6 +900,61 @@ static int spapr_dt_rng(void *fdt) return ret ? -1 : 0; } =20 +static void spapr_dt_rtas_fadump(SpaprMachineState *spapr, void *fdt, int = rtas) +{ + MachineState *ms =3D MACHINE(spapr); + MachineClass *mc =3D MACHINE_GET_CLASS(ms); + + uint32_t max_possible_cpus =3D mc->possible_cpu_arch_ids(ms)->len; + uint64_t fadump_cpu_state_size =3D 0; + uint16_t fadump_versions[2] =3D { + FADUMP_VERSION /* min supported version */, + FADUMP_VERSION /* max supported version */ + }; + uint32_t fadump_rgn_sizes[2][3] =3D { + { + cpu_to_be32(FADUMP_CPU_STATE_DATA), + 0, 0 /* Calculated later */ + }, + { + cpu_to_be32(FADUMP_HPTE_REGION), + 0, 0 /* HPTE region not implemented */ + } + }; + + /* + * CPU State Data contains multiple fields such as header, num_cpus and + * register entries + * + * Calculate the maximum CPU State Data size, according to maximum + * possible CPUs the QEMU VM can have + * + * This calculation must match the 'cpu_state_len' calculation done in + * 'populate_cpu_state_data' in spapr_fadump.c + */ + fadump_cpu_state_size +=3D sizeof(struct FadumpRegSaveAreaHeader); + fadump_cpu_state_size +=3D 0xc; /* padding as in = PAPR */ + fadump_cpu_state_size +=3D sizeof(uint32_t); /* num_cpus */ + fadump_cpu_state_size +=3D max_possible_cpus * /* reg entries */ + FADUMP_PER_CPU_REG_ENTRIES * + sizeof(struct FadumpRegEntry); + + /* Set maximum size for CPU state data region */ + assert(fadump_rgn_sizes[0][0] =3D=3D cpu_to_be32(FADUMP_CPU_STATE_DATA= )); + + /* Upper 32 bits of size, usually 0 */ + fadump_rgn_sizes[0][1] =3D cpu_to_be32(fadump_cpu_state_size >> 32); + + /* Lower 32 bits of size */ + fadump_rgn_sizes[0][2] =3D cpu_to_be32(fadump_cpu_state_size & 0xfffff= fff); + + /* Add device tree properties required from platform for fadump */ + _FDT((fdt_setprop(fdt, rtas, "ibm,configure-kernel-dump-version", + fadump_versions, sizeof(fadump_versions)))); + _FDT((fdt_setprop(fdt, rtas, "ibm,configure-kernel-dump-sizes", + fadump_rgn_sizes, sizeof(fadump_rgn_sizes)))); +} + static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) { MachineState *ms =3D MACHINE(spapr); @@ -1015,6 +1070,8 @@ static void spapr_dt_rtas(SpaprMachineState *spapr, v= oid *fdt) _FDT(fdt_setprop(fdt, rtas, "ibm,lrdr-capacity", lrdr_capacity, sizeof(lrdr_capacity))); =20 + spapr_dt_rtas_fadump(spapr, fdt, rtas); + spapr_dt_rtas_tokens(fdt, rtas); } =20 diff --git a/hw/ppc/spapr_fadump.c b/hw/ppc/spapr_fadump.c index fdd4929148..fa3aeac94c 100644 --- a/hw/ppc/spapr_fadump.c +++ b/hw/ppc/spapr_fadump.c @@ -492,7 +492,7 @@ static void *get_cpu_state_data(uint64_t *cpu_state_len) *cpu_state_len =3D 0; *cpu_state_len +=3D sizeof(reg_save_hdr); /* reg save header */ *cpu_state_len +=3D 0xc; /* padding as in PAPR */ - *cpu_state_len +=3D sizeof(__be32); /* num_cpus */ + *cpu_state_len +=3D sizeof(num_cpus); /* num_cpus */ *cpu_state_len +=3D reg_entries_size; /* reg entries */ =20 cpu_state_buffer =3D g_malloc(*cpu_state_len); @@ -503,8 +503,8 @@ static void *get_cpu_state_data(uint64_t *cpu_state_len) =20 /* Write num_cpus */ num_cpus =3D cpu_to_be32(num_cpus); - memcpy(cpu_state_buffer + offset, &num_cpus, sizeof(__be32)); - offset +=3D sizeof(__be32); + memcpy(cpu_state_buffer + offset, &num_cpus, sizeof(num_cpus)); + offset +=3D sizeof(num_cpus); =20 /* Write the register entries */ memcpy(cpu_state_buffer + offset, reg_entries, reg_entries_size); --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220224; cv=none; d=zohomail.com; s=zohoarc; b=TBTMq6rpkrt62B8gtgfUn4UsSV3MKGxwc2NYsRgv+alEhSypI+QGxcXHatevCO/72KTRpHPRzJfes/U0wJNaINggyIdUJHf9bRDduCAwOVltAsNFWc/6/8MnwjgfOitfnEo9/bqvjFA1o/ZQnv6KTtxnGapw2AKxclN1hnGOq7Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220224; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=re1vd8/1Y7prOt3uKPfK5x3KjnvSzaWw1Duzi0t8l50=; b=ZCAXHy1+cFAUG/dlvHmbxKC7dKJK9c9CL4kHlG8yiPpZPHXDsxi9JsR20fUF9Qn+80Gr+4KzhSR135UERzqW9LjkUkjdvTKZBuheoyltbPSTIFWpLWJFBJvu3uhr/ZTtEpKeDd+S8329FoDY+D24JfEkv0IOZZGF46YZh8TxgJ0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176122022481790.9501885363178; Thu, 23 Oct 2025 04:50:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtky-0002Pb-Kx; Thu, 23 Oct 2025 07:45:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkq-0001ru-C3 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:16 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkn-0001ql-3t for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:15 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N4v8qm025774 for ; Thu, 23 Oct 2025 11:45:12 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v32hrcq6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:11 +0000 (GMT) Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59NAgTRg024953 for ; Thu, 23 Oct 2025 11:45:11 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vpqk5dtu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:11 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj7JN21299748 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:07 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2E3512004B; Thu, 23 Oct 2025 11:45:07 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2124020040; Thu, 23 Oct 2025 11:45:06 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:05 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=re1vd8/1Y7prOt3uK PfK5x3KjnvSzaWw1Duzi0t8l50=; b=pbKVbH5i8VmcZHnC7ujKj6PFPhuevNEvc eSKTLZ3qM3/v8YUjJcFp+8FTWhC2Mdrz2guE1XFG10LHIeFl1ZGq4nT78mTD/kka Su6ExVzIyBGkyblmts8gvRdDTVWWRnN9Aysz2s6Vyz5ZYI0MEGcApcNDAUS5AVCn PT5AdjUXoDs+eOy45FTPcP3qMLlTgSbw+DqJOGWtan7cGazozS/P+SgreD3I+tx5 3JKRDnvu/SQSUjg60hQIJUpVA26gGyUo/VO3P42JVZUY5e7J7UlO+lni7KfDxz7g SVM4fO6uV2mlQwTMHiFao019BBr5jZlfbzWMrLT2vFRmTaqbm5i6A== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 30/32] hw/ppc: Enable fadump for PSeries Date: Thu, 23 Oct 2025 17:14:17 +0530 Message-ID: <20251023114422.3675018-31-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfXwQXTUQ3adSN9 tLvz/t8C6NQxPsSXtXDDVaJWQwRSVptYGT2MSp7p1TDuGiBM9PIVGeBr1XP0wiZXYiHTUvzdm+b EGVCGQbYVTN4Mn0EoLNJeBSxbpnK5zm7eMS6n3vtCRw8T+AAUKEA6ocLYSVraMLefKyNMM6K8mw tzGXbQ4+Iy1TEOrIeM8WUq7lWEV4Dr5DxtMQZFxdrZJzuTRc3rkodhpb0QCXp1/L6K4uV5xtI87 DiqvlDESiFBy4FGpGDG8OANimP9SarOxxSki/XPOOcuJrPdvi0Z5ylQAzKCq+/vXCc7brIRON1E 7dFkMXpD//sDsHaF6cB677MyGFXmY1fcoyhh9gmVvHsxnzZzBprgPcnn59uesLGt5rFtLjRQujK bqHD1dQ4Tb9ERK2zD/hDTJh+Xk4/3A== X-Authority-Analysis: v=2.4 cv=OrVCCi/t c=1 sm=1 tr=0 ts=68fa1548 cx=c_pps a=3Bg1Hr4SwmMryq2xdFQyZA==:117 a=3Bg1Hr4SwmMryq2xdFQyZA==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=B08fgxTpJCymiiQPXHEA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-GUID: dytGWCsjOBcSx9L4y_U4OHyRabhKFsT4 X-Proofpoint-ORIG-GUID: dytGWCsjOBcSx9L4y_U4OHyRabhKFsT4 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 priorityscore=1501 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220230056158500 Content-Type: text/plain; charset="utf-8" From: Aditya Gupta With all support in place for preserving memory regions, enable fadump by exporting the "ibm,kernel-dump" property in the device tree, representing the fadump dump information, in case of a crash. Currently "ibm,configure-kernel-dump" RTAS call is already registered, which tells the kernel that the platform (QEMU) supports fadump. Now, in case of a crash, if fadump was registered, we also pass "ibm,kernel-dump" in device tree, which tells the kernel that the fadump dump is active. Pass "fadump=3Don" to enable Linux to use firmware assisted dump. Logs of a linux boot with firmware assisted dump: $ ./build/qemu-system-ppc64 -M pseries,x-vof=3Don --cpu power10 --smp 4= -m 4G -kernel some-vmlinux -initrd some-initrd -append "debug fadump=3Don = crashkernel=3D1G" -nographic [ 0.000000] fadump: Reserved 1024MB of memory at 0x00000040000000 (S= ystem RAM: 4096MB) [ 0.000000] fadump: Initialized 0x40000000 bytes cma area at 1024MB = from 0x400102a8 bytes of memory reserved for firmware-assisted dump ... [ 1.084686] rtas fadump: Registration is successful! ... # cat /sys/kernel/debug/powerpc/fadump_region CPU :[0x00000040000000-0x000000400013df] 0x13e0 bytes, Dumped: 0x0 HPTE:[0x000000400013e0-0x000000400013df] 0x0 bytes, Dumped: 0x0 DUMP: Src: 0x00000000000000, Dest: 0x00000040010000, Size: 0x40000000, = Dumped: 0x0 bytes [0x0000000921a000-0x0000000921a7ff]: cmdline append: '' # echo c > /proc/sysrq-trigger The fadump boot after crash: [ 0.000000] rtas fadump: Firmware-assisted dump is active. [ 0.000000] fadump: Updated cmdline: debug fadump=3Don crashkernel= =3D1G [ 0.000000] fadump: Firmware-assisted dump is active. [ 0.000000] fadump: Reserving 3072MB of memory at 0x00000040000000 f= or preserving crash data .... # file /proc/vmcore /proc/vmcore: ELF 64-bit LSB core file, 64-bit PowerPC or cisco 7500, O= penPOWER ELF V2 ABI, version 1 (SYSV), SVR4-style Analysing the vmcore with crash-utility: KERNEL: vmlinux-6.14-rc2 DUMPFILE: vmcore-fc92fb373aa0 CPUS: 4 DATE: Wed Mar 12 23:39:23 CDT 2025 UPTIME: 00:00:22 LOAD AVERAGE: 0.13, 0.03, 0.01 TASKS: 95 NODENAME: buildroot RELEASE: 6.12.0-rc4+ VERSION: #1 SMP Fri Jan 3 00:15:17 IST 2025 MACHINE: ppc64le (1000 Mhz) MEMORY: 4 GB PANIC: "Kernel panic - not syncing: sysrq triggered crash" PID: 269 COMMAND: "sh" TASK: c00000000a050b00 [THREAD_INFO: c00000000a050b00] CPU: 0 STATE: TASK_RUNNING (PANIC) Signed-off-by: Aditya Gupta Reviewed-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-7-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- hw/ppc/spapr.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index d6cfb9acbc..6764730beb 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -904,6 +904,8 @@ static void spapr_dt_rtas_fadump(SpaprMachineState *spa= pr, void *fdt, int rtas) { MachineState *ms =3D MACHINE(spapr); MachineClass *mc =3D MACHINE_GET_CLASS(ms); + FadumpMemStruct *fdm =3D &spapr->registered_fdm; + uint16_t dump_status_flag; =20 uint32_t max_possible_cpus =3D mc->possible_cpu_arch_ids(ms)->len; uint64_t fadump_cpu_state_size =3D 0; @@ -953,6 +955,16 @@ static void spapr_dt_rtas_fadump(SpaprMachineState *sp= apr, void *fdt, int rtas) fadump_versions, sizeof(fadump_versions)))); _FDT((fdt_setprop(fdt, rtas, "ibm,configure-kernel-dump-sizes", fadump_rgn_sizes, sizeof(fadump_rgn_sizes)))); + + dump_status_flag =3D be16_to_cpu(fdm->header.dump_status_flag); + if (dump_status_flag & FADUMP_STATUS_DUMP_TRIGGERED) { + uint64_t fdm_size =3D + sizeof(struct FadumpSectionHeader) + + (be16_to_cpu(fdm->header.dump_num_sections) * + sizeof(struct FadumpSection)); + + _FDT((fdt_setprop(fdt, rtas, "ibm,kernel-dump", fdm, fdm_size))); + } } =20 static void spapr_dt_rtas(SpaprMachineState *spapr, void *fdt) --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220223; cv=none; d=zohomail.com; s=zohoarc; b=Eeqg3SI5iGai2tTDsq05bhTlSJiHIyAHLgFefVk0puYHrSlMVgTiy4c9Bv+mR9ysfcL8Eq7hPj+l1iLQf2L16uK6AhUTqbEcgjD0UTf5Qo5ydmOGI/KYlhzqg6MtnJwGN1Nl37nKIEAotLhqw1Ce6mlcmW3cWpjxssbKG4Gv9to= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220223; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=boZzhnriNTM7WhjeobiFLf3wFyDVDG3ktmyfi+fB4Zs=; b=k8z0aq0wzpCEk1NIFVKv2Bz35d4EbevJHziXqBCMiaHHJLvDvJNi72xNxERDDHB89BNCJ1Fas+lLZoudwRNbD4RnHeno5BWZ0LuCa1KzFnLeVpXJn9JvPIs2JlnkzwTXVWutU9icLDfnfsPy597rJZiUeR6ZEdnN840UoVaCuE8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220223459197.54192402741978; Thu, 23 Oct 2025 04:50:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtlD-0002v7-3q; Thu, 23 Oct 2025 07:45:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtl1-0002XA-D2 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:27 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtky-0001rK-Kn for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:27 -0400 Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N37158027350 for ; Thu, 23 Oct 2025 11:45:13 GMT Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31s9wbu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:12 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N8Inmu014658 for ; Thu, 23 Oct 2025 11:45:12 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 49vn7sdpq0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:12 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj8Lo49676746 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:08 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 62F4D20049; Thu, 23 Oct 2025 11:45:08 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 80BF920040; Thu, 23 Oct 2025 11:45:07 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:07 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=boZzhnriNTM7Whjeo biFLf3wFyDVDG3ktmyfi+fB4Zs=; b=AX+bUAT4TJU0tcaDhfquWT2qSLdpI7D6a QIbgXZu3nI16cYvSJC276qQGnDtNu1EKeqNTzTmEVkf3z3BBHVioBmtmRLY9kDSI G+OV0pOIFpd3QgvpXMJ2iz7RQHEGhUuqDjMU6OycsVC3meUUwbOwqJpY1cQzRvDc aATNGRvS7GLgC7tRwVLjM87ceSz68FPYi3jbptcge1NyN9JryyDYLoLqmTaoAx7z 5vJfBzLMtxEH1afDLsD8bk+W+Q9Eipv0jOSlmo1v9EoKzhDTcVBGjj2c8HTdXVdy 1aEc0WdW9opAsQCjv55CVNdsGNoze92aLBFqJPFp3kUx6OwDqI9WA== From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Shivang Upadhyay Subject: [PULL 31/32] tests/functional: Add test for fadump in PSeries Date: Thu, 23 Oct 2025 17:14:18 +0530 Message-ID: <20251023114422.3675018-32-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 7ydDpxNjYLn7g1z2iq4wmrwfP2i7GJ2B X-Proofpoint-GUID: 7ydDpxNjYLn7g1z2iq4wmrwfP2i7GJ2B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX9tYmXz+n7Lrm s5l3vq5dJQaPZMmc59OAUFxBewpW6pcrKdVUpfknhPvvmIfPdglmkxuwwL9dixO0s5S3eWesWjG /CGa+T/8ZpmkZmrMkZJt6VPfKBomkJGiocFr+ENy7rUzG1329iQOyp/puvMlFWRW9UFU0l5nuc8 v/2mM0GLl5I5H0IHEI0km9YyNNhA2KJIgBSLx/kFdxpBAb2OwdIXydzYm7NpNAc+MLBufVRm7as +Wssx7/BAb4g5jNLih/NekybGdpUZqoTLw8FRGk0gErixKrb8/G88PHx7MmQIKI6nzQ22GUfmMy bemALR0fmuGqiE2z5uMCRJ+IgAVHIVkOk5dr83eG3vj2ZdJOzITGB5mAs1obXanMpX6p86gbQjz CJmowsxxvXvauhOC7Kjss/tGweFSNg== X-Authority-Analysis: v=2.4 cv=IJYPywvG c=1 sm=1 tr=0 ts=68fa1549 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=NEAV23lmAAAA:8 a=vTr9H3xdAAAA:8 a=Gr56plS7bk8yA4v_bscA:9 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 suspectscore=0 spamscore=0 bulkscore=0 adultscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.156.1; envelope-from=harshpb@linux.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220230137158500 Content-Type: text/plain; charset="utf-8" From: Aditya Gupta Add testcases for testing fadump with PSeries and PSeries+KVM combinations It tests if fadump is successfully detected and registered in the first kernel boot. Then crashes the kernel, and verifies whether we have a /proc/vmcore in the 2nd boot Also introduce 'wait_for_regex_console_pattern' to check for cases where there is a single success message, but can have multiple failure messages. This is particularly useful for cases such as fadump, where the success message is "Reserved 1024MB ... successfully" But at the same point, it can fail with multiple errors such as "Not supported" or "Allocation failed" 'wait_for_regex_console_pattern' also has a timeout, for cases when we know the success/failure should appear in a short amount of time, instead of waiting for the much longer test timeout, such as kernels with support of fadump will print the success/failure in earlyboot of the kernel, while kernel without support of fadump won't print anything for long time, and without a timeout the testcase keeps waiting till longer test timeout Signed-off-by: Aditya Gupta Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-8-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- tests/functional/ppc64/meson.build | 2 + tests/functional/ppc64/test_fadump.py | 182 ++++++++++++++++++++++ tests/functional/qemu_test/linuxkernel.py | 59 +++++++ 3 files changed, 243 insertions(+) create mode 100755 tests/functional/ppc64/test_fadump.py diff --git a/tests/functional/ppc64/meson.build b/tests/functional/ppc64/me= son.build index 1fa0a70f7e..f0f8ab8f61 100644 --- a/tests/functional/ppc64/meson.build +++ b/tests/functional/ppc64/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-or-later =20 test_ppc64_timeouts =3D { + 'fadump' : 480, 'hv' : 1000, 'mac99' : 120, 'powernv' : 480, @@ -16,6 +17,7 @@ tests_ppc64_system_quick =3D [ =20 tests_ppc64_system_thorough =3D [ 'e500', + 'fadump', 'hv', 'mac99', 'powernv', diff --git a/tests/functional/ppc64/test_fadump.py b/tests/functional/ppc64= /test_fadump.py new file mode 100755 index 0000000000..2d6b8017e8 --- /dev/null +++ b/tests/functional/ppc64/test_fadump.py @@ -0,0 +1,182 @@ +#!/usr/bin/env python3 +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from unittest import skip +from qemu_test import Asset +from qemu_test import wait_for_console_pattern +from qemu_test import LinuxKernelTest +from qemu_test import exec_command, exec_command_and_wait_for_pattern + +class QEMUFadump(LinuxKernelTest): + """ + Functional test to verify Fadump is working in following scenarios: + + 1. test_fadump_pseries: PSeries + 2. test_fadump_pseries_kvm: PSeries + KVM + """ + + timeout =3D 90 + KERNEL_COMMON_COMMAND_LINE =3D 'console=3Dhvc0 fadump=3Don ' + msg_panic =3D 'Kernel panic - not syncing' + msg_not_supported =3D 'Firmware-Assisted Dump is not supported on this= hardware' + msg_registered_success =3D '' + msg_registered_failed =3D '' + msg_dump_active =3D '' + + ASSET_EPAPR_KERNEL =3D Asset( + ('https://github.com/open-power/op-build/releases/download/v2.7/' + 'zImage.epapr'), + '0ab237df661727e5392cee97460e8674057a883c5f74381a128fa772588d45cd') + + ASSET_VMLINUZ_KERNEL =3D Asset( + ('https://archives.fedoraproject.org/pub/archive/fedora-secondary/' + 'releases/39/Everything/ppc64le/os/ppc/ppc64/vmlinuz'), + ('81e5541d243b50c8f9568906c6918dda22239744d637bb9a7b22d23c3d661226' + '8d5302beb2ca5c06f93bdbc9736c414ef5120756c8bf496ff488ad07d116d67f= ') + ) + + ASSET_FEDORA_INITRD =3D Asset( + ('https://archives.fedoraproject.org/pub/archive/fedora-secondary/' + 'releases/39/Everything/ppc64le/os/ppc/ppc64/initrd.img'), + 'e7f24b44cb2aaa67d30e551db6ac8d29cc57c934b158dabca6b7f885f2cfdd9b') + + def do_test_fadump(self, is_kvm=3DFalse, is_powernv=3DFalse): + """ + Helper Function for Fadump tests below + + It boots the VM with fadump enabled, checks if fadump is correctly + registered. + Then crashes the system causing a QEMU_SYSTEM_RESET, after which + dump should be available in the kernel. + Finally it checks the filesize of the exported /proc/vmcore in 2nd + kernel to verify it's same as the VM's memory size + """ + if is_kvm: + self.require_accelerator("kvm") + self.vm.add_args("-accel", "kvm") + else: + self.require_accelerator("tcg") + + if is_powernv: + self.set_machine("powernv10") + else: + # SLOF takes upto >20s in startup time, use VOF + self.set_machine("pseries") + self.vm.add_args("-machine", "x-vof=3Don") + self.vm.add_args("-m", "6G") + + self.vm.set_console() + + kernel_path =3D None + + if is_powernv: + kernel_path =3D self.ASSET_EPAPR_KERNEL.fetch() + else: + kernel_path =3D self.ASSET_VMLINUZ_KERNEL.fetch() + + initrd_path =3D self.ASSET_FEDORA_INITRD.fetch() + + self.vm.add_args('-kernel', kernel_path) + self.vm.add_args('-initrd', initrd_path) + self.vm.add_args('-append', "fadump=3Don"\ + " -nodefaults -serial mon:stdio crashkernel=3D2G"\ + " rdinit=3D/bin/sh ") + + self.vm.launch() + + # If kernel detects fadump support, and "fadump=3Don" is in command + # line which we add above, it will print something like: + # + # fadump: Reserved 1024MB of memory at 0x00000040000000 ... + # + # Else, if the kernel doesn't detect fadump support, it prints: + # + # fadump: Firmware-Assisted Dump is not supported on this hard= ware + # + # Timeout after 20s if kernel doesn't print any fadump logs, this + # can happen due to fadump being disabled in the kernel + self.wait_for_regex_console_pattern( + success_pattern=3D"fadump: Reserved ", + failure_pattern=3Dr"fadump: (Firmware-Assisted Dump is not"\ + " supported on this hardware|Failed to find memory chunk for"\ + " reservation!)", + timeout=3D20 + ) + + # Ensure fadump is registered successfully, if registration + # succeeds, we get a log from rtas fadump: + # + # rtas fadump: Registration is successful! + self.wait_for_console_pattern( + "rtas fadump: Registration is successful!" + ) + + # Wait for the shell + self.wait_for_console_pattern("#") + + # Mount /proc since not available in the initrd used + exec_command(self, command=3D"mount -t proc proc /proc") + + # Crash the kernel + exec_command(self, command=3D"echo c > /proc/sysrq-trigger") + + # Check for the kernel panic message, setting timeout to 20s as it + # should occur almost immediately after previous echo c + self.wait_for_regex_console_pattern( + success_pattern=3D"Kernel panic - not syncing: sysrq" \ + " triggered crash", + timeout=3D20 + ) + + # Check if fadump is active + # If the kernel shows that fadump is active, that implies it's a + # crashkernel boot + # Else if the kernel shows "fadump: Reserved ..." then it's + # treating this as the first kernel boot, this is likely the case + # that qemu didn't pass the 'ibm,kernel-dump' device tree node + wait_for_console_pattern( + test=3Dself, + success_message=3D"rtas fadump: Firmware-assisted dump is acti= ve", + failure_message=3D"fadump: Reserved " + ) + + # In a successful fadump boot, we get these logs: + # + # [ 0.000000] fadump: Firmware-assisted dump is active. + # [ 0.000000] fadump: Reserving <>MB of memory at <> for preser= ving crash data + # + # Check if these logs are present in the fadump boot + self.wait_for_console_pattern("preserving crash data") + + # Wait for prompt + self.wait_for_console_pattern("sh-5.2#") + + # Mount /proc since not available in the initrd used + exec_command_and_wait_for_pattern(self, + command=3D"mount -t proc proc /proc", + success_message=3D"#" + ) + + # Check if vmcore exists + exec_command_and_wait_for_pattern(self, + command=3D"stat /proc/vmcore", + success_message=3D"File: /proc/vmcore", + failure_message=3D"No such file or directory" + ) + + def test_fadump_pseries(self): + return self.do_test_fadump(is_kvm=3DFalse, is_powernv=3DFalse) + + @skip("PowerNV Fadump not supported yet") + def test_fadump_powernv(self): + return + + def test_fadump_pseries_kvm(self): + """ + Test Fadump in PSeries with KVM accel + """ + self.do_test_fadump(is_kvm=3DTrue, is_powernv=3DFalse) + +if __name__ =3D=3D '__main__': + QEMUFadump.main() diff --git a/tests/functional/qemu_test/linuxkernel.py b/tests/functional/q= emu_test/linuxkernel.py index 2aca0ee3cd..c4767527da 100644 --- a/tests/functional/qemu_test/linuxkernel.py +++ b/tests/functional/qemu_test/linuxkernel.py @@ -5,6 +5,9 @@ =20 import hashlib import urllib.request +import logging +import re +import time =20 from .cmd import wait_for_console_pattern, exec_command_and_wait_for_patte= rn from .testcase import QemuSystemTest @@ -19,6 +22,62 @@ def wait_for_console_pattern(self, success_message, vm= =3DNone): failure_message=3D'Kernel panic - not syn= cing', vm=3Dvm) =20 + def wait_for_regex_console_pattern(self, success_pattern, + failure_pattern=3DNone, + timeout=3DNone): + """ + Similar to 'wait_for_console_pattern', but supports regex patterns, + hence multiple failure/success patterns can be detected at a time. + + Args: + success_pattern (str | re.Pattern): A regex pattern that indic= ates + a successful event. If found, the method exits normally. + failure_pattern (str | re.Pattern, optional): A regex pattern = that + indicates a failure event. If found, the test fails + timeout (int, optional): The maximum time (in seconds) to wait= for + a match. + If exceeded, the test fails. + """ + + console =3D self.vm.console_file + console_logger =3D logging.getLogger('console') + + self.log.debug( + f"Console interaction: success_msg=3D'{success_pattern}' " + + f"failure_msg=3D'{failure_pattern}' timeout=3D'{timeout}s'") + + # Only consume console output if waiting for something + if success_pattern is None and failure_pattern is None: + return + + start_time =3D time.time() + + while time.time() - start_time < timeout: + try: + msg =3D console.readline().decode().strip() + except UnicodeDecodeError: + msg =3D None + if not msg: + continue + console_logger.debug(msg) + if success_pattern is None or re.search(success_pattern, msg): + break + if failure_pattern: + # Find the matching error to print in log + match =3D re.search(failure_pattern, msg) + if not match: + continue + + console.close() + fail =3D 'Failure message found in console: "%s".' \ + ' Expected: "%s"' % \ + (match.group(), success_pattern) + self.fail(fail) + + if time.time() - start_time >=3D timeout: + fail =3D f"Timeout ({timeout}s) while trying to search pattern" + self.fail(fail) + def launch_kernel(self, kernel, initrd=3DNone, dtb=3DNone, console_ind= ex=3D0, wait_for=3DNone): self.vm.set_console(console_index=3Dconsole_index) --=20 2.43.5 From nobody Fri Nov 14 18:19:15 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=reject dis=none) header.from=linux.ibm.com ARC-Seal: i=1; a=rsa-sha256; t=1761220078; cv=none; d=zohomail.com; s=zohoarc; b=U3Swab+idKKWdU2zyj9FYOGNfiaqF1c5sKj5uOJps/KAbDWbrPqbFZzc4Yaz6wxqddYbEq7E10XIzs7NoT82BBIjaXuOMx4ajjpc2larOhC7rOLTUeZ41mIf3l/jmmZ2tQNWP2lQGFJJxr0NH2tKvFrd6QL7LMrePYS1j/zFXbQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1761220078; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uCO/EB+UN6CTuXsOasfQigrg9LojCtdeujXdL0HMJ8w=; b=V/OshI9OXd5GfluywWU9LctAVyQE7au/S3Pro3EQpeWlQQnZD8uSqzxo+ZSg//YwpcuAlusF12vNa7gB+1TC3DMMrhh5fY6+jzYhFzoD+MfZ5poNwL/7RYkbV/Cthydi9rnmJetWtbwbbLA7yQhYviJ0s34nrwVXtUI0AHGiS/s= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1761220078002154.5521888573261; Thu, 23 Oct 2025 04:47:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vBtl0-0002TA-23; Thu, 23 Oct 2025 07:45:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkt-00027M-5H for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:19 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vBtkp-0001ru-D6 for qemu-devel@nongnu.org; Thu, 23 Oct 2025 07:45:18 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9o7KX009802 for ; Thu, 23 Oct 2025 11:45:14 GMT Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49v31cgj3p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:14 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 59N9ZWaP017067 for ; Thu, 23 Oct 2025 11:45:13 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49vnky5ktn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 23 Oct 2025 11:45:13 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 59NBj9GR51511750 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 23 Oct 2025 11:45:10 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C61BB2004D; Thu, 23 Oct 2025 11:45:09 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B422E20040; Thu, 23 Oct 2025 11:45:08 +0000 (GMT) Received: from li-1901474c-32f3-11b2-a85c-fc5ff2c001f3.ibm.com.com (unknown [9.124.221.73]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 23 Oct 2025 11:45:08 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=uCO/EB +UN6CTuXsOasfQigrg9LojCtdeujXdL0HMJ8w=; b=STbSJAc9Xn+XLIyvzR432N Q2YlzTTCif6+bb2ne7sYVMcbrAWwhFuzfmupXq1YtuBdnFsXw6qOcVwchojjiS7h n2od4tQaYZG+damz7le1n5LNWMfCavY1r2i4Bkxmxb1YzxD/NOpxVAjz9lwwV0Z6 D7Jze73L4o9Ezos+TY6v3s4iJPji8emSGNS3BK/BE8OD8H4S/XW8GrXW1mUk2m8M dIKxgiuZXfr0WHCGgGVFv3IhrCxmWIYHCZeSR1qv9HcwncP1kk/M0KQLNyiZbYFw GICy0rzqzRgan9Hn80ObcFfk6pfIN3l9Fffv069B+vaYPGamgRr8aQfEawHCWYuA == From: Harsh Prateek Bora To: qemu-devel@nongnu.org Cc: Aditya Gupta , Sourabh Jain , Shivang Upadhyay Subject: [PULL 32/32] MAINTAINERS: Add entry for FADump (pSeries) Date: Thu, 23 Oct 2025 17:14:19 +0530 Message-ID: <20251023114422.3675018-33-harshpb@linux.ibm.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20251023114422.3675018-1-harshpb@linux.ibm.com> References: <20251023114422.3675018-1-harshpb@linux.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: jp99ZDsnXIHrz6_AbkTisgVCPXTMw4WS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDE4MDAyMiBTYWx0ZWRfX2XOZg40EXjjr fvApq+m7g97TsFAjL1YV41K6YpBdRs5eusnR7h6c7u0ub06YYgRL/zFUvnhwlOaMfq1/XcarzDa ZgwDTtCDZnB68k01oLE8gxpCtYAc7m9CFjySC5D2W2DuuIqJDHMuqJAGcEZfci+tpAsGDnTJPoF xB0udP8VUWTCbFVMaWyNF1LfeVwrGOBxZZxyeetURaNbO+i7IPG4G6ri9flkcMuE4td76bU7OGy u8DDH41QkK31uOZXmy4si+5Hk/mOzzMyM996op+sQE1ob6fI6WlKfQYGBFmO4neaAigI1W7dVK1 wE8ukbPqvtgvs9MKilzGjsd8vZhP9HYB21hrWsjxE+IoPcS1MXyWhgoY+6BEfSLcpwvqmjzMtiD FYjISnPyLFX07/rnhS19nuR+iod+vQ== X-Proofpoint-GUID: jp99ZDsnXIHrz6_AbkTisgVCPXTMw4WS X-Authority-Analysis: v=2.4 cv=SKNPlevH c=1 sm=1 tr=0 ts=68fa154a cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=IkcTkHD0fZMA:10 a=x6icFKpwvdMA:10 a=f7IdgyKtn90A:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=VnNF1IyMAAAA:8 a=KKAkSRfTAAAA:8 a=bbZZDkM4wAf7KGCsbpkA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=cvBusfyB2V15izCimMoJ:22 a=oH34dK2VZjykjzsv8OSz:22 a=pHzHmUro8NiASowvMSCR:22 a=n87TN5wuljxrRezIQYnT:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2510020000 definitions=main-2510180022 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=148.163.158.5; envelope-from=harshpb@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @ibm.com) X-ZM-MESSAGEID: 1761220080339158500 From: Aditya Gupta Add maintainer and reviewer for fadump subsystem. Signed-off-by: Aditya Gupta Acked-by: Sourabh Jain Tested-by: Shivang Upadhyay Link: https://lore.kernel.org/qemu-devel/20251021134823.1861675-9-adityag@l= inux.ibm.com Signed-off-by: Harsh Prateek Bora --- MAINTAINERS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 684d7a5b37..53dbf915ea 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3215,6 +3215,14 @@ F: scripts/coccinelle/remove_local_err.cocci F: scripts/coccinelle/use-error_fatal.cocci F: scripts/coccinelle/errp-guard.cocci =20 +Firmware Assisted Dump (fadump) for sPAPR (pseries) +M: Aditya Gupta +R: Sourabh Jain +S: Maintained +F: include/hw/ppc/spapr_fadump.h +F: hw/ppc/spapr_fadump.c +F: tests/functional/ppc64/test_fadump.py + GDB stub M: Alex Benn=C3=A9e R: Philippe Mathieu-Daud=C3=A9 --=20 2.43.5