#
553634fe |
| 14-Dec-2019 |
christos <christos@NetBSD.org> |
---------------------------------------- 13 December 2019. Summary of changes for version 20191213:
1) ACPICA kernel-resident subsystem:
Return a Buffer object for all fields created via the Creat
---------------------------------------- 13 December 2019. Summary of changes for version 20191213:
1) ACPICA kernel-resident subsystem:
Return a Buffer object for all fields created via the CreateField operator. Previously, an Integer would be returned if the size of the field was less than or equal to the current size of an Integer. Although this goes against the ACPI specification, it provides compatibility with other ACPI implementations. Also updated the ASLTS test suite to reflect this new behavior.
2) iASL Compiler/Disassembler and ACPICA tools:
iASL: Implemented detection of (and throw an error for) duplicate values for Case statements within a single Switch statement. Duplicate Integers, Strings, and Buffers are supported.
iASL: Fix error logging issue during multiple file compilation -- Switch to the correct input file during error node creation.
iASL: For duplicate named object creation, now emit an error instead of a warning - since this will cause a runtime error.
AcpiSrc: Add unix line-ending support for non-Windows builds.
iASL: Add an error condition for an attempt to create a NameString with > 255 NameSegs (the max allowable via the AML definition).
---------------------------------------- 18 October 2019. Summary of changes for version 20191018:
1) ACPICA kernel-resident subsystem:
Debugger: added a new command: ?Fields [address space ID]?. This command dumps the contents of all field units that are defined within the namespace with a particular address space ID.
Modified the external interface AcpiLoadTable() to return a table index. This table index can be used for unloading a table for debugging. ACPI_STATUS AcpiLoadTable ( ACPI_TABLE_HEADER *Table, UINT32 *TableIndex))
Implemented a new external interface: AcpiUnloadTable() This new function takes a table index as an argument and unloads the table. Useful for debugging only. ACPI_STATUS AcpiUnloadTable ( UINT32 TableIndex))
Ported the AcpiNames utility to use the new table initialization sequence. The utility was broken before this change. Also, it was required to include most of the AML interpreter into the utility in order to process table initialization (module-level code execution.)
Update for results from running Clang V8.0.1. This fixes all "dead assignment" warnings. There are still several "Dereference of NULL pointer" warnings, but these have been found to be false positive warnings.
2) iASL Compiler/Disassembler and ACPICA tools:
iASL: numerous table compiler changes to ensure that the usage of yacc/bison syntax is POSIX-compliant.
iASL/disassembler: several simple bug fixes in the data table disassembler.
Acpiexec: expanded the initialization file (the -fi option) to initialize strings, buffers, packages, and field units.
show more ...
|
#
e32744fc |
| 07-Apr-2018 |
christos <christos@NetBSD.org> |
---------------------------------------- 13 March 2018. Summary of changes for version 20180313:
1) ACPICA kernel-resident subsystem:
Implemented various improvements to the GPE support:
1) Dispa
---------------------------------------- 13 March 2018. Summary of changes for version 20180313:
1) ACPICA kernel-resident subsystem:
Implemented various improvements to the GPE support:
1) Dispatch all active GPEs at initialization time so that no GPEs are lost. 2) Enable runtime GPEs earlier. Some systems expect GPEs to be enabled before devices are enumerated. 3) Don't unconditionally clear ACPI IRQs during suspend/resume, so that IRQs are not lost. 4) Add parallel GPE handling to eliminate the possibility of dispatching the same GPE twice. 5) Dispatch any pending GPEs after enabling for the first time.
AcpiGetObjectInfo - removed support for the _STA method. This was causing problems on some platforms.
Added a new _OSI string, "Windows 2017.2".
Cleaned up and simplified the module-level code support. These changes are in preparation for the eventual removal of the legacy MLC support (deferred execution), replaced by the new MLC architecture which executes the MLC as a table is loaded (DSDT/SSDTs).
Changed a compile-time option to a runtime option. Changes the option to ignore ACPI table load-time package resolution errors into a runtime option. Used only for platforms that generate many AE_NOT_FOUND errors during boot. AcpiGbl_IgnorePackageResolutionErrors.
Fixed the ACPI_ERROR_NAMESPACE macro. This change involves putting some ACPI_ERROR_NAMESPACE parameters inside macros. By doing so, we avoid compilation errors from unused variables (seen with some compilers).
2) iASL Compiler/Disassembler and Tools:
ASLTS: parallelized execution in order to achieve an (approximately) 2X performance increase.
ASLTS: Updated to use the iASL __LINE__ and __METHOD__ macros. Improves error reporting.
---------------------------------------- 09 February 2018. Summary of changes for version 20180209:
1) ACPICA kernel-resident subsystem:
Completed the final integration of the recent changes to Package Object handling and the module-level AML code support. This allows forward references from individual package elements when the package object is declared from within module-level code blocks. Provides compatibility with other ACPI implementations.
The new architecture for the AML module-level code has been completed and is now the default for the ACPICA code. This new architecture executes the module-level code in-line as the ACPI table is loaded/parsed instead of the previous architecture which deferred this code until after the table was fully loaded. This solves some ASL code ordering issues and provides compatibility with other ACPI implementations. At this time, there is an option to fallback to the earlier architecture, but this support is deprecated and is planned to be completely removed later this year.
Added a compile-time option to ignore AE_NOT_FOUND exceptions during resolution of named reference elements within Package objects. Although this is potentially a serious problem, it can generate a lot of noise/errors on platforms whose firmware carries around a bunch of unused Package objects. To disable these errors, define ACPI_IGNORE_PACKAGE_RESOLUTION_ERRORS in the OS-specific header. All errors are always reported for ACPICA applications such as AcpiExec.
Fixed a regression related to the explicit type-conversion AML operators (ToXXXX). The regression was introduced early in 2017 but was not seen until recently because these operators are not fully supported by other ACPI implementations and are thus rarely used by firmware developers. The operators are defined by the ACPI specification to not implement the "implicit result object conversion". The regression incorrectly introduced this object conversion for the following explicit conversion operators: ToInteger ToString ToBuffer ToDecimalString ToHexString ToBCD FromBCD
2) iASL Compiler/Disassembler and Tools:
iASL: Fixed a problem with the compiler constant folding feature as related to the ToXXXX explicit conversion operators. These operators do not support the "implicit result object conversion" by definition. Thus, ASL expressions that use these operators cannot be folded to a simple Store operator because Store implements the implicit conversion. This change uses the CopyObject operator for the ToXXXX operator folding instead. CopyObject is defined to not implement implicit result conversions and is thus appropriate for folding the ToXXXX operators.
iASL: Changed the severity of an error condition to a simple warning for the case where a symbol is declared both locally and as an external symbol. This accommodates existing ASL code.
AcpiExec: The -ep option to enable the new architecture for module-level code has been removed. It is replaced by the -dp option which instead has the opposite effect: it disables the new architecture (the default) and enables the legacy architecture. When the legacy code is removed in the future, the -dp option will be removed also.
---------------------------------------- 05 January 2018. Summary of changes for version 20180105:
1) ACPICA kernel-resident subsystem:
Updated all copyrights to 2018. This affects all source code modules.
Fixed a possible build error caused by an unresolved reference to the AcpiUtSafeStrncpy function.
Removed NULL pointer arithmetic in the various pointer manipulation macros. All "(void *) NULL" constructs are converted to "(void *) 0". This eliminates warnings/errors in newer C compilers. Jung-uk Kim.
Added support for A32 ABI compilation, which uses the ILP32 model. Anuj Mittal.
2) iASL Compiler/Disassembler and Tools:
ASLTS: Updated all copyrights to 2018.
Tools: Updated all signon copyrights to 2018.
AcpiXtract: Fixed a regression related to ACPI table signatures where the signature was truncated to 3 characters (instead of 4).
AcpiExec: Restore the original terminal mode after the use of the -v and -vd options.
ASLTS: Deployed the iASL __METHOD__ macro across the test suite.
---------------------------------------- 14 December 2017. Summary of changes for version 20171214:
1) ACPICA kernel-resident subsystem:
Fixed a regression in the external (public) AcpiEvaluateObjectTyped interface where the optional "pathname" argument had inadvertently become a required argument returning an error if omitted (NULL pointer argument).
Fixed two possible memory leaks related to the recently developed "late resolution" of reference objects within ASL Package Object definitions.
Added two recently defined _OSI strings: "Windows 2016" and "Windows 2017". Mario Limonciello.
Implemented and deployed a safer version of the C library function strncpy: AcpiUtSafeStrncpy. The intent is to at least prevent the creation of unterminated strings as a possible result of a standard strncpy.
Cleaned up and restructured the global variable file (acglobal.h). There are many changes, but no functional changes.
2) iASL Compiler/Disassembler and Tools:
iASL Table Compiler: Fixed a problem with the DBG2 ACPI table where the optional OemData field at the end of the table was incorrectly required for proper compilation. It is now correctly an optional field.
ASLTS: The entire suite was converted from standard ASL to the ASL+ language, using the ASL-to-ASL+ converter which is integrated into the iASL compiler. A binary compare of all output files has verified the correctness of the conversion.
iASL: Fixed the source code build for platforms where "char" is unsigned. This affected the iASL lexer only. Jung-uk Kim.
show more ...
|
#
db5c6ae1 |
| 18-Aug-2015 |
christos <christos@NetBSD.org> |
---------------------------------------- 17 July 2015. Summary of changes for version 20150717:
1) ACPICA kernel-resident subsystem:
Improved the partitioning between the Debugger and Disassembler
---------------------------------------- 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.
show more ...
|
#
32903b12 |
| 28-Jun-2011 |
jruoho <jruoho@NetBSD.org> |
Import ACPICA 20110623.
Selected changes since 20110211 include, among other things, fixes to _PRW parsing, fix to a regression with the Load() operator, improvements in NULL package element removal
Import ACPICA 20110623.
Selected changes since 20110211 include, among other things, fixes to _PRW parsing, fix to a regression with the Load() operator, improvements in NULL package element removal, support for "spurious" global lock interrupts, execution of orphaned _REG methods under acpiec(4), and smaller iasl(8) improvements.
show more ...
|