hw/pci-host/gpex-acpi: Use GED acpi pcihp property
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> Message-Id: <20250714080639.2525563-8-eric.auger@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
c4ad751356
commit
1136309df5
3 changed files with 12 additions and 1 deletions
|
|
@ -144,12 +144,21 @@ static void acpi_dsdt_add_pci(Aml *scope, const MemMapEntry *memmap,
|
|||
int ecam_id = VIRT_ECAM_ID(vms->highmem_ecam);
|
||||
bool cxl_present = false;
|
||||
PCIBus *bus = vms->bus;
|
||||
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) {
|
||||
|
|
|
|||
|
|
@ -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")));
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ struct GPEXConfig {
|
|||
MemMapEntry pio;
|
||||
int irq;
|
||||
PCIBus *bus;
|
||||
bool pci_native_hotplug;
|
||||
};
|
||||
|
||||
typedef struct GPEXIrq GPEXIrq;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue