From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
qemu-devel@nongnu.org, qemu-arm@nongnu.org,
peter.maydell@linaro.org, imammedo@redhat.com,
Jonathan.Cameron@huawei.com, gustavo.romero@linaro.org,
anisinha@redhat.com, mst@redhat.com, shannon.zhaosl@gmail.com
Cc: pbonzini@redhat.com, philmd@linaro.org, alex.bennee@linaro.org
Subject: [PATCH v6 07/36] hw/pci-host/gpex-acpi: Use GED acpi pcihp property
Date: Tue, 8 Jul 2025 16:22:49 +0200 [thread overview]
Message-ID: <20250708142437.1344644-8-eric.auger@redhat.com> (raw)
In-Reply-To: <20250708142437.1344644-1-eric.auger@redhat.com>
Retrieve the acpi pcihp property value from the ged. In case this latter
is not set, PCI native hotplug is used on pci0. For expander bridges we
keep pci native hotplug, as done on x86 q35.
Signed-off-by: Eric Auger <eric.auger@redhat.com>
Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com>
---
v4 -> v5:
- check vms->acpi_dev
v3 -> v4:
- Use object_property_get_bool (Igor)
- rework the commit description (Igor)
v2 -> v3:
- don'use the virt arm machine option anymore.
---
include/hw/pci-host/gpex.h | 1 +
hw/arm/virt-acpi-build.c | 9 +++++++++
hw/pci-host/gpex-acpi.c | 3 ++-
3 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/include/hw/pci-host/gpex.h b/include/hw/pci-host/gpex.h
index 84471533af..feaf827474 100644
--- a/include/hw/pci-host/gpex.h
+++ b/include/hw/pci-host/gpex.h
@@ -45,6 +45,7 @@ struct GPEXConfig {
MemMapEntry pio;
int irq;
PCIBus *bus;
+ bool pci_native_hotplug;
};
typedef struct GPEXIrq GPEXIrq;
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c
index cd90c47976..a2f31be9ec 100644
--- a/hw/arm/virt-acpi-build.c
+++ b/hw/arm/virt-acpi-build.c
@@ -123,12 +123,21 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap,
uint32_t irq, VirtMachineState *vms)
{
int ecam_id = VIRT_ECAM_ID(vms->highmem_ecam);
+ bool acpi_pcihp = false;
+
+ if (vms->acpi_dev) {
+ acpi_pcihp = object_property_get_bool(OBJECT(vms->acpi_dev),
+ ACPI_PM_PROP_ACPI_PCIHP_BRIDGE,
+ NULL);
+ }
+
struct GPEXConfig cfg = {
.mmio32 = memmap[VIRT_PCIE_MMIO],
.pio = memmap[VIRT_PCIE_PIO],
.ecam = memmap[ecam_id],
.irq = irq,
.bus = vms->bus,
+ .pci_native_hotplug = !acpi_pcihp,
};
if (vms->highmem_mmio) {
diff --git a/hw/pci-host/gpex-acpi.c b/hw/pci-host/gpex-acpi.c
index 80fc2bf032..44737a8d81 100644
--- a/hw/pci-host/gpex-acpi.c
+++ b/hw/pci-host/gpex-acpi.c
@@ -203,6 +203,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
if (is_cxl) {
build_cxl_osc_method(dev);
} else {
+ /* pxb bridges do not have ACPI PCI Hot-plug enabled */
acpi_dsdt_add_host_bridge_methods(dev, true);
}
@@ -278,7 +279,7 @@ void acpi_dsdt_add_gpex(Aml *scope, struct GPEXConfig *cfg)
}
aml_append(dev, aml_name_decl("_CRS", rbuf));
- acpi_dsdt_add_host_bridge_methods(dev, true);
+ acpi_dsdt_add_host_bridge_methods(dev, cfg->pci_native_hotplug);
Aml *dev_res0 = aml_device("%s", "RES0");
aml_append(dev_res0, aml_name_decl("_HID", aml_string("PNP0C02")));
--
2.49.0
next prev parent reply other threads:[~2025-07-08 19:58 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-08 14:22 [PATCH v6 00/36] ACPI PCI Hotplug support on ARM Eric Auger
2025-07-08 14:22 ` [PATCH v6 01/36] hw/i386/acpi-build: Make aml_pci_device_dsm() static Eric Auger
2025-07-08 14:22 ` [PATCH v6 02/36] hw/acpi: Rename and move build_x86_acpi_pci_hotplug to pcihp Eric Auger
2025-07-08 14:22 ` [PATCH v6 03/36] hw/pci-host/gpex-acpi: Add native_pci_hotplug arg to acpi_dsdt_add_pci_osc Eric Auger
2025-07-08 14:22 ` [PATCH v6 04/36] tests/qtest/bios-tables-test: Prepare for changes in the DSDT table Eric Auger
2025-07-08 14:22 ` [PATCH v6 05/36] hw/pci-host/gpex-acpi: Split host bridge OSC and DSM generation Eric Auger
2025-07-08 14:22 ` [PATCH v6 06/36] hw/acpi/ged: Add a acpi-pci-hotplug-with-bridge-support property Eric Auger
2025-07-08 14:22 ` Eric Auger [this message]
2025-07-08 14:22 ` [PATCH v6 08/36] hw/i386/acpi-build: Turn build_q35_osc_method into a generic method Eric Auger
2025-07-08 14:22 ` [PATCH v6 09/36] hw/pci-host/gpex-acpi: Use build_pci_host_bridge_osc_method Eric Auger
2025-07-08 14:22 ` [PATCH v6 10/36] tests/qtest/bios-tables-test: Update DSDT blobs after GPEX _OSC change Eric Auger
2025-07-08 14:22 ` [PATCH v6 11/36] hw/i386/acpi-build: Introduce build_append_pcihp_resources() helper Eric Auger
2025-07-08 14:22 ` [PATCH v6 12/36] hw/acpi/pcihp: Add an AmlRegionSpace arg to build_acpi_pci_hotplug Eric Auger
2025-07-08 14:22 ` [PATCH v6 13/36] hw/i386/acpi-build: Move build_append_notification_callback to pcihp Eric Auger
2025-07-08 14:22 ` [PATCH v6 14/36] hw/i386/acpi-build: Move build_append_pci_bus_devices/pcihp_slots " Eric Auger
2025-07-08 14:22 ` [PATCH v6 15/36] hw/i386/acpi-build: Use AcpiPciHpState::root in acpi_set_pci_info Eric Auger
2025-07-08 14:22 ` [PATCH v6 16/36] hw/i386/acpi-build: Move aml_pci_edsm to a generic place Eric Auger
2025-07-08 14:22 ` [PATCH v6 17/36] qtest/bios-tables-test: Prepare for fixing the aarch64 viot test Eric Auger
2025-07-08 14:23 ` [PATCH v6 18/36] qtest/bios-tables-test: Add a variant to " Eric Auger
2025-07-11 12:00 ` Igor Mammedov
2025-07-14 7:44 ` Eric Auger
2025-07-08 14:23 ` [PATCH v6 19/36] qtest/bios-tables-test: Generate DSDT.viot Eric Auger
2025-07-08 14:23 ` [PATCH v6 20/36] tests/qtest/bios-tables-test: Prepare for changes in the arm virt DSDT table Eric Auger
2025-07-08 14:23 ` [PATCH v6 21/36] hw/arm/virt-acpi-build: Let non hotplug ports support static acpi-index Eric Auger
2025-07-11 12:03 ` Igor Mammedov
2025-07-11 12:33 ` Eric Auger
2025-07-08 14:23 ` [PATCH v6 22/36] tests/qtest/bios-tables-test: Update ARM DSDT reference blobs Eric Auger
2025-07-08 14:23 ` [PATCH v6 23/36] hw/arm/virt-acpi-build: Modify the DSDT ACPI table to enable ACPI PCI hotplug Eric Auger
2025-07-08 14:23 ` [PATCH v6 24/36] hw/acpi/ged: Add a bus link property Eric Auger
2025-07-08 14:23 ` [PATCH v6 25/36] hw/arm/virt: Pass the bus on the ged creation Eric Auger
2025-07-08 14:23 ` [PATCH v6 26/36] hw/acpi/ged: Call pcihp plug callbacks in hotplug handler implementation Eric Auger
2025-07-08 14:23 ` [PATCH v6 27/36] hw/acpi/pcihp: Remove root arg in acpi_pcihp_init Eric Auger
2025-07-08 14:23 ` [PATCH v6 28/36] hw/acpi/ged: Prepare the device to react to PCI hotplug events Eric Auger
2025-07-08 14:23 ` [PATCH v6 29/36] hw/acpi/ged: Support migration of AcpiPciHpState Eric Auger
2025-07-10 6:53 ` Prasad Pandit
2025-07-08 14:23 ` [PATCH v6 30/36] hw/core/sysbus: Introduce sysbus_mmio_map_name() helper Eric Auger
2025-07-08 14:23 ` [PATCH v6 31/36] hw/arm/virt: Minor code reshuffling in create_acpi_ged Eric Auger
2025-07-08 14:23 ` [PATCH v6 32/36] hw/arm/virt: Let virt support pci hotplug/unplug GED event Eric Auger
2025-07-08 14:23 ` [PATCH v6 33/36] tests/qtest/bios-tables-test: Prepare for addition of acpi pci hp tests Eric Auger
2025-07-08 14:23 ` [PATCH v6 34/36] tests/qtest/bios-tables-test: Add aarch64 ACPI PCI hotplug test Eric Auger
2025-07-11 13:47 ` Igor Mammedov
2025-07-14 9:01 ` Eric Auger
2025-07-08 14:23 ` [PATCH v6 35/36] qtest/bios-tables-test: Generate reference blob for DSDT.hpoffacpiindex Eric Auger
2025-07-08 14:23 ` [PATCH v6 36/36] qtest/bios-tables-test: Generate reference blob for DSDT.acpipcihp Eric Auger
2025-07-10 13:18 ` [PATCH v6 00/36] ACPI PCI Hotplug support on ARM Eric Auger
2025-07-10 14:51 ` Michael S. Tsirkin
2025-07-10 14:55 ` Eric Auger
2025-07-11 13:47 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250708142437.1344644-8-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=Jonathan.Cameron@huawei.com \
--cc=alex.bennee@linaro.org \
--cc=anisinha@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=gustavo.romero@linaro.org \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhaosl@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).