|
[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 |