16 June 2015. Summary of changes for version 20150616:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
Across the entire ACPICA source code base, the various macros for the C library functions
(such as ACPI_STRLEN, etc.) have been removed and replaced by the standard C library names
(strlen, etc.) The original purpose for these macros is no longer applicable. This
simplification reduces the number of macros used in the ACPICA source code significantly,
improving readability and maintainability.
Implemented support for a new ACPI table, the OSDT. This table, the "override"
SDT, can be loaded directly by the host OS at boot time. It enables the replacement of
existing namespace objects that were installed via the DSDT and/or SSDTs. The primary
purpose for this is to replace buggy or incorrect ASL/AML code obtained via the BIOS. The
OSDT is slated for inclusion in a future version of the ACPI Specification. Lv Zheng/Bob
Added support for systems with (improperly) two FACS tables -- a "32-bit" table
(via FADT 32-bit legacy field) and a "64-bit" table (via the 64-bit X field).
This change will support both automatically. There continues to be systems found with this
issue. This support requires a change to the AcpiSetFirmwareWakingVector interface. Also,
a public global variable has been added to allow the host to select which FACS is desired
(AcpiGbl_Use32BitFacsAddresses). See the ACPICA reference for more details Lv Zheng.
Added a new feature to allow for systems that do not contain an FACS. Although this is
already supported on hardware-reduced platforms, the feature has been extended for all
platforms. The reasoning is that we do not want to abort the entire ACPICA initialization
just because the system is seriously buggy and has no FACS.
Fixed a problem where the GUID strings for NFIT tables (in acuuid.h) were not correctly
transcribed from the ACPI specification in ACPICA version 20150515.
Implemented support for the _CLS object in the AcpiGetObjectInfo external interface.
Updated the definitions of the TCPA and TPM2 ACPI tables to the more recent TCG ACPI
Specification, December 14, 2014. Table disassembler and compiler also updated. Note: The
TCPA "server" table is not supported by the disassembler/table-compiler at this
ACPI 6.0: Added definitions for the new GIC version field in the MADT.
Example Code and Data Size: These are the sizes for the OS-independent acpica.lib produced
by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code includes
the debug output trace mechanism and has a much larger code and data size.
Non-Debug Version: 100.6K Code, 27.6K Data, 128.2K Total
Debug Version: 196.2K Code, 81.0K Data, 277.2K Total
Non-Debug Version: 99.9K Code, 27.5K Data, 127.4K Total
Debug Version: 195.2K Code, 80.8K Data, 276.0K Total
2) iASL Compiler/Disassembler and Tools:
Disassembler: Fixed a problem with the new symbolic operator disassembler where incorrect
ASL code could be emitted in some cases for the "non-commutative" operators --
Subtract, Divide, Modulo, ShiftLeft, and ShiftRight. The actual problem cases seem to be
rather unusual in common ASL code, however. David Box.
Modified the linux version of acpidump to obtain ACPI tables from not just /dev/mem (which
may not exist) and /sys/firmware/acpi/tables. Lv Zheng.
iASL: Fixed a problem where the user preprocessor output file (.i) contained extra data
that was not expected. The compiler was using this file as a temporary file and passed
through #line directives in order to keep compiler error messages in sync with the input
file and line number across multiple include files. The (.i) is no longer a temporary file
as the compiler uses a new, different file for the original purpose.
iASL: Fixed a problem where comments within the original ASL source code file were not
passed through to the preprocessor output file, nor any listing files.
iASL: Fixed some issues for the handling of the "#include" preprocessor
directive and the similar (but not the same) "Include" ASL operator.
iASL: Add support for the new OSDT in both the disassembler and compiler.
iASL: Fixed a problem with the constant folding support where a Buffer object could be
incorrectly generated (incorrectly formed) during a conversion to a Store() operator.
AcpiHelp: Updated for new NFIT GUIDs, "External" AML opcode, and new description
text for the _REV predefined name. _REV now permanently returns 2, as per the ACPI 6.0
Debugger: Enhanced the output of the Debug ASL object for references produced by the Index
operator. For Buffers and strings, only output the actual byte pointed to by the index.
For packages, only print the single package element decoded by the index. Previously, the
entire buffer/string/package was emitted.
iASL/Table-compiler: Fixed a regression where the "generic" data types were no
longer recognized, causing errors.