|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 1/1] libacpi/Makefile: clear ASL warning about PCI0
iasl complains _HID and _ADR cannot be used at the same time:
```
iasl -vs -p tools/firmware/hvmloader/dsdt_anycpu.tmp -tc
tools/firmware/hvmloader/dsdt_anycpu.asl 2>&1 | grep -B1 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)
```
The usage of both _HID and _ADR has changed [1,2]:
>From ACPI 2.0 (Jul. 27, 2000; Section 6.1, page 146):
"A device object must contain either an _HID object or an _ADR object,
but can contain both." [3]
To ACPI 6.0 (April 2015; Section 6.1, page 278),
"A device object must contain either an _HID object or an _ADR object,
but should not contain both." [4]
And from ACPI 6.0 to ACPI 6.5 (Aug. 2022):
"A device object must contain either an _HID object or an _ADR object,
but must not contain both." [5]
Using its ID, the warning is now filtered.
```
$ iasl -vw3073 -vs -p ../firmware/hvmloader/dsdt_anycpu.tmp -tc
../firmware/hvmloader/dsdt_anycpu.asl 2>&1 | grep HID; echo $?
1
```
iasl has one ID per warning [6]; subsequent commits will address other ASL
warnings.
```
$ awk 'NR>533 && NR<556 {print NR ":" $0}' source/compiler/aslmethod.c
534: case PARSEOP_DEVICE:
535:
536: /* Check usage of _HID and _ADR objects */
537:
538: HidExists = ApFindNameInDeviceTree (METHOD_NAME__HID, Op);
539: AdrExists = ApFindNameInDeviceTree (METHOD_NAME__ADR, Op);
540:
541: if (!HidExists && !AdrExists)
542: {
543: AslError (ASL_ERROR, ASL_MSG_MISSING_DEPENDENCY, Op,
544: "Device object requires a _HID or _ADR");
545: }
546: else if (HidExists && AdrExists)
547: {
548: /*
549: * According to the ACPI spec, "A device object must contain
550: * either an _HID object or an _ADR object, but should not
contain
551: * both".
552: */
553: AslError (ASL_WARNING, ASL_MSG_MULTIPLE_TYPES, Op,
554: "Device object requires either a _HID or _ADR, but not
both");
555: }
$ awk 'NR>188 && NR<206 || NR==432 || /ASL_MSG_MULTIPLE_TYPES/ {print NR ":"
$0}' source/compiler/aslmessages.h
189:/*
190: * Values (message IDs) for all compiler messages. There are currently
191: * three distinct blocks of error messages (so that they can be expanded
192: * individually):
193: * Main ASL compiler
194: * Data Table compiler
195: * Preprocessor
196: *
197: * NOTE1: This list must match the tables of message strings in the file
198: * aslmessages.c exactly.
199: *
200: * NOTE2: With the introduction of the -vw option to disable specific
201: * messages, new messages should only be added to the end of these
202: * lists, so that values for existing messages are not disturbed.
203: */
204:typedef enum
205:{
280: ASL_MSG_MULTIPLE_TYPES,
432:} ASL_MESSAGE_IDS;
$ git remote -v
origin git@xxxxxxxxxx:acpica/acpica.git (fetch)
origin git@xxxxxxxxxx:acpica/acpica.git (push)
$ git log --pretty='%h ("%s")' -n1
7dae72155 ("Logfile: Changes for version 20241212")
```
[1] https://uefi.org/acpi/specs
[2] https://uefi.org/specifications
[3] https://uefi.org/sites/default/files/resources/ACPI_2.pdf
[4] https://uefi.org/sites/default/files/resources/ACPI_6.0.pdf
[5]
https://uefi.org/specs/ACPI/6.5/06_Device_Configuration.html?highlight=_hid#device-identification-objects
[6] https://github.com/acpica/acpica
Fixes: 5a8b28bfd4 ("tools/libacpi: cleanup Makefile, don't check for iasl
binary")
Signed-off-by: Ariel Otilibili <Ariel.Otilibili-Anieli@xxxxxxxxxx>
---
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
tools/libacpi/Makefile | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile
index b21a64c6b4..4668ecb365 100644
--- a/tools/libacpi/Makefile
+++ b/tools/libacpi/Makefile
@@ -21,6 +21,8 @@ H_SRC += $(addprefix $(ACPI_BUILD_DIR)/, ssdt_tpm.h
ssdt_tpm2.h ssdt_laptop_slat
MKDSDT_CFLAGS-$(CONFIG_ARM_64) = -DCONFIG_ARM_64
MKDSDT_CFLAGS-$(CONFIG_X86) = -DCONFIG_X86
+IASL_WARNS=3073
+
# Suffix for temporary files.
#
# We will also use this suffix to workaround a bug in older iasl
@@ -32,7 +34,7 @@ TMP_SUFFIX = tmp
all: $(C_SRC) $(H_SRC)
$(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl
- $(IASL) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
+ $(IASL) $(IASL_WARNS:%=-vw%) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX)
-tc $<
sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex >$@
rm -f $(addprefix $(ACPI_BUILD_DIR)/, $*.aml $*.hex)
@@ -65,7 +67,7 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_arm.asl: $(MK_DSDT)
mv -f $@.$(TMP_SUFFIX) $@
$(C_SRC): $(ACPI_BUILD_DIR)/%.c: $(ACPI_BUILD_DIR)/%.asl
- $(IASL) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $<
+ $(IASL) $(IASL_WARNS:%=-vw%) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX)
-tc $<
sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex >
$@.$(TMP_SUFFIX)
echo "int $*_len=sizeof($*);" >> $@.$(TMP_SUFFIX)
mv -f $@.$(TMP_SUFFIX) $@
--
2.47.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |