[SeaBIOS] [PATCHv2 0/3] acpi: fix up EJ0 in DSDT
Amos Kong
akong at redhat.com
Wed Sep 28 13:41:13 CEST 2011
----- Original Message -----
> This is a second iteration of the patch. The patch has been
> significantly reworked to address (offline) comments by Gleb.
>
> I think the infrastructure created is generic enough
> to be generally useful beyond the specific bug
> that I would like to fix. Specifically it
> will be able to find S3 Name to patch that,
> or process compiled CPU SSDT to avoid the need for
> hardcoded offsets.
>
> Please comment.
>
> Main changes:
> - tools rewritten in python
> - Original ASL retains _EJ0 methods, BIOS patches that to EJ0_
> - generic ACP_EXTRACT infrastructure that can match Method
> and Name Operators
> - instead of matching specific method name, insert tags
> in original DSL source and match that to AML
Patch looks good to me.
Acked-by: Amos Kong <akong at redhat.com>
> -----
>
> Here's a bug: guest thinks it can eject VGA device and ISA bridge.
>
> [root at dhcp74-172 ~]#lspci
> 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
> (rev 02)
> 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA
> [Natoma/Triton II]
> 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE
> [Natoma/Triton II]
> 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
> 00:02.0 VGA compatible controller: Cirrus Logic GD 5446
> 00:03.0 PCI bridge: Red Hat, Inc. Device 0001
> 00:04.0 Ethernet controller: Qumranet, Inc. Virtio network device
> 00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device
> 01:00.0 Ethernet controller: Intel Corporation 82540EM Gigabit
> Ethernet Controller (rev 03)
>
> [root at dhcp74-172 ~]# ls /sys/bus/pci/slots/1/
> adapter address attention latch module power
> [root at dhcp74-172 ~]# ls /sys/bus/pci/slots/2/
> adapter address attention latch module power
>
> [root at dhcp74-172 ~]# echo 0 > /sys/bus/pci/slots/2/power
> [root at dhcp74-172 ~]# lspci
> 00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma]
> (rev 02)
> 00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA
> [Natoma/Triton II]
> 00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE
> [Natoma/Triton II]
> 00:01.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
> 00:03.0 PCI bridge: Red Hat, Inc. Device 0001
> 00:04.0 Ethernet controller: Qumranet, Inc. Virtio network device
> 00:05.0 SCSI storage controller: Qumranet, Inc. Virtio block device
> 01:00.0 Ethernet controller: Intel Corporation 82540EM Gigabit
> Ethernet Controller (rev 03)
>
> This is wrong because slots 1 and 2 are marked as not hotpluggable
> in qemu.
>
> The reason is that our acpi tables declare both _RMV with value 0,
> and _EJ0 method for these slots. What happens in this case
> is undocumented by ACPI spec, so linux ignores _RMV,
> and windows seems to ignore _EJ0.
>
> The correct way to suppress hotplug is not to have _EJ0,
> so this is what this patch does: it probes PIIX and
> modifies DSDT to match.
>
> With these patches applied, we get:
>
> [root at dhcp74-172 ~]# ls /sys/bus/pci/slots/1/
> address
> [root at dhcp74-172 ~]# ls /sys/bus/pci/slots/2/
> address
>
>
>
> Michael S. Tsirkin (3):
> acpi: generate and parse mixed asl/aml listing
> acpi: EJ0 method name patching
> acpi: remove _RMV
>
> Makefile | 10 +-
> src/acpi-dsdt.dsl | 96 ++++++++-----------
> src/acpi.c | 31 ++++++
> tools/acpi_extract.py | 195
> ++++++++++++++++++++++++++++++++++++++
> tools/acpi_extract_preprocess.py | 37 +++++++
> 5 files changed, 307 insertions(+), 62 deletions(-)
> create mode 100755 tools/acpi_extract.py
> create mode 100755 tools/acpi_extract_preprocess.py
>
> --
> 1.7.5.53.gc233e
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
More information about the SeaBIOS
mailing list