From: Igor Mammedov<imamm...@redhat.com>
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<imamm...@redhat.com>
Message-Id:<20221017102146.2254096-4-imamm...@redhat.com>
Reviewed-by: Michael S. Tsirkin<m...@redhat.com>
Signed-off-by: Michael S. Tsirkin<m...@redhat.com>
---
hw/i386/acpi-build.c | 75 --------------------------------------------
hw/isa/lpc_ich9.c | 23 ++++++++++++++
hw/isa/piix3.c | 17 +++++++++-
3 files changed, 39 insertions(+), 76 deletions(-)
Hi Igor,
since this patch SeaBIOS no longer detects the PS/2 keyboard. This means
there's no keyboard in SeaBIOS, GRUB or FreeDOS. OVMF and Linux detect
the PS/2 keyboard without issues.
Here are a few lines from the SeaBIOS debug log.
table(50434146)=0x007e1971 (via rsdt)
ACPI: parse DSDT at 0x007e0040 (len 6449)
parse_termlist: parse error, skip from 92/465
Scan for VGA option rom
Running option rom at c000:0003
Start SeaVGABIOS (version rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org)
and later
SeaBIOS (version rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org)
ACPI: no PS/2 keyboard present
It doesn't matter if the machine type is pc or q35.
If I revert this patch, the PS/2 keyboard works again.
With best regards,
Volker