[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v2 1/1] tools/libacpi: clear ASL warning about PCI0
iasl complains _HID and _ADR cannot be used at the same time: ``` /usr/bin/iasl -vs -p tools/firmware/hvmloader/dsdt_anycpu.tmp -tc tools/firmware/hvmloader/dsdt_anycpu.asl 2>&1 | grep -B10 HID tools/firmware/hvmloader/dsdt_anycpu.asl 40: Device (PCI0) Warning 3073 - Multiple types ^ (Device object requires either a _HID or _ADR, but not both) ``` Per ACPI 2.0 (Jul. 27, 2000; Section 6.1, page 146), the configuration was legit: "A device object must contain either an _HID object or an _ADR object, but can contain both." [1] But, per ACPI 6.5 (Aug. 2022), this is no more legit: "A device object must contain either an _HID object or an _ADR object, but must not contain both." [2] Generally _HID devices are enumerated and have their drivers loaded by ACPI ("ASL 2.0 Introduction and Overview", page 4). Removing _ADR, the warning is cleared out. The change should be compatible down to OSes released after ACPI 2.0, including Windows XP: 1. The _HID kept in the DSDT files is the EISA ID "PNP0A03", Microsoft recognizes it as PCI bus: ``` $ curl -k -s https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/devids.txt | grep PNP0A PNP0A00 ISA Bus PNP0A01 EISA Bus PNP0A02 MCA Bus PNP0A03 PCI Bus PNP0A04 VESA/VL Bus PNP0A05 Generic ACPI Bus PNP0A06 Generic ACPI Extended-IO Bus (EIO bus) ``` 2. Linux 6.12 uses also _HID for identifying PCI devices [3]: ``` $ cat /sys/firmware/acpi/tables/DSDT > dsdt.dat $ iasl -v Intel ACPI Component Architecture ASL+ Optimizing Compiler/Disassembler version 20240927 Copyright (c) 2000 - 2023 Intel Corporation $ iasl -d dsdt.dat 2>/dev/null Intel ACPI Component Architecture ASL+ Optimizing Compiler/Disassembler version 20240927 Copyright (c) 2000 - 2023 Intel Corporation $ grep PNP0A03 -B3 dsdt.dsl Device (PCI0) { Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID ``` [1] https://uefi.org/sites/default/files/resources/ACPI_2.pdf [2] https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html?highlight=_hid#device-identification-objects [3] https://www.infradead.org/~mchehab/kernel_docs/firmware-guide/acpi/namespace.html Link: https://www.intel.com/content/www/us/en/developer/topic-technology/open/acpica/documentation.html Fixes: a5da231f56268702ba9d9e0c4f1ad7156446e77b Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx> Signed-off-by: Ariel Otilibili <Ariel.Otilibili-Anieli@xxxxxxxxxx> --- tools/libacpi/dsdt.asl | 1 - 1 file changed, 1 deletion(-) diff --git a/tools/libacpi/dsdt.asl b/tools/libacpi/dsdt.asl index 32b42f85ae..9d50578e98 100644 --- a/tools/libacpi/dsdt.asl +++ b/tools/libacpi/dsdt.asl @@ -41,7 +41,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) { Name (_HID, EisaId ("PNP0A03")) Name (_UID, 0x00) - Name (_ADR, 0x00) Name (_BBN, 0x00) /* Make cirrues VGA S3 suspend/resume work in Windows XP/2003 */ -- 2.47.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |