| ---------------------------------------- |
| 18 August 2015. Summary of changes for version 20150818: |
| |
| This release is available at https://acpica.org/downloads |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fix a regression for AcpiGetTableByIndex interface causing it to fail. Lv |
| Zheng. ACPICA BZ 1186. |
| |
| Completed development to ensure that the ACPICA Disassembler and Debugger |
| are fully standalone components of ACPICA. Removed cross-component |
| dependences. Lv Zheng. |
| |
| The max-number-of-AML-loops is now runtime configurable (previously was |
| compile-time only). This is essentially a loop timeout to force-abort |
| infinite AML loops. ACPCIA BZ 1192. |
| |
| Debugger: Cleanup output to dump ACPI names and namepaths without any |
| trailing underscores. Lv Zheng. ACPICA BZ 1135. |
| |
| Removed unnecessary conditional compilations across the Debugger and |
| Disassembler components where entire modules could be left uncompiled. |
| |
| The aapits test is deprecated and has been removed from the ACPICA git |
| tree. The test has never been completed and has not been maintained, thus |
| becoming rather useless. ACPICA BZ 1015, 794. |
| |
| A batch of small changes to close bugzilla and other reports: |
| - Remove duplicate code for _PLD processing. ACPICA BZ 1176. |
| - Correctly cleanup after a ACPI table load failure. ACPICA BZ 1185. |
| - iASL: Support POSIX yacc again in makefile. Jung-uk Kim. |
| - ACPI table support: general cleanup and simplification. Lv Zheng, Bob |
| Moore. |
| - ACPI table support: fix for a buffer read overrun in AcpiTbFindTable. |
| ACPICA BZ 1184. |
| - Enhance parameter validation for DataTableRegion and LoadTable ASL/AML |
| operators. |
| - Debugger: Split debugger initialization/termination interfaces. Lv |
| Zheng. |
| - AcpiExec: Emit OemTableId for SSDTs during the load phase for table |
| identification. |
| - AcpiExec: Add debug message during _REG method phase during table |
| load/init. |
| - AcpiNames: Fix a regression where some output was missing and no longer |
| emitted. |
| - Debugger: General cleanup and simplification. Lv Zheng. |
| - Disassembler: Cleanup use of several global option variables. Lv Zheng. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 101.3K Code, 27.7K Data, 129.0K Total |
| Debug Version: 198.6K Code, 80.9K Data, 279.5K Total |
| Previous Release: |
| Non-Debug Version: 100.9K Code, 24.5K Data, 125.4K Total |
| Debug Version: 197.8K Code, 81.5K Data, 279.3K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiExec: Fixed a problem where any more than 32 ACPI tables in the XSDT |
| were not handled properly and caused load errors. Now, properly invoke |
| and use the ACPICA auto-reallocate mechanism for ACPI table data |
| structures. ACPICA BZ 1188 |
| |
| AcpiNames: Add command-line wildcard support for ACPI table files. ACPICA |
| BZ 1190. |
| |
| AcpiExec and AcpiNames: Add -l option to load ACPI tables only. For |
| AcpiExec, this means that no control methods (like _REG/_INI/_STA) are |
| executed during initialization. ACPICA BZ 1187, 1189. |
| |
| iASL/Disassembler: Implemented a prototype "listing" mode that emits AML |
| that corresponds to each disassembled ASL statement, to simplify |
| debugging. ACPICA BZ 1191. |
| |
| Debugger: Add option to the "objects" command to display a summary of the |
| current namespace objects (Object type and count). This is displayed if |
| the command is entered with no arguments. |
| |
| AcpiNames: Add -x option to specify debug level, similar to AcpiExec. |
| |
| ---------------------------------------- |
| 17 July 2015. Summary of changes for version 20150717: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Improved the partitioning between the Debugger and Disassembler |
| components. This allows the Debugger to be used standalone within kernel |
| code without the Disassembler (which is used for single stepping also). |
| This renames and moves one file, dmobject.c to dbobject.c. Lv Zheng. |
| |
| Debugger: Implemented a new command to trace the execution of control |
| methods (Trace). This is especially useful for the in-kernel version of |
| the debugger when file I/O may not be available for method trace output. |
| See the ACPICA reference for more information. Lv Zheng. |
| |
| Moved all C library prototypes (used for the local versions of these |
| functions when requested) to a new header, acclib.h |
| Cleaned up the use of non-ANSI C library functions. These functions are |
| implemented locally in ACPICA. Moved all such functions to a common |
| source file, utnonansi.c |
| |
| Debugger: Fixed a problem with the "!!" command (get last command |
| executed) where the debugger could enter an infinite loop and eventually |
| crash. |
| |
| Removed the use of local macros that were used for some of the standard C |
| library functions to automatically cast input parameters. This mostly |
| affected the is* functions where the input parameter is defined to be an |
| int. This required a few modifications to the main ACPICA source code to |
| provide casting for these functions and eliminate possible compiler |
| warnings for these parameters. |
| |
| Across the source code, added additional status/error checking to resolve |
| issues discovered by static source code analysis tools such as Coverity. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 100.9K Code, 24.5K Data, 125.4K Total |
| Debug Version: 197.8K Code, 81.5K Data, 279.3K Total |
| Previous Release: |
| Non-Debug Version: 100.6K Code, 27.6K Data, 128.2K Total |
| Debug Version: 196.2K Code, 81.0K Data, 277.2K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fixed a regression where the device map file feature no longer |
| worked properly when used in conjunction with the disassembler. It only |
| worked properly with the compiler itself. |
| |
| iASL: Implemented a new warning for method LocalX variables that are set |
| but never used (similar to a C compiler such as gcc). This also applies |
| to ArgX variables that are not defined by the parent method, and are |
| instead (legally) used as local variables. |
| |
| iASL/Preprocessor: Finished the pass-through of line numbers from the |
| preprocessor to the compiler. This ensures that compiler errors/warnings |
| have the correct original line numbers and filenames, regardless of any |
| #include files. |
| |
| iASL/Preprocessor: Fixed a couple of issues with comment handling and the |
| pass-through of comments to the preprocessor output file (which becomes |
| the compiler input file). Also fixed a problem with // comments that |
| appear after a math expression. |
| |
| iASL: Added support for the TCPA server table to the table compiler and |
| template generator. (The client table was already previously supported) |
| |
| iASL/Preprocessor: Added a permanent #define of the symbol "__IASL__" to |
| identify the iASL compiler. |
| |
| Cleaned up the use of the macros NEGATIVE and POSITIVE which were defined |
| multiple times. The new names are ACPI_SIGN_NEGATIVE and |
| ACPI_SIGN_POSITIVE. |
| |
| AcpiHelp: Update to expand help messages for the iASL preprocessor |
| directives. |
| |
| |
| ---------------------------------------- |
| 19 June 2015. Summary of changes for version 20150619: |
| |
| Two regressions in version 20150616 have been addressed: |
| |
| Fixes some problems/issues with the C library macro removal (ACPI_STRLEN, |
| etc.) This update changes ACPICA to only use the standard headers for |
| functions, or the prototypes for the local versions of the C library |
| functions. Across the source code, this required some additional casts |
| for some Clib invocations for portability. Moved all local prototypes to |
| a new file, acclib.h |
| |
| Fixes several problems with recent changes to the handling of the FACS |
| table that could cause some systems not to boot. |
| |
| |
| ---------------------------------------- |
| 16 June 2015. Summary of changes for version 20150616: |
| |
| |
| 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 |
| Moore. |
| |
| 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 time. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 100.6K Code, 27.6K Data, 128.2K Total |
| Debug Version: 196.2K Code, 81.0K Data, 277.2K Total |
| Previous Release: |
| 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 specification. |
| |
| 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. |
| |
| |
| ---------------------------------------- |
| 15 May 2015. Summary of changes for version 20150515: |
| |
| This release implements most of ACPI 6.0 as described below. |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Implemented runtime argument checking and return value checking for all |
| new ACPI 6.0 predefined names. This includes: _BTH, _CR3, _DSD, _LPI, |
| _MTL, _PRR, _RDI, _RST, _TFP, _TSN. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 99.9K Code, 27.5K Data, 127.4K Total |
| Debug Version: 195.2K Code, 80.8K Data, 276.0K Total |
| Previous Release: |
| Non-Debug Version: 99.1K Code, 27.3K Data, 126.4K Total |
| Debug Version: 192.8K Code, 79.9K Data, 272.7K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL compiler: Added compile-time support for all new ACPI 6.0 predefined |
| names (argument count validation and return value typechecking.) |
| |
| iASL disassembler and table compiler: implemented support for all new |
| ACPI 6.0 tables. This includes: DRTM, IORT, LPIT, NFIT, STAO, WPBT, XENV. |
| |
| iASL disassembler and table compiler: Added ACPI 6.0 changes to existing |
| tables: FADT, MADT. |
| |
| iASL preprocessor: Added a new directive to enable inclusion of binary |
| blobs into ASL code. The new directive is #includebuffer. It takes a |
| binary file as input and emits a named ascii buffer object into the ASL |
| code. |
| |
| AcpiHelp: Added support for all new ACPI 6.0 predefined names. |
| |
| AcpiHelp: Added a new option, -d, to display all iASL preprocessor |
| directives. |
| |
| AcpiHelp: Added a new option, -t, to display all known/supported ACPI |
| tables. |
| |
| ---------------------------------------- |
| 10 April 2015. Summary of changes for version 20150410: |
| |
| Reverted a change introduced in version 20150408 that caused |
| a regression in the disassembler where incorrect operator |
| symbols could be emitted. |
| |
| ---------------------------------------- |
| 08 April 2015. Summary of changes for version 20150408: |
| |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Permanently set the return value for the _REV predefined name. It now |
| returns 2 (was 5). This matches other ACPI implementations. _REV will be |
| deprecated in the future, and is now defined to be 1 for ACPI 1.0, and 2 |
| for ACPI 2.0 and later. It should never be used to differentiate or |
| identify operating systems. |
| |
| Added the "Windows 2015" string to the _OSI support. ACPICA will now |
| return TRUE to a query with this string. |
| |
| Fixed several issues with the local version of the printf function. |
| |
| Added the C99 compiler option (-std=c99) to the Unix makefiles. |
| |
| Current Release: |
| Non-Debug Version: 99.9K Code, 27.4K Data, 127.3K Total |
| Debug Version: 195.2K Code, 80.7K Data, 275.9K Total |
| Previous Release: |
| Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total |
| Debug Version: 192.1K Code, 79.8K Data, 271.9K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Implemented an enhancement to the constant folding feature to |
| transform the parse tree to a simple Store operation whenever possible: |
| Add (2, 3, X) ==> is converted to: Store (5, X) |
| X = 2 + 3 ==> is converted to: Store (5, X) |
| |
| Updated support for the SLIC table (Software Licensing Description Table) |
| in both the Data Table compiler and the disassembler. The SLIC table |
| support now conforms to "Microsoft Software Licensing Tables (SLIC and |
| MSDM). November 29, 2011. Copyright 2011 Microsoft". Note: Any SLIC data |
| following the ACPI header is now defined to be "Proprietary Data", and as |
| such, can only be entered or displayed as a hex data block. |
| |
| Implemented full support for the MSDM table as described in the document |
| above. Note: The format of MSDM is similar to SLIC. Any MSDM data |
| following the ACPI header is defined to be "Proprietary Data", and can |
| only be entered or displayed as a hex data block. |
| |
| Implemented the -Pn option for the iASL Table Compiler (was only |
| implemented for the ASL compiler). This option disables the iASL |
| preprocessor. |
| |
| Disassembler: For disassembly of Data Tables, added a comment field |
| around the Ascii equivalent data that is emitted as part of the "Raw |
| Table Data" block. This prevents the iASL Preprocessor from possible |
| confusion if/when the table is compiled. |
| |
| Disassembler: Added an option (-df) to force the disassembler to assume |
| that the table being disassembled contains valid AML. This feature is |
| useful for disassembling AML files that contain ACPI signatures other |
| than DSDT or SSDT (such as OEMx or other signatures). |
| |
| Changes for the EFI version of the tools: |
| 1) Fixed a build error/issue |
| 2) Fixed a cast warning |
| |
| iASL: Fixed a path issue with the __FILE__ operator by making the |
| directory prefix optional within the internal SplitInputFilename |
| function. |
| |
| Debugger: Removed some unused global variables. |
| |
| Tests: Updated the makefile for proper generation of the AAPITS suite. |
| |
| ---------------------------------------- |
| 04 February 2015. Summary of changes for version 20150204: |
| |
| ACPICA kernel-resident subsystem: |
| |
| Updated all ACPICA copyrights and signons to 2014. Added the 2014 |
| copyright to all module headers and signons, including the standard Linux |
| header. This affects virtually every file in the ACPICA core subsystem, |
| iASL compiler, all ACPICA utilities, and the test suites. |
| |
| Events: Introduce ACPI_GPE_DISPATCH_RAW_HANDLER to fix GPE storm issues. |
| A raw gpe handling mechanism was created to allow better handling of GPE |
| storms that aren't easily managed by the normal handler. The raw handler |
| allows disabling/renabling of the the GPE so that interrupt storms can be |
| avoided in cases where events cannot be timely serviced. In this |
| scenario, handlers should use the AcpiSetGpe() API to disable/enable the |
| GPE. This API will leave the reference counts undisturbed, thereby |
| preventing unintentional clearing of the GPE when the intent in only to |
| temporarily disable it. Raw handlers allow enabling and disabling of a |
| GPE by removing GPE register locking. As such, raw handlers much provide |
| their own locks while using GPE API's to protect access to GPE data |
| structures. |
| Lv Zheng |
| |
| Events: Always modify GPE registers under the GPE lock. |
| Applies GPE lock around AcpiFinishGpe() to protect access to GPE register |
| values. Reported as bug by joe.liu@apple.com. |
| |
| Unix makefiles: Separate option to disable optimizations and |
| _FORTIFY_SOURCE. This change removes the _FORTIFY_SOURCE flag from the |
| NOOPT disable option and creates a separate flag (NOFORTIFY) for this |
| purpose. Some toolchains may define _FORTIFY_SOURCE which leads redefined |
| errors when building ACPICA. This allows disabling the option without |
| also having to disable optimazations. |
| David Box |
| |
| Current Release: |
| Non-Debug Version: 101.7K Code, 27.9K Data, 129.6K Total |
| Debug Version: 199.2K Code, 82.4K Data, 281.6K Total |
| |
| ---------------------------------------- |
| 07 November 2014. Summary of changes for version 20141107: |
| |
| This release is available at https://acpica.org/downloads |
| |
| This release introduces and implements language extensions to ASL that |
| provide support for symbolic ("C-style") operators and expressions. These |
| language extensions are known collectively as ASL+. |
| |
| |
| 1) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Fixed a problem with disassembly of the UartSerialBus |
| macro. Changed "StopBitsNone" to the correct "StopBitsZero". David E. |
| Box. |
| |
| Disassembler: Fixed the Unicode macro support to add escape sequences. |
| All non-printable ASCII values are emitted as escape sequences, as well |
| as the standard escapes for quote and backslash. Ensures that the |
| disassembled macro can be correctly recompiled. |
| |
| iASL: Added Printf/Fprintf macros for formatted output. These macros are |
| translated to existing AML Concatenate and Store operations. Printf |
| writes to the ASL Debug object. Fprintf allows the specification of an |
| ASL name as the target. Only a single format specifier is required, %o, |
| since the AML interpreter dynamically converts objects to the required |
| type. David E. Box. |
| |
| (old) Store (Concatenate (Concatenate (Concatenate (Concatenate |
| (Concatenate (Concatenate (Concatenate ("", Arg0), |
| ": Unexpected value for "), Arg1), ", "), Arg2), |
| " at line "), Arg3), Debug) |
| |
| (new) Printf ("%o: Unexpected value for %o, %o at line %o", |
| Arg0, Arg1, Arg2, Arg3) |
| |
| (old) Store (Concatenate (Concatenate (Concatenate (Concatenate |
| ("", Arg1), ": "), Arg0), " Successful"), STR1) |
| |
| (new) Fprintf (STR1, "%o: %o Successful", Arg1, Arg0) |
| |
| iASL: Added debug options (-bp, -bt) to dynamically prune levels of the |
| ASL parse tree before the AML code is generated. This allows blocks of |
| ASL code to be removed in order to help locate and identify problem |
| devices and/or code. David E. Box. |
| |
| AcpiExec: Added support (-fi) for an optional namespace object |
| initialization file. This file specifies initial values for namespace |
| objects as necessary for debugging and testing different ASL code paths |
| that may be taken as a result of BIOS options. |
| |
| |
| 2) Overview of symbolic operator support for ASL (ASL+) |
| ------------------------------------------------------- |
| |
| As an extension to the ASL language, iASL implements support for symbolic |
| (C-style) operators for math and logical expressions. This can greatly |
| simplify ASL code as well as improve both readability and |
| maintainability. These language extensions can exist concurrently with |
| all legacy ASL code and expressions. |
| |
| The symbolic extensions are 100% compatible with existing AML |
| interpreters, since no new AML opcodes are created. To implement the |
| extensions, the iASL compiler transforms the symbolic expressions into |
| the legacy ASL/AML equivalents at compile time. |
| |
| Full symbolic expressions are supported, along with the standard C |
| precedence and associativity rules. |
| |
| Full disassembler support for the symbolic expressions is provided, and |
| creates an automatic migration path for existing ASL code to ASL+ code |
| via the disassembly process. By default, the disassembler now emits ASL+ |
| code with symbolic expressions. An option (-dl) is provided to force the |
| disassembler to emit legacy ASL code if desired. |
| |
| Below is the complete list of the currently supported symbolic operators |
| with examples. See the iASL User Guide for additional information. |
| |
| |
| ASL+ Syntax Legacy ASL Equivalent |
| ----------- --------------------- |
| |
| // Math operators |
| |
| Z = X + Y Add (X, Y, Z) |
| Z = X - Y Subtract (X, Y, Z) |
| Z = X * Y Multiply (X, Y, Z) |
| Z = X / Y Divide (X, Y, , Z) |
| Z = X % Y Mod (X, Y, Z) |
| Z = X << Y ShiftLeft (X, Y, Z) |
| Z = X >> Y ShiftRight (X, Y, Z) |
| Z = X & Y And (X, Y, Z) |
| Z = X | Y Or (X, Y, Z) |
| Z = X ^ Y Xor (X, Y, Z) |
| Z = ~X Not (X, Z) |
| X++ Increment (X) |
| X-- Decrement (X) |
| |
| // Logical operators |
| |
| (X == Y) LEqual (X, Y) |
| (X != Y) LNotEqual (X, Y) |
| (X < Y) LLess (X, Y) |
| (X > Y) LGreater (X, Y) |
| (X <= Y) LLessEqual (X, Y) |
| (X >= Y) LGreaterEqual (X, Y) |
| (X && Y) LAnd (X, Y) |
| (X || Y) LOr (X, Y) |
| (!X) LNot (X) |
| |
| // Assignment and compound assignment operations |
| |
| X = Y Store (Y, X) |
| X += Y Add (X, Y, X) |
| X -= Y Subtract (X, Y, X) |
| X *= Y Multiply (X, Y, X) |
| X /= Y Divide (X, Y, , X) |
| X %= Y Mod (X, Y, X) |
| X <<= Y ShiftLeft (X, Y, X) |
| X >>= Y ShiftRight (X, Y, X) |
| X &= Y And (X, Y, X) |
| X |= Y Or (X, Y, X) |
| X ^= Y Xor (X, Y, X) |
| |
| |
| 3) ASL+ Examples: |
| ----------------- |
| |
| Legacy ASL: |
| If (LOr (LOr (LEqual (And (R510, 0x03FB), 0x02E0), LEqual ( |
| And (R520, 0x03FB), 0x02E0)), LOr (LEqual (And (R530, |
| 0x03FB), |
| 0x02E0), LEqual (And (R540, 0x03FB), 0x02E0)))) |
| { |
| And (MEMB, 0xFFFFFFF0, SRMB) |
| Store (MEMB, Local2) |
| Store (PDBM, Local1) |
| And (PDBM, 0xFFFFFFFFFFFFFFF9, PDBM) |
| Store (SRMB, MEMB) |
| Or (PDBM, 0x02, PDBM) |
| } |
| |
| ASL+ version: |
| If (((R510 & 0x03FB) == 0x02E0) || |
| ((R520 & 0x03FB) == 0x02E0) || |
| ((R530 & 0x03FB) == 0x02E0) || |
| ((R540 & 0x03FB) == 0x02E0)) |
| { |
| SRMB = (MEMB & 0xFFFFFFF0) |
| Local2 = MEMB |
| Local1 = PDBM |
| PDBM &= 0xFFFFFFFFFFFFFFF9 |
| MEMB = SRMB |
| PDBM |= 0x02 |
| } |
| |
| Legacy ASL: |
| Store (0x1234, Local1) |
| Multiply (Add (Add (Local1, TEST), 0x20), Local2, Local3) |
| Multiply (Local2, Add (Add (Local1, TEST), 0x20), Local3) |
| Add (Local1, Add (TEST, Multiply (0x20, Local2)), Local3) |
| Store (Index (PKG1, 0x03), Local6) |
| Store (Add (Local3, Local2), Debug) |
| Add (Local1, 0x0F, Local2) |
| Add (Local1, Multiply (Local2, Local3), Local2) |
| Multiply (Add (Add (Local1, TEST), 0x20), ToBCD (Local1), Local3) |
| |
| ASL+ version: |
| Local1 = 0x1234 |
| Local3 = (((Local1 + TEST) + 0x20) * Local2) |
| Local3 = (Local2 * ((Local1 + TEST) + 0x20)) |
| Local3 = (Local1 + (TEST + (0x20 * Local2))) |
| Local6 = Index (PKG1, 0x03) |
| Debug = (Local3 + Local2) |
| Local2 = (Local1 + 0x0F) |
| Local2 = (Local1 + (Local2 * Local3)) |
| Local3 = (((Local1 + TEST) + 0x20) * ToBCD (Local1)) |
| |
| |
| ---------------------------------------- |
| 26 September 2014. Summary of changes for version 20140926: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Updated the GPIO operation region handler interface (GeneralPurposeIo). |
| In order to support GPIO Connection objects with multiple pins, along |
| with the related Field objects, the following changes to the interface |
| have been made: The Address is now defined to be the offset in bits of |
| the field unit from the previous invocation of a Connection. It can be |
| viewed as a "Pin Number Index" into the connection resource descriptor. |
| The BitWidth is the exact bit width of the field. It is usually one bit, |
| but not always. See the ACPICA reference guide (section 8.8.6.2.1) for |
| additional information and examples. |
| |
| GPE support: During ACPICA/GPE initialization, ensure that all GPEs with |
| corresponding _Lxx/_Exx methods are disabled (they may have been enabled |
| by the firmware), so that they cannot fire until they are enabled via |
| AcpiUpdateAllGpes. Rafael J. Wysocki. |
| |
| Added a new return flag for the Event/GPE status interfaces -- |
| AcpiGetEventStatus and AcpiGetGpeStatus. The new |
| ACPI_EVENT_FLAGS_HAS_HANDLER flag is used to indicate that the event or |
| GPE currently has a handler associated with it, and can thus actually |
| affect the system. Lv Zheng. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 99.1K Code, 27.3K Data, 126.4K Total |
| Debug Version: 192.8K Code, 79.9K Data, 272.7K Total |
| Previous Release: |
| Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total |
| Debug Version: 192.1K Code, 79.8K Data, 271.9K Total |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fixed a memory allocation/free regression introduced in 20140828 |
| that could cause the compiler to crash. This was introduced inadvertently |
| during the effort to eliminate compiler memory leaks. ACPICA BZ 1111, |
| 1113. |
| |
| iASL: Removed two error messages that have been found to create false |
| positives, until they can be fixed and fully validated (ACPICA BZ 1112): |
| 1) Illegal forward reference within a method |
| 2) Illegal reference across two methods |
| |
| iASL: Implemented a new option (-lm) to create a hardware mapping file |
| that summarizes all GPIO, I2C, SPI, and UART connections. This option |
| works for both the compiler and disassembler. See the iASL compiler user |
| guide for additional information and examples (section 6.4.6). |
| |
| AcpiDump: Added support for the version 1 (ACPI 1.0) RSDP in addition to |
| version 2. This corrects the AE_BAD_HEADER exception seen on systems with |
| a version 1 RSDP. Lv Zheng ACPICA BZ 1097. |
| |
| AcpiExec: For Unix versions, don't attempt to put STDIN into raw mode |
| unless STDIN is actually a terminal. Assists with batch-mode processing. |
| ACPICA BZ 1114. |
| |
| Disassembler/AcpiHelp: Added another large group of recognized _HID |
| values. |
| |
| |
| ---------------------------------------- |
| 28 August 2014. Summary of changes for version 20140828: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a problem related to the internal use of the Timer() operator where |
| a 64-bit divide could cause an attempted link to a double-precision math |
| library. This divide is not actually necessary, so the code was |
| restructured to eliminate it. Lv Zheng. |
| |
| ACPI 5.1: Added support for the runtime validation of the _DSD package |
| (similar to the iASL support). |
| |
| ACPI 5.1/Headers: Added support for the GICC affinity subtable to the |
| SRAT table. Hanjun Guo <hanjun.guo@linaro.org>. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total |
| Debug Version: 192.1K Code, 79.8K Data, 271.9K Total |
| Previous Release: |
| Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total1 |
| Debug Version: 192.0K Code, 79.7K Data, 271.7K Total |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiExec: Fixed a problem on unix systems where the original terminal |
| state was not always properly restored upon exit. Seen when using the -v |
| option. ACPICA BZ 1104. |
| |
| iASL: Fixed a problem with the validation of the ranges/length within the |
| Memory24 resource descriptor. There was a boundary condition when the |
| range was equal to the (length -1) caused by the fact that these values |
| are defined in 256-byte blocks, not bytes. ACPICA BZ 1098 |
| |
| Disassembler: Fixed a problem with the GpioInt descriptor interrupt |
| polarity |
| flags. The flags are actually 2 bits, not 1, and the "ActiveBoth" keyword |
| is |
| now supported properly. |
| |
| ACPI 5.1: Added the GICC affinity subtable to the SRAT table. Supported |
| in the disassembler, data table compiler, and table template generator. |
| |
| iASL: Added a requirement for Device() objects that one of either a _HID |
| or _ADR must exist within the scope of a Device, as per the ACPI |
| specification. Remove a similar requirement that was incorrectly in place |
| for the _DSD object. |
| |
| iASL: Added error detection for illegal named references within control |
| methods that would cause runtime failures. Now trapped as errors are: 1) |
| References to objects within a non-parent control method. 2) Forward |
| references (within a method) -- for control methods, AML interpreters use |
| a one-pass parse of control methods. ACPICA BZ 1008. |
| |
| iASL: Added error checking for dependencies related to the _PSx power |
| methods. ACPICA BZ 1029. |
| 1) For _PS0, one of these must exist within the same scope: _PS1, _PS2, |
| _PS3. |
| 2) For _PS1, _PS2, and PS3: A _PS0 object must exist within the same |
| scope. |
| |
| iASL and table compiler: Cleanup miscellaneous memory leaks by fully |
| deploying the existing object and string caches and adding new caches for |
| the table compiler. |
| |
| iASL: Split the huge parser source file into multiple subfiles to improve |
| manageability. Generation now requires the M4 macro preprocessor, which |
| is part of the Bison distribution on both unix and windows platforms. |
| |
| AcpiSrc: Fixed and removed all extraneous warnings generated during |
| entire ACPICA source code scan and/or conversion. |
| |
| |
| ---------------------------------------- |
| |
| 24 July 2014. Summary of changes for version 20140724: |
| |
| The ACPI 5.1 specification has been released and is available at: |
| http://uefi.org/specs/access |
| |
| |
| 0) ACPI 5.1 support in ACPICA: |
| |
| ACPI 5.1 is fully supported in ACPICA as of this release. |
| |
| New predefined names. Support includes iASL and runtime ACPICA |
| validation. |
| _CCA (Cache Coherency Attribute). |
| _DSD (Device-Specific Data). David Box. |
| |
| Modifications to existing ACPI tables. Support includes headers, iASL |
| Data Table compiler, disassembler, and the template generator. |
| FADT - New fields and flags. Graeme Gregory. |
| GTDT - One new subtable and new fields. Tomasz Nowicki. |
| MADT - Two new subtables. Tomasz Nowicki. |
| PCCT - One new subtable. |
| |
| Miscellaneous. |
| New notification type for System Resource Affinity change events. |
| |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a regression introduced in 20140627 where a fault can happen during |
| the deletion of Alias AML namespace objects. The problem affected both |
| the core ACPICA and the ACPICA tools including iASL and AcpiExec. |
| |
| Implemented a new GPE public interface, AcpiMarkGpeForWake. Provides a |
| simple mechanism to enable wake GPEs that have no associated handler or |
| control method. Rafael Wysocki. |
| |
| Updated the AcpiEnableGpe interface to disallow the enable if there is no |
| handler or control method associated with the particular GPE. This will |
| help avoid meaningless GPEs and even GPE floods. Rafael Wysocki. |
| |
| Updated GPE handling and dispatch by disabling the GPE before clearing |
| the status bit for edge-triggered GPEs. Lv Zheng. |
| |
| Added Timer() support to the AML Debug object. The current timer value is |
| now displayed with each invocation of (Store to) the debug object to |
| enable simple generation of execution times for AML code (method |
| execution for example.) ACPICA BZ 1093. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total |
| Debug Version: 192.0K Code, 79.7K Data, 271.7K Total |
| Previous Release: |
| Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total |
| Debug Version: 191.7K Code, 79.6K Data, 271.3K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Fixed an issue with the recently added local printf implementation, |
| concerning width/precision specifiers that could cause incorrect output. |
| Lv Zheng. ACPICA BZ 1094. |
| |
| Disassembler: Added support to detect buffers that contain UUIDs and |
| disassemble them to an invocation of the ToUUID operator. Also emit |
| commented descriptions of known ACPI-related UUIDs. |
| |
| AcpiHelp: Added support to display known ACPI-related UUIDs. New option, |
| -u. Adds three new files. |
| |
| iASL: Update table compiler and disassembler for DMAR table changes that |
| were introduced in September 2013. With assistance by David Woodhouse. |
| |
| ---------------------------------------- |
| 27 June 2014. Summary of changes for version 20140627: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Formatted Output: Implemented local versions of standard formatted output |
| utilities such as printf, etc. Over time, it has been discovered that |
| there are in fact many portability issues with printf, and the addition |
| of this feature will fix/prevent these issues once and for all. Some |
| known issues are summarized below: |
| |
| 1) Output of 64-bit values is not portable. For example, UINT64 is %ull |
| for the Linux kernel and is %uI64 for some MSVC versions. |
| 2) Invoking printf consistently in a manner that is portable across both |
| 32-bit and 64-bit platforms is difficult at best in many situations. |
| 3) The output format for pointers varies from system to system (leading |
| zeros especially), and leads to inconsistent output from ACPICA across |
| platforms. |
| 4) Certain platform-specific printf formats may conflict with ACPICA use. |
| 5) If there is no local C library available, ACPICA now has local support |
| for printf. |
| |
| -- To address these printf issues in a complete manner, ACPICA now |
| directly implements a small subset of printf format specifiers, only |
| those that it requires. Adds a new file, utilities/utprint.c. Lv Zheng. |
| |
| Implemented support for ACPICA generation within the EFI environment. |
| Initially, the AcpiDump utility is supported in the UEFI shell |
| environment. Lv Zheng. |
| |
| Added a new external interface, AcpiLogError, to improve ACPICA |
| portability. This allows the host to redirect error messages from the |
| ACPICA utilities. Lv Zheng. |
| |
| Added and deployed new OSL file I/O interfaces to improve ACPICA |
| portability: |
| AcpiOsOpenFile |
| AcpiOsCloseFile |
| AcpiOsReadFile |
| AcpiOsWriteFile |
| AcpiOsGetFileOffset |
| AcpiOsSetFileOffset |
| There are C library implementations of these functions in the new file |
| service_layers/oslibcfs.c -- however, the functions can be implemented by |
| the local host in any way necessary. Lv Zheng. |
| |
| Implemented a mechanism to disable/enable ACPI table checksum validation |
| at runtime. This can be useful when loading tables very early during OS |
| initialization when it may not be possible to map the entire table in |
| order to compute the checksum. Lv Zheng. |
| |
| Fixed a buffer allocation issue for the Generic Serial Bus support. |
| Originally, a fixed buffer length was used. This change allows for |
| variable-length buffers based upon the protocol indicated by the field |
| access attributes. Reported by Lan Tianyu. Lv Zheng. |
| |
| Fixed a problem where an object detached from a namespace node was not |
| properly terminated/cleared and could cause a circular list problem if |
| reattached. ACPICA BZ 1063. David Box. |
| |
| Fixed a possible recursive lock acquisition in hwregs.c. Rakib Mullick. |
| |
| Fixed a possible memory leak in an error return path within the function |
| AcpiUtCopyIobjectToIobject. ACPICA BZ 1087. Colin Ian King. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total |
| Debug Version: 191.7K Code, 79.6K Data, 271.3K Total |
| Previous Release: |
| Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total |
| Debug Version: 189.5K Code, 79.7K Data, 269.2K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Add dump of ASCII equivalent text within a comment at the |
| end of each line of the output for the Buffer() ASL operator. |
| |
| AcpiDump: Miscellaneous changes: |
| Fixed repetitive table dump in -n mode. |
| For older EFI platforms, use the ACPI 1.0 GUID during RSDP search if |
| the ACPI 2.0 GUID fails. |
| |
| iASL: Fixed a problem where the compiler could fault if incorrectly given |
| an acpidump output file as input. ACPICA BZ 1088. David Box. |
| |
| AcpiExec/AcpiNames: Fixed a problem where these utilities could fault if |
| they are invoked without any arguments. |
| |
| Debugger: Fixed a possible memory leak in an error return path. ACPICA BZ |
| 1086. Colin Ian King. |
| |
| Disassembler: Cleaned up a block of code that extracts a parent Op |
| object. Added a comment that explains that the parent is guaranteed to be |
| valid in this case. ACPICA BZ 1069. |
| |
| ---------------------------------------- |
| 24 April 2014. Summary of changes for version 20140424: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Implemented support to skip/ignore NULL address entries in the RSDT/XSDT. |
| Some of these tables are known to contain a trailing NULL entry. Lv |
| Zheng. |
| |
| Removed an extraneous error message for the case where there are a large |
| number of system GPEs (> 124). This was the "32-bit FADT register is too |
| long to convert to GAS struct" message, which is irrelevant for GPEs |
| since the GPEx_BLK_LEN fields of the FADT are always used instead of the |
| (limited capacity) GAS bit length. Also, several changes to ensure proper |
| support for GPE numbers > 255, where some "GPE number" fields were 8-bits |
| internally. |
| |
| Implemented and deployed additional configuration support for the public |
| ACPICA external interfaces. Entire classes of interfaces can now be |
| easily modified or configured out, replaced by stubbed inline functions |
| by default. Lv Zheng. |
| |
| Moved all public ACPICA runtime configuration globals to the public |
| ACPICA external interface file for convenience. Also, removed some |
| obsolete/unused globals. See the file acpixf.h. Lv Zheng. |
| |
| Documentation: Added a new section to the ACPICA reference describing the |
| maximum number of GPEs that can be supported by the FADT-defined GPEs in |
| block zero and one. About 1200 total. See section 4.4.1 of the ACPICA |
| reference. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total |
| Debug Version: 189.5K Code, 79.7K Data, 269.2K Total |
| Previous Release: |
| Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total |
| Debug Version: 189.7K Code, 79.5K Data, 269.2K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL and disassembler: Add full support for the LPIT table (Low Power |
| Idle Table). Includes support in the disassembler, data table compiler, |
| and template generator. |
| |
| AcpiDump utility: |
| 1) Add option to force the use of the RSDT (over the XSDT). |
| 2) Improve validation of the RSDP signature (use 8 chars instead of 4). |
| |
| iASL: Add check for predefined packages that are too large. For |
| predefined names that contain subpackages, check if each subpackage is |
| too large. (Check for too small already exists.) |
| |
| Debugger: Updated the GPE command (which simulates a GPE by executing the |
| GPE code paths in ACPICA). The GPE device is now optional, and defaults |
| to the GPE 0/1 FADT-defined blocks. |
| |
| Unix application OSL: Update line-editing support. Add additional error |
| checking and take care not to reset terminal attributes on exit if they |
| were never set. This should help guarantee that the terminal is always |
| left in the previous state on program exit. |
| |
| ---------------------------------------- |
| 25 March 2014. Summary of changes for version 20140325: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Updated the auto-serialize feature for control methods. This feature |
| automatically serializes all methods that create named objects in order |
| to prevent runtime errors. The update adds support to ignore the |
| currently executing AML SyncLevel when invoking such a method, in order |
| to prevent disruption of any existing SyncLevel priorities that may exist |
| in the AML code. Although the use of SyncLevels is relatively rare, this |
| change fixes a regression where an AE_AML_MUTEX_ORDER exception can |
| appear on some machines starting with the 20140214 release. |
| |
| Added a new external interface to allow the host to install ACPI tables |
| very early, before the namespace is even created. AcpiInstallTable gives |
| the host additional flexibility for ACPI table management. Tables can be |
| installed directly by the host as if they had originally appeared in the |
| XSDT/RSDT. Installed tables can be SSDTs or other ACPI data tables |
| (anything except the DSDT and FACS). Adds a new file, tbdata.c, along |
| with additional internal restructuring and cleanup. See the ACPICA |
| Reference for interface details. Lv Zheng. |
| |
| Added validation of the checksum for all incoming dynamically loaded |
| tables (via external interfaces or via AML Load/LoadTable operators). Lv |
| Zheng. |
| |
| Updated the use of the AcpiOsWaitEventsComplete interface during Notify |
| and GPE handler removal. Restructured calls to eliminate possible race |
| conditions. Lv Zheng. |
| |
| Added a warning for the use/execution of the ASL/AML Unload (table) |
| operator. This will help detect and identify machines that use this |
| operator if and when it is ever used. This operator has never been seen |
| in the field and the usage model and possible side-effects of the drastic |
| runtime action of a full table removal are unknown. |
| |
| Reverted the use of #pragma push/pop which was introduced in the 20140214 |
| release. It appears that push and pop are not implemented by enough |
| compilers to make the use of this feature feasible for ACPICA at this |
| time. However, these operators may be deployed in a future ACPICA |
| release. |
| |
| Added the missing EXPORT_SYMBOL macros for the install and remove SCI |
| handler interfaces. |
| |
| Source code generation: |
| 1) Disabled the use of the "strchr" macro for the gcc-specific |
| generation. For some versions of gcc, this macro can periodically expose |
| a compiler bug which in turn causes compile-time error(s). |
| 2) Added support for PPC64 compilation. Colin Ian King. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total |
| Debug Version: 189.7K Code, 79.5K Data, 269.2K Total |
| Previous Release: |
| Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total |
| Debug Version: 188.6K Code, 79.0K Data, 267.6K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Added several new features to improve the readability of |
| the resulting ASL code. Extra information is emitted within comment |
| fields in the ASL code: |
| 1) Known _HID/_CID values are decoded to descriptive text. |
| 2) Standard values for the Notify() operator are decoded to descriptive |
| text. |
| 3) Target operands are expanded to full pathnames (in a comment) when |
| possible. |
| |
| Disassembler: Miscellaneous updates for extern() handling: |
| 1) Abort compiler if file specified by -fe option does not exist. |
| 2) Silence unnecessary warnings about argument count mismatches. |
| 3) Update warning messages concerning unresolved method externals. |
| 4) Emit "UnknownObj" keyword for externals whose type cannot be |
| determined. |
| |
| AcpiHelp utility: |
| 1) Added the -a option to display both the ASL syntax and the AML |
| encoding for an input ASL operator. This effectively displays all known |
| information about an ASL operator with one AcpiHelp invocation. |
| 2) Added substring match support (similar to a wildcard) for the -i |
| (_HID/PNP IDs) option. |
| |
| iASL/Disassembler: Since this tool does not yet support execution on big- |
| endian machines, added detection of endianness and an error message if |
| execution is attempted on big-endian. Support for big-endian within iASL |
| is a feature that is on the ACPICA to-be-done list. |
| |
| AcpiBin utility: |
| 1) Remove option to extract binary files from an acpidump; this function |
| is made obsolete by the AcpiXtract utility. |
| 2) General cleanup of open files and allocated buffers. |
| |
| ---------------------------------------- |
| 14 February 2014. Summary of changes for version 20140214: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Implemented a new mechanism to proactively prevent problems with ill- |
| behaved reentrant control methods that create named ACPI objects. This |
| behavior is illegal as per the ACPI specification, but is nonetheless |
| frequently seen in the field. Previously, this could lead to an |
| AE_ALREADY_EXISTS exception if the method was actually entered by more |
| than one thread. This new mechanism detects such methods at table load |
| time and marks them "serialized" to prevent reentrancy. A new global |
| option, AcpiGbl_AutoSerializeMethods, has been added to disable this |
| feature if desired. This mechanism and global option obsoletes and |
| supersedes the previous AcpiGbl_SerializeAllMethods option. |
| |
| Added the "Windows 2013" string to the _OSI support. ACPICA will now |
| respond TRUE to _OSI queries with this string. It is the stated policy of |
| ACPICA to add new strings to the _OSI support as soon as possible after |
| they are defined. See the full ACPICA _OSI policy which has been added to |
| the utilities/utosi.c file. |
| |
| Hardened/updated the _PRT return value auto-repair code: |
| 1) Do not abort the repair on a single subpackage failure, continue to |
| check all subpackages. |
| 2) Add check for the minimum subpackage length (4). |
| 3) Properly handle extraneous NULL package elements. |
| |
| Added support to avoid the possibility of infinite loops when traversing |
| object linked lists. Never allow an infinite loop, even in the face of |
| corrupted object lists. |
| |
| ACPICA headers: Deployed the use of #pragma pack(push) and #pragma |
| pack(pop) directives to ensure that the ACPICA headers are independent of |
| compiler settings or other host headers. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total |
| Debug Version: 188.6K Code, 79.0K Data, 267.6K Total |
| Previous Release: |
| Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total |
| Debug Version: 187.5K Code, 78.3K Data, 265.8K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL/Table-compiler: Fixed a problem with support for the SPMI table. The |
| first reserved field was incorrectly forced to have a value of zero. This |
| change correctly forces the field to have a value of one. ACPICA BZ 1081. |
| |
| Debugger: Added missing support for the "Extra" and "Data" subobjects |
| when displaying object data. |
| |
| Debugger: Added support to display entire object linked lists when |
| displaying object data. |
| |
| iASL: Removed the obsolete -g option to obtain ACPI tables from the |
| Windows registry. This feature has been superseded by the acpidump |
| utility. |
| |
| ---------------------------------------- |
| 14 January 2014. Summary of changes for version 20140114: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Updated all ACPICA copyrights and signons to 2014. Added the 2014 |
| copyright to all module headers and signons, including the standard Linux |
| header. This affects virtually every file in the ACPICA core subsystem, |
| iASL compiler, all ACPICA utilities, and the test suites. |
| |
| Improved parameter validation for AcpiInstallGpeBlock. Added the |
| following checks: |
| 1) The incoming device handle refers to type ACPI_TYPE_DEVICE. |
| 2) There is not already a GPE block attached to the device. |
| Likewise, with AcpiRemoveGpeBlock, ensure that the incoming object is a |
| device. |
| |
| Correctly support "references" in the ACPI_OBJECT. This change fixes the |
| support to allow references (namespace nodes) to be passed as arguments |
| to control methods via the evaluate object interface. This is probably |
| most useful for testing purposes, however. |
| |
| Improved support for 32/64 bit physical addresses in printf()-like |
| output. This change improves the support for physical addresses in printf |
| debug statements and other output on both 32-bit and 64-bit hosts. It |
| consistently outputs the appropriate number of bytes for each host. The |
| %p specifier is unsatisfactory since it does not emit uniform output on |
| all hosts/clib implementations (on some, leading zeros are not supported, |
| leading to difficult-to-read output). |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total |
| Debug Version: 187.5K Code, 78.3K Data, 265.8K Total |
| Previous Release: |
| Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total |
| Debug Version: 185.6K Code, 77.3K Data, 262.9K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fix a possible fault when using the Connection() operator. Fixes a |
| problem if the parent Field definition for the Connection operator refers |
| to an operation region that does not exist. ACPICA BZ 1064. |
| |
| AcpiExec: Load of local test tables is now optional. The utility has the |
| capability to load some various tables to test features of ACPICA. |
| However, there are enough of them that the output of the utility became |
| confusing. With this change, only the required local tables are displayed |
| (RSDP, XSDT, etc.) along with the actual tables loaded via the command |
| line specification. This makes the default output simler and easier to |
| understand. The -el command line option restores the original behavior |
| for testing purposes. |
| |
| AcpiExec: Added support for overlapping operation regions. This change |
| expands the simulation of operation regions by supporting regions that |
| overlap within the given address space. Supports SystemMemory and |
| SystemIO. ASLTS test suite updated also. David Box. ACPICA BZ 1031. |
| |
| AcpiExec: Added region handler support for PCI_Config and EC spaces. This |
| allows AcpiExec to simulate these address spaces, similar to the current |
| support for SystemMemory and SystemIO. |
| |
| Debugger: Added new command to read/write/compare all namespace objects. |
| The command "test objects" will exercise the entire namespace by writing |
| new values to each data object, and ensuring that the write was |
| successful. The original value is then restored and verified. |
| |
| Debugger: Added the "test predefined" command. This change makes this |
| test public and puts it under the new "test" command. The test executes |
| each and every predefined name within the current namespace. |
| |
| ---------------------------------------- |
| 18 December 2013. Summary of changes for version 20131218: |
| |
| Global note: The ACPI 5.0A specification was released this month. There |
| are no changes needed for ACPICA since this release of ACPI is an |
| errata/clarification release. The specification is available at |
| acpi.info. |
| |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Added validation of the XSDT root table if it is present. Some older |
| platforms contain an XSDT that is ill-formed or otherwise invalid (such |
| as containing some or all entries that are NULL pointers). This change |
| adds a new function to validate the XSDT before actually using it. If the |
| XSDT is found to be invalid, ACPICA will now automatically fall back to |
| using the RSDT instead. Original implementation by Zhao Yakui. Ported to |
| ACPICA and enhanced by Lv Zheng and Bob Moore. |
| |
| Added a runtime option to ignore the XSDT and force the use of the RSDT. |
| This change adds a runtime option that will force ACPICA to use the RSDT |
| instead of the XSDT (AcpiGbl_DoNotUseXsdt). Although the ACPI spec |
| requires that an XSDT be used instead of the RSDT, the XSDT has been |
| found to be corrupt or ill-formed on some machines. Lv Zheng. |
| |
| Added a runtime option to favor 32-bit FADT register addresses over the |
| 64-bit addresses. This change adds an option to favor 32-bit FADT |
| addresses when there is a conflict between the 32-bit and 64-bit versions |
| of the same register. The default behavior is to use the 64-bit version |
| in accordance with the ACPI specification. This can now be overridden via |
| the AcpiGbl_Use32BitFadtAddresses flag. ACPICA BZ 885. Lv Zheng. |
| |
| During the change above, the internal "Convert FADT" and "Verify FADT" |
| functions have been merged to simplify the code, making it easier to |
| understand and maintain. ACPICA BZ 933. |
| |
| Improve exception reporting and handling for GPE block installation. |
| Return an actual status from AcpiEvGetGpeXruptBlock and don't clobber the |
| status when exiting AcpiEvInstallGpeBlock. ACPICA BZ 1019. |
| |
| Added helper macros to extract bus/segment numbers from the HEST table. |
| This change adds two macros to extract the encoded bus and segment |
| numbers from the HEST Bus field - ACPI_HEST_BUS and ACPI_HEST_SEGMENT. |
| Betty Dall <betty.dall@hp.com> |
| |
| Removed the unused ACPI_FREE_BUFFER macro. This macro is no longer used |
| by ACPICA. It is not a public macro, so it should have no effect on |
| existing OSV code. Lv Zheng. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total |
| Debug Version: 185.6K Code, 77.3K Data, 262.9K Total |
| Previous Release: |
| Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total |
| Debug Version: 185.1K Code, 77.2K Data, 262.3K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Improved pathname support for emitted External() |
| statements. This change adds full pathname support for external names |
| that have been resolved internally by the inclusion of additional ACPI |
| tables (via the iASL -e option). Without this change, the disassembler |
| can emit multiple externals for the same object, or it become confused |
| when the Scope() operator is used on an external object. Overall, greatly |
| improves the ability to actually recompile the emitted ASL code when |
| objects a referenced across multiple ACPI tables. Reported by Michael |
| Tsirkin (mst@redhat.com). |
| |
| Tests/ASLTS: Updated functional control suite to execute with no errors. |
| David Box. Fixed several errors related to the testing of the interpreter |
| slack mode. Lv Zheng. |
| |
| iASL: Added support to detect names that are declared within a control |
| method, but are unused (these are temporary names that are only valid |
| during the time the method is executing). A remark is issued for these |
| cases. ACPICA BZ 1022. |
| |
| iASL: Added full support for the DBG2 table. Adds full disassembler, |
| table compiler, and template generator support for the DBG2 table (Debug |
| Port 2 table). |
| |
| iASL: Added full support for the PCCT table, update the table definition. |
| Updates the PCCT table definition in the actbl3.h header and adds table |
| compiler and template generator support. |
| |
| iASL: Added an option to emit only error messages (no warnings/remarks). |
| The -ve option will enable only error messages, warnings and remarks are |
| suppressed. This can simplify debugging when only the errors are |
| important, such as when an ACPI table is disassembled and there are many |
| warnings and remarks -- but only the actual errors are of real interest. |
| |
| Example ACPICA code (source/tools/examples): Updated the example code so |
| that it builds to an actual working program, not just example code. Added |
| ACPI tables and execution of an example control method in the DSDT. Added |
| makefile support for Unix generation. |
| |
| ---------------------------------------- |
| 15 November 2013. Summary of changes for version 20131115: |
| |
| This release is available at https://acpica.org/downloads |
| |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Resource Manager: Fixed loop termination for the "get AML length" |
| function. The loop previously had an error termination on a NULL resource |
| pointer, which can never happen since the loop simply increments a valid |
| resource pointer. This fix changes the loop to terminate with an error on |
| an invalid end-of-buffer condition. The problem can be seen as an |
| infinite loop by callers to AcpiSetCurrentResources with an invalid or |
| corrupted resource descriptor, or a resource descriptor that is missing |
| an END_TAG descriptor. Reported by Dan Carpenter |
| <dan.carpenter@oracle.com>. Lv Zheng, Bob Moore. |
| |
| Table unload and ACPICA termination: Delete all attached data objects |
| during namespace node deletion. This fix updates namespace node deletion |
| to delete the entire list of attached objects (attached via |
| AcpiAttachObject) instead of just one of the attached items. ACPICA BZ |
| 1024. Tomasz Nowicki (tomasz.nowicki@linaro.org). |
| |
| ACPICA termination: Added support to delete all objects attached to the |
| root namespace node. This fix deletes any and all objects that have been |
| attached to the root node via AcpiAttachData. Previously, none of these |
| objects were deleted. Reported by Tomasz Nowicki. ACPICA BZ 1026. |
| |
| Debug output: Do not emit the function nesting level for the in-kernel |
| build. The nesting level is really only useful during a single-thread |
| execution. Therefore, only enable this output for the AcpiExec utility. |
| Also, only emit the thread ID when executing under AcpiExec (Context |
| switches are still always detected and a message is emitted). ACPICA BZ |
| 972. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total |
| Debug Version: 185.1K Code, 77.2K Data, 262.3K Total |
| Previous Release: |
| Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total |
| Debug Version: 185.2K Code, 77.2K Data, 262.4K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiExec/Unix-OSL: Use <termios.h> instead of <termio.h>. This is the |
| correct portable POSIX header for terminal control functions. |
| |
| Disassembler: Fixed control method invocation issues related to the use |
| of the CondRefOf() operator. The problem is seen in the disassembly where |
| control method invocations may not be disassembled properly if the |
| control method name has been used previously as an argument to CondRefOf. |
| The solution is to not attempt to emit an external declaration for the |
| CondRefOf target (it is not necessary in the first place). This prevents |
| disassembler object type confusion. ACPICA BZ 988. |
| |
| Unix Makefiles: Added an option to disable compiler optimizations and the |
| _FORTIFY_SOURCE flag. Some older compilers have problems compiling ACPICA |
| with optimizations (reportedly, gcc 4.4 for example). This change adds a |
| command line option for make (NOOPT) that disables all compiler |
| optimizations and the _FORTIFY_SOURCE compiler flag. The default |
| optimization is -O2 with the _FORTIFY_SOURCE flag specified. ACPICA BZ |
| 1034. Lv Zheng, Bob Moore. |
| |
| Tests/ASLTS: Added options to specify individual test cases and modes. |
| This allows testers running aslts.sh to optionally specify individual |
| test modes and test cases. Also added an option to disable the forced |
| generation of the ACPICA tools from source if desired. Lv Zheng. |
| |
| ---------------------------------------- |
| 27 September 2013. Summary of changes for version 20130927: |
| |
| This release is available at https://acpica.org/downloads |
| |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a problem with store operations to reference objects. This change |
| fixes a problem where a Store operation to an ArgX object that contained |
| a |
| reference to a field object did not complete the automatic dereference |
| and |
| then write to the actual field object. Instead, the object type of the |
| field object was inadvertently changed to match the type of the source |
| operand. The new behavior will actually write to the field object (buffer |
| field or field unit), thus matching the correct ACPI-defined behavior. |
| |
| Implemented support to allow the host to redefine individual OSL |
| prototypes. This change enables the host to redefine OSL prototypes found |
| in the acpiosxf.h file. This allows the host to implement OSL interfaces |
| with a macro or inlined function. Further, it allows the host to add any |
| additional required modifiers such as __iomem, __init, __exit, etc., as |
| necessary on a per-interface basis. Enables maximum flexibility for the |
| OSL interfaces. Lv Zheng. |
| |
| Hardcoded the access width for the FADT-defined reset register. The ACPI |
| specification requires the reset register width to be 8 bits. ACPICA now |
| hardcodes the width to 8 and ignores the FADT width value. This provides |
| compatibility with other ACPI implementations that have allowed BIOS code |
| with bad register width values to go unnoticed. Matthew Garett, Bob |
| Moore, |
| Lv Zheng. |
| |
| Changed the position/use of the ACPI_PRINTF_LIKE macro. This macro is |
| used |
| in the OSL header (acpiosxf). The change modifies the position of this |
| macro in each instance where it is used (AcpiDebugPrint, etc.) to avoid |
| build issues if the OSL defines the implementation of the interface to be |
| an inline stub function. Lv Zheng. |
| |
| Deployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA |
| initialization interfaces. This change adds a new macro for the main init |
| and terminate external interfaces in order to support hosts that require |
| additional or different processing for these functions. Changed from |
| ACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv |
| Zheng, Bob Moore. |
| |
| Cleaned up the memory allocation macros for configurability. In the |
| common |
| case, the ACPI_ALLOCATE and related macros now resolve directly to their |
| respective AcpiOs* OSL interfaces. Two options: |
| 1) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by |
| default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define. |
| 2) For AcpiExec (and for debugging), the macros can optionally be |
| resolved |
| to the local ACPICA interfaces that track each allocation (local tracking |
| is used to immediately detect memory leaks). |
| Lv Zheng. |
| |
| Simplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel |
| to predefine this macro to either TRUE or FALSE during the system build. |
| |
| Replaced __FUNCTION_ with __func__ in the gcc-specific header. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total |
| Debug Version: 185.2K Code, 77.2K Data, 262.4K Total |
| Previous Release: |
| Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total |
| Debug Version: 184.4K Code, 76.8K Data, 261.2K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Implemented wildcard support for the -e option. This simplifies use |
| when there are many SSDTs that must be included to resolve external |
| method |
| declarations. ACPICA BZ 1041. Example: |
| iasl -e ssdt*.dat -d dsdt.dat |
| |
| AcpiExec: Add history/line-editing for Unix/Linux systems. This change |
| adds a portable module that implements full history and limited line |
| editing for Unix and Linux systems. It does not use readline() due to |
| portability issues. Instead it uses the POSIX termio interface to put the |
| terminal in raw input mode so that the various special keys can be |
| trapped |
| (such as up/down-arrow for history support and left/right-arrow for line |
| editing). Uses the existing debugger history mechanism. ACPICA BZ 1036. |
| |
| AcpiXtract: Add support to handle (ignore) "empty" lines containing only |
| one or more spaces. This provides compatible with early or different |
| versions of the AcpiDump utility. ACPICA BZ 1044. |
| |
| AcpiDump: Do not ignore tables that contain only an ACPI table header. |
| Apparently, some BIOSs create SSDTs that contain an ACPI table header but |
| no other data. This change adds support to dump these tables. Any tables |
| shorter than the length of an ACPI table header remain in error (an error |
| message is emitted). Reported by Yi Li. |
| |
| Debugger: Echo actual command along with the "unknown command" message. |
| |
| ---------------------------------------- |
| 23 August 2013. Summary of changes for version 20130823: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Implemented support for host-installed System Control Interrupt (SCI) |
| handlers. Certain ACPI functionality requires the host to handle raw |
| SCIs. For example, the "SCI Doorbell" that is defined for memory power |
| state support requires the host device driver to handle SCIs to examine |
| if the doorbell has been activated. Multiple SCI handlers can be |
| installed to allow for future expansion. New external interfaces are |
| AcpiInstallSciHandler, AcpiRemoveSciHandler; see the ACPICA reference for |
| details. Lv Zheng, Bob Moore. ACPICA BZ 1032. |
| |
| Operation region support: Never locally free the handler "context" |
| pointer. This change removes some dangerous code that attempts to free |
| the handler context pointer in some (rare) circumstances. The owner of |
| the handler owns this pointer and the ACPICA code should never touch it. |
| Although not seen to be an issue in any kernel, it did show up as a |
| problem (fault) under AcpiExec. Also, set the internal storage field for |
| the context pointer to zero when the region is deactivated, simply for |
| sanity. David Box. ACPICA BZ 1039. |
| |
| AcpiRead: On error, do not modify the return value target location. If an |
| error happens in the middle of a split 32/32 64-bit I/O operation, do not |
| modify the target of the return value pointer. Makes the code consistent |
| with the rest of ACPICA. Bjorn Helgaas. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total |
| Debug Version: 184.4K Code, 76.8K Data, 261.2K Total |
| Previous Release: |
| Non-Debug Version: 96.2K Code, 27.1K Data, 123.3K Total |
| Debug Version: 185.4K Code, 77.1K Data, 262.5K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiDump: Implemented several new features and fixed some problems: |
| 1) Added support to dump the RSDP, RSDT, and XSDT tables. |
| 2) Added support for multiple table instances (SSDT, UEFI). |
| 3) Added option to dump "customized" (overridden) tables (-c). |
| 4) Fixed a problem where some table filenames were improperly |
| constructed. |
| 5) Improved some error messages, removed some unnecessary messages. |
| |
| iASL: Implemented additional support for disassembly of ACPI tables that |
| contain invocations of external control methods. The -fe<file> option |
| allows the import of a file that specifies the external methods along |
| with the required number of arguments for each -- allowing for the |
| correct disassembly of the table. This is a workaround for a limitation |
| of AML code where the disassembler often cannot determine the number of |
| arguments required for an external control method and generates incorrect |
| ASL code. See the iASL reference for details. ACPICA BZ 1030. |
| |
| Debugger: Implemented a new command (paths) that displays the full |
| pathnames (namepaths) and object types of all objects in the namespace. |
| This is an alternative to the namespace command. |
| |
| Debugger: Implemented a new command (sci) that invokes the SCI dispatch |
| mechanism and any installed handlers. |
| |
| iASL: Fixed a possible segfault for "too many parent prefixes" condition. |
| This can occur if there are too many parent prefixes in a namepath (for |
| example, ^^^^^^PCI0.ECRD). ACPICA BZ 1035. |
| |
| Application OSLs: Set the return value for the PCI read functions. These |
| functions simply return AE_OK, but should set the return value to zero |
| also. This change implements this. ACPICA BZ 1038. |
| |
| Debugger: Prevent possible command line buffer overflow. Increase the |
| size of a couple of the debugger line buffers, and ensure that overflow |
| cannot happen. ACPICA BZ 1037. |
| |
| iASL: Changed to abort immediately on serious errors during the parsing |
| phase. Due to the nature of ASL, there is no point in attempting to |
| compile these types of errors, and they typically end up causing a |
| cascade of hundreds of errors which obscure the original problem. |
| |
| ---------------------------------------- |
| 25 July 2013. Summary of changes for version 20130725: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a problem with the DerefOf operator where references to FieldUnits |
| and BufferFields incorrectly returned the parent object, not the actual |
| value of the object. After this change, a dereference of a FieldUnit |
| reference results in a read operation on the field to get the value, and |
| likewise, the appropriate BufferField value is extracted from the target |
| buffer. |
| |
| Fixed a problem where the _WAK method could cause a fault under these |
| circumstances: 1) Interpreter slack mode was not enabled, and 2) the _WAK |
| method returned no value. The problem is rarely seen because most kernels |
| run ACPICA in slack mode. |
| |
| For the DerefOf operator, a fatal error now results if an attempt is made |
| to dereference a reference (created by the Index operator) to a NULL |
| package element. Provides compatibility with other ACPI implementations, |
| and this behavior will be added to a future version of the ACPI |
| specification. |
| |
| The ACPI Power Management Timer (defined in the FADT) is now optional. |
| This provides compatibility with other ACPI implementations and will |
| appear in the next version of the ACPI specification. If there is no PM |
| Timer on the platform, AcpiGetTimer returns AE_SUPPORT. An address of |
| zero in the FADT indicates no PM timer. |
| |
| Implemented a new interface for _OSI support, AcpiUpdateInterfaces. This |
| allows the host to globally enable/disable all vendor strings, all |
| feature strings, or both. Intended to be primarily used for debugging |
| purposes only. Lv Zheng. |
| |
| Expose the collected _OSI data to the host via a global variable. This |
| data tracks the highest level vendor ID that has been invoked by the BIOS |
| so that the host (and potentially ACPICA itself) can change behaviors |
| based upon the age of the BIOS. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.2K Code, 27.1K Data, 123.3K Total |
| Debug Version: 184.4K Code, 76.8K Data, 261.2K Total |
| Previous Release: |
| Non-Debug Version: 95.9K Code, 26.9K Data, 122.8K Total |
| Debug Version: 184.1K Code, 76.7K Data, 260.8K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Created the following enhancements for the -so option (create |
| offset table): |
| 1)Add offsets for the last nameseg in each namepath for every supported |
| object type |
| 2)Add support for Processor, Device, Thermal Zone, and Scope objects |
| 3)Add the actual AML opcode for the parent object of every supported |
| object type |
| 4)Add support for the ZERO/ONE/ONES AML opcodes for integer objects |
| |
| Disassembler: Emit all unresolved external symbols in a single block. |
| These are external references to control methods that could not be |
| resolved, and thus, the disassembler had to make a guess at the number of |
| arguments to parse. |
| |
| iASL: The argument to the -T option (create table template) is now |
| optional. If not specified, the default table is a DSDT, typically the |
| most common case. |
| |
| ---------------------------------------- |
| 26 June 2013. Summary of changes for version 20130626: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed an issue with runtime repair of the _CST object. Null or invalid |
| elements were not always removed properly. Lv Zheng. |
| |
| Removed an arbitrary restriction of 256 GPEs per GPE block (such as the |
| FADT-defined GPE0 and GPE1). For GPE0, GPE1, and each GPE Block Device, |
| the maximum number of GPEs is 1016. Use of multiple GPE block devices |
| makes the system-wide number of GPEs essentially unlimited. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 95.9K Code, 26.9K Data, 122.8K Total |
| Debug Version: 184.1K Code, 76.7K Data, 260.8K Total |
| Previous Release: |
| Non-Debug Version: 96.0K Code, 27.0K Data, 123.0K Total |
| Debug Version: 184.1K Code, 76.8K Data, 260.9K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Portable AcpiDump: Implemented full support for the Linux and FreeBSD |
| hosts. Now supports Linux, FreeBSD, and Windows. |
| |
| Disassembler: Added some missing types for the HEST and EINJ tables: "Set |
| Error Type With Address", "CMCI", "MCE", and "Flush Cacheline". |
| |
| iASL/Preprocessor: Implemented full support for nested |
| #if/#else/#elif/#endif blocks. Allows arbitrary depth of nested blocks. |
| |
| Disassembler: Expanded maximum output string length to 64K. Was 256 bytes |
| max. The original purpose of this constraint was to limit the amount of |
| debug output. However, the string function in question (UtPrintString) is |
| now used for the disassembler also, where 256 bytes is insufficient. |
| Reported by RehabMan@GitHub. |
| |
| iASL/DataTables: Fixed some problems and issues with compilation of DMAR |
| tables. ACPICA BZ 999. Lv Zheng. |
| |
| iASL: Fixed a couple of error exit issues that could result in a "Could |
| not delete <file>" message during ASL compilation. |
| |
| AcpiDump: Allow "FADT" and "MADT" as valid table signatures, even though |
| the actual signatures for these tables are "FACP" and "APIC", |
| respectively. |
| |
| AcpiDump: Added support for multiple UEFI tables. Only SSDT and UEFI |
| tables are allowed to have multiple instances. |
| |
| ---------------------------------------- |
| 17 May 2013. Summary of changes for version 20130517: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a regression introduced in version 20130328 for _INI methods. This |
| change fixes a problem introduced in 20130328 where _INI methods are no |
| longer executed properly because of a memory block that was not |
| initialized correctly. ACPICA BZ 1016. Tomasz Nowicki |
| <tomasz.nowicki@linaro.org>. |
| |
| Fixed a possible problem with the new extended sleep registers in the |
| ACPI |
| 5.0 FADT. Do not use these registers (even if populated) unless the HW- |
| reduced bit is set in the FADT (as per the ACPI specification). ACPICA BZ |
| 1020. Lv Zheng. |
| |
| Implemented return value repair code for _CST predefined objects: Sort |
| the |
| list and detect/remove invalid entries. ACPICA BZ 890. Lv Zheng. |
| |
| Implemented a debug-only option to disable loading of SSDTs from the |
| RSDT/XSDT during ACPICA initialization. This can be useful for debugging |
| ACPI problems on some machines. Set AcpiGbl_DisableSsdtTableLoad in |
| acglobal.h - ACPICA BZ 1005. Lv Zheng. |
| |
| Fixed some issues in the ACPICA initialization and termination code: |
| Tomasz Nowicki <tomasz.nowicki@linaro.org> |
| 1) Clear events initialized flag upon event component termination. ACPICA |
| BZ 1013. |
| 2) Fixed a possible memory leak in GPE init error path. ACPICA BZ 1018. |
| 3) Delete global lock pending lock during termination. ACPICA BZ 1012. |
| 4) Clear debug buffer global on termination to prevent possible multiple |
| delete. ACPICA BZ 1010. |
| |
| Standardized all switch() blocks across the entire source base. After |
| many |
| years, different formatting for switch() had crept in. This change makes |
| the formatting of every switch block identical. ACPICA BZ 997. Chao Guan. |
| |
| Split some files to enhance ACPICA modularity and configurability: |
| 1) Split buffer dump routines into utilities/utbuffer.c |
| 2) Split internal error message routines into utilities/uterror.c |
| 3) Split table print utilities into tables/tbprint.c |
| 4) Split iASL command-line option processing into asloptions.c |
| |
| Makefile enhancements: |
| 1) Support for all new files above. |
| 2) Abort make on errors from any subcomponent. Chao Guan. |
| 3) Add build support for Apple Mac OS X. Liang Qi. |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 96.0K Code, 27.0K Data, 123.0K Total |
| Debug Version: 184.1K Code, 76.8K Data, 260.9K Total |
| Previous Release: |
| Non-Debug Version: 95.6K Code, 26.8K Data, 122.4K Total |
| Debug Version: 183.5K Code, 76.6K Data, 260.1K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| New utility: Implemented an easily portable version of the acpidump |
| utility to extract ACPI tables from the system (or a file) in an ASCII |
| hex |
| dump format. The top-level code implements the various command line |
| options, file I/O, and table dump routines. To port to a new host, only |
| three functions need to be implemented to get tables -- since this |
| functionality is OS-dependent. See the tools/acpidump/apmain.c module and |
| the ACPICA reference for porting instructions. ACPICA BZ 859. Notes: |
| 1) The Windows version obtains the ACPI tables from the Registry. |
| 2) The Linux version is under development. |
| 3) Other hosts - If an OS-dependent module is submitted, it will be |
| distributed with ACPICA. |
| |
| iASL: Fixed a regression for -D preprocessor option (define symbol). A |
| restructuring/change to the initialization sequence caused this option to |
| no longer work properly. |
| |
| iASL: Implemented a mechanism to disable specific warnings and remarks. |
| Adds a new command line option, "-vw <messageid> as well as "#pragma |
| disable <messageid>". ACPICA BZ 989. Chao Guan, Bob Moore. |
| |
| iASL: Fix for too-strict package object validation. The package object |
| validation for return values from the predefined names is a bit too |
| strict, it does not allow names references within the package (which will |
| be resolved at runtime.) These types of references cannot be validated at |
| compile time. This change ignores named references within package objects |
| for names that return or define static packages. |
| |
| Debugger: Fixed the 80-character command line limitation for the History |
| command. Now allows lines of arbitrary length. ACPICA BZ 1000. Chao Guan. |
| |
| iASL: Added control method and package support for the -so option |
| (generates AML offset table for BIOS support.) |
| |
| iASL: issue a remark if a non-serialized method creates named objects. If |
| a thread blocks within the method for any reason, and another thread |
| enters the method, the method will fail because an attempt will be made |
| to |
| create the same (named) object twice. In this case, issue a remark that |
| the method should be marked serialized. NOTE: may become a warning later. |
| ACPICA BZ 909. |
| |
| ---------------------------------------- |
| 18 April 2013. Summary of changes for version 20130418: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed a possible buffer overrun during some rare but specific field unit |
| read operations. This overrun can only happen if the DSDT version is 1 -- |
| meaning that all AML integers are 32 bits -- and the field length is |
| between 33 and 55 bits long. During the read, an internal buffer object |
| is |
| created for the field unit because the field is larger than an integer |
| (32 |
| bits). However, in this case, the buffer will be incorrectly written |
| beyond the end because the buffer length is less than the internal |
| minimum |
| of 64 bits (8 bytes) long. The buffer will be either 5, 6, or 7 bytes |
| long, but a full 8 bytes will be written. |
| |
| Updated the Embedded Controller "orphan" _REG method support. This refers |
| to _REG methods under the EC device that have no corresponding operation |
| region. This is allowed by the ACPI specification. This update removes a |
| dependency on the existence an ECDT table. It will execute an orphan _REG |
| method as long as the operation region handler for the EC is installed at |
| the EC device node and not the namespace root. Rui Zhang (original |
| update), Bob Moore (update/integrate). |
| |
| Implemented run-time argument typechecking for all predefined ACPI names |
| (_STA, _BIF, etc.) This change performs object typechecking on all |
| incoming arguments for all predefined names executed via |
| AcpiEvaluateObject. This ensures that ACPI-related device drivers are |
| passing correct object types as well as the correct number of arguments |
| (therefore identifying any issues immediately). Also, the ASL/namespace |
| definition of the predefined name is checked against the ACPI |
| specification for the proper argument count. Adds one new file, |
| nsarguments.c |
| |
| Changed an exception code for the ASL UnLoad() operator. Changed the |
| exception code for the case where the input DdbHandle is invalid, from |
| AE_BAD_PARAMETER to the more appropriate AE_AML_OPERAND_TYPE. |
| |
| Unix/Linux makefiles: Removed the use of the -O2 optimization flag in the |
| global makefile. The use of this flag causes compiler errors on earlier |
| versions of GCC, so it has been removed for compatibility. |
| |
| Miscellaneous cleanup: |
| 1) Removed some unused/obsolete macros |
| 2) Fixed a possible memory leak in the _OSI support |
| 3) Removed an unused variable in the predefined name support |
| 4) Windows OSL: remove obsolete reference to a memory list field |
| |
| 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. |
| |
| Current Release: |
| Non-Debug Version: 95.2K Code, 26.4K Data, 121.6K Total |
| Debug Version: 183.0K Code, 76.0K Data, 259.0K Total |
| Previous Release: |
| Non-Debug Version: 95.6K Code, 26.8K Data, 122.4K Total |
| Debug Version: 183.5K Code, 76.6K Data, 260.1K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiExec: Added installation of a handler for the SystemCMOS address |
| space. This prevents control method abort if a method accesses this |
| space. |
| |
| AcpiExec: Added support for multiple EC devices, and now install EC |
| operation region handler(s) at the actual EC device instead of the |
| namespace root. This reflects the typical behavior of host operating |
| systems. |
| |
| AcpiExec: Updated to ensure that all operation region handlers are |
| installed before the _REG methods are executed. This prevents a _REG |
| method from aborting if it accesses an address space has no handler. |
| AcpiExec installs a handler for every possible address space. |
| |
| Debugger: Enhanced the "handlers" command to display non-root handlers. |
| This change enhances the handlers command to display handlers associated |
| with individual devices throughout the namespace, in addition to the |
| currently supported display of handlers associated with the root |
| namespace |
| node. |
| |
| ASL Test Suite: Several test suite errors have been identified and |
| resolved, reducing the total error count during execution. Chao Guan. |
| |
| ---------------------------------------- |
| 28 March 2013. Summary of changes for version 20130328: |
| |
| 1) ACPICA kernel-resident subsystem: |
| |
| Fixed several possible race conditions with the internal object reference |
| counting mechanism. Some of the external ACPICA interfaces update object |
| reference counts without holding the interpreter or namespace lock. This |
| change adds a spinlock to protect reference count updates on the internal |
| ACPICA objects. Reported by and with assistance from Andriy Gapon |
| (avg@FreeBSD.org). |
| |
| FADT support: Removed an extraneous warning for very large GPE register |
| sets. This change removes a size mismatch warning if the legacy length |
| field for a GPE register set is larger than the 64-bit GAS structure can |
| accommodate. GPE register sets can be larger than the 255-bit width |
| limitation of the GAS structure. Linn Crosetto (linn@hp.com). |
| |
| _OSI Support: handle any errors from AcpiOsAcquireMutex. Check for error |
| return from this interface. Handles a possible timeout case if |
| ACPI_WAIT_FOREVER is modified by the host to be a value less than |
| "forever". Jung-uk Kim. |
| |
| Predefined name support: Add allowed/required argument type information |
| to |
| the master predefined info table. This change adds the infrastructure to |
| enable typechecking on incoming arguments for all predefined |
| methods/objects. It does not actually contain the code that will fully |
| utilize this information, this is still under development. Also condenses |
| some duplicate code for the predefined names into a new module, |
| utilities/utpredef.c |
| |
| 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: 95.0K Code, 25.9K Data, 120.9K Total |
| Debug Version: 182.9K Code, 75.6K Data, 258.5K Total |
| Current Release: |
| Non-Debug Version: 95.2K Code, 26.4K Data, 121.6K Total |
| Debug Version: 183.0K Code, 76.0K Data, 259.0K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Implemented a new option to simplify the development of ACPI- |
| related |
| BIOS code. Adds support for a new "offset table" output file. The -so |
| option will create a C table containing the AML table offsets of various |
| named objects in the namespace so that BIOS code can modify them easily |
| at |
| boot time. This can simplify BIOS runtime code by eliminating expensive |
| searches for "magic values", enhancing boot times and adding greater |
| reliability. With assistance from Lee Hamel. |
| |
| iASL: Allow additional predefined names to return zero-length packages. |
| Now, all predefined names that are defined by the ACPI specification to |
| return a "variable-length package of packages" are allowed to return a |
| zero length top-level package. This allows the BIOS to tell the host that |
| the requested feature is not supported, and supports existing BIOS/ASL |
| code and practices. |
| |
| iASL: Changed the "result not used" warning to an error. This is the case |
| where an ASL operator is effectively a NOOP because the result of the |
| operation is not stored anywhere. For example: |
| Add (4, Local0) |
| There is no target (missing 3rd argument), nor is the function return |
| value used. This is potentially a very serious problem -- since the code |
| was probably intended to do something, but for whatever reason, the value |
| was not stored. Therefore, this issue has been upgraded from a warning to |
| an error. |
| |
| AcpiHelp: Added allowable/required argument types to the predefined names |
| info display. This feature utilizes the recent update to the predefined |
| names table (above). |
| |
| ---------------------------------------- |
| 14 February 2013. Summary of changes for version 20130214: |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Fixed a possible regression on some hosts: Reinstated the safe return |
| macros (return_ACPI_STATUS, etc.) that ensure that the argument is |
| evaluated only once. Although these macros are not needed for the ACPICA |
| code itself, they are often used by ACPI-related host device drivers |
| where |
| the safe feature may be necessary. |
| |
| Fixed several issues related to the ACPI 5.0 reduced hardware support |
| (SOC): Now ensure that if the platform declares itself as hardware- |
| reduced |
| via the FADT, the following functions become NOOPs (and always return |
| AE_OK) because ACPI is always enabled by definition on these machines: |
| AcpiEnable |
| AcpiDisable |
| AcpiHwGetMode |
| AcpiHwSetMode |
| |
| Dynamic Object Repair: Implemented additional runtime repairs for |
| predefined name return values. Both of these repairs can simplify code in |
| the related device drivers that invoke these methods: |
| 1) For the _STR and _MLS names, automatically repair/convert an ASCII |
| string to a Unicode buffer. |
| 2) For the _CRS, _PRS, and _DMA names, return a resource descriptor with |
| a |
| lone end tag descriptor in the following cases: A Return(0) was executed, |
| a null buffer was returned, or no object at all was returned (non-slack |
| mode only). Adds a new file, nsconvert.c |
| ACPICA BZ 998. Bob Moore, Lv Zheng. |
| |
| Resource Manager: Added additional code to prevent possible infinite |
| loops |
| while traversing corrupted or ill-formed resource template buffers. Check |
| for zero-length resource descriptors in all code that loops through |
| resource templates (the length field is used to index through the |
| template). This change also hardens the external AcpiWalkResources and |
| AcpiWalkResourceBuffer interfaces. |
| |
| Local Cache Manager: Enhanced the main data structure to eliminate an |
| unnecessary mechanism to access the next object in the list. Actually |
| provides a small performance enhancement for hosts that use the local |
| ACPICA cache manager. Jung-uk Kim. |
| |
| 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: 94.5K Code, 25.4K Data, 119.9K Total |
| Debug Version: 182.3K Code, 75.0K Data, 257.3K Total |
| Current Release: |
| Non-Debug Version: 95.0K Code, 25.9K Data, 120.9K Total |
| Debug Version: 182.9K Code, 75.6K Data, 258.5K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL/Disassembler: Fixed several issues with the definition of the ACPI |
| 5.0 RASF table (RAS Feature Table). This change incorporates late changes |
| that were made to the ACPI 5.0 specification. |
| |
| iASL/Disassembler: Added full support for the following new ACPI tables: |
| 1) The MTMR table (MID Timer Table) |
| 2) The VRTC table (Virtual Real Time Clock Table). |
| Includes header file, disassembler, table compiler, and template support |
| for both tables. |
| |
| iASL: Implemented compile-time validation of package objects returned by |
| predefined names. This new feature validates static package objects |
| returned by the various predefined names defined to return packages. Both |
| object types and package lengths are validated, for both parent packages |
| and sub-packages, if any. The code is similar in structure and behavior |
| to |
| the runtime repair mechanism within the AML interpreter and uses the |
| existing predefined name information table. Adds a new file, aslprepkg.c. |
| ACPICA BZ 938. |
| |
| iASL: Implemented auto-detection of binary ACPI tables for disassembly. |
| This feature detects a binary file with a valid ACPI table header and |
| invokes the disassembler automatically. Eliminates the need to |
| specifically invoke the disassembler with the -d option. ACPICA BZ 862. |
| |
| iASL/Disassembler: Added several warnings for the case where there are |
| unresolved control methods during the disassembly. This can potentially |
| cause errors when the output file is compiled, because the disassembler |
| assumes zero method arguments in these cases (it cannot determine the |
| actual number of arguments without resolution/definition of the method). |
| |
| Debugger: Added support to display all resources with a single command. |
| Invocation of the resources command with no arguments will now display |
| all |
| resources within the current namespace. |
| |
| AcpiHelp: Added descriptive text for each ACPICA exception code displayed |
| via the -e option. |
| |
| ---------------------------------------- |
| 17 January 2013. Summary of changes for version 20130117: |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Updated the AcpiGetSleepTypeData interface: Allow the \_Sx methods to |
| return either 1 or 2 integers. Although the ACPI spec defines the \_Sx |
| objects to return a package containing one integer, most BIOS code |
| returns |
| two integers and the previous code reflects that. However, we also need |
| to |
| support BIOS code that actually implements to the ACPI spec, and this |
| change reflects this. |
| |
| Fixed two issues with the ACPI_DEBUG_PRINT macros: |
| 1) Added the ACPI_DO_WHILE macro to the main DEBUG_PRINT helper macro for |
| C compilers that require this support. |
| 2) Renamed the internal ACPI_DEBUG macro to ACPI_DO_DEBUG_PRINT since |
| ACPI_DEBUG is already used by many of the various hosts. |
| |
| Updated all ACPICA copyrights and signons to 2013. Added the 2013 |
| copyright to all module headers and signons, including the standard Linux |
| header. This affects virtually every file in the ACPICA core subsystem, |
| iASL compiler, all ACPICA utilities, and the test suites. |
| |
| 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: 94.5K Code, 25.5K Data, 120.0K Total |
| Debug Version: 182.2K Code, 74.9K Data, 257.1K Total |
| Current Release: |
| Non-Debug Version: 94.5K Code, 25.4K Data, 119.9K Total |
| Debug Version: 182.3K Code, 75.0K Data, 257.3K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Generic Unix OSL: Use a buffer to eliminate multiple vfprintf()s and |
| prevent a possible fault on some hosts. Some C libraries modify the arg |
| pointer parameter to vfprintf making it difficult to call it twice in the |
| AcpiOsVprintf function. Use a local buffer to workaround this issue. This |
| does not affect the Windows OSL since the Win C library does not modify |
| the arg pointer. Chao Guan, Bob Moore. |
| |
| iASL: Fixed a possible infinite loop when the maximum error count is |
| reached. If an output file other than the .AML file is specified (such as |
| a listing file), and the maximum number of errors is reached, do not |
| attempt to flush data to the output file(s) as the compiler is aborting. |
| This can cause an infinite loop as the max error count code essentially |
| keeps calling itself. |
| |
| iASL/Disassembler: Added an option (-in) to ignore NOOP |
| opcodes/operators. |
| Implemented for both the compiler and the disassembler. Often, the NOOP |
| opcode is used as padding for packages that are changed dynamically by |
| the |
| BIOS. When disassembled and recompiled, these NOOPs will cause syntax |
| errors. This option causes the disassembler to ignore all NOOP opcodes |
| (0xA3), and it also causes the compiler to ignore all ASL source code |
| NOOP |
| statements as well. |
| |
| Debugger: Enhanced the Sleep command to execute all sleep states. This |
| change allows Sleep to be invoked with no arguments and causes the |
| debugger to execute all of the sleep states, 0-5, automatically. |
| |
| ---------------------------------------- |
| 20 December 2012. Summary of changes for version 20121220: |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Implemented a new interface, AcpiWalkResourceBuffer. This interface is an |
| alternate entry point for AcpiWalkResources and improves the usability of |
| the resource manager by accepting as input a buffer containing the output |
| of either a _CRS, _PRS, or _AEI method. The key functionality is that the |
| input buffer is not deleted by this interface so that it can be used by |
| the host later. See the ACPICA reference for details. |
| |
| Interpreter: Add a warning if a 64-bit constant appears in a 32-bit table |
| (DSDT version < 2). The constant will be truncated and this warning |
| reflects that behavior. |
| |
| Resource Manager: Add support for the new ACPI 5.0 wake bit in the IRQ, |
| ExtendedInterrupt, and GpioInt descriptors. This change adds support to |
| both get and set the new wake bit in these descriptors, separately from |
| the existing share bit. Reported by Aaron Lu. |
| |
| Interpreter: Fix Store() when an implicit conversion is not possible. For |
| example, in the cases such as a store of a string to an existing package |
| object, implement the store as a CopyObject(). This is a small departure |
| from the ACPI specification which states that the control method should |
| be |
| aborted in this case. However, the ASLTS suite depends on this behavior. |
| |
| Performance improvement for the various FUNCTION_TRACE and DEBUG_PRINT |
| macros: check if debug output is currently enabled as soon as possible to |
| minimize performance impact if debug is in fact not enabled. |
| |
| Source code restructuring: Cleanup to improve modularity. The following |
| new files have been added: dbconvert.c, evhandler.c, nsprepkg.c, |
| psopinfo.c, psobject.c, rsdumpinfo.c, utstring.c, and utownerid.c. |
| Associated makefiles and project files have been updated. |
| |
| Changed an exception code for LoadTable operator. For the case where one |
| of the input strings is too long, change the returned exception code from |
| AE_BAD_PARAMETER to AE_AML_STRING_LIMIT. |
| |
| Fixed a possible memory leak in dispatcher error path. On error, delete |
| the mutex object created during method mutex creation. Reported by |
| tim.gardner@canonical.com. |
| |
| 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: 94.3K Code, 25.3K Data, 119.6K Total |
| Debug Version: 175.5K Code, 74.5K Data, 250.0K Total |
| Current Release: |
| Non-Debug Version: 94.5K Code, 25.5K Data, 120.0K Total |
| Debug Version: 182.2K Code, 74.9K Data, 257.1K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Disallow a method call as argument to the ObjectType ASL operator. |
| This change tracks an errata to the ACPI 5.0 document. The AML grammar |
| will not allow the interpreter to differentiate between a method and a |
| method invocation when these are used as an argument to the ObjectType |
| operator. The ACPI specification change is to disallow a method |
| invocation |
| (UserTerm) for the ObjectType operator. |
| |
| Finish support for the TPM2 and CSRT tables in the headers, table |
| compiler, and disassembler. |
| |
| Unix user-space OSL: Fix a problem with WaitSemaphore where the timeout |
| always expires immediately if the semaphore is not available. The |
| original |
| code was using a relative-time timeout, but sem_timedwait requires the |
| use |
| of an absolute time. |
| |
| iASL: Added a remark if the Timer() operator is used within a 32-bit |
| table. This operator returns a 64-bit time value that will be truncated |
| within a 32-bit table. |
| |
| iASL Source code restructuring: Cleanup to improve modularity. The |
| following new files have been added: aslhex.c, aslxref.c, aslnamesp.c, |
| aslmethod.c, and aslfileio.c. Associated makefiles and project files have |
| been updated. |
| |
| |
| ---------------------------------------- |
| 14 November 2012. Summary of changes for version 20121114: |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Implemented a performance enhancement for ACPI/AML Package objects. This |
| change greatly increases the performance of Package objects within the |
| interpreter. It changes the processing of reference counts for packages |
| by |
| optimizing for the most common case where the package sub-objects are |
| either Integers, Strings, or Buffers. Increases the overall performance |
| of |
| the ASLTS test suite by 1.5X (Increases the Slack Mode performance by |
| 2X.) |
| Chao Guan. ACPICA BZ 943. |
| |
| Implemented and deployed common macros to extract flag bits from resource |
| descriptors. Improves readability and maintainability of the code. Fixes |
| a |
| problem with the UART serial bus descriptor for the number of data bits |
| flags (was incorrectly 2 bits, should be 3). |
| |
| Enhanced the ACPI_GETx and ACPI_SETx macros. Improved the implementation |
| of the macros and changed the SETx macros to the style of (destination, |
| source). Also added ACPI_CASTx companion macros. Lv Zheng. |
| |
| 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: 93.9K Code, 25.2K Data, 119.1K Total |
| Debug Version: 175.5K Code, 74.5K Data, 250.0K Total |
| Current Release: |
| Non-Debug Version: 94.3K Code, 25.3K Data, 119.6K Total |
| Debug Version: 175.5K Code, 74.5K Data, 250.0K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Added the new ACPI 5.0 interrupt sharing flags. This change |
| adds the ShareAndWake and ExclusiveAndWake flags which were added to the |
| Irq, Interrupt, and Gpio resource descriptors in ACPI 5.0. ACPICA BZ 986. |
| |
| Disassembler: Fixed a problem with external declaration generation. Fixes |
| a problem where an incorrect pathname could be generated for an external |
| declaration if the original reference to the object includes leading |
| carats (^). ACPICA BZ 984. |
| |
| Debugger: Completed a major update for the Disassemble<method> command. |
| This command was out-of-date and did not properly disassemble control |
| methods that had any reasonable complexity. This fix brings the command |
| up |
| to the same level as the rest of the disassembler. Adds one new file, |
| dmdeferred.c, which is existing code that is now common with the main |
| disassembler and the debugger disassemble command. ACPICA MZ 978. |
| |
| iASL: Moved the parser entry prototype to avoid a duplicate declaration. |
| Newer versions of Bison emit this prototype, so moved the prototype out |
| of |
| the iASL header to where it is actually used in order to avoid a |
| duplicate |
| declaration. |
| |
| iASL/Tools: Standardized use of the stream I/O functions: |
| 1) Ensure check for I/O error after every fopen/fread/fwrite |
| 2) Ensure proper order of size/count arguments for fread/fwrite |
| 3) Use test of (Actual != Requested) after all fwrite, and most fread |
| 4) Standardize I/O error messages |
| Improves reliability and maintainability of the code. Bob Moore, Lv |
| Zheng. |
| ACPICA BZ 981. |
| |
| Disassembler: Prevent duplicate External() statements. During generation |
| of external statements, detect similar pathnames that are actually |
| duplicates such as these: |
| External (\ABCD) |
| External (ABCD) |
| Remove all leading '\' characters from pathnames during the external |
| statement generation so that duplicates will be detected and tossed. |
| ACPICA BZ 985. |
| |
| Tools: Replace low-level I/O with stream I/O functions. Replace |
| open/read/write/close with the stream I/O equivalents |
| fopen/fread/fwrite/fclose for portability and performance. Lv Zheng, Bob |
| Moore. |
| |
| AcpiBin: Fix for the dump-to-hex function. Now correctly output the table |
| name header so that AcpiXtract recognizes the output file/table. |
| |
| iASL: Remove obsolete -2 option flag. Originally intended to force the |
| compiler/disassembler into an ACPI 2.0 mode, this was never implemented |
| and the entire concept is now obsolete. |
| |
| ---------------------------------------- |
| 18 October 2012. Summary of changes for version 20121018: |
| |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Updated support for the ACPI 5.0 MPST table. Fixes some problems |
| introduced by late changes to the table as it was added to the ACPI 5.0 |
| specification. Includes header, disassembler, and data table compiler |
| support as well as a new version of the MPST template. |
| |
| AcpiGetObjectInfo: Enhanced the device object support to include the ACPI |
| 5.0 _SUB method. Now calls _SUB in addition to the other PNP-related ID |
| methods: _HID, _CID, and _UID. |
| |
| Changed ACPI_DEVICE_ID to ACPI_PNP_DEVICE_ID. Also changed |
| ACPI_DEVICE_ID_LIST to ACPI_PNP_DEVICE_ID_LIST. These changes prevent |
| name collisions on hosts that reserve the *_DEVICE_ID (or *DeviceId) |
| names for their various drivers. Affects the AcpiGetObjectInfo external |
| interface, and other internal interfaces as well. |
| |
| Added and deployed a new macro for ACPI_NAME management: ACPI_MOVE_NAME. |
| This macro resolves to a simple 32-bit move of the 4-character ACPI_NAME |
| on machines that support non-aligned transfers. Optimizes for this case |
| rather than using a strncpy. With assistance from Zheng Lv. |
| |
| Resource Manager: Small fix for buffer size calculation. Fixed a one byte |
| error in the output buffer calculation. Feng Tang. ACPICA BZ 849. |
| |
| Added a new debug print message for AML mutex objects that are force- |
| released. At control method termination, any currently acquired mutex |
| objects are force-released. Adds a new debug-only message for each one |
| that is released. |
| |
| Audited/updated all ACPICA return macros and the function debug depth |
| counter: 1) Ensure that all functions that use the various TRACE macros |
| also use the appropriate ACPICA return macros. 2) Ensure that all normal |
| return statements surround the return expression (value) with parens to |
| ensure consistency across the ACPICA code base. Guan Chao, Tang Feng, |
| Zheng Lv, Bob Moore. ACPICA Bugzilla 972. |
| |
| Global source code changes/maintenance: All extra lines at the start and |
| end of each source file have been removed for consistency. Also, within |
| comments, all new sentences start with a single space instead of a double |
| space, again for consistency across the code base. |
| |
| 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: 93.7K Code, 25.3K Data, 119.0K Total |
| Debug Version: 175.0K Code, 74.4K Data, 249.4K Total |
| Current Release: |
| Non-Debug Version: 93.9K Code, 25.2K Data, 119.1K Total |
| Debug Version: 175.5K Code, 74.5K Data, 250.0K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| AcpiExec: Improved the algorithm used for memory leak/corruption |
| detection. Added some intelligence to the code that maintains the global |
| list of allocated memory. The list is now ordered by allocated memory |
| address, significantly improving performance. When running AcpiExec on |
| the ASLTS test suite, speed improvements of 3X to 5X are seen, depending |
| on the platform and/or the environment. Note, this performance |
| enhancement affects the AcpiExec utility only, not the kernel-resident |
| ACPICA code. |
| |
| Enhanced error reporting for invalid AML opcodes and bad ACPI_NAMEs. For |
| the disassembler, dump the 48 bytes surrounding the invalid opcode. Fix |
| incorrect table offset reported for invalid opcodes. Report the original |
| 32-bit value for bad ACPI_NAMEs (as well as the repaired name.) |
| |
| Disassembler: Enhanced the -vt option to emit the binary table data in |
| hex format to assist with debugging. |
| |
| Fixed a potential filename buffer overflow in osunixdir.c. Increased the |
| size of file structure. Colin Ian King. |
| |
| ---------------------------------------- |
| 13 September 2012. Summary of changes for version 20120913: |
| |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| ACPI 5.0: Added two new notify types for the Hardware Error Notification |
| Structure within the Hardware Error Source Table (HEST) table -- CMCI(5) |
| and |
| MCE(6). |
| |
| Table Manager: Merged/removed duplicate code in the root table resize |
| functions. One function is external, the other is internal. Lv Zheng, |
| ACPICA |
| BZ 846. |
| |
| Makefiles: Completely removed the obsolete "Linux" makefiles under |
| acpica/generate/linux. These makefiles are obsolete and have been |
| replaced |
| by |
| the generic unix makefiles under acpica/generate/unix. |
| |
| Makefiles: Ensure that binary files always copied properly. Minor rule |
| change |
| to ensure that the final binary output files are always copied up to the |
| appropriate binary directory (bin32 or bin64.) |
| |
| 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: 93.8K Code, 25.3K Data, 119.1K Total |
| Debug Version: 175.7K Code, 74.8K Data, 250.5K Total |
| Current Release: |
| Non-Debug Version: 93.7K Code, 25.3K Data, 119.0K Total |
| Debug Version: 175.0K Code, 74.4K Data, 249.4K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Fixed a possible fault during the disassembly of resource |
| descriptors when a second parse is required because of the invocation of |
| external control methods within the table. With assistance from |
| adq@lidskialf.net. ACPICA BZ 976. |
| |
| iASL: Fixed a namepath optimization problem. An error can occur if the |
| parse |
| node that contains the namepath to be optimized does not have a parent |
| node |
| that is a named object. This change fixes the problem. |
| |
| iASL: Fixed a regression where the AML file is not deleted on errors. The |
| AML |
| output file should be deleted if there are any errors during the |
| compiler. |
| The |
| only exception is if the -f (force output) option is used. ACPICA BZ 974. |
| |
| iASL: Added a feature to automatically increase internal line buffer |
| sizes. |
| Via realloc(), automatically increase the internal line buffer sizes as |
| necessary to support very long source code lines. The current version of |
| the |
| preprocessor requires a buffer long enough to contain full source code |
| lines. |
| This change increases the line buffer(s) if the input lines go beyond the |
| current buffer size. This eliminates errors that occurred when a source |
| code |
| line was longer than the buffer. |
| |
| iASL: Fixed a problem with constant folding in method declarations. The |
| SyncLevel term is a ByteConstExpr, and incorrect code would be generated |
| if a |
| Type3 opcode was used. |
| |
| Debugger: Improved command help support. For incorrect argument count, |
| display |
| full help for the command. For help command itself, allow an argument to |
| specify a command. |
| |
| Test Suites: Several bug fixes for the ASLTS suite reduces the number of |
| errors during execution of the suite. Guan Chao. |
| |
| ---------------------------------------- |
| 16 August 2012. Summary of changes for version 20120816: |
| |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Removed all use of the deprecated _GTS and _BFS predefined methods. The |
| _GTS |
| (Going To Sleep) and _BFS (Back From Sleep) methods are essentially |
| deprecated and will probably be removed from the ACPI specification. |
| Windows |
| does not invoke them, and reportedly never will. The final nail in the |
| coffin |
| is that the ACPI specification states that these methods must be run with |
| interrupts off, which is not going to happen in a kernel interpreter. |
| Note: |
| Linux has removed all use of the methods also. It was discovered that |
| invoking these functions caused failures on some machines, probably |
| because |
| they were never tested since Windows does not call them. Affects two |
| external |
| interfaces, AcpiEnterSleepState and AcpiLeaveSleepStatePrep. Tang Feng. |
| ACPICA BZ 969. |
| |
| Implemented support for complex bit-packed buffers returned from the _PLD |
| (Physical Location of Device) predefined method. Adds a new external |
| interface, AcpiDecodePldBuffer that parses the buffer into a more usable |
| C |
| structure. Note: C Bitfields cannot be used for this type of predefined |
| structure since the memory layout of individual bitfields is not defined |
| by |
| the C language. In addition, there are endian concerns where a compiler |
| will |
| change the bitfield ordering based on the machine type. The new ACPICA |
| interface eliminates these issues, and should be called after _PLD is |
| executed. ACPICA BZ 954. |
| |
| Implemented a change to allow a scope change to root (via "Scope (\)") |
| during |
| execution of module-level ASL code (code that is executed at table load |
| time.) Lin Ming. |
| |
| Added the Windows8/Server2012 string for the _OSI method. This change |
| adds |
| a |
| new _OSI string, "Windows 2012" for both Windows 8 and Windows Server |
| 2012. |
| |
| Added header support for the new ACPI tables DBG2 (Debug Port Table Type |
| 2) |
| and CSRT (Core System Resource Table). |
| |
| Added struct header support for the _FDE, _GRT, _GTM, and _SRT predefined |
| names. This simplifies access to the buffers returned by these predefined |
| names. Adds a new file, include/acbuffer.h. ACPICA BZ 956. |
| |
| GPE support: Removed an extraneous parameter from the various low-level |
| internal GPE functions. Tang Feng. |
| |
| Removed the linux makefiles from the unix packages. The generate/linux |
| makefiles are obsolete and have been removed from the unix tarball |
| release |
| packages. The replacement makefiles are under generate/unix, and there is |
| a |
| top-level makefile under the main acpica directory. ACPICA BZ 967, 912. |
| |
| Updates for Unix makefiles: |
| 1) Add -D_FORTIFY_SOURCE=2 for gcc generation. Arjan van de Ven. |
| 2) Update linker flags (move to end of command line) for AcpiExec |
| utility. |
| Guan Chao. |
| |
| Split ACPICA initialization functions to new file, utxfinit.c. Split from |
| utxface.c to improve modularity and reduce file size. |
| |
| 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: 93.5K Code, 25.3K Data, 118.8K Total |
| Debug Version: 173.7K Code, 74.0K Data, 247.7K Total |
| Current Release: |
| Non-Debug Version: 93.8K Code, 25.3K Data, 119.1K Total |
| Debug Version: 175.7K Code, 74.8K Data, 250.5K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fixed a problem with constant folding for fixed-length constant |
| expressions. The constant-folding code was not being invoked for constant |
| expressions that allow the use of type 3/4/5 opcodes to generate |
| constants |
| for expressions such as ByteConstExpr, WordConstExpr, etc. This could |
| result |
| in the generation of invalid AML bytecode. ACPICA BZ 970. |
| |
| iASL: Fixed a generation issue on newer versions of Bison. Newer versions |
| apparently automatically emit some of the necessary externals. This |
| change |
| handles these versions in order to eliminate generation warnings. |
| |
| Disassembler: Added support to decode the DBG2 and CSRT ACPI tables. |
| |
| Disassembler: Add support to decode _PLD buffers. The decoded buffer |
| appears |
| within comments in the output file. |
| |
| Debugger: Fixed a regression with the "Threads" command where |
| AE_BAD_PARAMETER was always returned. |
| |
| ---------------------------------------- |
| 11 July 2012. Summary of changes for version 20120711: |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Fixed a possible fault in the return package object repair code. Fixes a |
| problem that can occur when a lone package object is wrapped with an |
| outer |
| package object in order to force conformance to the ACPI specification. |
| Can |
| affect these predefined names: _ALR, _MLS, _PSS, _TRT, _TSS, _PRT, _HPX, |
| _DLM, |
| _CSD, _PSD, _TSD. |
| |
| Removed code to disable/enable bus master arbitration (ARB_DIS bit in the |
| PM2_CNT register) in the ACPICA sleep/wake interfaces. Management of the |
| ARB_DIS bit must be implemented in the host-dependent C3 processor power |
| state |
| support. Note, ARB_DIS is obsolete and only applies to older chipsets, |
| both |
| Intel and other vendors. (for Intel: ICH4-M and earlier) |
| |
| This change removes the code to disable/enable bus master arbitration |
| during |
| suspend/resume. Use of the ARB_DIS bit in the optional PM2_CNT register |
| causes |
| resume problems on some machines. The change has been in use for over |
| seven |
| years within Linux. |
| |
| Implemented two new external interfaces to support host-directed dynamic |
| ACPI |
| table load and unload. They are intended to simplify the host |
| implementation |
| of hot-plug support: |
| AcpiLoadTable: Load an SSDT from a buffer into the namespace. |
| AcpiUnloadParentTable: Unload an SSDT via a named object owned by the |
| table. |
| See the ACPICA reference for additional details. Adds one new file, |
| components/tables/tbxfload.c |
| |
| Implemented and deployed two new interfaces for errors and warnings that |
| are |
| known to be caused by BIOS/firmware issues: |
| AcpiBiosError: Prints "ACPI Firmware Error" message. |
| AcpiBiosWarning: Prints "ACPI Firmware Warning" message. |
| Deployed these new interfaces in the ACPICA Table Manager code for ACPI |
| table |
| and FADT errors. Additional deployment to be completed as appropriate in |
| the |
| future. The associated conditional macros are ACPI_BIOS_ERROR and |
| ACPI_BIOS_WARNING. See the ACPICA reference for additional details. |
| ACPICA |
| BZ |
| 843. |
| |
| Implicit notify support: ensure that no memory allocation occurs within a |
| critical region. This fix moves a memory allocation outside of the time |
| that a |
| spinlock is held. Fixes issues on systems that do not allow this |
| behavior. |
| Jung-uk Kim. |
| |
| Split exception code utilities and tables into a new file, |
| utilities/utexcep.c |
| |
| 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: 93.1K Code, 25.1K Data, 118.2K Total |
| Debug Version: 172.9K Code, 73.6K Data, 246.5K Total |
| Current Release: |
| Non-Debug Version: 93.5K Code, 25.3K Data, 118.8K Total |
| Debug Version: 173.7K Code, 74.0K Data, 247.7K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fixed a parser problem for hosts where EOF is defined as -1 instead |
| of |
| 0. Jung-uk Kim. |
| |
| Debugger: Enhanced the "tables" command to emit additional information |
| about |
| the current set of ACPI tables, including the owner ID and flags decode. |
| |
| Debugger: Reimplemented the "unload" command to use the new |
| AcpiUnloadParentTable external interface. This command was disable |
| previously |
| due to need for an unload interface. |
| |
| AcpiHelp: Added a new option to decode ACPICA exception codes. The -e |
| option |
| will decode 16-bit hex status codes (ACPI_STATUS) to name strings. |
| |
| ---------------------------------------- |
| 20 June 2012. Summary of changes for version 20120620: |
| |
| |
| 1) ACPICA Kernel-resident Subsystem: |
| |
| Implemented support to expand the "implicit notify" feature to allow |
| multiple |
| devices to be notified by a single GPE. This feature automatically |
| generates a |
| runtime device notification in the absence of a BIOS-provided GPE control |
| method (_Lxx/_Exx) or a host-installed handler for the GPE. Implicit |
| notify is |
| provided by ACPICA for Windows compatibility, and is a workaround for |
| BIOS |
| AML |
| code errors. See the description of the AcpiSetupGpeForWake interface in |
| the |
| APCICA reference. Bob Moore, Rafael Wysocki. ACPICA BZ 918. |
| |
| Changed some comments and internal function names to simplify and ensure |
| correctness of the Linux code translation. No functional changes. |
| |
| 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: 93.0K Code, 25.1K Data, 118.1K Total |
| Debug Version: 172.7K Code, 73.6K Data, 246.3K Total |
| Current Release: |
| Non-Debug Version: 93.1K Code, 25.1K Data, 118.2K Total |
| Debug Version: 172.9K Code, 73.6K Data, 246.5K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: Added support to emit short, commented descriptions for the |
| ACPI |
| predefined names in order to improve the readability of the disassembled |
| output. ACPICA BZ 959. Changes include: |
| 1) Emit descriptions for all standard predefined names (_INI, _STA, |
| _PRW, |
| etc.) |
| 2) Emit generic descriptions for the special names (_Exx, _Qxx, etc.) |
| 3) Emit descriptions for the resource descriptor names (_MIN, _LEN, |
| etc.) |
| |
| AcpiSrc: Fixed several long-standing Linux code translation issues. |
| Argument |
| descriptions in function headers are now translated properly to lower |
| case |
| and |
| underscores. ACPICA BZ 961. Also fixes translation problems such as |
| these: |
| (old -> new) |
| i_aSL -> iASL |
| 00-7_f -> 00-7F |
| 16_k -> 16K |
| local_fADT -> local_FADT |
| execute_oSI -> execute_OSI |
| |
| iASL: Fixed a problem where null bytes were inadvertently emitted into |
| some |
| listing files. |
| |
| iASL: Added the existing debug options to the standard help screen. There |
| are |
| no longer two different help screens. ACPICA BZ 957. |
| |
| AcpiHelp: Fixed some typos in the various predefined name descriptions. |
| Also |
| expand some of the descriptions where appropriate. |
| |
| iASL: Fixed the -ot option (display compile times/statistics). Was not |
| working |
| properly for standard output; only worked for the debug file case. |
| |
| ---------------------------------------- |
| 18 May 2012. Summary of changes for version 20120518: |
| |
| |
| 1) ACPICA Core Subsystem: |
| |
| Added a new OSL interface, AcpiOsWaitEventsComplete. This interface is |
| defined |
| to block until asynchronous events such as notifies and GPEs have |
| completed. |
| Within ACPICA, it is only called before a notify or GPE handler is |
| removed/uninstalled. It also may be useful for the host OS within related |
| drivers such as the Embedded Controller driver. See the ACPICA reference |
| for |
| additional information. ACPICA BZ 868. |
| |
| ACPI Tables: Added a new error message for a possible overflow failure |
| during |
| the conversion of FADT 32-bit legacy register addresses to internal |
| common |
| 64- |
| bit GAS structure representation. The GAS has a one-byte "bit length" |
| field, |
| thus limiting the register length to 255 bits. ACPICA BZ 953. |
| |
| 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.9K Code, 25.0K Data, 117.9K Total |
| Debug Version: 172.6K Code, 73.4K Data, 246.0K Total |
| Current Release: |
| Non-Debug Version: 93.0K Code, 25.1K Data, 118.1K Total |
| Debug Version: 172.7K Code, 73.6K Data, 246.3K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Added the ACPI 5.0 "PCC" keyword for use in the Register() ASL |
| macro. |
| This keyword was added late in the ACPI 5.0 release cycle and was not |
| implemented until now. |
| |
| Disassembler: Added support for Operation Region externals. Adds missing |
| support for operation regions that are defined in another table, and |
| referenced locally via a Field or BankField ASL operator. Now generates |
| the |
| correct External statement. |
| |
| Disassembler: Several additional fixes for the External() statement |
| generation |
| related to some ASL operators. Also, order the External() statements |
| alphabetically in the disassembler output. Fixes the External() |
| generation |
| for |
| the Create* field, Alias, and Scope operators: |
| 1) Create* buffer field operators - fix type mismatch warning on |
| disassembly |
| 2) Alias - implement missing External support |
| 3) Scope - fix to make sure all necessary externals are emitted. |
| |
| iASL: Improved pathname support. For include files, merge the prefix |
| pathname |
| with the file pathname and eliminate unnecessary components. Convert |
| backslashes in all pathnames to forward slashes, for readability. Include |
| file |
| pathname changes affect both #include and Include() type operators. |
| |
| iASL/DTC/Preprocessor: Gracefully handle early EOF. Handle an EOF at the |
| end |
| of a valid line by inserting a newline and then returning the EOF during |
| the |
| next call to GetNextLine. Prevents the line from being ignored due to EOF |
| condition. |
| |
| iASL: Implemented some changes to enhance the IDE support (-vi option.) |
| Error |
| and Warning messages are now correctly recognized for both the source |
| code |
| browser and the global error and warning counts. |
| |
| ---------------------------------------- |
| 20 April 2012. Summary of changes for version 20120420: |
| |
| |
| 1) ACPICA Core Subsystem: |
| |
| Implemented support for multiple notify handlers. This change adds |
| support |
| to |
| allow multiple system and device notify handlers on Device, Thermal Zone, |
| and |
| Processor objects. This can simplify the host OS notification |
| implementation. |
| Also re-worked and restructured the entire notify support code to |
| simplify |
| handler installation, handler removal, notify event queuing, and notify |
| dispatch to handler(s). Note: there can still only be two global notify |
| handlers - one for system notifies and one for device notifies. There are |
| no |
| changes to the existing handler install/remove interfaces. Lin Ming, Bob |
| Moore, Rafael Wysocki. |
| |
| Fixed a regression in the package repair code where the object reference |
| count was calculated incorrectly. Regression was introduced in the commit |
| "Support to add Package wrappers". |
| |
| Fixed a couple possible memory leaks in the AML parser, in the error |
| recovery |
| path. Jesper Juhl, Lin Ming. |
| |
| 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.9K Code, 25.0K Data, 117.9K Total |
| Debug Version: 172.5K Code, 73.2K Data, 245.7K Total |
| Current Release: |
| Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total |
| Debug Version: 172.6K Code, 73.4K Data, 246.0K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Fixed a problem with the resource descriptor support where the |
| length |
| of the StartDependentFn and StartDependentFnNoPrio descriptors were not |
| included in cumulative descriptor offset, resulting in incorrect values |
| for |
| resource tags within resource descriptors appearing after a |
| StartDependent* |
| descriptor. Reported by Petr Vandrovec. ACPICA BZ 949. |
| |
| iASL and Preprocessor: Implemented full support for the #line directive |
| to |
| correctly track original source file line numbers through the .i |
| preprocessor |
| output file - for error and warning messages. |
| |
| iASL: Expand the allowable byte constants for address space IDs. |
| Previously, |
| the allowable range was 0x80-0xFF (user-defined spaces), now the range is |
| 0x0A-0xFF to allow for custom and new IDs without changing the compiler. |
| |
| iASL: Add option to treat all warnings as errors (-we). ACPICA BZ 948. |
| |
| iASL: Add option to completely disable the preprocessor (-Pn). |
| |
| iASL: Now emit all error/warning messages to standard error (stderr) by |
| default (instead of the previous stdout). |
| |
| ASL Test Suite (ASLTS): Reduce iASL warnings due to use of Switch(). |
| Update |
| for resource descriptor offset fix above. Update/cleanup error output |
| routines. Enable and send iASL errors/warnings to an error logfile |
| (error.txt). Send all other iASL output to a logfile (compiler.txt). |
| Fixed |
| several extraneous "unrecognized operator" messages. |
| |
| ---------------------------------------- |
| 20 March 2012. Summary of changes for version 20120320: |
| |
| |
| 1) ACPICA Core Subsystem: |
| |
| Enhanced the sleep/wake interfaces to optionally execute the _GTS method |
| (Going To Sleep) and the _BFS method (Back From Sleep). Windows |
| apparently |
| does not execute these methods, and therefore these methods are often |
| untested. It has been seen on some systems where the execution of these |
| methods causes errors and also prevents the machine from entering S5. It |
| is |
| therefore suggested that host operating systems do not execute these |
| methods |
| by default. In the future, perhaps these methods can be optionally |
| executed |
| based on the age of the system and/or what is the newest version of |
| Windows |
| that the BIOS asks for via _OSI. Changed interfaces: AcpiEnterSleepState |
| and |
| AcpileaveSleepStatePrep. See the ACPICA reference and Linux BZ 13041. Lin |
| Ming. |
| |
| Fixed a problem where the length of the local/common FADT was set too |
| early. |
| The local FADT table length cannot be set to the common length until the |
| original length has been examined. There is code that checks the table |
| length |
| and sets various fields appropriately. This can affect older machines |
| with |
| early FADT versions. For example, this can cause inadvertent writes to |
| the |
| CST_CNT register. Julian Anastasov. |
| |
| Fixed a mapping issue related to a physical table override. Use the |
| deferred |
| mapping mechanism for tables loaded via the physical override OSL |
| interface. |
| This allows for early mapping before the virtual memory manager is |
| available. |
| Thomas Renninger, Bob Moore. |
| |
| Enhanced the automatic return-object repair code: Repair a common problem |
| with |
| predefined methods that are defined to return a variable-length Package |
| of |
| sub-objects. If there is only one sub-object, some BIOS ASL code |
| mistakenly |
| simply returns the single object instead of a Package with one sub- |
| object. |
| This new support will repair this error by wrapping a Package object |
| around |
| the original object, creating the correct and expected Package with one |
| sub- |
| object. Names that can be repaired in this manner include: _ALR, _CSD, |
| _HPX, |
| _MLS, _PLD, _PRT, _PSS, _TRT, _TSS, _BCL, _DOD, _FIX, and _Sx. ACPICA BZ |
| 939. |
| |
| Changed the exception code returned for invalid ACPI paths passed as |
| parameters to external interfaces such as AcpiEvaluateObject. Was |
| AE_BAD_PARAMETER, now is the more sensible AE_BAD_PATHNAME. |
| |
| 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: 93.0K Code, 25.0K Data, 118.0K Total |
| Debug Version: 172.5K Code, 73.2K Data, 245.7K Total |
| Current Release: |
| Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total |
| Debug Version: 172.5K Code, 73.2K Data, 245.7K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Added the infrastructure and initial implementation of a integrated |
| C- |
| like preprocessor. This will simplify BIOS development process by |
| eliminating |
| the need for a separate preprocessing step during builds. On Windows, it |
| also |
| eliminates the need to install a separate C compiler. ACPICA BZ 761. Some |
| features including full #define() macro support are still under |
| development. |
| These preprocessor directives are supported: |
| #define |
| #elif |
| #else |
| #endif |
| #error |
| #if |
| #ifdef |
| #ifndef |
| #include |
| #pragma message |
| #undef |
| #warning |
| In addition, these new command line options are supported: |
| -D <symbol> Define symbol for preprocessor use |
| -li Create preprocessed output file (*.i) |
| -P Preprocess only and create preprocessor output file (*.i) |
| |
| Table Compiler: Fixed a problem where the equals operator within an |
| expression |
| did not work properly. |
| |
| Updated iASL to use the current versions of Bison/Flex. Updated the |
| Windows |
| project file to invoke these tools from the standard location. ACPICA BZ |
| 904. |
| Versions supported: |
| Flex for Windows: V2.5.4 |
| Bison for Windows: V2.4.1 |
| |
| ---------------------------------------- |
| 15 February 2012. Summary of changes for version 20120215: |
| |
| |
| 1) ACPICA Core Subsystem: |
| |
| There have been some major changes to the sleep/wake support code, as |
| described below (a - e). |
| |
| 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 Renninger. |
| |
| 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. 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. |
| |
| ---------------------------------------- |
| 11 January 2012. Summary of changes for version 20120111: |
| |
| |
| 1) ACPICA Core Subsystem: |
| |
| Implemented a new mechanism to allow host device drivers to check for |
| address |
| range conflicts with ACPI Operation Regions. Both SystemMemory and |
| SystemIO |
| address spaces are supported. A new external interface, |
| AcpiCheckAddressRange, |
| allows drivers to check an address range against the ACPI namespace. See |
| the |
| ACPICA reference for additional details. Adds one new file, |
| utilities/utaddress.c. Lin Ming, Bob Moore. |
| |
| Fixed several issues with the ACPI 5.0 FADT support: Add the sleep |
| Control |
| and |
| Status registers, update the ACPI 5.0 flags, and update internal data |
| structures to handle an FADT larger than 256 bytes. The size of the ACPI |
| 5.0 |
| FADT is 268 bytes. |
| |
| Updated all ACPICA copyrights and signons to 2012. Added the 2012 |
| copyright to |
| all module headers and signons, including the standard Linux header. This |
| affects virtually every file in the ACPICA core subsystem, iASL compiler, |
| and |
| all ACPICA utilities. |
| |
| 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.3K Code, 24.9K Data, 117.2K Total |
| Debug Version: 170.8K Code, 72.6K Data, 243.4K Total |
| Current Release: |
| Non-Debug Version: 92.8K Code, 24.9K Data, 117.7K Total |
| Debug Version: 171.7K Code, 72.9K Data, 244.5K Total |
| |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| Disassembler: fixed a problem with the automatic resource tag generation |
| support. Fixes a problem where the resource tags are inadvertently not |
| constructed if the table being disassembled contains external references |
| to |
| control methods. Moved the actual construction of the tags to after the |
| final |
| namespace is constructed (after 2nd parse is invoked due to external |
| control |
| method references.) ACPICA BZ 941. |
| |
| Table Compiler: Make all "generic" operators caseless. These are the |
| operators |
| like UINT8, String, etc. Making these caseless improves ease-of-use. |
| ACPICA BZ |
| 934. |
| |
| ---------------------------------------- |
| 23 November 2011. Summary of changes for version 20111123: |
| |
| 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 |
| Global Lock |
| System Control Interrupt (SCI) |
| The FACS is assumed to be non-existent |
| |
| ACPI Tables: |
| ------------ |
| |
| 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 */ |
| |
| Operation Regions/SpaceIDs: |
| --------------------------- |
| |
| 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 IDs are: |
| |
| GeneralPurposeIo |
| GenericSerialBus |
| |
| Resource Descriptors: |
| --------------------- |
| |
| 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: |
| |
| FixedDma |
| GpioIo |
| GpioInt |
| I2cSerialBus |
| SpiSerialBus |
| UartSerialBus |
| |
| 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 AML interpreter: |
| |
| 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 interface. |
| |
| 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. |
| |
| Miscellaneous/Tools/TestSuites: |
| ------------------------------- |
| |
| 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 registers out-of-range. |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Implemented the __PATH__ operator, which returns the full pathname |
| of |
| the current source file. |
| |
| 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. |
| |
| Previous Release: |
| Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total |
| Debug Version: 165.6K Code, 68.4K Data, 234.0K Total |
| Current Release: |
| Non-Debug Version: 92.3K Code, 24.9K Data, 117.2K Total |
| Debug Version: 170.8K Code, 72.6K Data, 243.4K Total |
| |
| ---------------------------------------- |
| 22 September 2011. Summary of changes for version 20110922: |
| |
| 0) ACPI 5.0 News: |
| |
| Support for ACPI 5.0 in ACPICA has been underway for several months and |
| will |
| be released at the same time that ACPI 5.0 is officially released. |
| |
| The ACPI 5.0 specification is on track for release in the next few |
| months. |
| |
| 1) ACPICA Core Subsystem: |
| |
| Fixed a problem where the maximum sleep time for the Sleep() operator was |
| intended to be limited to two seconds, but was inadvertently limited to |
| 20 |
| seconds instead. |
| |
| Linux and Unix makefiles: Added header file dependencies to ensure |
| correct |
| generation of ACPICA core code and utilities. Also simplified the |
| makefiles |
| considerably through the use of the vpath variable to specify search |
| paths. |
| ACPICA BZ 924. |
| |
| 2) iASL Compiler/Disassembler and Tools: |
| |
| iASL: Implemented support to check the access length for all fields |
| created to |
| access named Resource Descriptor fields. For example, if a resource field |
| is |
| defined to be two bits, a warning is issued if a CreateXxxxField() is |
| used |
| with an incorrect bit length. This is implemented for all current |
| resource |
| descriptor names. ACPICA BZ 930. |
| |
| Disassembler: Fixed a byte ordering problem with the output of 24-bit and |
| 56- |
| bit integers. |
| |
| iASL: Fixed a couple of issues associated with variable-length package |
| objects. 1) properly handle constants like One, Ones, Zero -- do not make |
| a |
| VAR_PACKAGE when these are used as a package length. 2) Allow the |
| VAR_PACKAGE |
| opcode (in addition to PACKAGE) when validating object types for |
| predefined |
| names. |
| |
| iASL: Emit statistics for all output files (instead of just the ASL input |
| and |
| AML output). Includes listings, hex files, etc. |
| |
| iASL: Added -G option to the table compiler to allow the compilation of |
| custom |
| ACPI tables. The only part of a table that is required is the standard |
| 36- |
| byte |
| ACPI header. |
| |
| AcpiXtract: Ported to the standard ACPICA environment (with ACPICA |
| headers), |
| which also adds correct 64-bit support. Also, now all output filenames |
| are |
| completely lower case. |
| |
|