Version 20120215

1) ACPICA Core Subsystem:

There have been some major changes to the sleep/wake support code, as described below (a - e).

  1. 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
    time the _BFS method is called and the _WAK method is called. NOTE: all
    must update their wake/resume code or else sleep/wake will not work
    Rafael Wysocki.
  2. 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 Renninger.
  3. 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.
  4. Move the invocations of _GTS (Going To Sleep) and _BFS (Back From Sleep) to match the ACPI specification requirement. Rafael Wysocki.
  5. 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.
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)
  • Fixed Events
  • General Purpose Events (GPEs)
  • Global Lock
  • 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 5.0 support.

Moved the external ACPI PM timer interface prototypes to the public acpixf.h file where they belong.

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.

Previous Release:
Non-Debug Version: 92.8K Code, 24.9K Data, 117.7K Total
Debug Version: 171.7K Code, 72.9K Data, 244.5K Total
Current Release:
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.

15 February, 2012