From nobody Sat Feb 7 07:11:18 2026 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=quarantine dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1770201501; cv=none; d=zohomail.com; s=zohoarc; b=m3kakL5LxAbW3drrPQr5URh4u7Sd2jxqUDz0vEax4gctVhI4DhwinRxyl80e+enrMsqU7PzcR8qL1lgbLaKNlb/7WWaDpAHcAItRe7NWfYcJ7ZeeM1wr6OdsA7WGRiOYufwEN9JM3JZyUHUeqT3fMBUQ9zReKVcen3HOVRoZjIM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770201501; 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=2pxvTcQsOrMAvMcG0AWNrtfMa1MPkCDpkyj2qay+hYw=; b=VO3f79e1viP+kETfyN4/Zbq10UsztnrXwjiGgMS4HXGeqLw8+lDZFXFTmjoZRZhAwDTSDDORYkG5xqiO2JTiL2NgfwS+MJZnlQFmzlJw10IWTHZrXq62JDsHoWCCRRtEhkAyN394NoDCk15FcnT7RBvOPdfUCQRPlgbZszxvRiU= 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=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770201501455583.9466624255318; Wed, 4 Feb 2026 02:38:21 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vnaBY-0000sf-2M; Wed, 04 Feb 2026 05:32:36 -0500 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 1vnaB7-0000U3-N6 for qemu-devel@nongnu.org; Wed, 04 Feb 2026 05:32:11 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vnaB5-0003zV-PM for qemu-devel@nongnu.org; Wed, 04 Feb 2026 05:32:09 -0500 Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-508-PyapBYJ9NHOjmEBa8TaMIg-1; Wed, 04 Feb 2026 05:32:03 -0500 Received: from mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A9AD81956064; Wed, 4 Feb 2026 10:32:02 +0000 (UTC) Received: from corto.redhat.com (unknown [10.45.224.44]) by mx-prod-int-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id D4F4E180066D; Wed, 4 Feb 2026 10:32:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1770201126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=2pxvTcQsOrMAvMcG0AWNrtfMa1MPkCDpkyj2qay+hYw=; b=bobjjy8IfkZ0bQf7s7FpFgrHnI3xyqUtGozjiSxGxTU9cWAdqczpRICa8XoW6rI7Pt1DgP CcygXduMJ/IA/LGJnY3zS2NpelQFg4OmDnxa5i0k7UZHSD/n5ch3e2rE95SAtTAX35w74Q DtWXITRr0vZPZwrI1Un6VgRdSFMfyOg= X-MC-Unique: PyapBYJ9NHOjmEBa8TaMIg-1 X-Mimecast-MFC-AGG-ID: PyapBYJ9NHOjmEBa8TaMIg_1770201122 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Cc: Jamin Lin , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Subject: [PULL 10/45] hw/pci-host/aspeed_pcie: Drop AST2600 PCIe root device Date: Wed, 4 Feb 2026 11:31:01 +0100 Message-ID: <20260204103136.1795455-11-clg@redhat.com> In-Reply-To: <20260204103136.1795455-1-clg@redhat.com> References: <20260204103136.1795455-1-clg@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.93 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=170.10.133.124; envelope-from=clg@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_PASS=-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: qemu development 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 @redhat.com) X-ZM-MESSAGEID: 1770201504240154100 From: Jamin Lin AST2600 PCIe previously exposed a root bus at 0x80 with both a root device at 80:00.0 and a root port at 80:08.0. Recent ASPEED SDK PCIe driver updates decided to remove the root device and keep only a single root port. This behavior has already been accepted by the upstream Linux kernel. Update the QEMU PCIe model accordingly by dropping the root device implementation and related properties. AST2600 now matches the AST2700 PCIe topology and no longer supports the legacy RC_L layout. Signed-off-by: Jamin Lin Reviewed-by: C=C3=A9dric Le Goater Link: https://lore.kernel.org/qemu-devel/20260127032348.2238527-3-jamin_lin= @aspeedtech.com Signed-off-by: C=C3=A9dric Le Goater --- include/hw/pci-host/aspeed_pcie.h | 9 ----- hw/pci-host/aspeed_pcie.c | 57 ------------------------------- 2 files changed, 66 deletions(-) diff --git a/include/hw/pci-host/aspeed_pcie.h b/include/hw/pci-host/aspeed= _pcie.h index e660119a455e..fde5816ea30c 100644 --- a/include/hw/pci-host/aspeed_pcie.h +++ b/include/hw/pci-host/aspeed_pcie.h @@ -50,13 +50,6 @@ typedef struct AspeedPCIERootPortState { PCIESlot parent_obj; } AspeedPCIERootPortState; =20 -#define TYPE_ASPEED_PCIE_ROOT_DEVICE "aspeed.pcie-root-device" -OBJECT_DECLARE_SIMPLE_TYPE(AspeedPCIERootDeviceState, ASPEED_PCIE_ROOT_DEV= ICE); - -struct AspeedPCIERootDeviceState { - PCIBridge parent_obj; -}; - #define TYPE_ASPEED_PCIE_RC "aspeed.pcie-rc" OBJECT_DECLARE_SIMPLE_TYPE(AspeedPCIERcState, ASPEED_PCIE_RC); =20 @@ -78,10 +71,8 @@ struct AspeedPCIERcState { uint32_t rp_addr; uint32_t bus_nr; char name[16]; - bool has_rd; qemu_irq irq; =20 - AspeedPCIERootDeviceState root_device; AspeedPCIERootPortState root_port; }; =20 diff --git a/hw/pci-host/aspeed_pcie.c b/hw/pci-host/aspeed_pcie.c index 83a1c7075c39..4fdda959396f 100644 --- a/hw/pci-host/aspeed_pcie.c +++ b/hw/pci-host/aspeed_pcie.c @@ -26,44 +26,6 @@ #include "hw/pci/msi.h" #include "trace.h" =20 -/* - * PCIe Root Device - * This device exists only on AST2600. - */ - -static void aspeed_pcie_root_device_class_init(ObjectClass *klass, - const void *data) -{ - PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); - DeviceClass *dc =3D DEVICE_CLASS(klass); - - set_bit(DEVICE_CATEGORY_BRIDGE, dc->categories); - dc->desc =3D "ASPEED PCIe Root Device"; - k->vendor_id =3D PCI_VENDOR_ID_ASPEED; - k->device_id =3D 0x2600; - k->class_id =3D PCI_CLASS_BRIDGE_HOST; - k->subsystem_vendor_id =3D k->vendor_id; - k->subsystem_id =3D k->device_id; - k->revision =3D 0; - - /* - * PCI-facing part of the host bridge, - * not usable without the host-facing part - */ - dc->user_creatable =3D false; -} - -static const TypeInfo aspeed_pcie_root_device_info =3D { - .name =3D TYPE_ASPEED_PCIE_ROOT_DEVICE, - .parent =3D TYPE_PCI_DEVICE, - .instance_size =3D sizeof(AspeedPCIERootDeviceState), - .class_init =3D aspeed_pcie_root_device_class_init, - .interfaces =3D (const InterfaceInfo[]) { - { INTERFACE_CONVENTIONAL_PCI_DEVICE }, - { }, - }, -}; - /* * PCIe Root Port */ @@ -291,18 +253,6 @@ static void aspeed_pcie_rc_realize(DeviceState *dev, E= rror **errp) &rc->dram_alias); pci_setup_iommu(pci->bus, &aspeed_pcie_rc_iommu_ops, rc); =20 - /* setup root device */ - if (rc->has_rd) { - object_initialize_child(OBJECT(rc), "root_device", &rc->root_devic= e, - TYPE_ASPEED_PCIE_ROOT_DEVICE); - qdev_prop_set_int32(DEVICE(&rc->root_device), "addr", - PCI_DEVFN(0, 0)); - qdev_prop_set_bit(DEVICE(&rc->root_device), "multifunction", false= ); - if (!qdev_realize(DEVICE(&rc->root_device), BUS(pci->bus), errp)) { - return; - } - } - /* setup root port */ qdev_prop_set_int32(DEVICE(&rc->root_port), "addr", rc->rp_addr); qdev_prop_set_uint16(DEVICE(&rc->root_port), "chassis", cfg->id); @@ -334,7 +284,6 @@ static void aspeed_pcie_rc_instance_init(Object *obj) =20 static const Property aspeed_pcie_rc_props[] =3D { DEFINE_PROP_UINT32("bus-nr", AspeedPCIERcState, bus_nr, 0), - DEFINE_PROP_BOOL("has-rd", AspeedPCIERcState, has_rd, 0), DEFINE_PROP_UINT32("rp-addr", AspeedPCIERcState, rp_addr, 0), DEFINE_PROP_UINT32("msi-addr", AspeedPCIERcState, msi_addr, 0), DEFINE_PROP_UINT64("dram-base", AspeedPCIERcState, dram_base, 0), @@ -704,9 +653,6 @@ static void aspeed_pcie_cfg_realize(DeviceState *dev, E= rror **errp) object_property_set_int(OBJECT(&s->rc), "bus-nr", apc->rc_bus_nr, &error_abort); - object_property_set_bool(OBJECT(&s->rc), "has-rd", - apc->rc_has_rd, - &error_abort); object_property_set_int(OBJECT(&s->rc), "rp-addr", apc->rc_rp_addr, &error_abort); @@ -746,7 +692,6 @@ static void aspeed_pcie_cfg_class_init(ObjectClass *kla= ss, const void *data) apc->nr_regs =3D 0x100 >> 2; apc->rc_msi_addr =3D 0x1e77005C; apc->rc_bus_nr =3D 0x80; - apc->rc_has_rd =3D true; apc->rc_rp_addr =3D PCI_DEVFN(8, 0); } =20 @@ -867,7 +812,6 @@ static void aspeed_2700_pcie_cfg_class_init(ObjectClass= *klass, apc->nr_regs =3D 0x100 >> 2; apc->rc_msi_addr =3D 0x000000F0; apc->rc_bus_nr =3D 0; - apc->rc_has_rd =3D false; apc->rc_rp_addr =3D PCI_DEVFN(0, 0); } =20 @@ -1041,7 +985,6 @@ static const TypeInfo aspeed_2700_pcie_phy_info =3D { static void aspeed_pcie_register_types(void) { type_register_static(&aspeed_pcie_rc_info); - type_register_static(&aspeed_pcie_root_device_info); type_register_static(&aspeed_pcie_root_port_info); type_register_static(&aspeed_pcie_cfg_info); type_register_static(&aspeed_2700_pcie_cfg_info); --=20 2.52.0