31 March 2022. Summary of changes for version 20220331:
This release is available at https://acpica.org/downloads
0) Global changes:
Update all copyright notices to the year 2022. This effects all source modules, as well as
1) ACPICA kernel-resident subsystem:
For the ASL Sleep() operator, issue a warning if the sleep value is greater than 10
Milliseconds. Quick boottime is important, so warn about sleeps greater than 10 ms.
Distribution Linux kernels reach initrd in 350 ms, so excessive delays should be called
out. 10 ms is chosen randomly, but three of such delays would already make up ten percent
of the boottime.
Namespace: Avoid attempting to walk the Namespace if the Namespace does not exist.
AML interpreter/iASL compiler: Add new Acpi 6.4 semantics for the LoadTable and Load
operators. DDB_HANDLE is gone, now loadtable returns a pass/fail integer. Now load returns
a pass/fail integer, as well as storing the return value in an optional 2nd argument.
Headers: Use uintptr_t and offsetof() in Linux kernel builds. To avoid "performing
pointer subtraction with a null pointer has undefined behavior" compiler warnings,
use uintptr_t and offsetof() that are always available during Linux kernel builds to
define ACPI_UINTPTR_T and the ACPI_TO_INTEGER() and ACPI_OFFSET() macros when building the
ACPICA code in the Linux kernel.
Added support for the Windows 11 _OSI string ("Windows 2021"). Submitted by
executer/exsystem: Inform users about ACPI spec violation for the Stall() operator. Values
greater than 100 microseconds violate the ACPI specification, so warn users about it. From
the ACPI Specification version 6.2 Errata A, 19.6.128 *Stall (Stall for a Short Time)*:
The implementation of Stall is OS-specific, but must not relinquish
control of the processor. Because of this, delays longer than 100
microseconds must use Sleep instead of Stall.
2) iASL Compiler/Disassembler and ACPICA tools:
Data Table Compiler/Disassembler: Add support for the APMT table - ARM Performance
Monitoring Unit table. Submitted by @bwicaksononv.
Data Table Compiler/Disassembler: For MADT, add support for the OEM-defined subtables
Data Table Compiler: Fixed a problem with support for the SDEV table, where a subtable
Length was not computed correctly.
Data Table Compiler/Disassembler: Add/fix the CFMWS subtable to the CEDT Acpi table
Data Table Compiler/Disassembler: Fix a compile issue with the CEDT and add template.
Submitted by MasterDrogo.
Data Table Compiler/Disassembler: NHLT Changes provided by Piotr Maziarz:
iASL/NHLT: Rename linux specific structures to DeviceInfo to improve readability of the
iASL/NHLT: Fix parsing undocumented bytes at the end of Endpoint. Undocumented bytes at
the end of Endpoint Descriptor can be present independently of Linux-specific structures.
Their size can also vary.
iASL/NHLT: Treat TableTerminator as SpecificConfig. SpecificConfig has 4 bytes of size and
then an amount of bytes specified by size. All of the terminators that I've seen had a
size equal to 4, but theoretically it can vary.
iASL/AcpiExec: Use _exit instead of exit in signal handers (ctrl-C).
iASL: Remove a remark due to excessive output. Removed a remark for duplicate Offset()
operators, due to a user complaint.