]> git.ipfire.org Git - thirdparty/qemu.git/commit
acpi: pc/q35: drop ad-hoc PCI-ISA bridge AML routines and let bus ennumeration genera...
authorIgor Mammedov <imammedo@redhat.com>
Mon, 17 Oct 2022 10:21:38 +0000 (12:21 +0200)
committerMichael S. Tsirkin <mst@redhat.com>
Mon, 7 Nov 2022 19:08:17 +0000 (14:08 -0500)
commit47a373faa6b272d12c8b166f7a0c45c867589005
tree8980a0f5d3f7ac357841da0fbc6a18f00ceb94e4
parentab886c7c883fa628dbb9f9b788ea855ea00f6d0a
acpi: pc/q35: drop ad-hoc PCI-ISA bridge AML routines and let bus ennumeration generate AML

PCI-ISA bridges that are built in PIIX/Q35 are building its own AML
using AcpiDevAmlIf interface. Now build_append_pci_bus_devices()
gained AcpiDevAmlIf interface support to get AML of devices atached
to PCI slots.
So drop ad-hoc build_q35_isa_bridge()/build_piix4_isa_bridge()
and let PCI bus enumeration to include PCI-ISA bridge AML
when it's enumerated by build_append_pci_bus_devices().

AML change is mostly contextual, which moves whole ISA hierarchy
directly under PCI host bridge instead of it being described
as separate \SB.PCI0.ISA block.

Note:
If bus/slot that hosts ISA bridge has BSEL set, it will gain new
ASUN and _DMS entries (i.e. acpi-index support, but it should not
cause any functional change and that is fine from PCI Firmware
spec point of view), potentially it's possible to suppress that
by adding a flag to PCIDevice but I don't see a reason to do that
yet, I'd rather treat bridge just as any other PCI device if it's
possible.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Message-Id: <20221017102146.2254096-4-imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/i386/acpi-build.c
hw/isa/lpc_ich9.c
hw/isa/piix3.c