23 November 2011. Summary of changes for version 20111123:
This release is available at www.acpica.org/downloads
The ACPI 5.0 specification is available at www.acpi.info
0) ACPI 5.0 Support:
This release contains full support for the ACPI 5.0 specification, as summarized below.
Reduced Hardware Support:
This support allows for ACPI systems without the usual ACPI hardware. This support is
enabled by a flag in the revision 5 FADT. If it is set, ACPICA will not attempt to
initialize or use any of the usual ACPI hardware. Note, when this flag is set, all of the
following ACPI hardware is assumed to be not present and is not initialized or accessed:
General Purpose Events (GPEs)
Fixed Events (PM1a/PM1b and PM Control)
Power Management Timer and Console Buttons (power/sleep)
Real-time Clock Alarm
System Control Interrupt (SCI)
The FACS is assumed to be non-existent
All new tables and updates to existing tables are fully supported in the ACPICA headers
(for use by device drivers), the disassembler, and the iASL Data Table Compiler. ACPI 5.0
defines these new tables:
BGRT /* Boot Graphics Resource Table */
DRTM /* Dynamic Root of Trust for Measurement table */
FPDT /* Firmware Performance Data Table */
GTDT /* Generic Timer Description Table */
MPST /* Memory Power State Table */
PCCT /* Platform Communications Channel Table */
PMTT /* Platform Memory Topology Table */
RASF /* RAS Feature table */
All new operation regions are fully supported by the iASL compiler, the disassembler, and
the ACPICA runtime code (for dispatch to region handlers.) The new operation region Space
All new ASL resource descriptors are fully supported by the iASL compiler, the ASL/AML
disassembler, and the ACPICA runtime Resource Manager code (including all new predefined
resource tags). New descriptors are:
ASL/AML Operators, New and Modified:
One new operator is added, the Connection operator, which is used to associate a
GeneralPurposeIo or GenericSerialBus resource descriptor with individual field objects
within an operation region. Several new protocols are associated with the AccessAs
operator. All are fully supported by the iASL compiler, disassembler, and runtime ACPICA
Connection // Declare Field Connection attributes
AccessAs: AttribBytes (n) // Read/Write N-Bytes Protocol
AccessAs: AttribRawBytes (n) // Raw Read/Write N-Bytes Protocol
AccessAs: AttribRawProcessBytes (n) // Raw Process Call Protocol
RawDataBuffer // Data type for Vendor Data fields
Predefined ASL/AML Objects:
All new predefined objects/control-methods are supported by the iASL compiler and the
ACPICA runtime validation/repair (arguments and return values.) New predefined names
include the following:
Standard Predefined Names (Objects or Control Methods):
_AEI, _CLS, _CPC, _CWS, _DEP,
_DLM, _EVT, _GCP, _CRT, _GWS,
_HRV, _PRE, _PSE, _SRT, _SUB.
Resource Tags (Names used to access individual fields within resource descriptors):
_DBT, _DPL, _DRS, _END, _FLC,
_IOR, _LIN, _MOD, _PAR, _PHA,
_PIN, _PPI, _POL, _RXL, _SLV,
_SPE, _STB, _TXL, _VEN.
ACPICA External Interfaces:
Several new interfaces have been defined for use by ACPI-related device drivers and other
host OS services:
AcpiAcquireMutex and AcpiReleaseMutex: These interfaces allow the host OS to acquire and
release AML mutexes that are defined in the DSDT/SSDT tables provided by the BIOS. They
are intended to be used in conjunction with the ACPI 5.0 _DLM (Device Lock Method) in
order to provide transaction-level mutual exclusion with the AML code/interpreter.
AcpiGetEventResources: Returns the (formatted) resource descriptors as defined by the ACPI
5.0 _AEI object (ACPI Event Information). This object provides resource descriptors
associated with hardware-reduced platform events, similar to the AcpiGetCurrentResources
Operation Region Handlers: For General Purpose IO and Generic Serial Bus operation
regions, information about the Connection() object and any optional length information is
passed to the region handler within the Context parameter.
AcpiBufferToResource: This interface converts a raw AML buffer containing a resource
template or resource descriptor to the ACPI_RESOURCE internal format suitable for use by
device drivers. Can be used by an operation region handler to convert the Connection()
buffer object into a ACPI_RESOURCE.
Support for extended _HID names (Four alpha characters instead of three).
Support for ACPI 5.0 features in the AcpiExec and AcpiHelp utilities.
Support for ACPI 5.0 features in the ASLTS test suite.
Fully updated documentation (ACPICA and iASL reference documents.)
ACPI Table Definition Language:
Support for this language was implemented and released as a subsystem of the iASL compiler
in 2010. (See the iASL compiler User Guide.)
Non-ACPI 5.0 changes for this release:
1) ACPICA Core Subsystem:
Fix a problem with operation region declarations where a failure can occur if the region
name and an argument that evaluates to an object (such as the region address) are in
different namespace scopes. Lin Ming, ACPICA BZ 937.
Do not abort an ACPI table load if an invalid space ID is found within. This will be
caught later if the offending method is executed. ACPICA BZ 925.
Fixed an issue with the FFixedHW space ID where the ID was not always recognized properly
(Both ACPICA and iASL). ACPICA BZ 926.
Fixed a problem with the 32-bit generation of the unix-specific OSL (osunixxf.c). Lin
Ming, ACPICA BZ 936.
Several changes made to enable generation with the GCC 4.6 compiler. ACPICA BZ 935.
New error messages: Unsupported I/O requests (not 8/16/32 bit), and Index/Bank field
2) iASL Compiler/Disassembler and Tools:
iASL: Implemented the __PATH__ operator, which returns the full pathname of the current
AcpiHelp: Automatically display expanded keyword information for all ASL operators.
Debugger: Add "Template" command to disassemble/dump resource template buffers.
Added a new master script to generate and execute the ASLTS test suite. Automatically
handles 32- and 64-bit generation. See tests/aslts.sh
iASL: Fix problem with listing generation during processing of the Switch() operator where
AML listing was disabled until the entire Switch block was completed.
iASL: Improve support for semicolon statement terminators. Fix "invalid
character" message for some cases when the semicolon is used. Semicolons are now
allowed after every <Term> grammar element. ACPICA BZ 927.
iASL: Fixed some possible aliasing warnings during generation. ACPICA BZ 923.
Disassembler: Fix problem with disassembly of the DataTableRegion operator where an
inadvertent "Unhandled deferred opcode" message could be generated.
3) 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: 90.2K Code, 23.9K Data, 114.1K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
Non-Debug Version: 92.3K Code, 24.9K Data, 117.2K Total
Debug Version: 170.8K Code, 72.6K Data, 243.4K Total