15 February 2012. Summary of changes for version 20120215:
This release is available at www.acpica.org/downloads
The ACPI 5.0 specification is available at www.acpi.info
1) ACPICA Core Subsystem:
There have been some major changes to the sleep/wake support code, as described below (a -
a) The AcpiLeaveSleepState has been split into two interfaces, similar to
AcpiEnterSleepStatePrep and AcpiEnterSleepState. The new interface is
AcpiLeaveSleepStatePrep. This allows the host to perform actions between the time the _BFS
method is called and the _WAK method is called. NOTE: all hosts must update their
wake/resume code or else sleep/wake will not work properly. Rafael Wysocki.
b) In AcpiLeaveSleepState, now enable all runtime GPEs before calling the _WAK method.
Some machines require that the GPEs are enabled before the _WAK method is executed. Thomas
c) In AcpiLeaveSleepState, now always clear the WAK_STS (wake status) bit. Some BIOS code
assumes that WAK_STS will be cleared on resume and use it to determine whether the system
is rebooting or resuming. Matthew Garrett.
d) Move the invocations of _GTS (Going To Sleep) and _BFS (Back From Sleep) to match the
ACPI specification requirement. Rafael Wysocki.
e) Implemented full support for the ACPI 5.0 SleepStatus and SleepControl registers within
the V5 FADT. This support adds two new files: hardware/hwesleep.c implements the support
for the new registers. Moved all sleep/wake external interfaces to hardware/hwxfsleep.c.
Added a new OSL interface for ACPI table overrides, AcpiOsPhysicalTableOverride. This
interface allows the host to override a table via a physical address, instead of the
logical address required by AcpiOsTableOverride. This simplifies the host implementation.
Initial implementation by Thomas Renninger. The ACPICA implementation creates a single
shared function for table overrides that attempts both a logical and a physical override.
Expanded the OSL memory read/write interfaces to 64-bit data (AcpiOsReadMemory,
AcpiOsWriteMemory.) This enables full 64-bit memory transfer support for GAS register
structures passed to AcpiRead and AcpiWrite.
Implemented the ACPI_REDUCED_HARDWARE option to allow the creation of a custom build of
ACPICA that supports only the ACPI 5.0 reduced hardware (SoC) model. See the ACPICA
reference for details. See section (3) below for a list of external interfaces that are
configured out. ACPICA BZ 942. This option removes about 10% of the code and 5% of the
static data, and the following hardware ACPI features become unavailable:
PM Event and Control registers
SCI interrupt (and handler)
General Purpose Events (GPEs)
ACPI PM timer
FACS table (Waking vectors and Global Lock)
Updated the unix tarball directory structure to match the ACPICA git source tree. This
ensures that the generic unix makefiles work properly (in generate/unix). Also updated
the Linux makefiles to match. ACPICA BZ 867.
Updated the return value of the _REV predefined method to integer value 5 to reflect ACPI
Moved the external ACPI PM timer interface prototypes to the public acpixf.h file where
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: 92.8K Code, 24.9K Data, 117.7K Total
Debug Version: 171.7K Code, 72.9K Data, 244.5K Total
Non-Debug Version: 93.0K Code, 25.0K Data, 118.0K Total
Debug Version: 172.5K Code, 73.2K Data, 245.7K Total
2) iASL Compiler/Disassembler and Tools:
Disassembler: Fixed a problem with the new ACPI 5.0 serial resource descriptors (I2C, SPI,
UART) where the resource produce/consumer bit was incorrectly displayed.
AcpiHelp: Add display of ACPI/PNP device IDs that are defined in the ACPI specification.
3) External ACPICA interfaces that are removed by ACPI_REDUCED_HARDWARE option.
They remain defined, but return the AE_NOT_CONFIGURED status:
General Purpose Events (GPEs)