Version 20170629

29 June 2017. Summary of changes for version 20170629:

This release is available at

1) ACPICA kernel-resident subsystem:

Tables: Implemented a deferred ACPI table verification. This is useful for operating systems where the tables cannot be verified in the early initialization stage due to early memory mapping limitations on some architectures. Lv Zheng.

Tables: Removed the signature validation for dynamically loaded tables. Provides compatibility with other ACPI implementations. Previously, only SSDT tables were allowed, as per the ACPI specification. Now, any table signature can be used via the Load() operator. Lv Zheng.

Tables: Fixed several mutex issues that could cause errors during table acquisition. Lv Zheng.

Tables: Fixed a problem where an ACPI warning could be generated if a null pointer was passed to the AcpiPutTable interface. Lv Zheng.

Tables: Added a mechanism to handle imbalances for the AcpiGetTable and AcpiPutTable interfaces. This applies to the "late stage" table loading when the use of AcpiPutTable is no longer required (since the system memory manager is fully running and available). Lv Zheng.

Fixed/Reverted a regression during processing of resource descriptors that contain only a single EndTag. Fixes an AE_AML_NO_RESOURCE_END_TAG exception in this case.

Headers: IORT/SMMU support: Updated the SMMU models for Revision C of the I/O Remapping specification. Robin Murphy

Interpreter: Fixed a possible fault if an Alias operator with an invalid or duplicate target is encountered during Alias creation in AcpiExCreateAlias. Alex James

Added an option to use designated initializers for function pointers. Kees Cook

2) iASL Compiler/Disassembler and Tools:

iASL: Allow compilation of External declarations with target pathnames that refer to existing named objects within the table. Erik Schmauss.

iASL: Fixed a regression when compiling FieldUnits. Fixes an error if a FieldUnit name also is declared via External in the same table. Erik Schmauss.

iASL: Allow existing scope names within pathnames used in External statements. For example:
External (ABCD.EFGH) // ABCD exists, but EFGH is truly external
Device (ABCD)

iASL: IORT ACPI table: Implemented changes required to decode the new Proximity Domain for the SMMUv3 IORT. Disassembler and Data Table compiler. Ganapatrao Kulkarni

Disassembler: Don't abort disassembly on errors from External() statements. Erik Schmauss.

Disassembler: fixed a possible fault when one of the Create*Field operators references a Resource Template. ACPICA Bugzilla 1396.

iASL: In the source code, resolved some naming inconsistences across the parsing support. Fixes confusion between "Parse Op" and "Parse Node". Adds a new file, aslparseop.c

29 June, 2017