summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/CHANGES.txt')
-rw-r--r--sys/contrib/dev/acpica/CHANGES.txt8448
1 files changed, 0 insertions, 8448 deletions
diff --git a/sys/contrib/dev/acpica/CHANGES.txt b/sys/contrib/dev/acpica/CHANGES.txt
deleted file mode 100644
index f26ed47..0000000
--- a/sys/contrib/dev/acpica/CHANGES.txt
+++ /dev/null
@@ -1,8448 +0,0 @@
-----------------------------------------
-20 March 2007. Summary of changes for version 20070320:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the order of interpretation and
-evaluation of AML operand objects within the AML interpreter. The
-interpreter now evaluates operands in the order that they appear
-in the AML stream (and the corresponding ASL code), instead of in
-the reverse order (after the entire operand list has been
-parsed). The previous behavior caused several subtle
-incompatibilities with the Microsoft AML interpreter as well as
-being somewhat non-intuitive. BZ 7871, local BZ 263. Valery
-Podrezov.
-
-Implemented a change to the ACPI Global Lock support. All
-interfaces to the global lock now allow the same thread to
-acquire the lock multiple times. This affects the
-AcpiAcquireGlobalLock external interface to the global lock as
-well as the internal use of the global lock to support AML fields
--- a control method that is holding the global lock can now
-simultaneously access AML fields that require global lock
-protection. Previously, in both cases, this would have resulted
-in an AE_ALREADY_ACQUIRED exception. The change to
-AcpiAcquireGlobalLock is of special interest to drivers for the
-Embedded Controller. There is no change to the behavior of the
-AML Acquire operator, as this can already be used to acquire a
-mutex multiple times by the same thread. BZ 8066. With assistance
-from Alexey Starikovskiy.
-
-Fixed a problem where invalid objects could be referenced in the
-AML Interpreter after error conditions. During operand
-evaluation, ensure that the internal "Return Object" field is
-cleared on error and only valid pointers are stored there. Caused
-occasional access to deleted objects that resulted in "large
-reference count" warning messages. Valery Podrezov.
-
-Fixed a problem where an AE_STACK_OVERFLOW internal exception
-could occur on deeply nested control method invocations. BZ 7873,
-local BZ 487. Valery Podrezov.
-
-Fixed an internal problem with the handling of result objects on
-the interpreter result stack. BZ 7872. Valery Podrezov.
-
-Removed obsolete code that handled the case where AML_NAME_OP is
-the target of a reference (Reference.Opcode). This code was no
-longer necessary. BZ 7874. Valery Podrezov.
-
-Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files.
-This was a remnant from the previously discontinued 16-bit
-support.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.9K Code, 63.1K Data, 219.0K Total
-
-----------------------------------------
-26 January 2007. Summary of changes for version 20070126:
-
-1) ACPI CA Core Subsystem:
-
-Added the 2007 copyright to all module headers and signons. This
-affects virtually every file in the ACPICA core subsystem, the
-iASL compiler, and the utilities.
-
-Implemented a fix for an incorrect parameter passed to
-AcpiTbDeleteTable during a table load. A bad pointer was passed
-in the case where the DSDT is overridden, causing a fault in this
-case.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
-
-----------------------------------------
-15 December 2006. Summary of changes for version 20061215:
-
-1) ACPI CA Core Subsystem:
-
-Support for 16-bit ACPICA has been completely removed since it is
-no longer necessary and it clutters the code. All 16-bit macros,
-types, and conditional compiles have been removed, cleaning up
-and simplifying the code across the entire subsystem. DOS support
-is no longer needed since the bootable Linux firmware kit is now
-available.
-
-The handler for the Global Lock is now removed during
-AcpiTerminate to enable a clean subsystem restart, via the
-implementation of the AcpiEvRemoveGlobalLockHandler function.
-(With assistance from Joel Bretz, HP)
-
-Implemented enhancements to the multithreading support within the
-debugger to enable improved multithreading debugging and
-evaluation of the subsystem. (Valery Podrezov)
-
-Debugger: Enhanced the Statistics/Memory command to emit the
-total (maximum) memory used during the execution, as well as the
-maximum memory consumed by each of the various object types.
-(Valery Podrezov)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 77.9K Code, 17.0K Data, 94.9K Total
- Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
- Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-AcpiExec: Implemented a new option (-m) to display full memory
-use statistics upon subsystem/program termination. (Valery
-Podrezov)
-
-----------------------------------------
-09 November 2006. Summary of changes for version 20061109:
-
-1) ACPI CA Core Subsystem:
-
-Optimized the Load ASL operator in the case where the source
-operand is an operation region. Simply map the operation region
-memory, instead of performing a bytewise read. (Region must be of
-type SystemMemory, see below.)
-
-Fixed the Load ASL operator for the case where the source operand
-is a region field. A buffer object is also allowed as the source
-operand. BZ 480
-
-Fixed a problem where the Load ASL operator allowed the source
-operand to be an operation region of any type. It is now
-restricted to regions of type SystemMemory, as per the ACPI
-specification. BZ 481
-
-Additional cleanup and optimizations for the new Table Manager
-code.
-
-AcpiEnable will now fail if all of the required ACPI tables are
-not loaded (FADT, FACS, DSDT). BZ 477
-
-Added #pragma pack(8/4) to acobject.h to ensure that the
-structures in this header are always compiled as aligned. The
-ACPI_OPERAND_OBJECT has been manually optimized to be aligned and
-will not work if it is byte-packed.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 78.1K Code, 17.1K Data, 95.2K Total
- Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
- Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem where the presence of the _OSI predefined control
-method within complex expressions could cause an internal
-compiler error.
-
-AcpiExec: Implemented full region support for multiple address
-spaces. SpaceId is now part of the REGION object. BZ 429
-
-----------------------------------------
-11 October 2006. Summary of changes for version 20061011:
-
-1) ACPI CA Core Subsystem:
-
-Completed an AML interpreter performance enhancement for control
-method execution. Previously a 2-pass parse/execution, control
-methods are now completely parsed and executed in a single pass.
-This improves overall interpreter performance by ~25%, reduces
-code size, and reduces CPU stack use. (Valery Podrezov +
-interpreter changes in version 20051202 that eliminated namespace
-loading during the pass one parse.)
-
-Implemented _CID support for PCI Root Bridge detection. If the
-_HID does not match the predefined PCI Root Bridge IDs, the _CID
-list (if present) is now obtained and also checked for an ID
-match.
-
-Implemented additional support for the PCI _ADR execution:
-upsearch until a device scope is found before executing _ADR.
-This allows PCI_Config operation regions to be declared locally
-within control methods underneath PCI device objects.
-
-Fixed a problem with a possible race condition between threads
-executing AcpiWalkNamespace and the AML interpreter. This
-condition was removed by modifying AcpiWalkNamespace to (by
-default) ignore all temporary namespace entries created during
-any concurrent control method execution. An additional namespace
-race condition is known to exist between AcpiWalkNamespace and
-the Load/Unload ASL operators and is still under investigation.
-
-Restructured the AML ParseLoop function, breaking it into several
-subfunctions in order to reduce CPU stack use and improve
-maintainability. (Mikhail Kouzmich)
-
-AcpiGetHandle: Fix for parameter validation to detect invalid
-combinations of prefix handle and pathname. BZ 478
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
- Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
-
-2) iASL Compiler/Disassembler and Tools:
-
-Ported the -g option (get local ACPI tables) to the new ACPICA
-Table Manager to restore original behavior.
-
-----------------------------------------
-27 September 2006. Summary of changes for version 20060927:
-
-1) ACPI CA Core Subsystem:
-
-Removed the "Flags" parameter from AcpiGetRegister and
-AcpiSetRegister. These functions now use a spinlock for mutual
-exclusion and the interrupt level indication flag is not needed.
-
-Fixed a problem with the Global Lock where the lock could appear
-to be obtained before it is actually obtained. The global lock
-semaphore was inadvertently created with one unit instead of zero
-units. (BZ 464) Fiodor Suietov.
-
-Fixed a possible memory leak and fault in
-AcpiExResolveObjectToValue during a read from a buffer or region
-field. (BZ 458) Fiodor Suietov.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a compilation problem with the pre-defined Resource
-Descriptor field names where an "object does not exist" error
-could be incorrectly generated if the parent ResourceTemplate
-pathname places the template within a different namespace scope
-than the current scope. (BZ 7212)
-
-Fixed a problem where the compiler could hang after syntax errors
-detected in an ElseIf construct. (BZ 453)
-
-Fixed a problem with the AmlFilename parameter to the
-DefinitionBlock() operator. An incorrect output filename was
-produced when this parameter was a null string (""). Now, the
-original input filename is used as the AML output filename, with
-an ".aml" extension.
-
-Implemented a generic batch command mode for the AcpiExec utility
-(execute any AML debugger command) (Valery Podrezov).
-
-----------------------------------------
-12 September 2006. Summary of changes for version 20060912:
-
-1) ACPI CA Core Subsystem:
-
-Enhanced the implementation of the "serialized mode" of the
-interpreter (enabled via the AcpiGbl_AllMethodsSerialized flag.)
-When this mode is specified, instead of creating a serialization
-semaphore per control method, the interpreter lock is simply no
-longer released before a blocking operation during control method
-execution. This effectively makes the AML Interpreter single-
-threaded. The overhead of a semaphore per-method is eliminated.
-
-Fixed a regression where an error was no longer emitted if a
-control method attempts to create 2 objects of the same name.
-This once again returns AE_ALREADY_EXISTS. When this exception
-occurs, it invokes the mechanism that will dynamically serialize
-the control method to possible prevent future errors. (BZ 440)
-
-Integrated a fix for a problem with PCI Express HID detection in
-the PCI Config Space setup procedure. (BZ 7145)
-
-Moved all FADT-related functions to a new file, tbfadt.c.
-Eliminated the AcpiHwInitialize function - the FADT registers are
-now validated when the table is loaded.
-
-Added two new warnings during FADT verification - 1) if the FADT
-is larger than the largest known FADT version, and 2) if there is
-a mismatch between a 32-bit block address and the 64-bit X
-counterpart (when both are non-zero.)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 77.9K Code, 16.7K Data, 94.6K Total
- Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
- Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a problem with the implementation of the Switch() operator
-where the temporary variable was declared too close to the actual
-Switch, instead of at method level. This could cause a problem if
-the Switch() operator is within a while loop, causing an error on
-the second iteration. (BZ 460)
-
-Disassembler - fix for error emitted for unknown type for target
-of scope operator. Now, ignore it and continue.
-
-Disassembly of an FADT now verifies the input FADT and reports
-any errors found. Fix for proper disassembly of full-sized (ACPI
-2.0) FADTs.
-
-Disassembly of raw data buffers with byte initialization data now
-prefixes each output line with the current buffer offset.
-
-Disassembly of ASF! table now includes all variable-length data
-fields at the end of some of the subtables.
-
-The disassembler now emits a comment if a buffer appears to be a
-ResourceTemplate, but cannot be disassembled as such because the
-EndTag does not appear at the very end of the buffer.
-
-AcpiExec - Added the "-t" command line option to enable the
-serialized mode of the AML interpreter.
-
-----------------------------------------
-31 August 2006. Summary of changes for version 20060831:
-
-1) ACPI CA Core Subsystem:
-
-Miscellaneous fixes for the Table Manager:
-- Correctly initialize internal common FADT for all 64-bit "X"
-fields
-- Fixed a couple table mapping issues during table load
-- Fixed a couple alignment issues for IA64
-- Initialize input array to zero in AcpiInitializeTables
-- Additional parameter validation for AcpiGetTable,
-AcpiGetTableHeader, AcpiGetTableByIndex
-
-Change for GPE support: when a "wake" GPE is received, all wake
-GPEs are now immediately disabled to prevent the waking GPE from
-firing again and to prevent other wake GPEs from interrupting the
-wake process.
-
-Added the AcpiGpeCount global that tracks the number of processed
-GPEs, to be used for debugging systems with a large number of
-ACPI interrupts.
-
-Implemented support for the "DMAR" ACPI table (DMA Redirection
-Table) in both the ACPICA headers and the disassembler.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 77.8K Code, 16.5K Data, 94.3K Total
- Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
- Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler support for the DMAR ACPI table.
-
-----------------------------------------
-23 August 2006. Summary of changes for version 20060823:
-
-1) ACPI CA Core Subsystem:
-
-The Table Manager component has been completely redesigned and
-reimplemented. The new design is much simpler, and reduces the
-overall code and data size of the kernel-resident ACPICA by
-approximately 5%. Also, it is now possible to obtain the ACPI
-tables very early during kernel initialization, even before
-dynamic memory management is initialized. (Alexey Starikovskiy,
-Fiodor Suietov, Bob Moore)
-
-Obsolete ACPICA interfaces:
-
-- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early
-kernel init time).
-- AcpiLoadTable: Not needed.
-- AcpiUnloadTable: Not needed.
-
-New ACPICA interfaces:
-
-- AcpiInitializeTables: Must be called before the table manager
-can be used.
-- AcpiReallocateRootTable: Used to transfer the root table to
-dynamically allocated memory after it becomes available.
-- AcpiGetTableByIndex: Allows the host to easily enumerate all
-ACPI tables in the RSDT/XSDT.
-
-Other ACPICA changes:
-
-- AcpiGetTableHeader returns the actual mapped table header, not
-a copy. Use AcpiOsUnmapMemory to free this mapping.
-- AcpiGetTable returns the actual mapped table. The mapping is
-managed internally and must not be deleted by the caller. Use of
-this interface causes no additional dynamic memory allocation.
-- AcpiFindRootPointer: Support for physical addressing has been
-eliminated, it appeared to be unused.
-- The interface to AcpiOsMapMemory has changed to be consistent
-with the other allocation interfaces.
-- The interface to AcpiOsGetRootPointer has changed to eliminate
-unnecessary parameters.
-- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64
-bits on 64-bit platforms. Was previously 64 bits on all
-platforms.
-- The interface to the ACPI Global Lock acquire/release macros
-have changed slightly since ACPICA no longer keeps a local copy
-of the FACS with a constructed pointer to the actual global lock.
-
-Porting to the new table manager:
-
-- AcpiInitializeTables: Must be called once, and can be called
-anytime during the OS initialization process. It allows the host
-to specify an area of memory to be used to store the internal
-version of the RSDT/XSDT (root table). This allows the host to
-access ACPI tables before memory management is initialized and
-running.
-- AcpiReallocateRootTable: Can be called after memory management
-is running to copy the root table to a dynamically allocated
-array, freeing up the scratch memory specified in the call to
-AcpiInitializeTables.
-- AcpiSubsystemInitialize: This existing interface is independent
-of the Table Manager, and does not have to be called before the
-Table Manager can be used, it only must be called before the rest
-of ACPICA can be used.
-- ACPI Tables: Some changes have been made to the names and
-structure of the actbl.h and actbl1.h header files and may
-require changes to existing code. For example, bitfields have
-been completely removed because of their lack of portability
-across C compilers.
-- Update interfaces to the Global Lock acquire/release macros if
-local versions are used. (see acwin.h)
-
-Obsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c
-
-New files: tbfind.c
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total
- Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-21 July 2006. Summary of changes for version 20060721:
-
-1) ACPI CA Core Subsystem:
-
-The full source code for the ASL test suite used to validate the
-iASL compiler and the ACPICA core subsystem is being released
-with the ACPICA source for the first time. The source is
-contained in a separate package and consists of over 1100 files
-that exercise all ASL/AML operators. The package should appear on
-the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor
-Suietov)
-
-Completed a new design and implementation for support of the ACPI
-Global Lock. On the OS side, the global lock is now treated as a
-standard AML mutex. Previously, multiple OS threads could
-"acquire" the global lock simultaneously. However, this could
-cause the BIOS to be starved out of the lock - especially in
-cases such as the Embedded Controller driver where there is a
-tight coupling between the OS and the BIOS.
-
-Implemented an optimization for the ACPI Global Lock interrupt
-mechanism. The Global Lock interrupt handler no longer queues the
-execution of a separate thread to signal the global lock
-semaphore. Instead, the semaphore is signaled directly from the
-interrupt handler.
-
-Implemented support within the AML interpreter for package
-objects that contain a larger AML length (package list length)
-than the package element count. In this case, the length of the
-package is truncated to match the package element count. Some
-BIOS code apparently modifies the package length on the fly, and
-this change supports this behavior. Provides compatibility with
-the MS AML interpreter. (With assistance from Fiodor Suietov)
-
-Implemented a temporary fix for the BankValue parameter of a Bank
-Field to support all constant values, now including the Zero and
-One opcodes. Evaluation of this parameter must eventually be
-converted to a full TermArg evaluation. A not-implemented error
-is now returned (temporarily) for non-constant values for this
-parameter.
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Fix for premature object deletion after CopyObject on Operation
-Region (BZ 350)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.7K Code, 18.0K Data, 98.7K Total
- Debug Version: 160.9K Code, 65.1K Data, 226.0K Total
- Current Release:
- Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-07 July 2006. Summary of changes for version 20060707:
-
-1) ACPI CA Core Subsystem:
-
-Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C
-compilers that do not allow the initialization of address
-pointers within packed structures - even though the hardware
-itself may support misaligned transfers. Some of the debug data
-structures are packed by default to minimize size.
-
-Added an error message for the case where AcpiOsGetThreadId()
-returns zero. A non-zero value is required by the core ACPICA
-code to ensure the proper operation of AML mutexes and recursive
-control methods.
-
-The DSDT is now the only ACPI table that determines whether the
-AML interpreter is in 32-bit or 64-bit mode. Not really a
-functional change, but the hooks for per-table 32/64 switching
-have been removed from the code. A clarification to the ACPI
-specification is forthcoming in ACPI 3.0B.
-
-Fixed a possible leak of an OwnerID in the error path of
-AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table
-OwnerID deletion to a single place in AcpiTbUninstallTable to
-correct possible leaks when using the AcpiTbDeleteTablesByType
-interface (with assistance from Lance Ortiz.)
-
-Fixed a problem with Serialized control methods where the
-semaphore associated with the method could be over-signaled after
-multiple method invocations.
-
-Fixed two issues with the locking of the internal namespace data
-structure. Both the Unload() operator and AcpiUnloadTable
-interface now lock the namespace during the namespace deletion
-associated with the table unload (with assistance from Linn
-Crosetto.)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Eliminate unnecessary memory allocation for CreateXxxxField (BZ
-5426)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
-- On Address Space handler deletion, needless deactivation call
-(BZ 374)
-- AcpiRemoveAddressSpaceHandler: validate Device handle parameter
-(BZ 375)
-- Possible memory leak, Notify sub-objects of Processor, Power,
-ThermalZone (BZ 376)
-- AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ
-378)
-- Minimum Length of RSDT should be validated (BZ 379)
-- AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj
-has no Handler (BZ (380)
-- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified
-type loaded (BZ 381)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.5K Code, 17.8K Data, 98.3K Total
- Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
- Current Release:
- Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
- Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed problem reports:
-Compiler segfault when ASL contains a long (>1024) String
-declaration (BZ 436)
-
-----------------------------------------
-23 June 2006. Summary of changes for version 20060623:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces.
-This allows the type to be customized to the host OS for improved
-efficiency (since a spinlock is usually a very small object.)
-
-Implemented support for "ignored" bits in the ACPI registers.
-According to the ACPI specification, these bits should be
-preserved when writing the registers via a read/modify/write
-cycle. There are 3 bits preserved in this manner: PM1_CONTROL[0]
-(SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].
-
-Implemented the initial deployment of new OSL mutex interfaces.
-Since some host operating systems have separate mutex and
-semaphore objects, this feature was requested. The base code now
-uses mutexes (and the new mutex interfaces) wherever a binary
-semaphore was used previously. However, for the current release,
-the mutex interfaces are defined as macros to map them to the
-existing semaphore interfaces. Therefore, no OSL changes are
-required at this time. (See acpiosxf.h)
-
-Fixed several problems with the support for the control method
-SyncLevel parameter. The SyncLevel now works according to the
-ACPI specification and in concert with the Mutex SyncLevel
-parameter, since the current SyncLevel is a property of the
-executing thread. Mutual exclusion for control methods is now
-implemented with a mutex instead of a semaphore.
-
-Fixed three instances of the use of the C shift operator in the
-bitfield support code (exfldio.c) to avoid the use of a shift
-value larger than the target data width. The behavior of C
-compilers is undefined in this case and can cause unpredictable
-results, and therefore the case must be detected and avoided.
-(Fiodor Suietov)
-
-Added an info message whenever an SSDT or OEM table is loaded
-dynamically via the Load() or LoadTable() ASL operators. This
-should improve debugging capability since it will show exactly
-what tables have been loaded (beyond the tables present in the
-RSDT/XSDT.)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.0K Code, 17.6K Data, 97.6K Total
- Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
- Current Release:
- Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total
- Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-No changes for this release.
-
-----------------------------------------
-08 June 2006. Summary of changes for version 20060608:
-
-1) ACPI CA Core Subsystem:
-
-Converted the locking mutex used for the ACPI hardware to a
-spinlock. This change should eliminate all problems caused by
-attempting to acquire a semaphore at interrupt level, and it
-means that all ACPICA external interfaces that directly access
-the ACPI hardware can be safely called from interrupt level. OSL
-code that implements the semaphore interfaces should be able to
-eliminate any workarounds for being called at interrupt level.
-
-Fixed a regression introduced in 20060526 where the ACPI device
-initialization could be prematurely aborted with an AE_NOT_FOUND
-if a device did not have an optional _INI method.
-
-Fixed an IndexField issue where a write to the Data Register
-should be limited in size to the AccessSize (width) of the
-IndexField itself. (BZ 433, Fiodor Suietov)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Allow store of ThermalZone objects to Debug object (BZ
-5369/5370)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiGetTableHeader doesn't handle multiple instances correctly
-(BZ 364)
-
-Removed four global mutexes that were obsolete and were no longer
-being used.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.0K Code, 17.7K Data, 97.7K Total
- Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
- Current Release:
- Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total
- Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Fixed a fault when using -g option (get tables from registry) on
-Windows machines.
-
-Fixed problem reports integrated:
-- Generate error if CreateField NumBits parameter is zero. (BZ
-405)
-- Fault if Offset/Length in Field unit is very large (BZ 432,
-Fiodor Suietov)
-- Global table revision override (-r) is ignored (BZ 413)
-
-----------------------------------------
-26 May 2006. Summary of changes for version 20060526:
-
-1) ACPI CA Core Subsystem:
-
-Restructured, flattened, and simplified the internal interfaces
-for namespace object evaluation - resulting in smaller code, less
-CPU stack use, and fewer interfaces. (With assistance from
-Mikhail Kouzmich)
-
-Fixed a problem with the CopyObject operator where the first
-parameter was not typed correctly for the parser, interpreter,
-compiler, and disassembler. Caused various errors and unexpected
-behavior.
-
-Fixed a problem where a ShiftLeft or ShiftRight of more than 64
-bits produced incorrect results with some C compilers. Since the
-behavior of C compilers when the shift value is larger than the
-datatype width is apparently not well defined, the interpreter
-now detects this condition and simply returns zero as expected in
-all such cases. (BZ 395)
-
-Fixed problem reports (Valery Podrezov) integrated:
-- Update String-to-Integer conversion to match ACPI 3.0A spec (BZ
-5329)
-- Allow interpreter to handle nested method declarations (BZ
-5361)
-
-Fixed problem reports (Fiodor Suietov) integrated:
-- AcpiTerminate doesn't free debug memory allocation list objects
-(BZ 355)
-- After Core Subsystem shutdown, AcpiSubsystemStatus returns
-AE_OK (BZ 356)
-- AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ
-357)
-- Resource Manager should return AE_TYPE for non-device objects
-(BZ 358)
-- Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)
-- Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData
-(BZ 360)
-- Incomplete cleanup branch in AcpiPsParseAml (BZ 361)
-- Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)
-- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is
-loaded (BZ 365)
-- Status of the Global Initialization Handler call not used (BZ
-366)
-- Incorrect object parameter to Global Initialization Handler (BZ
-367)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 79.8K Code, 17.7K Data, 97.5K Total
- Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
- Current Release:
- Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total
- Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Modified the parser to allow the names IO, DMA, and IRQ to be
-used as namespace identifiers with no collision with existing
-resource descriptor macro names. This provides compatibility with
-other ASL compilers and is most useful for
-disassembly/recompilation of existing tables without parse
-errors. (With assistance from Thomas Renninger)
-
-Disassembler: fixed an incorrect disassembly problem with the
-DataTableRegion and CopyObject operators. Fixed a possible fault
-during disassembly of some Alias operators.
-
-----------------------------------------
-12 May 2006. Summary of changes for version 20060512:
-
-1) ACPI CA Core Subsystem:
-
-Replaced the AcpiOsQueueForExecution interface with a new
-interface named AcpiOsExecute. The major difference is that the
-new interface does not have a Priority parameter, this appeared
-to be useless and has been replaced by a Type parameter. The Type
-tells the host what type of execution is being requested, such as
-global lock handler, notify handler, GPE handler, etc. This
-allows the host to queue and execute the request as appropriate
-for the request type, possibly using different work queues and
-different priorities for the various request types. This enables
-fixes for multithreading deadlock problems such as BZ #5534, and
-will require changes to all existing OS interface layers. (Alexey
-Starikovskiy and Bob Moore)
-
-Fixed a possible memory leak associated with the support for the
-so-called "implicit return" ACPI extension. Reported by FreeBSD,
-BZ #6514. (Fiodor Suietov)
-
-Fixed a problem with the Load() operator where a table load from
-an operation region could overwrite an internal table buffer by
-up to 7 bytes and cause alignment faults on IPF systems. (With
-assistance from Luming Yu)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 79.7K Code, 17.7K Data, 97.4K Total
- Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
- Current Release:
- Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total
- Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
-
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to cross reference the internal
-namespace and automatically generate ASL External() statements
-for symbols not defined within the current table being
-disassembled. This will simplify the disassembly and
-recompilation of interdependent tables such as SSDTs since these
-statements will no longer have to be added manually.
-
-Disassembler: Implemented experimental support to automatically
-detect invocations of external control methods and generate
-appropriate External() statements. This is problematic because
-the AML cannot be correctly parsed until the number of arguments
-for each control method is known. Currently, standalone method
-invocations and invocations as the source operand of a Store()
-statement are supported.
-
-Disassembler: Implemented support for the ASL pseudo-operators
-LNotEqual, LLessEqual, and LGreaterEqual. Previously disassembled
-as LNot(LEqual()), LNot(LGreater()), and LNot(LLess()), this
-makes the disassembled ASL code more readable and likely closer
-to the original ASL source.
-
-----------------------------------------
-21 April 2006. Summary of changes for version 20060421:
-
-1) ACPI CA Core Subsystem:
-
-Removed a device initialization optimization introduced in
-20051216 where the _STA method was not run unless an _INI was
-also present for the same device. This optimization could cause
-problems because it could allow _INI methods to be run within a
-not-present device subtree. (If a not-present device had no _INI,
-_STA would not be run, the not-present status would not be
-discovered, and the children of the device would be incorrectly
-traversed.)
-
-Implemented a new _STA optimization where namespace subtrees that
-do not contain _INI are identified and ignored during device
-initialization. Selectively running _STA can significantly
-improve boot time on large machines (with assistance from Len
-Brown.)
-
-Implemented support for the device initialization case where the
-returned _STA flags indicate a device not-present but
-functioning. In this case, _INI is not run, but the device
-children are examined for presence, as per the ACPI
-specification.
-
-Implemented an additional change to the IndexField support in
-order to conform to MS behavior. The value written to the Index
-Register is not simply a byte offset, it is a byte offset in
-units of the access width of the parent Index Field. (Fiodor
-Suietov)
-
-Defined and deployed a new OSL interface, AcpiOsValidateAddress.
-This interface is called during the creation of all AML operation
-regions, and allows the host OS to exert control over what
-addresses it will allow the AML code to access. Operation Regions
-whose addresses are disallowed will cause a runtime exception
-when they are actually accessed (will not affect or abort table
-loading.) See oswinxf or osunixxf for an example implementation.
-
-Defined and deployed a new OSL interface,
-AcpiOsValidateInterface. This interface allows the host OS to
-match the various "optional" interface/behavior strings for the
-_OSI predefined control method as appropriate (with assistance
-from Bjorn Helgaas.) See oswinxf or osunixxf for an example
-implementation.
-
-Restructured and corrected various problems in the exception
-handling code paths within DsCallControlMethod and
-DsTerminateControlMethod in dsmethod (with assistance from
-Takayoshi Kochi.)
-
-Modified the Linux source converter to ignore quoted string
-literals while converting identifiers from mixed to lower case.
-This will correct problems with the disassembler and other areas
-where such strings must not be modified.
-
-The ACPI_FUNCTION_* macros no longer require quotes around the
-function name. This allows the Linux source converter to convert
-the names, now that the converter ignores quoted strings.
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 81.1K Code, 17.7K Data, 98.8K Total
- Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
- Current Release:
- Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total
- Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented 3 new warnings for iASL, and implemented multiple
-warning levels (w2 flag).
-
-1) Ignored timeouts: If the TimeoutValue parameter to Wait or
-Acquire is not WAIT_FOREVER (0xFFFF) and the code does not
-examine the return value to check for the possible timeout, a
-warning is issued.
-
-2) Useless operators: If an ASL operator does not specify an
-optional target operand and it also does not use the function
-return value from the operator, a warning is issued since the
-operator effectively does nothing.
-
-3) Unreferenced objects: If a namespace object is created, but
-never referenced, a warning is issued. This is a warning level 2
-since there are cases where this is ok, such as when a secondary
-table is loaded that uses the unreferenced objects. Even so, care
-is taken to only flag objects that don't look like they will ever
-be used. For example, the reserved methods (starting with an
-underscore) are usually not referenced because it is expected
-that the OS will invoke them.
-
-----------------------------------------
-31 March 2006. Summary of changes for version 20060331:
-
-1) ACPI CA Core Subsystem:
-
-Implemented header file support for the following additional ACPI
-tables: ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT.
-With this support, all current and known ACPI tables are now
-defined in the ACPICA headers and are available for use by device
-drivers and other software.
-
-Implemented support to allow tables that contain ACPI names with
-invalid characters to be loaded. Previously, this would cause the
-table load to fail, but since there are several known cases of
-such tables on existing machines, this change was made to enable
-ACPI support for them. Also, this matches the behavior of the
-Microsoft ACPI implementation.
-
-Fixed a couple regressions introduced during the memory
-optimization in the 20060317 release. The namespace node
-definition required additional reorganization and an internal
-datatype that had been changed to 8-bit was restored to 32-bit.
-(Valery Podrezov)
-
-Fixed a problem where a null pointer passed to
-AcpiUtDeleteGenericState could be passed through to
-AcpiOsReleaseObject which is unexpected. Such null pointers are
-now trapped and ignored, matching the behavior of the previous
-implementation before the deployment of AcpiOsReleaseObject.
-(Valery Podrezov, Fiodor Suietov)
-
-Fixed a memory mapping leak during the deletion of a SystemMemory
-operation region where a cached memory mapping was not deleted.
-This became a noticeable problem for operation regions that are
-defined within frequently used control methods. (Dana Meyers)
-
-Reorganized the ACPI table header files into two main files: one
-for the ACPI tables consumed by the ACPICA core, and another for
-the miscellaneous ACPI tables that are consumed by the drivers
-and other software. The various FADT definitions were merged into
-one common section and three different tables (ACPI 1.0, 1.0+,
-and 2.0)
-
-Example Code and Data Size: These are the sizes for the OS-
-independent acpica.lib produced by the Microsoft Visual C++ 6.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: 80.9K Code, 17.7K Data, 98.6K Total
- Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total
- Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Disassembler: Implemented support to decode and format all non-
-AML ACPI tables (tables other than DSDTs and SSDTs.) This
-includes the new tables added to the ACPICA headers, therefore
-all current and known ACPI tables are supported.
-
-Disassembler: The change to allow ACPI names with invalid
-characters also enables the disassembly of such tables. Invalid
-characters within names are changed to '*' to make the name
-printable; the iASL compiler will still generate an error for
-such names, however, since this is an invalid ACPI character.
-
-Implemented an option for AcpiXtract (-a) to extract all tables
-found in the input file. The default invocation extracts only the
-DSDTs and SSDTs.
-
-Fixed a couple of gcc generation issues for iASL and AcpiExec and
-added a makefile for the AcpiXtract utility.
-
-----------------------------------------
-17 March 2006. Summary of changes for version 20060317:
-
-1) ACPI CA Core Subsystem:
-
-Implemented the use of a cache object for all internal namespace
-nodes. Since there are about 1000 static nodes in a typical
-system, this will decrease memory use for cache implementations
-that minimize per-allocation overhead (such as a slab allocator.)
-
-Removed the reference count mechanism for internal namespace
-nodes, since it was deemed unnecessary. This reduces the size of
-each namespace node by about 5%-10% on all platforms. Nodes are
-now 20 bytes for the 32-bit case, and 32 bytes for the 64-bit
-case.
-
-Optimized several internal data structures to reduce object size
-on 64-bit platforms by packing data within the 64-bit alignment.
-This includes the frequently used ACPI_OPERAND_OBJECT, of which
-there can be ~1000 static instances corresponding to the
-namespace objects.
-
-Added two new strings for the predefined _OSI method: "Windows
-2001.1 SP1" and "Windows 2006".
-
-Split the allocation tracking mechanism out to a separate file,
-from utalloc.c to uttrack.c. This mechanism appears to be only
-useful for application-level code. Kernels may wish to not
-include uttrack.c in distributions.
-
-Removed all remnants of the obsolete ACPI_REPORT_* macros and the
-associated code. (These macros have been replaced by the
-ACPI_ERROR and ACPI_WARNING macros.)
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
- Current Release:
- Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total
- Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
-
-
-2) iASL Compiler/Disassembler and Tools:
-
-Implemented an ANSI C version of the acpixtract utility. This
-version will automatically extract the DSDT and all SSDTs from
-the input acpidump text file and dump the binary output to
-separate files. It can also display a summary of the input file
-including the headers for each table found and will extract any
-single ACPI table, with any signature. (See
-source/tools/acpixtract)
-
-----------------------------------------
-10 March 2006. Summary of changes for version 20060310:
-
-1) ACPI CA Core Subsystem:
-
-Tagged all external interfaces to the subsystem with the new
-ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary
-to assist kernel integration. For Linux, the macro resolves to
-the EXPORT_SYMBOL macro. The default definition is NULL.
-
-Added the ACPI_THREAD_ID type for the return value from
-AcpiOsGetThreadId. This allows the host to define this as
-necessary to simplify kernel integration. The default definition
-is ACPI_NATIVE_UINT.
-
-Fixed two interpreter problems related to error processing, the
-deletion of objects, and placing invalid pointers onto the
-internal operator result stack. BZ 6028, 6151 (Valery Podrezov)
-
-Increased the reference count threshold where a warning is
-emitted for large reference counts in order to eliminate
-unnecessary warnings on systems with large namespaces (especially
-64-bit.) Increased the value from 0x400 to 0x800.
-
-Due to universal disagreement as to the meaning of the 'c' in the
-calloc() function, the ACPI_MEM_CALLOCATE macro has been renamed
-to ACPI_ALLOCATE_ZEROED so that the purpose of the interface is
-'clear'. ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to
-ACPI_ALLOCATE and ACPI_FREE.
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release:
- Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
- Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler: implemented support for symbolic resource
-descriptor references. If a CreateXxxxField operator references a
-fixed offset within a resource descriptor, a name is assigned to
-the descriptor and the offset is translated to the appropriate
-resource tag and pathname. The addition of this support brings
-the disassembled code very close to the original ASL source code
-and helps eliminate run-time errors when the disassembled code is
-modified (and recompiled) in such a way as to invalidate the
-original fixed offsets.
-
-Implemented support for a Descriptor Name as the last parameter
-to the ASL Register() macro. This parameter was inadvertently
-left out of the ACPI specification, and will be added for ACPI
-3.0b.
-
-Fixed a problem where the use of the "_OSI" string (versus the
-full path "\_OSI") caused an internal compiler error. ("No back
-ptr to op")
-
-Fixed a problem with the error message that occurs when an
-invalid string is used for a _HID object (such as one with an
-embedded asterisk: "*PNP010A".) The correct message is now
-displayed.
-
-----------------------------------------
-17 February 2006. Summary of changes for version 20060217:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a change to the IndexField support to match the
-behavior of the Microsoft AML interpreter. The value written to
-the Index register is now a byte offset, no longer an index based
-upon the width of the Data register. This should fix IndexField
-problems seen on some machines where the Data register is not
-exactly one byte wide. The ACPI specification will be clarified
-on this point.
-
-Fixed a problem where several resource descriptor types could
-overrun the internal descriptor buffer due to size
-miscalculation: VendorShort, VendorLong, and Interrupt. This was
-noticed on IA64 machines, but could affect all platforms.
-
-Fixed a problem where individual resource descriptors were
-misaligned within the internal buffer, causing alignment faults
-on IA64 platforms.
-
-Code and Data Size: These are the sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
- Current Release:
- Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
- Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for new reserved names: _WDG and _WED are
-Microsoft extensions for Windows Instrumentation Management, _TDL
-is a new ACPI-defined method (Throttling Depth Limit.)
-
-Fixed a problem where a zero-length VendorShort or VendorLong
-resource descriptor was incorrectly emitted as a descriptor of
-length one.
-
-----------------------------------------
-10 February 2006. Summary of changes for version 20060210:
-
-1) ACPI CA Core Subsystem:
-
-Removed a couple of extraneous ACPI_ERROR messages that appeared
-during normal execution. These became apparent after the
-conversion from ACPI_DEBUG_PRINT.
-
-Fixed a problem where the CreateField operator could hang if the
-BitIndex or NumBits parameter referred to a named object. (Valery
-Podrezov, BZ 5359)
-
-Fixed a problem where a DeRefOf operation on a buffer object
-incorrectly failed with an exception. This also fixes a couple of
-related RefOf and DeRefOf issues. (Valery Podrezov, BZ
-5360/5392/5387)
-
-Fixed a problem where the AE_BUFFER_LIMIT exception was returned
-instead of AE_STRING_LIMIT on an out-of-bounds Index() operation.
-(Valery Podrezov, BZ 5480)
-
-Implemented a memory cleanup at the end of the execution of each
-iteration of an AML While() loop, preventing the accumulation of
-outstanding objects. (Valery Podrezov, BZ 5427)
-
-Eliminated a chunk of duplicate code in the object resolution
-code. (Valery Podrezov, BZ 5336)
-
-Fixed several warnings during the 64-bit code generation.
-
-The AcpiSrc source code conversion tool now inserts one line of
-whitespace after an if() statement that is followed immediately
-by a comment, improving readability of the Linux code.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
- Current Release:
- Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the disassembly of a BankField operator with
-a complex expression for the BankValue parameter.
-
-----------------------------------------
-27 January 2006. Summary of changes for version 20060127:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support in the Resource Manager to allow unresolved
-namestring references within resource package objects for the
-_PRT method. This support is in addition to the previously
-implemented unresolved reference support within the AML parser.
-If the interpreter slack mode is enabled, these unresolved
-references will be passed through to the caller as a NULL package
-entry.
-
-Implemented and deployed new macros and functions for error and
-warning messages across the subsystem. These macros are simpler
-and generate less code than their predecessors. The new macros
-ACPI_ERROR, ACPI_EXCEPTION, ACPI_WARNING, and ACPI_INFO replace
-the ACPI_REPORT_* macros. The older macros remain defined to
-allow ACPI drivers time to migrate to the new macros.
-
-Implemented the ACPI_CPU_FLAGS type to simplify host OS
-integration of the Acquire/Release Lock OSL interfaces.
-
-Fixed a problem where Alias ASL operators are sometimes not
-correctly resolved, in both the interpreter and the iASL
-compiler.
-
-Fixed several problems with the implementation of the
-ConcatenateResTemplate ASL operator. As per the ACPI
-specification, zero length buffers are now treated as a single
-EndTag. One-length buffers always cause a fatal exception. Non-
-zero length buffers that do not end with a full 2-byte EndTag
-cause a fatal exception.
-
-Fixed a possible structure overwrite in the AcpiGetObjectInfo
-external interface. (With assistance from Thomas Renninger)
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
- Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
- Current Release:
- Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
- Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed an internal error that was generated for any forward
-references to ASL Alias objects.
-
-----------------------------------------
-13 January 2006. Summary of changes for version 20060113:
-
-1) ACPI CA Core Subsystem:
-
-Added 2006 copyright to all module headers and signons. This
-affects virtually every file in the ACPICA core subsystem, iASL
-compiler, and the utilities.
-
-Enhanced the ACPICA error reporting in order to simplify user
-migration to the non-debug version of ACPICA. Replaced all
-instances of the ACPI_DEBUG_PRINT macro invoked at the
-ACPI_DB_ERROR and ACPI_DB_WARN debug levels with the
-ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros, respectively.
-This preserves all error and warning messages in the non-debug
-version of the ACPICA code (this has been referred to as the
-"debug lite" option.) Over 200 cases were converted to create a
-total of over 380 error/warning messages across the ACPICA code.
-This increases the code and data size of the default non-debug
-version of the code somewhat (about 13K), but all error/warning
-reporting may be disabled if desired (and code eliminated) by
-specifying the ACPI_NO_ERROR_MESSAGES compile-time configuration
-option. The size of the debug version of ACPICA remains about the
-same.
-
-Fixed a memory leak within the AML Debugger "Set" command. One
-object was not properly deleted for every successful invocation
-of the command.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
- Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
- Current Release:
- Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
- Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now officially supports the ACPI 3.0a specification
-that was released on December 30, 2005. (Specification is
-available at www.acpi.info)
-
-----------------------------------------
-16 December 2005. Summary of changes for version 20051216:
-
-1) ACPI CA Core Subsystem:
-
-Implemented optional support to allow unresolved names within ASL
-Package objects. A null object is inserted in the package when a
-named reference cannot be located in the current namespace.
-Enabled via the interpreter slack flag, this should eliminate
-AE_NOT_FOUND exceptions seen on machines that contain such code.
-
-Implemented an optimization to the initialization sequence that
-can improve boot time. During ACPI device initialization, the
-_STA method is now run if and only if the _INI method exists. The
-_STA method is used to determine if the device is present; An
-_INI can only be run if _STA returns present, but it is a waste
-of time to run the _STA method if the _INI does not exist.
-(Prototype and assistance from Dong Wei)
-
-Implemented use of the C99 uintptr_t for the pointer casting
-macros if it is available in the current compiler. Otherwise, the
-default (void *) cast is used as before.
-
-Fixed some possible memory leaks found within the execution path
-of the Break, Continue, If, and CreateField operators. (Valery
-Podrezov)
-
-Fixed a problem introduced in the 20051202 release where an
-exception is generated during method execution if a control
-method attempts to declare another method.
-
-Moved resource descriptor string constants that are used by both
-the AML disassembler and AML debugger to the common utilities
-directory so that these components are independent.
-
-Implemented support in the AcpiExec utility (-e switch) to
-globally ignore exceptions during control method execution
-(method is not aborted.)
-
-Added the rsinfo.c source file to the AcpiExec makefile for
-Linux/Unix generation.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
- Current Release:
- Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
- Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where a CPU stack overflow fault could occur if a
-recursive method call was made from within a Return statement.
-
-----------------------------------------
-02 December 2005. Summary of changes for version 20051202:
-
-1) ACPI CA Core Subsystem:
-
-Modified the parsing of control methods to no longer create
-namespace objects during the first pass of the parse. Objects are
-now created only during the execute phase, at the moment the
-namespace creation operator is encountered in the AML (Name,
-OperationRegion, CreateByteField, etc.) This should eliminate
-ALREADY_EXISTS exceptions seen on some machines where reentrant
-control methods are protected by an AML mutex. The mutex will now
-correctly block multiple threads from attempting to create the
-same object more than once.
-
-Increased the number of available Owner Ids for namespace object
-tracking from 32 to 255. This should eliminate the OWNER_ID_LIMIT
-exceptions seen on some machines with a large number of ACPI
-tables (either static or dynamic).
-
-Fixed a problem with the AcpiExec utility where a fault could
-occur when the -b switch (batch mode) is used.
-
-Enhanced the namespace dump routine to output the owner ID for
-each namespace object.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a parse error during compilation of certain Switch/Case
-constructs. To simplify the parse, the grammar now allows for
-multiple Default statements and this error is now detected and
-flagged during the analysis phase.
-
-Disassembler: The disassembly now includes the contents of the
-original table header within a comment at the start of the file.
-This includes the name and version of the original ASL compiler.
-
-----------------------------------------
-17 November 2005. Summary of changes for version 20051117:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the AML parser where the method thread count
-could be decremented below zero if any errors occurred during the
-method parse phase. This should eliminate AE_AML_METHOD_LIMIT
-exceptions seen on some machines. This also fixed a related
-regression with the mechanism that detects and corrects methods
-that cannot properly handle reentrancy (related to the deployment
-of the new OwnerId mechanism.)
-
-Eliminated the pre-parsing of control methods (to detect errors)
-during table load. Related to the problem above, this was causing
-unwind issues if any errors occurred during the parse, and it
-seemed to be overkill. A table load should not be aborted if
-there are problems with any single control method, thus rendering
-this feature rather pointless.
-
-Fixed a problem with the new table-driven resource manager where
-an internal buffer overflow could occur for small resource
-templates.
-
-Implemented a new external interface, AcpiGetVendorResource. This
-interface will find and return a vendor-defined resource
-descriptor within a _CRS or _PRS method via an ACPI 3.0 UUID
-match. With assistance from Bjorn Helgaas.
-
-Removed the length limit (200) on string objects as per the
-upcoming ACPI 3.0A specification. This affects the following
-areas of the interpreter: 1) any implicit conversion of a Buffer
-to a String, 2) a String object result of the ASL Concatentate
-operator, 3) the String object result of the ASL ToString
-operator.
-
-Fixed a problem in the Windows OS interface layer (OSL) where a
-WAIT_FOREVER on a semaphore object would incorrectly timeout.
-This allows the multithreading features of the AcpiExec utility
-to work properly under Windows.
-
-Updated the Linux makefiles for the iASL compiler and AcpiExec to
-include the recently added file named "utresrc.c".
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Removed the limit (200) on string objects as per the upcoming
-ACPI 3.0A specification. For the iASL compiler, this means that
-string literals within the source ASL can be of any length.
-
-Enhanced the listing output to dump the AML code for resource
-descriptors immediately after the ASL code for each descriptor,
-instead of in a block at the end of the entire resource template.
-
-Enhanced the compiler debug output to dump the entire original
-parse tree constructed during the parse phase, before any
-transforms are applied to the tree. The transformed tree is
-dumped also.
-
-----------------------------------------
-02 November 2005. Summary of changes for version 20051102:
-
-1) ACPI CA Core Subsystem:
-
-Modified the subsystem initialization sequence to improve GPE
-support. The GPE initialization has been split into two parts in
-order to defer execution of the _PRW methods (Power Resources for
-Wake) until after the hardware is fully initialized and the SCI
-handler is installed. This allows the _PRW methods to access
-fields protected by the Global Lock. This will fix systems where
-a NO_GLOBAL_LOCK exception has been seen during initialization.
-
-Converted the ACPI internal object disassemble and display code
-within the AML debugger to fully table-driven operation, reducing
-code size and increasing maintainability.
-
-Fixed a regression with the ConcatenateResTemplate() ASL operator
-introduced in the 20051021 release.
-
-Implemented support for "local" internal ACPI object types within
-the debugger "Object" command and the AcpiWalkNamespace external
-interfaces. These local types include RegionFields, BankFields,
-IndexFields, Alias, and reference objects.
-
-Moved common AML resource handling code into a new file,
-"utresrc.c". This code is shared by both the Resource Manager and
-the AML Debugger.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
- Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
- Current Release:
- Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
- Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with very large initializer lists (more than 4000
-elements) for both Buffer and Package objects where the parse
-stack could overflow.
-
-Enhanced the pre-compile source code scan for non-ASCII
-characters to ignore characters within comment fields. The scan
-is now always performed and is no longer optional, detecting
-invalid characters within a source file immediately rather than
-during the parse phase or later.
-
-Enhanced the ASL grammar definition to force early reductions on
-all list-style grammar elements so that the overall parse stack
-usage is greatly reduced. This should improve performance and
-reduce the possibility of parse stack overflow.
-
-Eliminated all reduce/reduce conflicts in the iASL parser
-generation. Also, with the addition of a %expected statement, the
-compiler generates from source with no warnings.
-
-Fixed a possible segment fault in the disassembler if the input
-filename does not contain a "dot" extension (Thomas Renninger).
-
-----------------------------------------
-21 October 2005. Summary of changes for version 20051021:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the EM64T and other x86-64 processors.
-This essentially entails recognizing that these processors
-support non-aligned memory transfers. Previously, all 64-bit
-processors were assumed to lack hardware support for non-aligned
-transfers.
-
-Completed conversion of the Resource Manager to nearly full table-
-driven operation. Specifically, the resource conversion code
-(convert AML to internal format and the reverse) and the debug
-code to dump internal resource descriptors are fully table-
-driven, reducing code and data size and improving
-maintainability.
-
-The OSL interfaces for Acquire and Release Lock now use a 64-bit
-flag word on 64-bit processors instead of a fixed 32-bit word.
-(With assistance from Alexey Starikovskiy)
-
-Implemented support within the resource conversion code for the
-Type-Specific byte within the various ACPI 3.0 *WordSpace macros.
-
-Fixed some issues within the resource conversion code for the
-type-specific flags for both Memory and I/O address resource
-descriptors. For Memory, implemented support for the MTP and TTP
-flags. For I/O, split the TRS and TTP flags into two separate
-fields.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
- Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
- Current Release:
- Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
- Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Relaxed a compiler restriction that disallowed a ResourceIndex
-byte if the corresponding ResourceSource string was not also
-present in a resource descriptor declaration. This restriction
-caused problems with existing AML/ASL code that includes the
-Index byte without the string. When such AML was disassembled, it
-could not be compiled without modification. Further, the modified
-code created a resource template with a different size than the
-original, breaking code that used fixed offsets into the resource
-template buffer.
-
-Removed a recent feature of the disassembler to ignore a lone
-ResourceIndex byte. This byte is now emitted if present so that
-the exact AML can be reproduced when the disassembled code is
-recompiled.
-
-Improved comments and text alignment for the resource descriptor
-code emitted by the disassembler.
-
-Implemented disassembler support for the ACPI 3.0 AccessSize
-field within a Register() resource descriptor.
-
-----------------------------------------
-30 September 2005. Summary of changes for version 20050930:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the Resource Manager code -
-specifically, optimizations in the area of the AML/internal
-resource conversion code. The code has been optimized to simplify
-and eliminate duplicated code, CPU stack use has been decreased
-by optimizing function parameters and local variables, and naming
-conventions across the manager have been standardized for clarity
-and ease of maintenance (this includes function, parameter,
-variable, and struct/typedef names.) The update may force changes
-in some driver code, depending on how resources are handled by
-the host OS.
-
-All Resource Manager dispatch and information tables have been
-moved to a single location for clarity and ease of maintenance.
-One new file was created, named "rsinfo.c".
-
-The ACPI return macros (return_ACPI_STATUS, etc.) have been
-modified to guarantee that the argument is not evaluated twice,
-making them less prone to macro side-effects. However, since
-there exists the possibility of additional stack use if a
-particular compiler cannot optimize them (such as in the debug
-generation case), the original macros are optionally available.
-Note that some invocations of the return_VALUE macro may now
-cause size mismatch warnings; the return_UINT8 and return_UINT32
-macros are provided to eliminate these. (From Randy Dunlap)
-
-Implemented a new mechanism to enable debug tracing for
-individual control methods. A new external interface,
-AcpiDebugTrace, is provided to enable this mechanism. The intent
-is to allow the host OS to easily enable and disable tracing for
-problematic control methods. This interface can be easily exposed
-to a user or debugger interface if desired. See the file
-psxface.c for details.
-
-AcpiUtCallocate will now return a valid pointer if a length of
-zero is specified - a length of one is used and a warning is
-issued. This matches the behavior of AcpiUtAllocate.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
- Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
- Current Release:
- Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
- Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-A remark is issued if the effective compile-time length of a
-package or buffer is zero. Previously, this was a warning.
-
-----------------------------------------
-16 September 2005. Summary of changes for version 20050916:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem within the Resource Manager where support for the
-Generic Register descriptor was not fully implemented. This
-descriptor is now fully recognized, parsed, disassembled, and
-displayed.
-
-Completely restructured the Resource Manager code to utilize
-table-driven dispatch and lookup, eliminating many of the large
-switch() statements. This reduces overall subsystem code size and
-code complexity. Affects the resource parsing and construction,
-disassembly, and debug dump output.
-
-Cleaned up and restructured the debug dump output for all
-resource descriptors. Improved readability of the output and
-reduced code size.
-
-Fixed a problem where changes to internal data structures caused
-the optional ACPI_MUTEX_DEBUG code to fail compilation if
-specified.
-
-Code and Data Size: The current and previous library sizes for
-the core subsystem are shown below. These are the code and data
-sizes for the acpica.lib produced by the Microsoft Visual C++ 6.0
-32-bit compiler. These values do not include any ACPI driver or
-OSPM code. The debug version of the code includes the debug
-output trace mechanism and has a much larger code and data size.
-Note that these values will vary depending on the efficiency of
-the compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
- Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
- Current Release:
- Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
- Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the disassembler to automatically insert an
-EndDependentFn() macro into the ASL stream if this macro is
-missing in the original AML code, simplifying compilation of the
-resulting ASL module.
-
-Fixed a problem in the disassembler where a disassembled
-ResourceSource string (within a large resource descriptor) was
-not surrounded by quotes and not followed by a comma, causing
-errors when the resulting ASL module was compiled. Also, escape
-sequences within a ResourceSource string are now handled
-correctly (especially "\\")
-
-----------------------------------------
-02 September 2005. Summary of changes for version 20050902:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the internal Owner ID allocation and
-deallocation mechanisms for control method execution and
-recursive method invocation. This should eliminate the
-OWNER_ID_LIMIT exceptions and "Invalid OwnerId" messages seen on
-some systems. Recursive method invocation depth is currently
-limited to 255. (Alexey Starikovskiy)
-
-Completely eliminated all vestiges of support for the "module-
-level executable code" until this support is fully implemented
-and debugged. This should eliminate the NO_RETURN_VALUE
-exceptions seen during table load on some systems that invoke
-this support.
-
-Fixed a problem within the resource manager code where the
-transaction flags for a 64-bit address descriptor were handled
-incorrectly in the type-specific flag byte.
-
-Consolidated duplicate code within the address descriptor
-resource manager code, reducing overall subsystem code size.
-
-Fixed a fault when using the AML debugger "disassemble" command
-to disassemble individual control methods.
-
-Removed references to the "release_current" directory within the
-Unix release package.
-
-Code and Data Size: The current and previous core subsystem
-library sizes are shown below. These are the code and data sizes
-for the acpica.lib produced by the Microsoft Visual C++ 6.0
-compiler. These values do not include any ACPI driver or OSPM
-code. The debug version of the code includes the debug output
-trace mechanism and has a much larger code and data size. Note
-that these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
- Current Release:
- Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
- Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented an error check for illegal duplicate values in the
-interrupt and dma lists for the following ASL macros: Dma(),
-Irq(), IrqNoFlags(), and Interrupt().
-
-Implemented error checking for the Irq() and IrqNoFlags() macros
-to detect too many values in the interrupt list (16 max) and
-invalid values in the list (range 0 - 15)
-
-The maximum length string literal within an ASL file is now
-restricted to 200 characters as per the ACPI specification.
-
-Fixed a fault when using the -ln option (generate namespace
-listing).
-
-Implemented an error check to determine if a DescriptorName
-within a resource descriptor has already been used within the
-current scope.
-
-----------------------------------------
-15 August 2005. Summary of changes for version 20050815:
-
-1) ACPI CA Core Subsystem:
-
-Implemented a full bytewise compare to determine if a table load
-request is attempting to load a duplicate table. The compare is
-performed if the table signatures and table lengths match. This
-will allow different tables with the same OEM Table ID and
-revision to be loaded - probably against the ACPI specification,
-but discovered in the field nonetheless.
-
-Added the changes.txt logfile to each of the zipped release
-packages.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where incorrect AML code could be generated for
-Package objects if optimization is disabled (via the -oa switch).
-
-Fixed a problem with where incorrect AML code is generated for
-variable-length packages when the package length is not specified
-and the number of initializer values is greater than 255.
-
-
-----------------------------------------
-29 July 2005. Summary of changes for version 20050729:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to ignore an attempt to install/load a
-particular ACPI table more than once. Apparently there exists
-BIOS code that repeatedly attempts to load the same SSDT upon
-certain events. With assistance from Venkatesh Pallipadi.
-
-Restructured the main interface to the AML parser in order to
-correctly handle all exceptional conditions. This will prevent
-leakage of the OwnerId resource and should eliminate the
-AE_OWNER_ID_LIMIT exceptions seen on some machines. With
-assistance from Alexey Starikovskiy.
-
-Support for "module level code" has been disabled in this version
-due to a number of issues that have appeared on various machines.
-The support can be enabled by defining
-ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem compilation. When
-the issues are fully resolved, the code will be enabled by
-default again.
-
-Modified the internal functions for debug print support to define
-the FunctionName parameter as a (const char *) for compatibility
-with compiler built-in macros such as __FUNCTION__, etc.
-
-Linted the entire ACPICA source tree for both 32-bit and 64-bit.
-
-Implemented support to display an object count summary for the
-AML Debugger commands Object and Methods.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
- Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
- Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression that appeared in the 20050708 version of the
-compiler where an error message was inadvertently emitted for
-invocations of the _OSI reserved control method.
-
-----------------------------------------
-08 July 2005. Summary of changes for version 20050708:
-
-1) ACPI CA Core Subsystem:
-
-The use of the CPU stack in the debug version of the subsystem
-has been considerably reduced. Previously, a debug structure was
-declared in every function that used the debug macros. This
-structure has been removed in favor of declaring the individual
-elements as parameters to the debug functions. This reduces the
-cumulative stack use during nested execution of ACPI function
-calls at the cost of a small increase in the code size of the
-debug version of the subsystem. With assistance from Alexey
-Starikovskiy and Len Brown.
-
-Added the ACPI_GET_FUNCTION_NAME macro to enable the compiler-
-dependent headers to define a macro that will return the current
-function name at runtime (such as __FUNCTION__ or _func_, etc.)
-The function name is used by the debug trace output. If
-ACPI_GET_FUNCTION_NAME is not defined in the compiler-dependent
-header, the function name is saved on the CPU stack (one pointer
-per function.) This mechanism is used because apparently there
-exists no standard ANSI-C defined macro that that returns the
-function name.
-
-Redesigned and reimplemented the "Owner ID" mechanism used to
-track namespace objects created/deleted by ACPI tables and
-control method execution. A bitmap is now used to allocate and
-free the IDs, thus solving the wraparound problem present in the
-previous implementation. The size of the namespace node
-descriptor was reduced by 2 bytes as a result (Alexey
-Starikovskiy).
-
-Removed the UINT32_BIT and UINT16_BIT types that were used for
-the bitfield flag definitions within the headers for the
-predefined ACPI tables. These have been replaced by UINT8_BIT in
-order to increase the code portability of the subsystem. If the
-use of UINT8 remains a problem, we may be forced to eliminate
-bitfields entirely because of a lack of portability.
-
-Enhanced the performance of the AcpiUtUpdateObjectReference
-procedure. This is a frequently used function and this
-improvement increases the performance of the entire subsystem
-(Alexey Starikovskiy).
-
-Fixed several possible memory leaks and the inverse - premature
-object deletion (Alexey Starikovskiy).
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
- Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
- Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
-
-----------------------------------------
-24 June 2005. Summary of changes for version 20050624:
-
-1) ACPI CA Core Subsystem:
-
-Modified the new OSL cache interfaces to use ACPI_CACHE_T as the
-type for the host-defined cache object. This allows the OSL
-implementation to define and type this object in any manner
-desired, simplifying the OSL implementation. For example,
-ACPI_CACHE_T is defined as kmem_cache_t for Linux, and should be
-defined in the OS-specific header file for other operating
-systems as required.
-
-Changed the interface to AcpiOsAcquireObject to directly return
-the requested object as the function return (instead of
-ACPI_STATUS.) This change was made for performance reasons, since
-this is the purpose of the interface in the first place.
-AcpiOsAcquireObject is now similar to the AcpiOsAllocate
-interface.
-
-Implemented a new AML debugger command named Businfo. This
-command displays information about all devices that have an
-associate _PRT object. The _ADR, _HID, _UID, and _CID are
-displayed for these devices.
-
-Modified the initialization sequence in AcpiInitializeSubsystem
-to call the OSL interface AcpiOslInitialize first, before any
-local initialization. This change was required because the global
-initialization now calls OSL interfaces.
-
-Enhanced the Dump command to display the entire contents of
-Package objects (including all sub-objects and their values.)
-
-Restructured the code base to split some files because of size
-and/or because the code logically belonged in a separate file.
-New files are listed below. All makefiles and project files
-included in the ACPI CA release have been updated.
- utilities/utcache.c /* Local cache interfaces */
- utilities/utmutex.c /* Local mutex support */
- utilities/utstate.c /* State object support */
- interpreter/parser/psloop.c /* Main AML parse loop */
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
- Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
- Current Release:
- Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
- Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression introduced in version 20050513 where the use
-of a Package object within a Case() statement caused a compile
-time exception. The original behavior has been restored (a
-Match() operator is emitted.)
-
-----------------------------------------
-17 June 2005. Summary of changes for version 20050617:
-
-1) ACPI CA Core Subsystem:
-
-Moved the object cache operations into the OS interface layer
-(OSL) to allow the host OS to handle these operations if desired
-(for example, the Linux OSL will invoke the slab allocator). This
-support is optional; the compile time define ACPI_USE_LOCAL_CACHE
-may be used to utilize the original cache code in the ACPI CA
-core. The new OSL interfaces are shown below. See utalloc.c for
-an example implementation, and acpiosxf.h for the exact interface
-definitions. With assistance from Alexey Starikovskiy.
- AcpiOsCreateCache
- AcpiOsDeleteCache
- AcpiOsPurgeCache
- AcpiOsAcquireObject
- AcpiOsReleaseObject
-
-Modified the interfaces to AcpiOsAcquireLock and
-AcpiOsReleaseLock to return and restore a flags parameter. This
-fits better with many OS lock models. Note: the current execution
-state (interrupt handler or not) is no longer passed to these
-interfaces. If necessary, the OSL must determine this state by
-itself, a simple and fast operation. With assistance from Alexey
-Starikovskiy.
-
-Fixed a problem in the ACPI table handling where a valid XSDT was
-assumed present if the revision of the RSDP was 2 or greater.
-According to the ACPI specification, the XSDT is optional in all
-cases, and the table manager therefore now checks for both an
-RSDP >=2 and a valid XSDT pointer. Otherwise, the RSDT pointer is
-used. Some ACPI 2.0 compliant BIOSs contain only the RSDT.
-
-Fixed an interpreter problem with the Mid() operator in the case
-of an input string where the resulting output string is of zero
-length. It now correctly returns a valid, null terminated string
-object instead of a string object with a null pointer.
-
-Fixed a problem with the control method argument handling to
-allow a store to an Arg object that already contains an object of
-type Device. The Device object is now correctly overwritten.
-Previously, an error was returned.
-
-
-Enhanced the debugger Find command to emit object values in
-addition to the found object pathnames. The output format is the
-same as the dump namespace command.
-
-Enhanced the debugger Set command. It now has the ability to set
-the value of any Named integer object in the namespace
-(Previously, only method locals and args could be set.)
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
- Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
- Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a regression in the disassembler where if/else/while
-constructs were output incorrectly. This problem was introduced
-in the previous release (20050526). This problem also affected
-the single-step disassembly in the debugger.
-
-Fixed a problem where compiling the reserved _OSI method would
-randomly (but rarely) produce compile errors.
-
-Enhanced the disassembler to emit compilable code in the face of
-incorrect AML resource descriptors. If the optional
-ResourceSourceIndex is present, but the ResourceSource is not, do
-not emit the ResourceSourceIndex in the disassembly. Otherwise,
-the resulting code cannot be compiled without errors.
-
-----------------------------------------
-26 May 2005. Summary of changes for version 20050526:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support to execute Type 1 and Type 2 AML opcodes
-appearing at the module level (not within a control method.)
-These opcodes are executed exactly once at the time the table is
-loaded. This type of code was legal up until the release of ACPI
-2.0B (2002) and is now supported within ACPI CA in order to
-provide backwards compatibility with earlier BIOS
-implementations. This eliminates the "Encountered executable code
-at module level" warning that was previously generated upon
-detection of such code.
-
-Fixed a problem in the interpreter where an AE_NOT_FOUND
-exception could inadvertently be generated during the lookup of
-namespace objects in the second pass parse of ACPI tables and
-control methods. It appears that this problem could occur during
-the resolution of forward references to namespace objects.
-
-Added the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex
-function, corresponding to the same #ifdef in the
-AcpiUtAcquireMutex function. This allows the deadlock detection
-debug code to be compiled out in the normal case, improving mutex
-performance (and overall subsystem performance) considerably.
-
-Implemented a handful of miscellaneous fixes for possible memory
-leaks on error conditions and error handling control paths. These
-fixes were suggested by FreeBSD and the Coverity Prevent source
-code analysis tool.
-
-Added a check for a null RSDT pointer in AcpiGetFirmwareTable
-(tbxfroot.c) to prevent a fault in this error case.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
- Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support to allow Type 1 and Type 2 ASL operators to
-appear at the module level (not within a control method.) These
-operators will be executed once at the time the table is loaded.
-This type of code was legal up until the release of ACPI 2.0B
-(2002) and is now supported by the iASL compiler in order to
-provide backwards compatibility with earlier BIOS ASL code.
-
-The ACPI integer width (specified via the table revision ID or
-the -r override, 32 or 64 bits) is now used internally during
-compile-time constant folding to ensure that constants are
-truncated to 32 bits if necessary. Previously, the revision ID
-value was only emitted in the AML table header.
-
-An error message is now generated for the Mutex and Method
-operators if the SyncLevel parameter is outside the legal range
-of 0 through 15.
-
-Fixed a problem with the Method operator ParameterTypes list
-handling (ACPI 3.0). Previously, more than 2 types or 2 arguments
-generated a syntax error. The actual underlying implementation
-of method argument typechecking is still under development,
-however.
-
-----------------------------------------
-13 May 2005. Summary of changes for version 20050513:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for PCI Express root bridges -- added support
-for device PNP0A08 in the root bridge search within
-AcpiEvPciConfigRegionSetup.
-
-The interpreter now automatically truncates incoming 64-bit
-constants to 32 bits if currently executing out of a 32-bit ACPI
-table (Revision < 2). This also affects the iASL compiler
-constant folding. (Note: as per below, the iASL compiler no
-longer allows 64-bit constants within 32-bit tables.)
-
-Fixed a problem where string and buffer objects with "static"
-pointers (pointers to initialization data within an ACPI table)
-were not handled consistently. The internal object copy operation
-now always copies the data to a newly allocated buffer,
-regardless of whether the source object is static or not.
-
-Fixed a problem with the FromBCD operator where an implicit
-result conversion was improperly performed while storing the
-result to the target operand. Since this is an "explicit
-conversion" operator, the implicit conversion should never be
-performed on the output.
-
-Fixed a problem with the CopyObject operator where a copy to an
-existing named object did not always completely overwrite the
-existing object stored at name. Specifically, a buffer-to-buffer
-copy did not delete the existing buffer.
-
-Replaced "InterruptLevel" with "InterruptNumber" in all GPE
-interfaces and structs for consistency.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
- Current Release: (Same sizes)
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-The compiler now emits a warning if an attempt is made to
-generate a 64-bit integer constant from within a 32-bit ACPI
-table (Revision < 2). The integer is truncated to 32 bits.
-
-Fixed a problem with large package objects: if the static length
-of the package is greater than 255, the "variable length package"
-opcode is emitted. Previously, this caused an error. This
-requires an update to the ACPI spec, since it currently
-(incorrectly) states that packages larger than 255 elements are
-not allowed.
-
-The disassembler now correctly handles variable length packages
-and packages larger than 255 elements.
-
-----------------------------------------
-08 April 2005. Summary of changes for version 20050408:
-
-1) ACPI CA Core Subsystem:
-
-Fixed three cases in the interpreter where an "index" argument to
-an ASL function was still (internally) 32 bits instead of the
-required 64 bits. This was the Index argument to the Index, Mid,
-and Match operators.
-
-The "strupr" function is now permanently local (AcpiUtStrupr),
-since this is not a POSIX-defined function and not present in
-most kernel-level C libraries. All references to the C library
-strupr function have been removed from the headers.
-
-Completed the deployment of static functions/prototypes. All
-prototypes with the static attribute have been moved from the
-headers to the owning C file.
-
-Implemented an extract option (-e) for the AcpiBin utility (AML
-binary utility). This option allows the utility to extract
-individual ACPI tables from the output of AcpiDmp. It provides
-the same functionality of the acpixtract.pl perl script without
-the worry of setting the correct perl options. AcpiBin runs on
-Windows and has not yet been generated/validated in the
-Linux/Unix environment (but should be soon).
-
-Updated and fixed the table dump option for AcpiBin (-d). This
-option converts a single ACPI table to a hex/ascii file, similar
-to the output of AcpiDmp.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
- Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
- Current Release:
- Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
- Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Disassembler fix: Added a check to ensure that the table length
-found in the ACPI table header within the input file is not
-longer than the actual input file size. This indicates some kind
-of file or table corruption.
-
-----------------------------------------
-29 March 2005. Summary of changes for version 20050329:
-
-1) ACPI CA Core Subsystem:
-
-An error is now generated if an attempt is made to create a
-Buffer Field of length zero (A CreateField with a length operand
-of zero.)
-
-The interpreter now issues a warning whenever executable code at
-the module level is detected during ACPI table load. This will
-give some idea of the prevalence of this type of code.
-
-Implemented support for references to named objects (other than
-control methods) within package objects.
-
-Enhanced package object output for the debug object. Package
-objects are now completely dumped, showing all elements.
-
-Enhanced miscellaneous object output for the debug object. Any
-object can now be written to the debug object (for example, a
-device object can be written, and the type of the object will be
-displayed.)
-
-The "static" qualifier has been added to all local functions
-across both the core subsystem and the iASL compiler.
-
-The number of "long" lines (> 80 chars) within the source has
-been significantly reduced, by about 1/3.
-
-Cleaned up all header files to ensure that all CA/iASL functions
-are prototyped (even static functions) and the formatting is
-consistent.
-
-Two new header files have been added, acopcode.h and acnames.h.
-
-Removed several obsolete functions that were no longer used.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
- Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the resource descriptor generation/support.
-For the ResourceSourceIndex and the ResourceSource fields, both
-must be present, or both must be not present - can't have one
-without the other.
-
-The compiler now returns non-zero from the main procedure if any
-errors have occurred during the compilation.
-
-
-----------------------------------------
-09 March 2005. Summary of changes for version 20050309:
-
-1) ACPI CA Core Subsystem:
-
-The string-to-buffer implicit conversion code has been modified
-again after a change to the ACPI specification. In order to
-match the behavior of the other major ACPI implementation, the
-target buffer is no longer truncated if the source string is
-smaller than an existing target buffer. This change requires an
-update to the ACPI spec, and should eliminate the recent
-AE_AML_BUFFER_LIMIT issues.
-
-The "implicit return" support was rewritten to a new algorithm
-that solves the general case. Rather than attempt to determine
-when a method is about to exit, the result of every ASL operator
-is saved momentarily until the very next ASL operator is
-executed. Therefore, no matter how the method exits, there will
-always be a saved implicit return value. This feature is only
-enabled with the AcpiGbl_EnableInterpreterSlack flag, and should
-eliminate AE_AML_NO_RETURN_VALUE errors when enabled.
-
-Implemented implicit conversion support for the predicate
-(operand) of the If, Else, and While operators. String and Buffer
-arguments are automatically converted to Integers.
-
-Changed the string-to-integer conversion behavior to match the
-new ACPI errata: "If no integer object exists, a new integer is
-created. The ASCII string is interpreted as a hexadecimal
-constant. Each string character is interpreted as a hexadecimal
-value (`0'-`9', `A'-`F', `a', `f'), starting with the first
-character as the most significant digit, and ending with the
-first non-hexadecimal character or end-of-string." This means
-that the first non-hex character terminates the conversion and
-this is the code that was changed.
-
-Fixed a problem where the ObjectType operator would fail (fault)
-when used on an Index of a Package which pointed to a null
-package element. The operator now properly returns zero
-(Uninitialized) in this case.
-
-Fixed a problem where the While operator used excessive memory by
-not properly popping the result stack during execution. There was
-no memory leak after execution, however. (Code provided by Valery
-Podrezov.)
-
-Fixed a problem where references to control methods within
-Package objects caused the method to be invoked, instead of
-producing a reference object pointing to the method.
-
-Restructured and simplified the pswalk.c module
-(AcpiPsDeleteParseTree) to improve performance and reduce code
-size. (Code provided by Alexey Starikovskiy.)
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the Return operator with no arguments. Since
-the AML grammar for the byte encoding requires an operand for the
-Return opcode, the compiler now emits a Return(Zero) for this
-case. An ACPI specification update has been written for this
-case.
-
-For tables other than the DSDT, namepath optimization is
-automatically disabled. This is because SSDTs can be loaded
-anywhere in the namespace, the compiler has no knowledge of
-where, and thus cannot optimize namepaths.
-
-Added "ProcessorObj" to the ObjectTypeKeyword list. This object
-type was inadvertently omitted from the ACPI specification, and
-will require an update to the spec.
-
-The source file scan for ASCII characters is now optional (-a).
-This change was made because some vendors place non-ascii
-characters within comments. However, the scan is simply a brute-
-force byte compare to ensure all characters in the file are in
-the range 0x00 to 0x7F.
-
-Fixed a problem with the CondRefOf operator where the compiler
-was inappropriately checking for the existence of the target.
-Since the point of the operator is to check for the existence of
-the target at run-time, the compiler no longer checks for the
-target existence.
-
-Fixed a problem where errors generated from the internal AML
-interpreter during constant folding were not handled properly,
-causing a fault.
-
-Fixed a problem with overly aggressive range checking for the
-Stall operator. The valid range (max 255) is now only checked if
-the operand is of type Integer. All other operand types cannot be
-statically checked.
-
-Fixed a problem where control method references within the RefOf,
-DeRefOf, and ObjectType operators were not treated properly. They
-are now treated as actual references, not method invocations.
-
-Fixed and enhanced the "list namespace" option (-ln). This option
-was broken a number of releases ago.
-
-Improved error handling for the Field, IndexField, and BankField
-operators. The compiler now cleanly reports and recovers from
-errors in the field component (FieldUnit) list.
-
-Fixed a disassembler problem where the optional
-ResourceDescriptor fields TRS and TTP were not always handled
-correctly.
-
-Disassembler - Comments in output now use "//" instead of "/*"
-
-----------------------------------------
-28 February 2005. Summary of changes for version 20050228:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the result of an Index() operator (an
-object reference) must increment the reference count on the
-target object for the life of the object reference.
-
-Implemented AML Interpreter and Debugger support for the new ACPI
-3.0 Extended Address (IO, Memory, Space), QwordSpace, DwordSpace,
-and WordSpace resource descriptors.
-
-Implemented support in the _OSI method for the ACPI 3.0 "Extended
-Address Space Descriptor" string, indicating interpreter support
-for the descriptors above.
-
-Implemented header support for the new ACPI 3.0 FADT flag bits.
-
-Implemented header support for the new ACPI 3.0 PCI Express bits
-for the PM1 status/enable registers.
-
-Updated header support for the MADT processor local Apic struct
-and MADT platform interrupt source struct for new ACPI 3.0
-fields.
-
-Implemented header support for the SRAT and SLIT ACPI tables.
-
-Implemented the -s switch in AcpiExec to enable the
-"InterpreterSlack" flag at runtime.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
- Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with the internal 64-bit String-to-integer
-conversion with strings less than two characters long.
-
-Fixed a problem with constant folding where the result of the
-Index() operator can not be considered a constant. This means
-that Index() cannot be a type3 opcode and this will require an
-update to the ACPI specification.
-
-Disassembler: Implemented support for the TTP, MTP, and TRS
-resource descriptor fields. These fields were inadvertently
-ignored and not output in the disassembly of the resource
-descriptor.
-
-
- ----------------------------------------
-11 February 2005. Summary of changes for version 20050211:
-
-1) ACPI CA Core Subsystem:
-
-Implemented ACPI 3.0 support for implicit conversion within the
-Match() operator. MatchObjects can now be of type integer,
-buffer, or string instead of just type integer. Package elements
-are implicitly converted to the type of the MatchObject. This
-change aligns the behavior of Match() with the behavior of the
-other logical operators (LLess(), etc.) It also requires an
-errata change to the ACPI specification as this support was
-intended for ACPI 3.0, but was inadvertently omitted.
-
-Fixed a problem with the internal implicit "to buffer"
-conversion. Strings that are converted to buffers will cause
-buffer truncation if the string is smaller than the target
-buffer. Integers that are converted to buffers will not cause
-buffer truncation, only zero extension (both as per the ACPI
-spec.) The problem was introduced when code was added to truncate
-the buffer, but this should not be performed in all cases, only
-the string case.
-
-Fixed a problem with the Buffer and Package operators where the
-interpreter would get confused if two such operators were used as
-operands to an ASL operator (such as
-LLess(Buffer(1){0},Buffer(1){1}). The internal result stack was
-not being popped after the execution of these operators,
-resulting in an AE_NO_RETURN_VALUE exception.
-
-Fixed a problem with constructs of the form
-Store(Index(...),...). The reference object returned from Index
-was inadvertently resolved to an actual value. This problem was
-introduced in version 20050114 when the behavior of Store() was
-modified to restrict the object types that can be used as the
-source operand (to match the ACPI specification.)
-
-Reduced excessive stack use within the AcpiGetObjectInfo
-procedure.
-
-Added a fix to aclinux.h to allow generation of AcpiExec on
-Linux.
-
-Updated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS
-struct.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
- Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
- Current Release:
- Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
- Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a code generation problem in the constant folding
-optimization code where incorrect code was generated if a
-constant was reduced to a buffer object (i.e., a reduced type 5
-opcode.)
-
-Fixed a typechecking problem for the ToBuffer operator. Caused by
-an incorrect return type in the internal opcode information
-table.
-
-----------------------------------------
-25 January 2005. Summary of changes for version 20050125:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a recently introduced problem with the Global Lock where
-the underlying semaphore was not created. This problem was
-introduced in version 20050114, and caused an AE_AML_NO_OPERAND
-exception during an Acquire() operation on _GL.
-
-The local object cache is now optional, and is disabled by
-default. Both AcpiExec and the iASL compiler enable the cache
-because they run in user mode and this enhances their
-performance. #define ACPI_ENABLE_OBJECT_CACHE to enable the local
-cache.
-
-Fixed an issue in the internal function AcpiUtEvaluateObject
-concerning the optional "implicit return" support where an error
-was returned if no return object was expected, but one was
-implicitly returned. AE_OK is now returned in this case and the
-implicitly returned object is deleted. AcpiUtEvaluateObject is
-only occasionally used, and only to execute reserved methods such
-as _STA and _INI where the return type is known up front.
-
-Fixed a few issues with the internal convert-to-integer code. It
-now returns an error if an attempt is made to convert a null
-string, a string of only blanks/tabs, or a zero-length buffer.
-This affects both implicit conversion and explicit conversion via
-the ToInteger() operator.
-
-The internal debug code in AcpiUtAcquireMutex has been commented
-out. It is not needed for normal operation and should increase
-the performance of the entire subsystem. The code remains in case
-it is needed for debug purposes again.
-
-The AcpiExec source and makefile are included in the Unix/Linux
-package for the first time.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
- Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
- Current Release:
- Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
- Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
-
-2) iASL Compiler/Disassembler:
-
-Switch/Case support: A warning is now issued if the type of the
-Switch value cannot be determined at compile time. For example,
-Switch(Arg0) will generate the warning, and the type is assumed
-to be an integer. As per the ACPI spec, use a construct such as
-Switch(ToInteger(Arg0)) to eliminate the warning.
-
-Switch/Case support: Implemented support for buffer and string
-objects as the switch value. This is an ACPI 3.0 feature, now
-that LEqual supports buffers and strings.
-
-Switch/Case support: The emitted code for the LEqual()
-comparisons now uses the switch value as the first operand, not
-the second. The case value is now the second operand, and this
-allows the case value to be implicitly converted to the type of
-the switch value, not the other way around.
-
-Switch/Case support: Temporary variables are now emitted
-immediately within the control method, not at the global level.
-This means that there are now 36 temps available per-method, not
-36 temps per-module as was the case with the earlier
-implementation (_T_0 through _T_9 and _T_A through _T_Z.)
-
-----------------------------------------
-14 January 2005. Summary of changes for version 20050114:
-
-Added 2005 copyright to all module headers. This affects every
-module in the core subsystem, iASL compiler, and the utilities.
-
-1) ACPI CA Core Subsystem:
-
-Fixed an issue with the String-to-Buffer conversion code where
-the string null terminator was not included in the buffer after
-conversion, but there is existing ASL that assumes the string
-null terminator is included. This is the root of the
-ACPI_AML_BUFFER_LIMIT regression. This problem was introduced in
-the previous version when the code was updated to correctly set
-the converted buffer size as per the ACPI specification. The ACPI
-spec is ambiguous and will be updated to specify that the null
-terminator must be included in the converted buffer. This also
-affects the ToBuffer() ASL operator.
-
-Fixed a problem with the Mid() ASL/AML operator where it did not
-work correctly on Buffer objects. Newly created sub-buffers were
-not being marked as initialized.
-
-
-Fixed a problem in AcpiTbFindTable where incorrect string
-compares were performed on the OemId and OemTableId table header
-fields. These fields are not null terminated, so strncmp is now
-used instead of strcmp.
-
-Implemented a restriction on the Store() ASL/AML operator to
-align the behavior with the ACPI specification. Previously, any
-object could be used as the source operand. Now, the only
-objects that may be used are Integers, Buffers, Strings,
-Packages, Object References, and DDB Handles. If necessary, the
-original behavior can be restored by enabling the
-EnableInterpreterSlack flag.
-
-Enhanced the optional "implicit return" support to allow an
-implicit return value from methods that are invoked externally
-via the AcpiEvaluateObject interface. This enables implicit
-returns from the _STA and _INI methods, for example.
-
-Changed the Revision() ASL/AML operator to return the current
-version of the AML interpreter, in the YYYYMMDD format.
-Previously, it incorrectly returned the supported ACPI version
-(This is the function of the _REV method).
-
-Updated the _REV predefined method to return the currently
-supported version of ACPI, now 3.
-
-Implemented batch mode option for the AcpiExec utility (-b).
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
- Current Release:
- Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
- Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
-
-----------------------------------------
-10 December 2004. Summary of changes for version 20041210:
-
-ACPI 3.0 support is nearing completion in both the iASL compiler
-and the ACPI CA core subsystem.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the ToDecimalString operator where the
-resulting string length was incorrectly calculated. The length is
-now calculated exactly, eliminating incorrect AE_STRING_LIMIT
-exceptions.
-
-Fixed a problem in the ToHexString operator to allow a maximum
-200 character string to be produced.
-
-Fixed a problem in the internal string-to-buffer and buffer-to-
-buffer copy routine where the length of the resulting buffer was
-not truncated to the new size (if the target buffer already
-existed).
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented the new ACPI 3.0 resource template macros -
-DWordSpace, ExtendedIO, ExtendedMemory, ExtendedSpace,
-QWordSpace, and WordSpace. Includes support in the disassembler.
-
-Implemented support for the new (ACPI 3.0) parameter to the
-Register macro, AccessSize.
-
-Fixed a problem where the _HE resource name for the Interrupt
-macro was referencing bit 0 instead of bit 1.
-
-Implemented check for maximum 255 interrupts in the Interrupt
-macro.
-
-Fixed a problem with the predefined resource descriptor names
-where incorrect AML code was generated if the offset within the
-resource buffer was 0 or 1. The optimizer shortened the AML code
-to a single byte opcode but did not update the surrounding
-package lengths.
-
-Changes to the Dma macro: All channels within the channel list
-must be in the range 0-7. Maximum 8 channels can be specified.
-BusMaster operand is optional (default is BusMaster).
-
-Implemented check for maximum 7 data bytes for the VendorShort
-macro.
-
-The ReadWrite parameter is now optional for the Memory32 and
-similar macros.
-
-----------------------------------------
-03 December 2004. Summary of changes for version 20041203:
-
-1) ACPI CA Core Subsystem:
-
-The low-level field insertion/extraction code (exfldio) has been
-completely rewritten to eliminate unnecessary complexity, bugs,
-and boundary conditions.
-
-Fixed a problem in the ToInteger, ToBuffer, ToHexString, and
-ToDecimalString operators where the input operand could be
-inadvertently deleted if no conversion was necessary (e.g., if
-the input to ToInteger was an Integer object.)
-
-Fixed a problem with the ToDecimalString and ToHexString where an
-incorrect exception code was returned if the resulting string
-would be > 200 chars. AE_STRING_LIMIT is now returned.
-
-Fixed a problem with the Concatenate operator where AE_OK was
-always returned, even if the operation failed.
-
-Fixed a problem in oswinxf (used by AcpiExec and iASL) to allow >
-128 semaphores to be allocated.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
- Current Release:
- Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
- Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed typechecking for the ObjectType and SizeOf operators.
-Problem was recently introduced in 20041119.
-
-Fixed a problem with the ToUUID macro where the upper nybble of
-each buffer byte was inadvertently set to zero.
-
-----------------------------------------
-19 November 2004. Summary of changes for version 20041119:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem in the internal ConvertToInteger routine where
-new integers were not truncated to 32 bits for 32-bit ACPI
-tables. This routine converts buffers and strings to integers.
-
-Implemented support to store a value to an Index() on a String
-object. This is an ACPI 2.0 feature that had not yet been
-implemented.
-
-Implemented new behavior for storing objects to individual
-package elements (via the Index() operator). The previous
-behavior was to invoke the implicit conversion rules if an object
-was already present at the index. The new behavior is to simply
-delete any existing object and directly store the new object.
-Although the ACPI specification seems unclear on this subject,
-other ACPI implementations behave in this manner. (This is the
-root of the AE_BAD_HEX_CONSTANT issue.)
-
-Modified the RSDP memory scan mechanism to support the extended
-checksum for ACPI 2.0 (and above) RSDPs. Note that the search
-continues until a valid RSDP signature is found with a valid
-checksum.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
- Current Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a missing semicolon in the aslcompiler.y file.
-
-----------------------------------------
-05 November 2004. Summary of changes for version 20041105:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for FADT revision 2. This was an interim
-table (between ACPI 1.0 and ACPI 2.0) that adds support for the
-FADT reset register.
-
-Implemented optional support to allow uninitialized LocalX and
-ArgX variables in a control method. The variables are
-initialized to an Integer object with a value of zero. This
-support is enabled by setting the AcpiGbl_EnableInterpreterSlack
-flag to TRUE.
-
-Implemented support for Integer objects for the SizeOf operator.
-Either 4 or 8 is returned, depending on the current integer size
-(32-bit or 64-bit, depending on the parent table revision).
-
-Fixed a problem in the implementation of the SizeOf and
-ObjectType operators where the operand was resolved to a value
-too early, causing incorrect return values for some objects.
-
-Fixed some possible memory leaks during exceptional conditions.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
- Current Release:
- Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
- Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for all ACPI 3.0 reserved names and methods.
-
-Implemented all ACPI 3.0 grammar elements in the front-end,
-including support for semicolons.
-
-Implemented the ACPI 3.0 Function() and ToUUID() macros
-
-Fixed a problem in the disassembler where a Scope() operator
-would not be emitted properly if the target of the scope was in
-another table.
-
-----------------------------------------
-15 October 2004. Summary of changes for version 20041015:
-
-Note: ACPI CA is currently undergoing an in-depth and complete
-formal evaluation to test/verify the following areas. Other
-suggestions are welcome. This will result in an increase in the
-frequency of releases and the number of bug fixes in the next few
-months.
- - Functional tests for all ASL/AML operators
- - All implicit/explicit type conversions
- - Bit fields and operation regions
- - 64-bit math support and 32-bit-only "truncated" math support
- - Exceptional conditions, both compiler and interpreter
- - Dynamic object deletion and memory leaks
- - ACPI 3.0 support when implemented
- - External interfaces to the ACPI subsystem
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed two alignment issues on 64-bit platforms - within debug
-statements in AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed
-references to the Address field within the non-aligned ACPI
-generic address structure.
-
-Fixed a problem in the Increment and Decrement operators where
-incorrect operand resolution could result in the inadvertent
-modification of the original integer when the integer is passed
-into another method as an argument and the arg is then
-incremented/decremented.
-
-Fixed a problem in the FromBCD operator where the upper 32-bits
-of a 64-bit BCD number were truncated during conversion.
-
-Fixed a problem in the ToDecimal operator where the length of the
-resulting string could be set incorrectly too long if the input
-operand was a Buffer object.
-
-Fixed a problem in the Logical operators (LLess, etc.) where a
-NULL byte (0) within a buffer would prematurely terminate a
-compare between buffer objects.
-
-Added a check for string overflow (>200 characters as per the
-ACPI specification) during the Concatenate operator with two
-string operands.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
-
-
-
-2) iASL Compiler/Disassembler:
-
-Allow the use of the ObjectType operator on uninitialized Locals
-and Args (returns 0 as per the ACPI specification).
-
-Fixed a problem where the compiler would fault if there was a
-syntax error in the FieldName of all of the various
-CreateXXXField operators.
-
-Disallow the use of lower case letters within the EISAID macro,
-as per the ACPI specification. All EISAID strings must be of the
-form "UUUNNNN" Where U is an uppercase letter and N is a hex
-digit.
-
-
-----------------------------------------
-06 October 2004. Summary of changes for version 20041006:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 3.0 Timer operator. This ASL
-function implements a 64-bit timer with 100 nanosecond
-granularity.
-
-Defined a new OSL interface, AcpiOsGetTimer. This interface is
-used to implement the ACPI 3.0 Timer operator. This allows the
-host OS to implement the timer with the best clock available.
-Also, it keeps the core subsystem out of the clock handling
-business, since the host OS (usually) performs this function.
-
-Fixed an alignment issue on 64-bit platforms. The
-HwLowLevelRead(Write) functions use a 64-bit address which is
-part of the packed ACPI Generic Address Structure. Since the
-structure is non-aligned, the alignment macros are now used to
-extract the address to a local variable before use.
-
-Fixed a problem where the ToInteger operator assumed all input
-strings were hexadecimal. The operator now handles both decimal
-strings and hex strings (prefixed with "0x").
-
-Fixed a problem where the string length in the string object
-created as a result of the internal ConvertToString procedure
-could be incorrect. This potentially affected all implicit
-conversions and also the ToDecimalString and ToHexString
-operators.
-
-Fixed two problems in the ToString operator. If the length
-parameter was zero, an incorrect string object was created and
-the value of the input length parameter was inadvertently changed
-from zero to Ones.
-
-Fixed a problem where the optional ResourceSource string in the
-ExtendedIRQ resource macro was ignored.
-
-Simplified the interfaces to the internal division functions,
-reducing code size and complexity.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
- Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for the ACPI 3.0 Timer operator.
-
-Fixed a problem where the Default() operator was inadvertently
-ignored in a Switch/Case block. This was a problem in the
-translation of the Switch statement to If...Else pairs.
-
-Added support to allow a standalone Return operator, with no
-parentheses (or operands).
-
-Fixed a problem with code generation for the ElseIf operator
-where the translated Else...If parse tree was improperly
-constructed leading to the loss of some code.
-
-----------------------------------------
-22 September 2004. Summary of changes for version 20040922:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with the implementation of the LNot() operator
-where "Ones" was not returned for the TRUE case. Changed the code
-to return Ones instead of (!Arg) which was usually 1. This change
-affects iASL constant folding for this operator also.
-
-Fixed a problem in AcpiUtInitializeBuffer where an existing
-buffer was not initialized properly -- Now zero the entire buffer
-in this case where the buffer already exists.
-
-Changed the interface to AcpiOsSleep from (UINT32 Seconds, UINT32
-Milliseconds) to simply (ACPI_INTEGER Milliseconds). This
-simplifies all related code considerably. This will require
-changes/updates to all OS interface layers (OSLs.)
-
-Implemented a new external interface,
-AcpiInstallExceptionHandler, to allow a system exception handler
-to be installed. This handler is invoked upon any run-time
-exception that occurs during control method execution.
-
-Added support for the DSDT in AcpiTbFindTable. This allows the
-DataTableRegion() operator to access the local copy of the DSDT.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
- Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
- Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem with constant folding and the LNot operator. LNot
-was returning 1 in the TRUE case, not Ones as per the ACPI
-specification. This could result in the generation of an
-incorrect folded/reduced constant.
-
-End-Of-File is now allowed within a "//"-style comment. A parse
-error no longer occurs if such a comment is at the very end of
-the input ASL source file.
-
-Implemented the "-r" option to override the Revision in the table
-header. The initial use of this option will be to simplify the
-evaluation of the AML interpreter by allowing a single ASL source
-module to be compiled for either 32-bit or 64-bit integers.
-
-
-----------------------------------------
-27 August 2004. Summary of changes for version 20040827:
-
-1) ACPI CA Core Subsystem:
-
-- Implemented support for implicit object conversion in the non-
-numeric logical operators (LEqual, LGreater, LGreaterEqual,
-LLess, LLessEqual, and LNotEqual.) Any combination of
-Integers/Strings/Buffers may now be used; the second operand is
-implicitly converted on the fly to match the type of the first
-operand. For example:
-
- LEqual (Source1, Source2)
-
-Source1 and Source2 must each evaluate to an integer, a string,
-or a buffer. The data type of Source1 dictates the required type
-of Source2. Source2 is implicitly converted if necessary to match
-the type of Source1.
-
-- Updated and corrected the behavior of the string conversion
-support. The rules concerning conversion of buffers to strings
-(according to the ACPI specification) are as follows:
-
-ToDecimalString - explicit byte-wise conversion of buffer to
-string of decimal values (0-255) separated by commas. ToHexString
-- explicit byte-wise conversion of buffer to string of hex values
-(0-FF) separated by commas. ToString - explicit byte-wise
-conversion of buffer to string. Byte-by-byte copy with no
-transform except NULL terminated. Any other implicit buffer-to-
-string conversion - byte-wise conversion of buffer to string of
-hex values (0-FF) separated by spaces.
-
-- Fixed typo in definition of AcpiGbl_EnableInterpreterSlack.
-
-- Fixed a problem in AcpiNsGetPathnameLength where the returned
-length was one byte too short in the case of a node in the root
-scope. This could cause a fault during debug output.
-
-- Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
- Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
- Current Release:
- Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
- Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-- Fixed a Linux generation error.
-
-
-----------------------------------------
-16 August 2004. Summary of changes for version 20040816:
-
-1) ACPI CA Core Subsystem:
-
-Designed and implemented support within the AML interpreter for
-the so-called "implicit return". This support returns the result
-of the last ASL operation within a control method, in the absence
-of an explicit Return() operator. A few machines depend on this
-behavior, even though it is not explicitly supported by the ASL
-language. It is optional support that can be enabled at runtime
-via the AcpiGbl_EnableInterpreterSlack flag.
-
-Removed support for the PCI_Config address space from the
-internal low level hardware interfaces (AcpiHwLowLevelRead and
-AcpiHwLowLevelWrite). This support was not used internally, and
-would not work correctly anyway because the PCI bus number and
-segment number were not supported. There are separate interfaces
-for PCI configuration space access because of the unique
-interface.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
- Current Release:
- Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
- Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a problem where constants in ASL expressions at the root
-level (not within a control method) could be inadvertently
-truncated during code generation. This problem was introduced in
-the 20040715 release.
-
-
-----------------------------------------
-15 July 2004. Summary of changes for version 20040715:
-
-1) ACPI CA Core Subsystem:
-
-Restructured the internal HW GPE interfaces to pass/track the
-current state of interrupts (enabled/disabled) in order to avoid
-possible deadlock and increase flexibility of the interfaces.
-
-Implemented a "lexicographical compare" for String and Buffer
-objects within the logical operators -- LGreater, LLess,
-LGreaterEqual, and LLessEqual -- as per further clarification to
-the ACPI specification. Behavior is similar to C library
-"strcmp".
-
-Completed a major reduction in CPU stack use for the
-AcpiGetFirmwareTable external function. In the 32-bit non-debug
-case, the stack use has been reduced from 168 bytes to 32 bytes.
-
-Deployed a new run-time configuration flag,
-AcpiGbl_EnableInterpreterSlack, whose purpose is to allow the AML
-interpreter to forgive certain bad AML constructs. Default
-setting is FALSE.
-
-Implemented the first use of AcpiGbl_EnableInterpreterSlack in
-the Field IO support code. If enabled, it allows field access to
-go beyond the end of a region definition if the field is within
-the region length rounded up to the next access width boundary (a
-common coding error.)
-
-Renamed OSD_HANDLER to ACPI_OSD_HANDLER, and
-OSD_EXECUTION_CALLBACK to ACPI_OSD_EXEC_CALLBACK for consistency
-with other ACPI symbols. Also, these symbols are lowercased by
-the latest version of the AcpiSrc tool.
-
-The prototypes for the PCI interfaces in acpiosxf.h have been
-updated to rename "Register" to simply "Reg" to prevent certain
-compilers from complaining.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
- Current Release:
- Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
- Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented full support for Package objects within the Case()
-operator. Note: The Break() operator is currently not supported
-within Case blocks (TermLists) as there is some question about
-backward compatibility with ACPI 1.0 interpreters.
-
-
-Fixed a problem where complex terms were not supported properly
-within the Switch() operator.
-
-Eliminated extraneous warning for compiler-emitted reserved names
-of the form "_T_x". (Used in Switch/Case operators.)
-
-Eliminated optimization messages for "_T_x" objects and small
-constants within the DefinitionBlock operator.
-
-
-----------------------------------------
-15 June 2004. Summary of changes for version 20040615:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for Buffer and String objects (as per ACPI
-2.0) for the following ASL operators: LEqual, LGreater, LLess,
-LGreaterEqual, and LLessEqual.
-
-All directory names in the entire source package are lower case,
-as they were in earlier releases.
-
-Implemented "Disassemble" command in the AML debugger that will
-disassemble a single control method.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
- Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
-
- Current Release:
- Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
- Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Implemented support for Buffer and String objects (as per ACPI
-2.0) for the following ASL operators: LEqual, LGreater, LLess,
-LGreaterEqual, and LLessEqual.
-
-All directory names in the entire source package are lower case,
-as they were in earlier releases.
-
-Fixed a fault when using the -g or -d<nofilename> options if the
-FADT was not found.
-
-Fixed an issue with the Windows version of the compiler where
-later versions of Windows place the FADT in the registry under
-the name "FADT" and not "FACP" as earlier versions did. This
-applies when using the -g or -d<nofilename> options. The
-compiler now looks for both strings as necessary.
-
-Fixed a problem with compiler namepath optimization where a
-namepath within the Scope() operator could not be optimized if
-the namepath was a subpath of the current scope path.
-
-----------------------------------------
-27 May 2004. Summary of changes for version 20040527:
-
-1) ACPI CA Core Subsystem:
-
-Completed a new design and implementation for EBDA (Extended BIOS
-Data Area) support in the RSDP scan code. The original code
-improperly scanned for the EBDA by simply scanning from memory
-location 0 to 0x400. The correct method is to first obtain the
-EBDA pointer from within the BIOS data area, then scan 1K of
-memory starting at the EBDA pointer. There appear to be few if
-any machines that place the RSDP in the EBDA, however.
-
-Integrated a fix for a possible fault during evaluation of
-BufferField arguments. Obsolete code that was causing the
-problem was removed.
-
-Found and fixed a problem in the Field Support Code where data
-could be corrupted on a bit field read that starts on an aligned
-boundary but does not end on an aligned boundary. Merged the
-read/write "datum length" calculation code into a common
-procedure.
-
-Rolled in a couple of changes to the FreeBSD-specific header.
-
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
- Current Release:
- Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
- Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Fixed a generation warning produced by some overly-verbose
-compilers for a 64-bit constant.
-
-----------------------------------------
-14 May 2004. Summary of changes for version 20040514:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where hardware GPE enable bits sometimes not set
-properly during and after GPE method execution. Result of 04/27
-changes.
-
-Removed extra "clear all GPEs" when sleeping/waking.
-
-Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the
-single AcpiHwWriteGpeEnableReg. Changed a couple of calls to the
-functions above to the new AcpiEv* calls as appropriate.
-
-ACPI_OS_NAME was removed from the OS-specific headers. The
-default name is now "Microsoft Windows NT" for maximum
-compatibility. However this can be changed by modifying the
-acconfig.h file.
-
-Allow a single invocation of AcpiInstallNotifyHandler for a
-handler that traps both types of notifies (System, Device). Use
-ACPI_ALL_NOTIFY flag.
-
-Run _INI methods on ThermalZone objects. This is against the
-ACPI specification, but there is apparently ASL code in the field
-that has these _INI methods, and apparently "other" AML
-interpreters execute them.
-
-Performed a full 16/32/64 bit lint that resulted in some small
-changes.
-
-Added a sleep simulation command to the AML debugger to test
-sleep code.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
- Current Release:
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
-
-----------------------------------------
-27 April 2004. Summary of changes for version 20040427:
-
-1) ACPI CA Core Subsystem:
-
-Completed a major overhaul of the GPE handling within ACPI CA.
-There are now three types of GPEs: wake-only, runtime-only, and
-combination wake/run. The only GPEs allowed to be combination
-wake/run are for button-style devices such as a control-method
-power button, control-method sleep button, or a notebook lid
-switch. GPEs that have an _Lxx or _Exx method and are not
-referenced by any _PRW methods are marked for "runtime" and
-hardware enabled. Any GPE that is referenced by a _PRW method is
-marked for "wake" (and disabled at runtime). However, at sleep
-time, only those GPEs that have been specifically enabled for
-wake via the AcpiEnableGpe interface will actually be hardware
-enabled.
-
-A new external interface has been added, AcpiSetGpeType(), that
-is meant to be used by device drivers to force a GPE to a
-particular type. It will be especially useful for the drivers
-for the button devices mentioned above.
-
-Completed restructuring of the ACPI CA initialization sequence so
-that default operation region handlers are installed before GPEs
-are initialized and the _PRW methods are executed. This will
-prevent errors when the _PRW methods attempt to access system
-memory or I/O space.
-
-GPE enable/disable no longer reads the GPE enable register. We
-now keep the enable info for runtime and wake separate and in the
-GPE_EVENT_INFO. We thus no longer depend on the hardware to
-maintain these bits.
-
-Always clear the wake status and fixed/GPE status bits before
-sleep, even for state S5.
-
-Improved the AML debugger output for displaying the GPE blocks
-and their current status.
-
-Added new strings for the _OSI method, of the form "Windows 2001
-SPx" where x = 0,1,2,3,4.
-
-Fixed a problem where the physical address was incorrectly
-calculated when the Load() operator was used to directly load
-from an Operation Region (vs. loading from a Field object.) Also
-added check for minimum table length for this case.
-
-Fix for multiple mutex acquisition. Restore original thread
-SyncLevel on mutex release.
-
-Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for
-consistency with the other fields returned.
-
-Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one
-such structure for each GPE in the system, so the size of this
-structure is important.
-
-CPU stack requirement reduction: Cleaned up the method execution
-and object evaluation paths so that now a parameter structure is
-passed, instead of copying the various method parameters over and
-over again.
-
-In evregion.c: Correctly exit and reenter the interpreter region
-if and only if dispatching an operation region request to a user-
-installed handler. Do not exit/reenter when dispatching to a
-default handler (e.g., default system memory or I/O handlers)
-
-
-Notes for updating drivers for the new GPE support. The
-following changes must be made to ACPI-related device drivers
-that are attached to one or more GPEs: (This information will be
-added to the ACPI CA Programmer Reference.)
-
-1) AcpiInstallGpeHandler no longer automatically enables the GPE,
-you must explicitly call AcpiEnableGpe.
-2) There is a new interface called AcpiSetGpeType. This should be
-called before enabling the GPE. Also, this interface will
-automatically disable the GPE if it is currently enabled.
-3) AcpiEnableGpe no longer supports a GPE type flag.
-
-Specific drivers that must be changed:
-1) EC driver:
- AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED,
-AeGpeHandler, NULL);
- AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
- AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
-
-2) Button Drivers (Power, Lid, Sleep):
-Run _PRW method under parent device
-If _PRW exists: /* This is a control-method button */
- Extract GPE number and possibly GpeDevice
- AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
- AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
-
-For all other devices that have _PRWs, we automatically set the
-GPE type to ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically
-(wake) enabled. This must be done on a selective basis, usually
-requiring some kind of user app to allow the user to pick the
-wake devices.
-
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
- Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
- Current Release:
-
- Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
- Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
-
-
-
-----------------------------------------
-02 April 2004. Summary of changes for version 20040402:
-
-1) ACPI CA Core Subsystem:
-
-Fixed an interpreter problem where an indirect store through an
-ArgX parameter was incorrectly applying the "implicit conversion
-rules" during the store. From the ACPI specification: "If the
-target is a method local or argument (LocalX or ArgX), no
-conversion is performed and the result is stored directly to the
-target". The new behavior is to disable implicit conversion
-during ALL stores to an ArgX.
-
-Changed the behavior of the _PRW method scan to ignore any and
-all errors returned by a given _PRW. This prevents the scan from
-aborting from the failure of any single _PRW.
-
-Moved the runtime configuration parameters from the global init
-procedure to static variables in acglobal.h. This will allow the
-host to override the default values easily.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
- Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
- Current Release:
- Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
- Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-iASL now fully disassembles SSDTs. However, External()
-statements are not generated automatically for unresolved symbols
-at this time. This is a planned feature for future
-implementation.
-
-Fixed a scoping problem in the disassembler that occurs when the
-type of the target of a Scope() operator is overridden. This
-problem caused an incorrectly nested internal namespace to be
-constructed.
-
-Any warnings or errors that are emitted during disassembly are
-now commented out automatically so that the resulting file can be
-recompiled without any hand editing.
-
-----------------------------------------
-26 March 2004. Summary of changes for version 20040326:
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for "wake" GPEs via interaction between GPEs
-and the _PRW methods. Every GPE that is pointed to by one or
-more _PRWs is identified as a WAKE GPE and by default will no
-longer be enabled at runtime. Previously, we were blindly
-enabling all GPEs with a corresponding _Lxx or _Exx method - but
-most of these turn out to be WAKE GPEs anyway. We believe this
-has been the cause of thousands of "spurious" GPEs on some
-systems.
-
-This new GPE behavior is can be reverted to the original behavior
-(enable ALL GPEs at runtime) via a runtime flag.
-
-Fixed a problem where aliased control methods could not access
-objects properly. The proper scope within the namespace was not
-initialized (transferred to the target of the aliased method)
-before executing the target method.
-
-Fixed a potential race condition on internal object deletion on
-the return object in AcpiEvaluateObject.
-
-Integrated a fix for resource descriptors where both _MEM and
-_MTP were being extracted instead of just _MEM. (i.e. bitmask
-was incorrectly too wide, 0x0F instead of 0x03.)
-
-Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName,
-preventing a fault in some cases.
-
-Updated Notify() values for debug statements in evmisc.c
-
-Return proper status from AcpiUtMutexInitialize, not just simply
-AE_OK.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
-
- Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
- Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
- Current Release:
- Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
- Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
-
-----------------------------------------
-11 March 2004. Summary of changes for version 20040311:
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where errors occurring during the parse phase of
-control method execution did not abort cleanly. For example,
-objects created and installed in the namespace were not deleted.
-This caused all subsequent invocations of the method to return
-the AE_ALREADY_EXISTS exception.
-
-Implemented a mechanism to force a control method to "Serialized"
-execution if the method attempts to create namespace objects.
-(The root of the AE_ALREADY_EXISTS problem.)
-
-Implemented support for the predefined _OSI "internal" control
-method. Initial supported strings are "Linux", "Windows 2000",
-"Windows 2001", and "Windows 2001.1", and can be easily upgraded
-for new strings as necessary. This feature will allow "other"
-operating systems to execute the fully tested, "Windows" code
-path through the ASL code
-
-Global Lock Support: Now allows multiple acquires and releases
-with any internal thread. Removed concept of "owning thread" for
-this special mutex.
-
-Fixed two functions that were inappropriately declaring large
-objects on the CPU stack: PsParseLoop, NsEvaluateRelative.
-Reduces the stack usage during method execution considerably.
-
-Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where
-the S4Bios_f field was incorrectly defined as UINT32 instead of
-UINT32_BIT.
-
-Fixed a problem where AcpiEvGpeDetect would fault if there were
-no GPEs defined on the machine.
-
-Implemented two runtime options: One to force all control method
-execution to "Serialized" to mimic Windows behavior, another to
-disable _OSI support if it causes problems on a given machine.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler and the compiler options used during generation.
-
- Previous Release:
- Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
- Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
- Current Release:
- Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
- Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
-
-2) iASL Compiler/Disassembler:
-
-Fixed an array size problem for FreeBSD that would cause the
-compiler to fault.
-
-----------------------------------------
-20 February 2004. Summary of changes for version 20040220:
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented execution of _SxD methods for Device objects in the
-GetObjectInfo interface.
-
-Fixed calls to _SST method to pass the correct arguments.
-
-Added a call to _SST on wake to restore to "working" state.
-
-Check for End-Of-Buffer failure case in the WalkResources
-interface.
-
-Integrated fix for 64-bit alignment issue in acglobal.h by moving
-two structures to the beginning of the file.
-
-After wake, clear GPE status register(s) before enabling GPEs.
-
-After wake, clear/enable power button. (Perhaps we should
-clear/enable all fixed events upon wake.)
-
-Fixed a couple of possible memory leaks in the Namespace manager.
-
-Integrated latest acnetbsd.h file.
-
-----------------------------------------
-11 February 2004. Summary of changes for version 20040211:
-
-
-1) ACPI CA Core Subsystem:
-
-Completed investigation and implementation of the call-by-
-reference mechanism for control method arguments.
-
-Fixed a problem where a store of an object into an indexed
-package could fail if the store occurs within a different method
-than the method that created the package.
-
-Fixed a problem where the ToDecimal operator could return
-incorrect results.
-
-Fixed a problem where the CopyObject operator could fail on some
-of the more obscure objects (e.g., Reference objects.)
-
-Improved the output of the Debug object to display buffer,
-package, and index objects.
-
-Fixed a problem where constructs of the form "RefOf (ArgX)" did
-not return the expected result.
-
-Added permanent ACPI_REPORT_ERROR macros for all instances of the
-ACPI_AML_INTERNAL exception.
-
-Integrated latest version of acfreebsd.h
-
-----------------------------------------
-16 January 2004. Summary of changes for version 20040116:
-
-The purpose of this release is primarily to update the copyright
-years in each module, thus causing a huge number of diffs. There
-are a few small functional changes, however.
-
-1) ACPI CA Core Subsystem:
-
-Improved error messages when there is a problem finding one or
-more of the required base ACPI tables
-
-Reintroduced the definition of APIC_HEADER in actbl.h
-
-Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
-
-Removed extraneous reference to NewObj in dsmthdat.c
-
-2) iASL compiler
-
-Fixed a problem introduced in December that disabled the correct
-disassembly of Resource Templates
-
-
-----------------------------------------
-03 December 2003. Summary of changes for version 20031203:
-
-1) ACPI CA Core Subsystem:
-
-Changed the initialization of Operation Regions during subsystem
-init to perform two entire walks of the ACPI namespace; The first
-to initialize the regions themselves, the second to execute the
-_REG methods. This fixed some interdependencies across _REG
-methods found on some machines.
-
-Fixed a problem where a Store(Local0, Local1) could simply update
-the object reference count, and not create a new copy of the
-object if the Local1 is uninitialized.
-
-Implemented support for the _SST reserved method during sleep
-transitions.
-
-Implemented support to clear the SLP_TYP and SLP_EN bits when
-waking up, this is apparently required by some machines.
-
-When sleeping, clear the wake status only if SleepState is not
-S5.
-
-Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect
-pointer arithmetic advanced a string pointer too far.
-
-Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer
-could be returned if the requested table has not been loaded.
-
-Within the support for IRQ resources, restructured the handling
-of
-the active and edge/level bits.
-
-Fixed a few problems in AcpiPsxExecute() where memory could be
-leaked under certain error conditions.
-
-Improved error messages for the cases where the ACPI mode could
-not be entered.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler
-and the compiler options used during generation.
-
- Previous Release (20031029):
- Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
- Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
- Current Release:
- Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
- Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
-
-2) iASL Compiler/Disassembler:
-
-Implemented a fix for the iASL disassembler where a bad index was
-generated. This was most noticeable on 64-bit platforms
-
-
-----------------------------------------
-29 October 2003. Summary of changes for version 20031029:
-
-1) ACPI CA Core Subsystem:
-
-
-Fixed a problem where a level-triggered GPE with an associated
-_Lxx control method was incorrectly cleared twice.
-
-Fixed a problem with the Field support code where an access can
-occur beyond the end-of-region if the field is non-aligned but
-extends to the very end of the parent region (resulted in an
-AE_AML_REGION_LIMIT exception.)
-
-Fixed a problem with ACPI Fixed Events where an RT Clock handler
-would not get invoked on an RTC event. The RTC event bitmasks
-for
-the PM1 registers were not being initialized properly.
-
-Implemented support for executing _STA and _INI methods for
-Processor objects. Although this is currently not part of the
-ACPI specification, there is existing ASL code that depends on
-the
-init-time execution of these methods.
-
-Implemented and deployed a GetDescriptorName function to decode
-the various types of internal descriptors. Guards against null
-descriptors during debug output also.
-
-Implemented and deployed a GetNodeName function to extract the 4-
-character namespace node name. This function simplifies the
-debug
-and error output, as well as guarding against null pointers
-during
-output.
-
-Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to
-simplify the debug and error output of 64-bit integers. This
-macro replaces the HIDWORD and LODWORD macros for dumping these
-integers.
-
-Updated the implementation of the Stall() operator to only call
-AcpiOsStall(), and also return an error if the operand is larger
-than 255. This preserves the required behavior of not
-relinquishing the processor, as would happen if AcpiOsSleep() was
-called for "long stalls".
-
-Constructs of the form "Store(LocalX,LocalX)" where LocalX is not
-initialized are now treated as NOOPs.
-
-Cleaned up a handful of warnings during 64-bit generation.
-
-Fixed a reported error where and incorrect GPE number was passed
-to the GPE dispatch handler. This value is only used for error
-output, however. Used this opportunity to clean up and
-streamline
-the GPE dispatch code.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler
-and the compiler options used during generation.
-
- Previous Release (20031002):
- Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
- Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
- Current Release:
- Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
- Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
-
-
-2) iASL Compiler/Disassembler:
-
-Updated the iASL compiler to return an error if the operand to
-the
-Stall() operator is larger than 255.
-
-
-----------------------------------------
-02 October 2003. Summary of changes for version 20031002:
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem with Index Fields where the index was not
-incremented for fields that require multiple writes to the
-index/data registers (Fields that are wider than the data
-register.)
-
-Fixed a problem with all Field objects where a write could go
-beyond the end-of-field if the field was larger than the access
-granularity and therefore required multiple writes to complete
-the
-request. An extra write beyond the end of the field could happen
-inadvertently.
-
-Fixed a problem with Index Fields where a BUFFER_OVERFLOW error
-would incorrectly be returned if the width of the Data Register
-was larger than the specified field access width.
-
-Completed fixes for LoadTable() and Unload() and verified their
-operation. Implemented full support for the "DdbHandle" object
-throughout the ACPI CA subsystem.
-
-Implemented full support for the MADT and ECDT tables in the ACPI
-CA header files. Even though these tables are not directly
-consumed by ACPI CA, the header definitions are useful for ACPI
-device drivers.
-
-Integrated resource descriptor fixes posted to the Linux ACPI
-list. This included checks for minimum descriptor length, and
-support for trailing NULL strings within descriptors that have
-optional string elements.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler
-and the compiler options used during generation.
-
- Previous Release (20030918):
- Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
- Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
- Current Release:
- Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
- Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
-
-
-2) iASL Compiler:
-
-Implemented detection of non-ASCII characters within the input
-source ASL file. This catches attempts to compile binary (AML)
-files early in the compile, with an informative error message.
-
-Fixed a problem where the disassembler would fault if the output
-filename could not be generated or if the output file could not
-be
-opened.
-
-----------------------------------------
-18 September 2003. Summary of changes for version 20030918:
-
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a longstanding problem with the late execution of
-the various deferred AML opcodes (such as Operation Regions,
-Buffer Fields, Buffers, and Packages). If the name string
-specified for the name of the new object placed the object in a
-scope other than the current scope, the initialization/execution
-of the opcode failed. The solution to this problem was to
-implement a mechanism where the late execution of such opcodes
-does not attempt to lookup/create the name a second time in an
-incorrect scope. This fixes the "region size computed
-incorrectly" problem.
-
-Fixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
-a
-Global Lock AE_BAD_PARAMETER error.
-
-Fixed several 64-bit issues with prototypes, casting and data
-types.
-
-Removed duplicate prototype from acdisasm.h
-
-Fixed an issue involving EC Operation Region Detach (Shaohua Li)
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler
-and the compiler options used during generation.
-
- Previous Release:
-
- Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
- Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
- Current Release:
- Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
- Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
-
-
-2) Linux:
-
-Fixed the AcpiOsSleep implementation in osunixxf.c to pass the
-correct sleep time in seconds.
-
-----------------------------------------
-14 July 2003. Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Parse SSDTs in order discovered, as opposed to reverse order
-(Hrvoje Habjanic)
-
-Fixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
-Klausner,
- Nate Lawson)
-
-
-2) Linux:
-
-Dynamically allocate SDT list (suggested by Andi Kleen)
-
-proc function return value cleanups (Andi Kleen)
-
-Correctly handle NMI watchdog during long stalls (Andrew Morton)
-
-Make it so acpismp=force works (reported by Andrew Morton)
-
-
-----------------------------------------
-19 June 2003. Summary of changes for version 20030619:
-
-1) ACPI CA Core Subsystem:
-
-Fix To/FromBCD, eliminating the need for an arch-specific
-#define.
-
-Do not acquire a semaphore in the S5 shutdown path.
-
-Fix ex_digits_needed for 0. (Takayoshi Kochi)
-
-Fix sleep/stall code reversal. (Andi Kleen)
-
-Revert a change having to do with control method calling
-semantics.
-
-2) Linux:
-
-acpiphp update (Takayoshi Kochi)
-
-Export acpi_disabled for sonypi (Stelian Pop)
-
-Mention acpismp=force in config help
-
-Re-add acpitable.c and acpismp=force. This improves backwards
-
-compatibility and also cleans up the code to a significant
-degree.
-
-Add ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
-
-----------------------------------------
-22 May 2003. Summary of changes for version 20030522:
-
-1) ACPI CA Core Subsystem:
-
-Found and fixed a reported problem where an AE_NOT_FOUND error
-occurred occasionally during _BST evaluation. This turned out to
-be an Owner ID allocation issue where a called method did not get
-a new ID assigned to it. Eventually, (after 64k calls), the
-Owner
-ID UINT16 would wraparound so that the ID would be the same as
-the
-caller's and the called method would delete the caller's
-namespace.
-
-Implemented extended error reporting for control methods that are
-aborted due to a run-time exception. Output includes the exact
-AML instruction that caused the method abort, a dump of the
-method
-locals and arguments at the time of the abort, and a trace of all
-nested control method calls.
-
-Modified the interpreter to allow the creation of buffers of zero
-length from the AML code. Implemented new code to ensure that no
-attempt is made to actually allocate a memory buffer (of length
-zero) - instead, a simple buffer object with a NULL buffer
-pointer
-and length zero is created. A warning is no longer issued when
-the AML attempts to create a zero-length buffer.
-
-Implemented a workaround for the "leading asterisk issue" in
-_HIDs, _UIDs, and _CIDs in the AML interpreter. One leading
-asterisk is automatically removed if present in any HID, UID, or
-CID strings. The iASL compiler will still flag this asterisk as
-an error, however.
-
-Implemented full support for _CID methods that return a package
-of
-multiple CIDs (Compatible IDs). The AcpiGetObjectInfo()
-interface
-now additionally returns a device _CID list if present. This
-required a change to the external interface in order to pass an
-ACPI_BUFFER object as a parameter since the _CID list is of
-variable length.
-
-Fixed a problem with the new AE_SAME_HANDLER exception where
-handler initialization code did not know about this exception.
-
-Code and Data Size: Current and previous core subsystem library
-sizes are shown below. These are the code and data sizes for the
-acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
-these values do not include any ACPI driver or OSPM code. The
-debug version of the code includes the debug output trace
-mechanism and has a much larger code and data size. Note that
-these values will vary depending on the efficiency of the
-compiler
-and the compiler options used during generation.
-
- Previous Release (20030509):
- Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
- Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
- Current Release:
- Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
- Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
-
-
-2) Linux:
-
-Fixed a bug in which we would reinitialize the ACPI interrupt
-after it was already working, thus disabling all ACPI and the
-IRQs
-for any other device sharing the interrupt. (Thanks to Stian
-Jordet)
-
-Toshiba driver update (John Belmonte)
-
-Return only 0 or 1 for our interrupt handler status (Andrew
-Morton)
-
-
-3) iASL Compiler:
-
-Fixed a reported problem where multiple (nested) ElseIf()
-statements were not handled correctly by the compiler, resulting
-in incorrect warnings and incorrect AML code. This was a problem
-in both the ASL parser and the code generator.
-
-
-4) Documentation:
-
-Added changes to existing interfaces, new exception codes, and
-new
-text concerning reference count object management versus garbage
-collection.
-
-----------------------------------------
-09 May 2003. Summary of changes for version 20030509.
-
-
-1) ACPI CA Core Subsystem:
-
-Changed the subsystem initialization sequence to hold off
-installation of address space handlers until the hardware has
-been
-initialized and the system has entered ACPI mode. This is
-because
-the installation of space handlers can cause _REG methods to be
-run. Previously, the _REG methods could potentially be run
-before
-ACPI mode was enabled.
-
-Fixed some memory leak issues related to address space handler
-and
-notify handler installation. There were some problems with the
-reference count mechanism caused by the fact that the handler
-objects are shared across several namespace objects.
-
-Fixed a reported problem where reference counts within the
-namespace were not properly updated when named objects created by
-method execution were deleted.
-
-Fixed a reported problem where multiple SSDTs caused a deletion
-issue during subsystem termination. Restructured the table data
-structures to simplify the linked lists and the related code.
-
-Fixed a problem where the table ID associated with secondary
-tables (SSDTs) was not being propagated into the namespace
-objects
-created by those tables. This would only present a problem for
-tables that are unloaded at run-time, however.
-
-Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
-type as the length parameter (instead of UINT32).
-
-Solved a long-standing problem where an ALREADY_EXISTS error
-appears on various systems. This problem could happen when there
-are multiple PCI_Config operation regions under a single PCI root
-bus. This doesn't happen very frequently, but there are some
-systems that do this in the ASL.
-
-Fixed a reported problem where the internal DeleteNode function
-was incorrectly handling the case where a namespace node was the
-first in the parent's child list, and had additional peers (not
-the only child, but first in the list of children.)
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
- Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
- Current Release:
- Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
- Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
-
-
-2) Linux:
-
-Allow ":" in OS override string (Ducrot Bruno)
-
-Kobject fix (Greg KH)
-
-
-3 iASL Compiler/Disassembler:
-
-Fixed a problem in the generation of the C source code files (AML
-is emitted in C source statements for BIOS inclusion) where the
-Ascii dump that appears within a C comment at the end of each
-line
-could cause a compile time error if the AML sequence happens to
-have an open comment or close comment sequence embedded.
-
-
-----------------------------------------
-24 April 2003. Summary of changes for version 20030424.
-
-
-1) ACPI CA Core Subsystem:
-
-Support for big-endian systems has been implemented. Most of the
-support has been invisibly added behind big-endian versions of
-the
-ACPI_MOVE_* macros.
-
-Fixed a problem in AcpiHwDisableGpeBlock() and
-AcpiHwClearGpeBlock() where an incorrect offset was passed to the
-low level hardware write routine. The offset parameter was
-actually eliminated from the low level read/write routines
-because
-they had become obsolete.
-
-Fixed a problem where a handler object was deleted twice during
-the removal of a fixed event handler.
-
-
-2) Linux:
-
-A fix for SMP systems with link devices was contributed by
-
-Compaq's Dan Zink.
-
-(2.5) Return whether we handled the interrupt in our IRQ handler.
-(Linux ISRs no longer return void, so we can propagate the
-handler
-return value from the ACPI CA core back to the OS.)
-
-
-
-3) Documentation:
-
-The ACPI CA Programmer Reference has been updated to reflect new
-interfaces and changes to existing interfaces.
-
-----------------------------------------
-28 March 2003. Summary of changes for version 20030328.
-
-1) ACPI CA Core Subsystem:
-
-The GPE Block Device support has been completed. New interfaces
-are AcpiInstallGpeBlock and AcpiRemoveGpeBlock. The Event
-interfaces (enable, disable, clear, getstatus) have been split
-into separate interfaces for Fixed Events and General Purpose
-Events (GPEs) in order to support GPE Block Devices properly.
-
-Fixed a problem where the error message "Failed to acquire
-semaphore" would appear during operations on the embedded
-controller (EC).
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
- Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
- Current Release:
- Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
- Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
-
-
-----------------------------------------
-28 February 2003. Summary of changes for version 20030228.
-
-
-1) ACPI CA Core Subsystem:
-
-The GPE handling and dispatch code has been completely overhauled
-in preparation for support of GPE Block Devices (ID ACPI0006).
-This affects internal data structures and code only; there should
-be no differences visible externally. One new file has been
-added, evgpeblk.c
-
-The FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
-fields that are used to determine the GPE block lengths. The
-REGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
-structures are ignored. This is per the ACPI specification but
-it
-isn't very clear. The full 256 Block 0/1 GPEs are now supported
-(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
-128).
-
-In the SCI interrupt handler, removed the read of the PM1_CONTROL
-register to look at the SCI_EN bit. On some machines, this read
-causes an SMI event and greatly slows down SCI events. (This may
-in fact be the cause of slow battery status response on some
-systems.)
-
-Fixed a problem where a store of a NULL string to a package
-object
-could cause the premature deletion of the object. This was seen
-during execution of the battery _BIF method on some systems,
-resulting in no battery data being returned.
-
-Added AcpiWalkResources interface to simplify parsing of resource
-lists.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
- Current Release:
- Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
- Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
-
-
-2) Linux
-
-S3 fixes (Ole Rohne)
-
-Update ACPI PHP driver with to use new acpi_walk_resource API
-(Bjorn Helgaas)
-
-Add S4BIOS support (Pavel Machek)
-
-Map in entire table before performing checksum (John Stultz)
-
-Expand the mem= cmdline to allow the specification of reserved
-and
-ACPI DATA blocks (Pavel Machek)
-
-Never use ACPI on VISWS
-
-Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
-
-Revert a change that allowed P_BLK lengths to be 4 or 5. This is
-causing us to think that some systems support C2 when they really
-don't.
-
-Do not count processor objects for non-present CPUs (Thanks to
-Dominik Brodowski)
-
-
-3) iASL Compiler:
-
-Fixed a problem where ASL include files could not be found and
-opened.
-
-Added support for the _PDC reserved name.
-
-
-----------------------------------------
-22 January 2003. Summary of changes for version 20030122.
-
-
-1) ACPI CA Core Subsystem:
-
-Added a check for constructs of the form: Store (Local0, Local0)
-where Local0 is not initialized. Apparently, some BIOS
-programmers believe that this is a NOOP. Since this store
-doesn't
-do anything anyway, the new prototype behavior will ignore this
-error. This is a case where we can relax the strict checking in
-the interpreter in the name of compatibility.
-
-
-2) Linux
-
-The AcpiSrc Source Conversion Utility has been released with the
-Linux package for the first time. This is the utility that is
-used to convert the ACPI CA base source code to the Linux
-version.
-
-(Both) Handle P_BLK lengths shorter than 6 more gracefully
-
-(Both) Move more headers to include/acpi, and delete an unused
-header.
-
-(Both) Move drivers/acpi/include directory to include/acpi
-
-(Both) Boot functions don't use cmdline, so don't pass it around
-
-(Both) Remove include of unused header (Adrian Bunk)
-
-(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
-the
-former now also includes the latter, acpiphp.h only needs the
-one,
-now.
-
-(2.5) Make it possible to select method of bios restoring after
-S3
-resume. [=> no more ugly ifdefs] (Pavel Machek)
-
-(2.5) Make proc write interfaces work (Pavel Machek)
-
-(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
-
-(2.5) Break out ACPI Perf code into its own module, under cpufreq
-(Dominik Brodowski)
-
-(2.4) S4BIOS support (Ducrot Bruno)
-
-(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
-Visinoni)
-
-
-3) iASL Compiler:
-
-Added support to disassemble SSDT and PSDTs.
-
-Implemented support to obtain SSDTs from the Windows registry if
-available.
-
-
-----------------------------------------
-09 January 2003. Summary of changes for version 20030109.
-
-1) ACPI CA Core Subsystem:
-
-Changed the behavior of the internal Buffer-to-String conversion
-function. The current ACPI specification states that the
-contents
-of the buffer are "converted to a string of two-character
-hexadecimal numbers, each separated by a space". Unfortunately,
-this definition is not backwards compatible with existing ACPI
-1.0
-implementations (although the behavior was not defined in the
-ACPI
-1.0 specification). The new behavior simply copies data from the
-buffer to the string until a null character is found or the end
-of
-the buffer is reached. The new String object is always null
-terminated. This problem was seen during the generation of _BIF
-battery data where incorrect strings were returned for battery
-type, etc. This will also require an errata to the ACPI
-specification.
-
-Renamed all instances of NATIVE_UINT and NATIVE_INT to
-ACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
-
-Copyright in all module headers (both Linux and non-Linux) has be
-updated to 2003.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
- Current Release:
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
-
-
-2) Linux
-
-Fixed an oops on module insertion/removal (Matthew Tippett)
-
-(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
-
-(2.5) Replace pr_debug (Randy Dunlap)
-
-(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
-
-(Both) Eliminate spawning of thread from timer callback, in favor
-of schedule_work()
-
-(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
-
-(Both) Added define for Fixed Function HW region (Matthew Wilcox)
-
-(Both) Add missing statics to button.c (Pavel Machek)
-
-Several changes have been made to the source code translation
-utility that generates the Linux Code in order to make the code
-more "Linux-like":
-
-All typedefs on structs and unions have been removed in keeping
-with the Linux coding style.
-
-Removed the non-Linux SourceSafe module revision number from each
-module header.
-
-Completed major overhaul of symbols to be lowercased for linux.
-Doubled the number of symbols that are lowercased.
-
-Fixed a problem where identifiers within procedure headers and
-within quotes were not fully lower cased (they were left with a
-starting capital.)
-
-Some C macros whose only purpose is to allow the generation of 16-
-bit code are now completely removed in the Linux code, increasing
-readability and maintainability.
-
-----------------------------------------
-
-12 December 2002. Summary of changes for version 20021212.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where the creation of a zero-length AML Buffer
-would cause a fault.
-
-Fixed a problem where a Buffer object that pointed to a static
-AML
-buffer (in an ACPI table) could inadvertently be deleted, causing
-memory corruption.
-
-Fixed a problem where a user buffer (passed in to the external
-ACPI CA interfaces) could be overwritten if the buffer was too
-small to complete the operation, causing memory corruption.
-
-Fixed a problem in the Buffer-to-String conversion code where a
-string of length one was always returned, regardless of the size
-of the input Buffer object.
-
-Removed the NATIVE_CHAR data type across the entire source due to
-lack of need and lack of consistent use.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
- Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
- Current Release:
- Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
- Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
-
-
-----------------------------------------
-05 December 2002. Summary of changes for version 20021205.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where a store to a String or Buffer object could
-cause corruption of the DSDT if the object type being stored was
-the same as the target object type and the length of the object
-being stored was equal to or smaller than the original (existing)
-target object. This was seen to cause corruption of battery _BIF
-buffers if the _BIF method modified the buffer on the fly.
-
-Fixed a problem where an internal error was generated if a
-control
-method invocation was used in an OperationRegion, Buffer, or
-Package declaration. This was caused by the deferred parsing of
-the control method and thus the deferred creation of the internal
-method object. The solution to this problem was to create the
-internal method object at the moment the method is encountered in
-the first pass - so that subsequent references to the method will
-able to obtain the required parameter count and thus properly
-parse the method invocation. This problem presented itself as an
-AE_AML_INTERNAL during the pass 1 parse phase during table load.
-
-Fixed a problem where the internal String object copy routine did
-not always allocate sufficient memory for the target String
-object
-and caused memory corruption. This problem was seen to cause
-"Allocation already present in list!" errors as memory allocation
-became corrupted.
-
-Implemented a new function for the evaluation of namespace
-objects
-that allows the specification of the allowable return object
-types. This simplifies a lot of code that checks for a return
-object of one or more specific objects returned from the
-evaluation (such as _STA, etc.) This may become and external
-function if it would be useful to ACPI-related drivers.
-
-Completed another round of prefixing #defines with "ACPI_" for
-clarity.
-
-Completed additional code restructuring to allow more modular
-linking for iASL compiler and AcpiExec. Several files were split
-creating new files. New files: nsparse.c dsinit.c evgpe.c
-
-Implemented an abort mechanism to terminate an executing control
-method via the AML debugger. This feature is useful for
-debugging
-control methods that depend (wait) for specific hardware
-responses.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
- Current Release:
- Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
- Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
-
-
-2) iASL Compiler/Disassembler
-
-Fixed a compiler code generation problem for "Interrupt" Resource
-Descriptors. If specified in the ASL, the optional "Resource
-Source Index" and "Resource Source" fields were not inserted into
-the correct location within the AML resource descriptor, creating
-an invalid descriptor.
-
-Fixed a disassembler problem for "Interrupt" resource
-descriptors.
-The optional "Resource Source Index" and "Resource Source" fields
-were ignored.
-
-
-----------------------------------------
-22 November 2002. Summary of changes for version 20021122.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a reported problem where an object stored to a Method Local
-or Arg was not copied to a new object during the store - the
-object pointer was simply copied to the Local/Arg. This caused
-all subsequent operations on the Local/Arg to also affect the
-original source of the store operation.
-
-Fixed a problem where a store operation to a Method Local or Arg
-was not completed properly if the Local/Arg contained a reference
-(from RefOf) to a named field. The general-purpose store-to-
-namespace-node code is now used so that this case is handled
-automatically.
-
-Fixed a problem where the internal object copy routine would
-cause
-a protection fault if the object being copied was a Package and
-contained either 1) a NULL package element or 2) a nested sub-
-package.
-
-Fixed a problem with the GPE initialization that resulted from an
-ambiguity in the ACPI specification. One section of the
-specification states that both the address and length of the GPE
-block must be zero if the block is not supported. Another
-section
-implies that only the address need be zero if the block is not
-supported. The code has been changed so that both the address
-and
-the length must be non-zero to indicate a valid GPE block (i.e.,
-if either the address or the length is zero, the GPE block is
-invalid.)
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
- Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
- Current Release:
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
-
-
-2) Linux
-
-Cleaned up EC driver. Exported an external EC read/write
-interface. By going through this, other drivers (most notably
-sonypi) will be able to serialize access to the EC.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented support to optionally generate include files for both
-ASM and C (the -i switch). This simplifies BIOS development by
-automatically creating include files that contain external
-declarations for the symbols that are created within the
-
-(optionally generated) ASM and C AML source files.
-
-
-----------------------------------------
-15 November 2002. Summary of changes for version 20021115.
-
-1) ACPI CA Core Subsystem:
-
-Fixed a memory leak problem where an error during resolution of
-
-method arguments during a method invocation from another method
-failed to cleanup properly by deleting all successfully resolved
-argument objects.
-
-Fixed a problem where the target of the Index() operator was not
-correctly constructed if the source object was a package. This
-problem has not been detected because the use of a target operand
-with Index() is very rare.
-
-Fixed a problem with the Index() operator where an attempt was
-made to delete the operand objects twice.
-
-Fixed a problem where an attempt was made to delete an operand
-twice during execution of the CondRefOf() operator if the target
-did not exist.
-
-Implemented the first of perhaps several internal create object
-functions that create and initialize a specific object type.
-This
-consolidates duplicated code wherever the object is created, thus
-shrinking the size of the subsystem.
-
-Implemented improved debug/error messages for errors that occur
-during nested method invocations. All executing method pathnames
-are displayed (with the error) as the call stack is unwound -
-thus
-simplifying debug.
-
-Fixed a problem introduced in the 10/02 release that caused
-premature deletion of a buffer object if a buffer was used as an
-ASL operand where an integer operand is required (Thus causing an
-implicit object conversion from Buffer to Integer.) The change
-in
-the 10/02 release was attempting to fix a memory leak (albeit
-incorrectly.)
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
- Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
- Current Release:
- Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
- Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
-
-
-2) Linux
-
-Changed the implementation of the ACPI semaphores to use down()
-instead of down_interruptable(). It is important that the
-execution of ACPI control methods not be interrupted by signals.
-Methods must run to completion, or the system may be left in an
-unknown/unstable state.
-
-Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
-set.
-(Shawn Starr)
-
-
-3) iASL Compiler/Disassembler
-
-
-Changed the default location of output files. All output files
-are now placed in the current directory by default instead of in
-the directory of the source file. This change may affect some
-existing makefiles, but it brings the behavior of the compiler in
-line with other similar tools. The location of the output files
-can be overridden with the -p command line switch.
-
-
-----------------------------------------
-11 November 2002. Summary of changes for version 20021111.
-
-
-0) ACPI Specification 2.0B is released and is now available at:
-http://www.acpi.info/index.html
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented support for the ACPI 2.0 SMBus Operation Regions.
-This includes the early detection and handoff of the request to
-the SMBus region handler (avoiding all of the complex field
-support code), and support for the bidirectional return packet
-from an SMBus write operation. This paves the way for the
-development of SMBus drivers in each host operating system.
-
-Fixed a problem where the semaphore WAIT_FOREVER constant was
-defined as 32 bits, but must be 16 bits according to the ACPI
-specification. This had the side effect of causing ASL
-Mutex/Event timeouts even though the ASL code requested a wait
-forever. Changed all internal references to the ACPI timeout
-parameter to 16 bits to prevent future problems. Changed the
-name
-of WAIT_FOREVER to ACPI_WAIT_FOREVER.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
- Current Release:
- Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
- Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
-
-
-2) Linux
-
-Module loading/unloading fixes (John Cagle)
-
-
-3) iASL Compiler/Disassembler
-
-Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
-
-Implemented support for the disassembly of all SMBus protocol
-keywords (SMBQuick, SMBWord, etc.)
-
-----------------------------------------
-01 November 2002. Summary of changes for version 20021101.
-
-
-1) ACPI CA Core Subsystem:
-
-Fixed a problem where platforms that have a GPE1 block but no
-GPE0
-block were not handled correctly. This resulted in a "GPE
-overlap" error message. GPE0 is no longer required.
-
-Removed code added in the previous release that inserted nodes
-into the namespace in alphabetical order. This caused some side-
-effects on various machines. The root cause of the problem is
-still under investigation since in theory, the internal ordering
-of the namespace nodes should not matter.
-
-
-Enhanced error reporting for the case where a named object is not
-found during control method execution. The full ACPI namepath
-(name reference) of the object that was not found is displayed in
-this case.
-
-Note: as a result of the overhaul of the namespace object types
-in
-the previous release, the namespace nodes for the predefined
-scopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
-instead of ACPI_TYPE_ANY. This simplifies the namespace
-management code but may affect code that walks the namespace tree
-looking for specific object types.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a much larger code and data size. Note that these values
-will
-vary depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
- Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
- Current Release:
- Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
- Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
-
-
-2) Linux
-
-Fixed a problem introduced in the previous release where the
-Processor and Thermal objects were not recognized and installed
-in
-/proc. This was related to the scope type change described
-above.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented the -g option to get all of the required ACPI tables
-from the registry and save them to files (Windows version of the
-compiler only.) The required tables are the FADT, FACS, and
-DSDT.
-
-Added ACPI table checksum validation during table disassembly in
-order to catch corrupted tables.
-
-
-----------------------------------------
-22 October 2002. Summary of changes for version 20021022.
-
-1) ACPI CA Core Subsystem:
-
-Implemented a restriction on the Scope operator that the target
-must already exist in the namespace at the time the operator is
-encountered (during table load or method execution). In other
-words, forward references are not allowed and Scope() cannot
-create a new object. This changes the previous behavior where the
-interpreter would create the name if not found. This new
-behavior
-correctly enables the search-to-root algorithm during namespace
-lookup of the target name. Because of this upsearch, this fixes
-the known Compaq _SB_.OKEC problem and makes both the AML
-interpreter and iASL compiler compatible with other ACPI
-implementations.
-
-Completed a major overhaul of the internal ACPI object types for
-the ACPI Namespace and the associated operand objects. Many of
-these types had become obsolete with the introduction of the two-
-pass namespace load. This cleanup simplifies the code and makes
-the entire namespace load mechanism much clearer and easier to
-understand.
-
-Improved debug output for tracking scope opening/closing to help
-diagnose scoping issues. The old scope name as well as the new
-scope name are displayed. Also improved error messages for
-problems with ASL Mutex objects and error messages for GPE
-problems.
-
-Cleaned up the namespace dump code, removed obsolete code.
-
-All string output (for all namespace/object dumps) now uses the
-common ACPI string output procedure which handles escapes
-properly
-and does not emit non-printable characters.
-
-Fixed some issues with constants in the 64-bit version of the
-local C library (utclib.c)
-
-
-2) Linux
-
-EC Driver: No longer attempts to acquire the Global Lock at
-interrupt level.
-
-
-3) iASL Compiler/Disassembler
-
-Implemented ACPI 2.0B grammar change that disallows all Type 1
-and
-2 opcodes outside of a control method. This means that the
-"executable" operators (versus the "namespace" operators) cannot
-be used at the table level; they can only be used within a
-control
-method.
-
-Implemented the restriction on the Scope() operator where the
-target must already exist in the namespace at the time the
-operator is encountered (during ASL compilation). In other words,
-forward references are not allowed and Scope() cannot create a
-new
-object. This makes the iASL compiler compatible with other ACPI
-implementations and makes the Scope() implementation adhere to
-the
-ACPI specification.
-
-Fixed a problem where namepath optimization for the Alias
-operator
-was optimizing the wrong path (of the two namepaths.) This
-caused
-a "Missing alias link" error message.
-
-Fixed a problem where an "unknown reserved name" warning could be
-incorrectly generated for names like "_SB" when the trailing
-underscore is not used in the original ASL.
-
-Fixed a problem where the reserved name check did not handle
-NamePaths with multiple NameSegs correctly. The first nameseg of
-the NamePath was examined instead of the last NameSeg.
-
-
-----------------------------------------
-
-02 October 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20021002:
-
-Fixed a problem where a store/copy of a string to an existing
-string did not always set the string length properly in the
-String
-object.
-
-Fixed a reported problem with the ToString operator where the
-behavior was identical to the ToHexString operator instead of
-just
-simply converting a raw buffer to a string data type.
-
-Fixed a problem where CopyObject and the other "explicit"
-conversion operators were not updating the internal namespace
-node
-type as part of the store operation.
-
-Fixed a memory leak during implicit source operand conversion
-where the original object was not deleted if it was converted to
-a
-new object of a different type.
-
-Enhanced error messages for all problems associated with
-namespace
-lookups. Common procedure generates and prints the lookup name
-as
-well as the formatted status.
-
-Completed implementation of a new design for the Alias support
-within the namespace. The existing design did not handle the
-case
-where a new object was assigned to one of the two names due to
-the
-use of an explicit conversion operator, resulting in the two
-names
-pointing to two different objects. The new design simply points
-the Alias name to the original name node - not to the object.
-This results in a level of indirection that must be handled in
-the
-name resolution mechanism.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
- Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
- Current Release:
- Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
- Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
-
-
-2) Linux
-
-Initialize thermal driver's timer before it is used. (Knut
-Neumann)
-
-Allow handling negative celsius values. (Kochi Takayoshi)
-
-Fix thermal management and make trip points. R/W (Pavel Machek)
-
-Fix /proc/acpi/sleep. (P. Christeas)
-
-IA64 fixes. (David Mosberger)
-
-Fix reversed logic in blacklist code. (Sergio Monteiro Basto)
-
-Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
-Brodowski)
-
-
-3) iASL Compiler/Disassembler
-
-Clarified some warning/error messages.
-
-
-----------------------------------------
-18 September 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem version 20020918:
-
-Fixed a reported problem with reference chaining (via the Index()
-and RefOf() operators) in the ObjectType() and SizeOf()
-operators.
-The definition of these operators includes the dereferencing of
-all chained references to return information on the base object.
-
-Fixed a problem with stores to indexed package elements - the
-existing code would not complete the store if an "implicit
-conversion" was not performed. In other words, if the existing
-object (package element) was to be replaced completely, the code
-didn't handle this case.
-
-Relaxed typechecking on the ASL "Scope" operator to allow the
-target name to refer to an object of type Integer, String, or
-Buffer, in addition to the scoping object types (Device,
-predefined Scopes, Processor, PowerResource, and ThermalZone.)
-This allows existing AML code that has workarounds for a bug in
-Windows to function properly. A warning is issued, however.
-This
-affects both the AML interpreter and the iASL compiler. Below is
-an example of this type of ASL code:
-
- Name(DEB,0x00)
- Scope(DEB)
- {
-
-Fixed some reported problems with 64-bit integer support in the
-local implementation of C library functions (clib.c)
-
-
-2) Linux
-
-Use ACPI fix map region instead of IOAPIC region, since it is
-undefined in non-SMP.
-
-Ensure that the SCI has the proper polarity and trigger, even on
-systems that do not have an interrupt override entry in the MADT.
-
-2.5 big driver reorganization (Pat Mochel)
-
-Use early table mapping code from acpitable.c (Andi Kleen)
-
-New blacklist entries (Andi Kleen)
-
-Blacklist improvements. Split blacklist code out into a separate
-file. Move checking the blacklist to very early. Previously, we
-would use ACPI tables, and then halfway through init, check the
-blacklist -- too late. Now, it's early enough to completely fall-
-back to non-ACPI.
-
-
-3) iASL Compiler/Disassembler version 20020918:
-
-Fixed a problem where the typechecking code didn't know that an
-alias could point to a method. In other words, aliases were not
-being dereferenced during typechecking.
-
-
-----------------------------------------
-29 August 2002. Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020829:
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc. This is a fatal runtime error. Similar
-error
-check has been added to the iASL compiler also.
-
-Tightened up the namespace load to disallow multiple names in the
-same scope. This previously was allowed if both objects were of
-the same type. (i.e., a lookup was the same as entering a new
-name).
-
-
-2) Linux
-
-Ensure that the ACPI interrupt has the proper trigger and
-polarity.
-
-local_irq_disable is extraneous. (Matthew Wilcox)
-
-Make "acpi=off" actually do what it says, and not use the ACPI
-interpreter *or* the tables.
-
-Added arch-neutral support for parsing SLIT and SRAT tables
-(Kochi
-Takayoshi)
-
-
-3) iASL Compiler/Disassembler Version 20020829:
-
-Implemented namepath optimization for name declarations. For
-example, a declaration like "Method (\_SB_.ABCD)" would get
-optimized to "Method (ABCD)" if the declaration is within the
-\_SB_ scope. This optimization is in addition to the named
-reference path optimization first released in the previous
-version. This would seem to complete all possible optimizations
-for namepaths within the ASL/AML.
-
-If the target of a Scope() operator already exists, it must be an
-object type that actually opens a scope -- such as a Device,
-Method, Scope, etc.
-
-Implemented a check and warning for unreachable code in the same
-block below a Return() statement.
-
-Fixed a problem where the listing file was not generated if the
-compiler aborted if the maximum error count was exceeded (200).
-
-Fixed a problem where the typechecking of method return values
-was
-broken. This includes the check for a return value when the
-method is invoked as a TermArg (a return value is expected.)
-
-Fixed a reported problem where EOF conditions during a quoted
-string or comment caused a fault.
-
-
-----------------------------------------
-15 August 2002. Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020815:
-
-Fixed a reported problem where a Store to a method argument that
-contains a reference did not perform the indirect store
-correctly.
-This problem was created during the conversion to the new
-reference object model - the indirect store to a method argument
-code was not updated to reflect the new model.
-
-Reworked the ACPI mode change code to better conform to ACPI 2.0,
-handle corner cases, and improve code legibility (Kochi
-Takayoshi)
-
-Fixed a problem with the pathname parsing for the carat (^)
-prefix. The heavy use of the carat operator by the new namepath
-optimization in the iASL compiler uncovered a problem with the
-AML
-interpreter handling of this prefix. In the case where one or
-more carats precede a single nameseg, the nameseg was treated as
-standalone and the search rule (to root) was inadvertently
-applied. This could cause both the iASL compiler and the
-interpreter to find the wrong object or to miss the error that
-should occur if the object does not exist at that exact pathname.
-
-Found and fixed the problem where the HP Pavilion DSDT would not
-load. This was a relatively minor tweak to the table loading
-code
-(a problem caused by the unexpected encounter with a method
-invocation not within a control method), but it does not solve
-the
-overall issue of the execution of AML code at the table level.
-This investigation is still ongoing.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
- Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
- Current Release:
- Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
- Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
-
-
-2) Linux
-
-Remove redundant slab.h include (Brad Hards)
-
-Fix several bugs in thermal.c (Herbert Nachtnebel)
-
-Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
-
-Change acpi_system_suspend to use updated irq functions (Pavel
-Machek)
-
-Export acpi_get_firmware_table (Matthew Wilcox)
-
-Use proper root proc entry for ACPI (Kochi Takayoshi)
-
-Fix early-boot table parsing (Bjorn Helgaas)
-
-
-3) iASL Compiler/Disassembler
-
-Reworked the compiler options to make them more consistent and to
-use two-letter options where appropriate. We were running out of
-sensible letters. This may break some makefiles, so check the
-current options list by invoking the compiler with no parameters.
-
-Completed the design and implementation of the ASL namepath
-optimization option for the compiler. This option optimizes all
-references to named objects to the shortest possible path. The
-first attempt tries to utilize a single nameseg (4 characters)
-and
-the "search-to-root" algorithm used by the interpreter. If that
-cannot be used (because either the name is not in the search path
-or there is a conflict with another object with the same name),
-the pathname is optimized using the carat prefix (usually a
-shorter string than specifying the entire path from the root.)
-
-Implemented support to obtain the DSDT from the Windows registry
-(when the disassembly option is specified with no input file).
-Added this code as the implementation for AcpiOsTableOverride in
-the Windows OSL. Migrated the 16-bit code (used in the AcpiDump
-utility) to scan memory for the DSDT to the AcpiOsTableOverride
-function in the DOS OSL to make the disassembler truly OS
-independent.
-
-Implemented a new option to disassemble and compile in one step.
-When used without an input filename, this option will grab the
-DSDT from the local machine, disassemble it, and compile it in
-one
-step.
-
-Added a warning message for invalid escapes (a backslash followed
-by any character other than the allowable escapes). This catches
-the quoted string error "\_SB_" (which should be "\\_SB_" ).
-
-Also, there are numerous instances in the ACPI specification
-where
-this error occurs.
-
-Added a compiler option to disable all optimizations. This is
-basically the "compatibility mode" because by using this option,
-the AML code will come out exactly the same as other ASL
-compilers.
-
-Added error messages for incorrectly ordered dependent resource
-functions. This includes: missing EndDependentFn macro at end of
-dependent resource list, nested dependent function macros (both
-start and end), and missing StartDependentFn macro. These are
-common errors that should be caught at compile time.
-
-Implemented _OSI support for the disassembler and compiler. _OSI
-must be included in the namespace for proper disassembly (because
-the disassembler must know the number of arguments.)
-
-Added an "optimization" message type that is optional (off by
-default). This message is used for all optimizations - including
-constant folding, integer optimization, and namepath
-optimization.
-
-----------------------------------------
-25 July 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020725:
-
-The AML Disassembler has been enhanced to produce compilable ASL
-code and has been integrated into the iASL compiler (see below)
-as
-well as the single-step disassembly for the AML debugger and the
-disassembler for the AcpiDump utility. All ACPI 2.0A opcodes,
-resource templates and macros are fully supported. The
-disassembler has been tested on over 30 different AML files,
-producing identical AML when the resulting disassembled ASL file
-is recompiled with the same ASL compiler.
-
-Modified the Resource Manager to allow zero interrupts and zero
-dma channels during the GetCurrentResources call. This was
-causing problems on some platforms.
-
-Added the AcpiOsRedirectOutput interface to the OSL to simplify
-output redirection for the AcpiOsPrintf and AcpiOsVprintf
-interfaces.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
- Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
- Current Release:
- Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
- Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
-
-
-2) Linux
-
-Fixed a panic in the EC driver (Dominik Brodowski)
-
-Implemented checksum of the R/XSDT itself during Linux table scan
-(Richard Schaal)
-
-
-3) iASL compiler
-
-The AML disassembler is integrated into the compiler. The "-d"
-option invokes the disassembler to completely disassemble an
-input AML file, producing as output a text ASL file with the
-extension ".dsl" (to avoid name collisions with existing .asl
-source files.) A future enhancement will allow the disassembler
-to obtain the BIOS DSDT from the registry under Windows.
-
-Fixed a problem with the VendorShort and VendorLong resource
-descriptors where an invalid AML sequence was created.
-
-Implemented a fix for BufferData term in the ASL parser. It was
-inadvertently defined twice, allowing invalid syntax to pass and
-causing reduction conflicts.
-
-Fixed a problem where the Ones opcode could get converted to a
-value of zero if "Ones" was used where a byte, word or dword
-value
-was expected. The 64-bit value is now truncated to the correct
-size with the correct value.
-
-
-
-----------------------------------------
-02 July 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020702:
-
-The Table Manager code has been restructured to add several new
-features. Tables that are not required by the core subsystem
-(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
-validated in any way and are returned from AcpiGetFirmwareTable
-if
-requested. The AcpiOsTableOverride interface is now called for
-each table that is loaded by the subsystem in order to allow the
-host to override any table it chooses. Previously, only the DSDT
-could be overridden. Added one new files, tbrsdt.c and
-tbgetall.c.
-
-Fixed a problem with the conversion of internal package objects
-to
-external objects (when a package is returned from a control
-method.) The return buffer length was set to zero instead of the
-proper length of the package object.
-
-Fixed a reported problem with the use of the RefOf and DeRefOf
-operators when passing reference arguments to control methods. A
-new type of Reference object is used internally for references
-produced by the RefOf operator.
-
-Added additional error messages in the Resource Manager to
-explain
-AE_BAD_DATA errors when they occur during resource parsing.
-
-Split the AcpiEnableSubsystem into two primitives to enable a
-finer granularity initialization sequence. These two calls
-should
-be called in this order: AcpiEnableSubsystem (flags),
-AcpiInitializeObjects (flags). The flags parameter remains the
-same.
-
-
-2) Linux
-
-Updated the ACPI utilities module to understand the new style of
-fully resolved package objects that are now returned from the
-core
-subsystem. This eliminates errors of the form:
-
- ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
- acpi_utils-0430 [145] acpi_evaluate_reference:
- Invalid element in package (not a device reference)
-
-The method evaluation utility uses the new buffer allocation
-scheme instead of calling AcpiEvaluate Object twice.
-
-Added support for ECDT. This allows the use of the Embedded
-
-Controller before the namespace has been fully initialized, which
-is necessary for ACPI 2.0 support, and for some laptops to
-initialize properly. (Laptops using ECDT are still rare, so only
-limited testing was performed of the added functionality.)
-
-Fixed memory leaks in the EC driver.
-
-Eliminated a brittle code structure in acpi_bus_init().
-
-Eliminated the acpi_evaluate() helper function in utils.c. It is
-no longer needed since acpi_evaluate_object can optionally
-allocate memory for the return object.
-
-Implemented fix for keyboard hang when getting battery readings
-on
-some systems (Stephen White)
-
-PCI IRQ routing update (Dominik Brodowski)
-
-Fix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
-support
-
-----------------------------------------
-11 June 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020611:
-
-Fixed a reported problem where constants such as Zero and One
-appearing within _PRT packages were not handled correctly within
-the resource manager code. Originally reported against the ASL
-compiler because the code generator now optimizes integers to
-their minimal AML representation (i.e. AML constants if
-possible.)
-The _PRT code now handles all AML constant opcodes correctly
-(Zero, One, Ones, Revision).
-
-Fixed a problem with the Concatenate operator in the AML
-interpreter where a buffer result object was incorrectly marked
-as
-not fully evaluated, causing a run-time error of AE_AML_INTERNAL.
-
-All package sub-objects are now fully resolved before they are
-returned from the external ACPI interfaces. This means that name
-strings are resolved to object handles, and constant operators
-(Zero, One, Ones, Revision) are resolved to Integers.
-
-Implemented immediate resolution of the AML Constant opcodes
-(Zero, One, Ones, Revision) to Integer objects upon detection
-within the AML stream. This has simplified and reduced the
-generated code size of the subsystem by eliminating about 10
-switch statements for these constants (which previously were
-contained in Reference objects.) The complicating issues are
-that
-the Zero opcode is used as a "placeholder" for unspecified
-optional target operands and stores to constants are defined to
-be
-no-ops.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
- Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
- Current Release:
- Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
- Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
-
-
-2) Linux
-
-
-Added preliminary support for obtaining _TRA data for PCI root
-bridges (Bjorn Helgaas).
-
-
-3) iASL Compiler Version X2046:
-
-Fixed a problem where the "_DDN" reserved name was defined to be
-a
-control method with one argument. There are no arguments, and
-_DDN does not have to be a control method.
-
-Fixed a problem with the Linux version of the compiler where the
-source lines printed with error messages were the wrong lines.
-This turned out to be the "LF versus CR/LF" difference between
-Windows and Unix. This appears to be the longstanding issue
-concerning listing output and error messages.
-
-Fixed a problem with the Linux version of compiler where opcode
-names within error messages were wrong. This was caused by a
-slight difference in the output of the Flex tool on Linux versus
-Windows.
-
-Fixed a problem with the Linux compiler where the hex output
-files
-contained some garbage data caused by an internal buffer overrun.
-
-
-----------------------------------------
-17 May 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020517:
-
-Implemented a workaround to an BIOS bug discovered on the HP
-OmniBook where the FADT revision number and the table size are
-inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The
-new
-behavior is to fallback to using only the ACPI 1.0 fields of the
-FADT if the table is too small to be a ACPI 2.0 table as claimed
-by the revision number. Although this is a BIOS bug, this is a
-case where the workaround is simple enough and with no side
-effects, so it seemed prudent to add it. A warning message is
-issued, however.
-
-Implemented minimum size checks for the fixed-length ACPI tables
--
-- the FADT and FACS, as well as consistency checks between the
-revision number and the table size.
-
-Fixed a reported problem in the table override support where the
-new table pointer was incorrectly treated as a physical address
-instead of a logical address.
-
-Eliminated the use of the AE_AML_ERROR exception and replaced it
-with more descriptive codes.
-
-Fixed a problem where an exception would occur if an ASL Field
-was
-defined with no named Field Units underneath it (used by some
-index fields).
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
- Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
- Current Release:
- Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
- Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
-
-
-
-2) Linux
-
-Much work done on ACPI init (MADT and PCI IRQ routing support).
-(Paul D. and Dominik Brodowski)
-
-Fix PCI IRQ-related panic on boot (Sam Revitch)
-
-Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
-
-Fix "MHz" typo (Dominik Brodowski)
-
-Fix RTC year 2000 issue (Dominik Brodowski)
-
-Preclude multiple button proc entries (Eric Brunet)
-
-Moved arch-specific code out of include/platform/aclinux.h
-
-3) iASL Compiler Version X2044:
-
-Implemented error checking for the string used in the EISAID
-macro
-(Usually used in the definition of the _HID object.) The code
-now
-strictly enforces the PnP format - exactly 7 characters, 3
-uppercase letters and 4 hex digits.
-
-If a raw string is used in the definition of the _HID object
-(instead of the EISAID macro), the string must contain all
-alphanumeric characters (e.g., "*PNP0011" is not allowed because
-of the asterisk.)
-
-Implemented checking for invalid use of ACPI reserved names for
-most of the name creation operators (Name, Device, Event, Mutex,
-OperationRegion, PowerResource, Processor, and ThermalZone.)
-Previously, this check was only performed for control methods.
-
-Implemented an additional check on the Name operator to emit an
-error if a reserved name that must be implemented in ASL as a
-control method is used. We know that a reserved name must be a
-method if it is defined with input arguments.
-
-The warning emitted when a namespace object reference is not
-found
-during the cross reference phase has been changed into an error.
-The "External" directive should be used for names defined in
-other
-modules.
-
-
-4) Tools and Utilities
-
-The 16-bit tools (adump16 and aexec16) have been regenerated and
-tested.
-
-Fixed a problem with the output of both acpidump and adump16
-where
-the indentation of closing parentheses and brackets was not
-
-aligned properly with the parent block.
-
-
-----------------------------------------
-03 May 2002. Summary of changes for this release.
-
-
-1) ACPI CA Core Subsystem Version 20020503:
-
-Added support a new OSL interface that allows the host operating
-
-system software to override the DSDT found in the firmware -
-AcpiOsTableOverride. With this interface, the OSL can examine
-the
-version of the firmware DSDT and replace it with a different one
-if desired.
-
-Added new external interfaces for accessing ACPI registers from
-device drivers and other system software - AcpiGetRegister and
-AcpiSetRegister. This was simply an externalization of the
-existing AcpiHwBitRegister interfaces.
-
-Fixed a regression introduced in the previous build where the
-ASL/AML CreateField operator always returned an error,
-"destination must be a NS Node".
-
-Extended the maximum time (before failure) to successfully enable
-ACPI mode to 3 seconds.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
- Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
- Current Release:
- Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
- Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
-
-
-2) Linux
-
-Enhanced ACPI init code for SMP. We are now fully MPS and $PIR-
-free. While 3 out of 4 of our in-house systems work fine, the
-last
-one still hangs when testing the LAPIC timer.
-
-Renamed many files in 2.5 kernel release to omit "acpi_" from the
-name.
-
-Added warning on boot for Presario 711FR.
-
-Sleep improvements (Pavel Machek)
-
-ACPI can now be built without CONFIG_PCI enabled.
-
-IA64: Fixed memory map functions (JI Lee)
-
-
-3) iASL Compiler Version X2043:
-
-Added support to allow the compiler to be integrated into the MS
-VC++ development environment for one-button compilation of single
-files or entire projects -- with error-to-source-line mapping.
-
-Implemented support for compile-time constant folding for the
-Type3, Type4, and Type5 opcodes first defined in the ACPI 2.0
-specification. This allows the ASL writer to use expressions
-instead of Integer/Buffer/String constants in terms that must
-evaluate to constants at compile time and will also simplify the
-emitted AML in any such sub-expressions that can be folded
-(evaluated at compile-time.) This increases the size of the
-compiler significantly because a portion of the ACPI CA AML
-interpreter is included within the compiler in order to pre-
-evaluate constant expressions.
-
-
-Fixed a problem with the "Unicode" ASL macro that caused the
-compiler to fault. (This macro is used in conjunction with the
-_STR reserved name.)
-
-Implemented an AML opcode optimization to use the Zero, One, and
-Ones opcodes where possible to further reduce the size of integer
-constants and thus reduce the overall size of the generated AML
-code.
-
-Implemented error checking for new reserved terms for ACPI
-version
-2.0A.
-
-Implemented the -qr option to display the current list of ACPI
-reserved names known to the compiler.
-
-Implemented the -qc option to display the current list of ASL
-operators that are allowed within constant expressions and can
-therefore be folded at compile time if the operands are
-constants.
-
-
-4) Documentation
-
-Updated the Programmer's Reference for new interfaces, data
-types,
-and memory allocation model options.
-
-Updated the iASL Compiler User Reference to apply new format and
-add information about new features and options.
-
-----------------------------------------
-19 April 2002. Summary of changes for this release.
-
-1) ACPI CA Core Subsystem Version 20020419:
-
-The source code base for the Core Subsystem has been completely
-cleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
-versions. The Lint option files used are included in the
-/acpi/generate/lint directory.
-
-Implemented enhanced status/error checking across the entire
-Hardware manager subsystem. Any hardware errors (reported from
-the OSL) are now bubbled up and will abort a running control
-method.
-
-
-Fixed a problem where the per-ACPI-table integer width (32 or 64)
-was stored only with control method nodes, causing a fault when
-non-control method code was executed during table loading. The
-solution implemented uses a global variable to indicate table
-width across the entire ACPI subsystem. Therefore, ACPI CA does
-not support mixed integer widths across different ACPI tables
-(DSDT, SSDT).
-
-Fixed a problem where NULL extended fields (X fields) in an ACPI
-2.0 ACPI FADT caused the table load to fail. Although the
-existing ACPI specification is a bit fuzzy on this topic, the new
-behavior is to fall back on a ACPI 1.0 field if the corresponding
-ACPI 2.0 X field is zero (even though the table revision
-indicates
-a full ACPI 2.0 table.) The ACPI specification will be updated
-to
-clarify this issue.
-
-Fixed a problem with the SystemMemory operation region handler
-where memory was always accessed byte-wise even if the AML-
-specified access width was larger than a byte. This caused
-problems on systems with memory-mapped I/O. Memory is now
-accessed with the width specified. On systems that do not
-support
-non-aligned transfers, a check is made to guarantee proper
-address
-alignment before proceeding in order to avoid an AML-caused
-alignment fault within the kernel.
-
-
-Fixed a problem with the ExtendedIrq resource where only one byte
-of the 4-byte Irq field was extracted.
-
-Fixed the AcpiExDigitsNeeded() procedure to support _UID. This
-function was out of date and required a rewrite.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
- Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
- Current Release:
- Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
- Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
-
-
-2) Linux
-
-PCI IRQ routing fixes (Dominik Brodowski)
-
-
-3) iASL Compiler Version X2042:
-
-Implemented an additional compile-time error check for a field
-unit whose size + minimum access width would cause a run-time
-access beyond the end-of-region. Previously, only the field size
-itself was checked.
-
-The Core subsystem and iASL compiler now share a common parse
-object in preparation for compile-time evaluation of the type
-3/4/5 ASL operators.
-
-
-----------------------------------------
-Summary of changes for this release: 03_29_02
-
-1) ACPI CA Core Subsystem Version 20020329:
-
-Implemented support for late evaluation of TermArg operands to
-Buffer and Package objects. This allows complex expressions to
-be
-used in the declarations of these object types.
-
-Fixed an ACPI 1.0 compatibility issue when reading Fields. In
-ACPI
-1.0, if the field was larger than 32 bits, it was returned as a
-buffer - otherwise it was returned as an integer. In ACPI 2.0,
-the field is returned as a buffer only if the field is larger
-than
-64 bits. The TableRevision is now considered when making this
-conversion to avoid incompatibility with existing ASL code.
-
-Implemented logical addressing for AcpiOsGetRootPointer. This
-allows an RSDP with either a logical or physical address. With
-this support, the host OS can now override all ACPI tables with
-one logical RSDP. Includes implementation of "typed" pointer
-support to allow a common data type for both physical and logical
-pointers internally. This required a change to the
-AcpiOsGetRootPointer interface.
-
-Implemented the use of ACPI 2.0 Generic Address Structures for
-all
-GPE, Fixed Event, and PM Timer I/O. This allows the use of
-memory
-mapped I/O for these ACPI features.
-
-Initialization now ignores not only non-required tables (All
-tables other than the FADT, FACS, DSDT, and SSDTs), but also does
-not validate the table headers of unrecognized tables.
-
-Fixed a problem where a notify handler could only be
-installed/removed on an object of type Device. All "notify"
-
-objects are now supported -- Devices, Processor, Power, and
-Thermal.
-
-Removed most verbosity from the ACPI_DB_INFO debug level. Only
-critical information is returned when this debug level is
-enabled.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release
- Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
- Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
- Current Release:
- Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
- Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
-
-
-2) Linux:
-
-The processor driver (acpi_processor.c) now fully supports ACPI
-2.0-based processor performance control (e.g. Intel(R)
-SpeedStep(TM) technology) Note that older laptops that only have
-the Intel "applet" interface are not supported through this. The
-'limit' and 'performance' interface (/proc) are fully functional.
-[Note that basic policy for controlling performance state
-transitions will be included in the next version of ospmd.] The
-idle handler was modified to more aggressively use C2, and PIIX4
-errata handling underwent a complete overhaul (big thanks to
-Dominik Brodowski).
-
-Added support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
-based devices in the ACPI namespace are now dynamically bound
-(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
-This allows, among other things, ACPI to resolve bus numbers for
-subordinate PCI bridges.
-
-Enhanced PCI IRQ routing to get the proper bus number for _PRT
-entries defined underneath PCI bridges.
-
-Added IBM 600E to bad bios list due to invalid _ADR value for
-PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
-
-In the process of adding full MADT support (e.g. IOAPIC) for IA32
-(acpi.c, mpparse.c) -- stay tuned.
-
-Added back visual differentiation between fixed-feature and
-control-method buttons in dmesg. Buttons are also subtyped (e.g.
-button/power/PWRF) to simplify button identification.
-
-We no longer use -Wno-unused when compiling debug. Please ignore
-any "_THIS_MODULE defined but not used" messages.
-
-Can now shut down the system using "magic sysrq" key.
-
-
-3) iASL Compiler version 2041:
-
-Fixed a problem where conversion errors for hex/octal/decimal
-constants were not reported.
-
-Implemented a fix for the General Register template Address
-field.
-This field was 8 bits when it should be 64.
-
-Fixed a problem where errors/warnings were no longer being
-emitted
-within the listing output file.
-
-Implemented the ACPI 2.0A restriction on ACPI Table Signatures to
-exactly 4 characters, alphanumeric only.
-
-
-
-
-----------------------------------------
-Summary of changes for this release: 03_08_02
-
-
-1) ACPI CA Core Subsystem Version 20020308:
-
-Fixed a problem with AML Fields where the use of the "AccessAny"
-keyword could cause an interpreter error due to attempting to
-read
-or write beyond the end of the parent Operation Region.
-
-Fixed a problem in the SystemMemory Operation Region handler
-where
-an attempt was made to map memory beyond the end of the region.
-This was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
-errors on some Linux systems.
-
-Fixed a problem where the interpreter/namespace "search to root"
-algorithm was not functioning for some object types. Relaxed the
-internal restriction on the search to allow upsearches for all
-external object types as well as most internal types.
-
-
-2) Linux:
-
-We now use safe_halt() macro versus individual calls to sti |
-hlt.
-
-Writing to the processor limit interface should now work. "echo
-1"
-will increase the limit, 2 will decrease, and 0 will reset to the
-
-default.
-
-
-3) ASL compiler:
-
-Fixed segfault on Linux version.
-
-
-----------------------------------------
-Summary of changes for this release: 02_25_02
-
-1) ACPI CA Core Subsystem:
-
-
-Fixed a problem where the GPE bit masks were not initialized
-properly, causing erratic GPE behavior.
-
-Implemented limited support for multiple calling conventions.
-The
-code can be generated with either the VPL (variable parameter
-list, or "C") convention, or the FPL (fixed parameter list, or
-"Pascal") convention. The core subsystem is about 3.4% smaller
-when generated with FPL.
-
-
-2) Linux
-
-Re-add some /proc/acpi/event functionality that was lost during
-the rewrite
-
-Resolved issue with /proc events for fixed-feature buttons
-showing
-up as the system device.
-
-Fixed checks on C2/C3 latencies to be inclusive of maximum
-values.
-
-Replaced AE_ERRORs in acpi_osl.c with more specific error codes.
-
-Changed ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
-
-Fixed limit interface & usage to fix bugs with passive cooling
-hysterisis.
-
-Restructured PRT support.
-
-
-----------------------------------------
-Summary of changes for this label: 02_14_02
-
-
-1) ACPI CA Core Subsystem:
-
-Implemented support in AcpiLoadTable to allow loading of FACS and
-FADT tables.
-
-Suport for the now-obsolete interim 0.71 64-bit ACPI tables has
-been removed. All 64-bit platforms should be migrated to the
-ACPI
-2.0 tables. The actbl71.h header has been removed from the
-source
-tree.
-
-All C macros defined within the subsystem have been prefixed with
-"ACPI_" to avoid collision with other system include files.
-
-Removed the return value for the two AcpiOsPrint interfaces,
-since
-it is never used and causes lint warnings for ignoring the return
-value.
-
-Added error checking to all internal mutex acquire and release
-calls. Although a failure from one of these interfaces is
-probably a fatal system error, these checks will cause the
-immediate abort of the currently executing method or interface.
-
-Fixed a problem where the AcpiSetCurrentResources interface could
-fault. This was a side effect of the deployment of the new
-memory
-allocation model.
-
-Fixed a couple of problems with the Global Lock support
-introduced
-in the last major build. The "common" (1.0/2.0) internal FACS
-was
-being overwritten with the FACS signature and clobbering the
-Global Lock pointer. Also, the actual firmware FACS was being
-unmapped after construction of the "common" FACS, preventing
-access to the actual Global Lock field within it. The "common"
-internal FACS is no longer installed as an actual ACPI table; it
-is used simply as a global.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release (02_07_01)
- Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total
- Debug Version: 136.9K Code, 56.4K Data, 193.3K Total
- Current Release:
- Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
- Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
-
-
-2) Linux
-
-Updated Linux-specific code for core macro and OSL interface
-changes described above.
-
-Improved /proc/acpi/event. It now can be opened only once and has
-proper poll functionality.
-
-Fixed and restructured power management (acpi_bus).
-
-Only create /proc "view by type" when devices of that class
-exist.
-
-Fixed "charging/discharging" bug (and others) in acpi_battery.
-
-Improved thermal zone code.
-
-
-3) ASL Compiler, version X2039:
-
-
-Implemented the new compiler restriction on ASL String hex/octal
-escapes to non-null, ASCII values. An error results if an
-invalid
-value is used. (This will require an ACPI 2.0 specification
-change.)
-
-AML object labels that are output to the optional C and ASM
-source
-are now prefixed with both the ACPI table signature and table ID
-to help guarantee uniqueness within a large BIOS project.
-
-
-----------------------------------------
-Summary of changes for this label: 02_01_02
-
-1) ACPI CA Core Subsystem:
-
-ACPI 2.0 support is complete in the entire Core Subsystem and the
-ASL compiler. All new ACPI 2.0 operators are implemented and all
-other changes for ACPI 2.0 support are complete. With
-simultaneous code and data optimizations throughout the
-subsystem,
-ACPI 2.0 support has been implemented with almost no additional
-cost in terms of code and data size.
-
-Implemented a new mechanism for allocation of return buffers. If
-the buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
-be allocated on behalf of the caller. Consolidated all return
-buffer validation and allocation to a common procedure. Return
-buffers will be allocated via the primary OSL allocation
-interface
-since it appears that a separate pool is not needed by most
-users.
-If a separate pool is required for these buffers, the caller can
-still use the original mechanism and pre-allocate the buffer(s).
-
-Implemented support for string operands within the DerefOf
-operator.
-
-Restructured the Hardware and Event managers to be table driven,
-simplifying the source code and reducing the amount of generated
-code.
-
-Split the common read/write low-level ACPI register bitfield
-procedure into a separate read and write, simplifying the code
-considerably.
-
-Obsoleted the AcpiOsCallocate OSL interface. This interface was
-used only a handful of times and didn't have enough critical mass
-for a separate interface. Replaced with a common calloc
-procedure
-in the core.
-
-Fixed a reported problem with the GPE number mapping mechanism
-that allows GPE1 numbers to be non-contiguous with GPE0.
-Reorganized the GPE information and shrunk a large array that was
-originally large enough to hold info for all possible GPEs (256)
-to simply large enough to hold all GPEs up to the largest GPE
-number on the machine.
-
-Fixed a reported problem with resource structure alignment on 64-
-bit platforms.
-
-Changed the AcpiEnableEvent and AcpiDisableEvent external
-interfaces to not require any flags for the common case of
-enabling/disabling a GPE.
-
-Implemented support to allow a "Notify" on a Processor object.
-
-Most TBDs in comments within the source code have been resolved
-and eliminated.
-
-
-Fixed a problem in the interpreter where a standalone parent
-prefix (^) was not handled correctly in the interpreter and
-debugger.
-
-Removed obsolete and unnecessary GPE save/restore code.
-
-Implemented Field support in the ASL Load operator. This allows
-a
-table to be loaded from a named field, in addition to loading a
-table directly from an Operation Region.
-
-Implemented timeout and handle support in the external Global
-Lock
-interfaces.
-
-Fixed a problem in the AcpiDump utility where pathnames were no
-longer being generated correctly during the dump of named
-objects.
-
-Modified the AML debugger to give a full display of if/while
-predicates instead of just one AML opcode at a time. (The
-predicate can have several nested ASL statements.) The old
-method
-was confusing during single stepping.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release (12_18_01)
- Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total
- Debug Version: 138.3K Code, 55.9K Data, 194.2K Total
- Current Release:
- Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total
- Debug Version: 136.9K Code, 56.4K Data, 193.3K Total
-
-2) Linux
-
- Implemented fix for PIIX reverse throttling errata (Processor
-driver)
-
-Added new Limit interface (Processor and Thermal drivers)
-
-New thermal policy (Thermal driver)
-
-Many updates to /proc
-
-Battery "low" event support (Battery driver)
-
-Supports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
-
-IA32 - IA64 initialization unification, no longer experimental
-
-Menuconfig options redesigned
-
-3) ASL Compiler, version X2037:
-
-Implemented several new output features to simplify integration
-of
-AML code into firmware: 1) Output the AML in C source code with
-labels for each named ASL object. The original ASL source
-code
-is interleaved as C comments. 2) Output the AML in ASM source
-code
-with labels and interleaved ASL source. 3) Output the AML in
-raw hex table form, in either C or ASM.
-
-Implemented support for optional string parameters to the
-LoadTable operator.
-
-Completed support for embedded escape sequences within string
-literals. The compiler now supports all single character escapes
-as well as the Octal and Hex escapes. Note: the insertion of a
-null byte into a string literal (via the hex/octal escape) causes
-the string to be immediately terminated. A warning is issued.
-
-Fixed a problem where incorrect AML was generated for the case
-where an ASL namepath consists of a single parent prefix (
-
-) with no trailing name segments.
-
-The compiler has been successfully generated with a 64-bit C
-compiler.
-
-
-
-
-----------------------------------------
-Summary of changes for this label: 12_18_01
-
-1) Linux
-
-Enhanced blacklist with reason and severity fields. Any table's
-signature may now be used to identify a blacklisted system.
-
-Call _PIC control method to inform the firmware which interrupt
-model the OS is using. Turn on any disabled link devices.
-
-Cleaned up busmgr /proc error handling (Andreas Dilger)
-
- 2) ACPI CA Core Subsystem:
-
-Implemented ACPI 2.0 semantics for the "Break" operator (Exit
-from
-while loop)
-
-Completed implementation of the ACPI 2.0 "Continue",
-"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
-operators. All new ACPI 2.0 operators are now implemented in
-both
-the ASL compiler and the AML interpreter. The only remaining
-ACPI
-2.0 task is support for the String data type in the DerefOf
-operator. Fixed a problem with AcquireMutex where the status
-code
-was lost if the caller had to actually wait for the mutex.
-
-Increased the maximum ASL Field size from 64K bits to 4G bits.
-
-Completed implementation of the external Global Lock interfaces -
--
-AcpiAcquireGlobalLock and AcpiReleaseGlobalLock. The Timeout and
-Handler parameters were added.
-
-Completed another pass at removing warnings and issues when
-compiling with 64-bit compilers. The code now compiles cleanly
-with the Intel 64-bit C/C++ compiler. Most notably, the pointer
-add and subtract (diff) macros have changed considerably.
-
-
-Created and deployed a new ACPI_SIZE type that is 64-bits wide on
-64-bit platforms, 32-bits on all others. This type is used
-wherever memory allocation and/or the C sizeof() operator is
-used,
-and affects the OSL memory allocation interfaces AcpiOsAllocate
-and AcpiOsCallocate.
-
-Implemented sticky user breakpoints in the AML debugger.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release (12_05_01)
- Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total
- Debug Version: 136.2K Code, 55.6K Data, 191.8K Total
- Current Release:
- Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total
- Debug Version: 138.3K Code, 55.9K Data, 194.2K Total
-
- 3) ASL Compiler, version X2034:
-
-Now checks for (and generates an error if detected) the use of a
-Break or Continue statement without an enclosing While statement.
-
-
-Successfully generated the compiler with the Intel 64-bit C
-compiler.
-
- ----------------------------------------
-Summary of changes for this label: 12_05_01
-
- 1) ACPI CA Core Subsystem:
-
-The ACPI 2.0 CopyObject operator is fully implemented. This
-operator creates a new copy of an object (and is also used to
-bypass the "implicit conversion" mechanism of the Store
-operator.)
-
-The ACPI 2.0 semantics for the SizeOf operator are fully
-implemented. The change is that performing a SizeOf on a
-reference object causes an automatic dereference of the object to
-tha actual value before the size is evaluated. This behavior was
-undefined in ACPI 1.0.
-
-The ACPI 2.0 semantics for the Extended IRQ resource descriptor
-have been implemented. The interrupt polarity and mode are now
-independently set.
-
-Fixed a problem where ASL Constants (Zero, One, Ones, Revision)
-appearing in Package objects were not properly converted to
-integers when the internal Package was converted to an external
-object (via the AcpiEvaluateObject interface.)
-
-Fixed a problem with the namespace object deletion mechanism for
-objects created by control methods. There were two parts to this
-problem: 1) Objects created during the initialization phase
-method
-parse were not being deleted, and 2) The object owner ID
-mechanism
-to track objects was broken.
-
-Fixed a problem where the use of the ASL Scope operator within a
-control method would result in an invalid opcode exception.
-
-Fixed a problem introduced in the previous label where the buffer
-length required for the _PRT structure was not being returned
-correctly.
-
-Code and Data Size: Current core subsystem library sizes are
-shown
-below. These are the code and data sizes for the acpica.lib
-produced by the Microsoft Visual C++ 6.0 compiler, and these
-values do not include any ACPI driver or OSPM code. The debug
-version of the code includes the debug output trace mechanism and
-has a larger code and data size. Note that these values will
-vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Release (11_20_01)
- Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total
- Debug Version: 135.1K Code, 55.4K Data, 190.5K Total
-
- Current Release:
- Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total
- Debug Version: 136.2K Code, 55.6K Data, 191.8K Total
-
- 2) Linux:
-
-Updated all files to apply cleanly against 2.4.16.
-
-Added basic PCI Interrupt Routing Table (PRT) support for IA32
-(acpi_pci.c), and unified the PRT code for IA32 and IA64. This
-version supports both static and dyanmic PRT entries, but dynamic
-entries are treated as if they were static (not yet
-reconfigurable). Architecture- specific code to use this data is
-absent on IA32 but should be available shortly.
-
-Changed the initialization sequence to start the ACPI interpreter
-(acpi_init) prior to initialization of the PCI driver (pci_init)
-in init/main.c. This ordering is required to support PRT and
-facilitate other (future) enhancement. A side effect is that the
-ACPI bus driver and certain device drivers can no longer be
-loaded
-as modules.
-
-Modified the 'make menuconfig' options to allow PCI Interrupt
-Routing support to be included without the ACPI Bus and other
-device drivers.
-
- 3) ASL Compiler, version X2033:
-
-Fixed some issues with the use of the new CopyObject and
-DataTableRegion operators. Both are fully functional.
-
- ----------------------------------------
-Summary of changes for this label: 11_20_01
-
- 20 November 2001. Summary of changes for this release.
-
- 1) ACPI CA Core Subsystem:
-
-Updated Index support to match ACPI 2.0 semantics. Storing a
-Integer, String, or Buffer to an Index of a Buffer will store
-only
-the least-significant byte of the source to the Indexed buffer
-byte. Multiple writes are not performed.
-
-Fixed a problem where the access type used in an AccessAs ASL
-operator was not recorded correctly into the field object.
-
-Fixed a problem where ASL Event objects were created in a
-signalled state. Events are now created in an unsignalled state.
-
-The internal object cache is now purged after table loading and
-initialization to reduce the use of dynamic kernel memory -- on
-the assumption that object use is greatest during the parse phase
-of the entire table (versus the run-time use of individual
-control
-methods.)
-
-ACPI 2.0 variable-length packages are now fully operational.
-
-Code and Data Size: Code and Data optimizations have permitted
-new
-feature development with an actual reduction in the library size.
-Current core subsystem library sizes are shown below. These are
-the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not
-include
-any ACPI driver or OSPM code. The debug version of the code
-includes the debug output trace mechanism and has a larger code
-and data size. Note that these values will vary depending on the
-efficiency of the compiler and the compiler options used during
-generation.
-
- Previous Release (11_09_01):
- Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total
- Debug Version: 134.5K Code, 55.4K Data, 189.9K Total
-
- Current Release:
- Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total
- Debug Version: 135.1K Code, 55.4K Data, 190.5K Total
-
- 2) Linux:
-
-Enhanced the ACPI boot-time initialization code to allow the use
-of Local APIC tables for processor enumeration on IA-32, and to
-pave the way for a fully MPS-free boot (on SMP systems) in the
-near future. This functionality replaces
-arch/i386/kernel/acpitables.c, which was introduced in an earlier
-2.4.15-preX release. To enable this feature you must add
-"acpi_boot=on" to the kernel command line -- see the help entry
-for CONFIG_ACPI_BOOT for more information. An IA-64 release is
-in
-the works...
-
-Restructured the configuration options to allow boot-time table
-parsing support without inclusion of the ACPI Interpreter (and
-other) code.
-
-NOTE: This release does not include fixes for the reported
-events,
-power-down, and thermal passive cooling issues (coming soon).
-
- 3) ASL Compiler:
-
-Added additional typechecking for Fields within restricted access
-Operation Regions. All fields within EC and CMOS regions must be
-declared with ByteAcc. All fields withing SMBus regions must be
-declared with the BufferAcc access type.
-
-Fixed a problem where the listing file output of control methods
-no longer interleaved the actual AML code with the ASL source
-code.
-
-
-
-
-----------------------------------------
-Summary of changes for this label: 11_09_01
-
-1) ACPI CA Core Subsystem:
-
-Implemented ACPI 2.0-defined support for writes to fields with a
-Buffer, String, or Integer source operand that is smaller than
-the
-target field. In these cases, the source operand is zero-extended
-to fill the target field.
-
-Fixed a problem where a Field starting bit offset (within the
-parent operation region) was calculated incorrectly if the
-
-alignment of the field differed from the access width. This
-affected CreateWordField, CreateDwordField, CreateQwordField, and
-possibly other fields that use the "AccessAny" keyword.
-
-Fixed a problem introduced in the 11_02_01 release where indirect
-stores through method arguments did not operate correctly.
-
-2) Linux:
-
-Implemented boot-time ACPI table parsing support
-(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This code
-facilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
-legacy BIOS interfaces (e.g. MPS) for the configuration of system
-processors, memory, and interrupts during setup_arch(). Note
-that
-this patch does not include the required architecture-specific
-changes required to apply this information -- subsequent patches
-will be posted for both IA32 and IA64 to achieve this.
-
-Added low-level sleep support for IA32 platforms, courtesy of Pat
-Mochel. This allows IA32 systems to transition to/from various
-sleeping states (e.g. S1, S3), although the lack of a centralized
-driver model and power-manageable drivers will prevent its
-(successful) use on most systems.
-
-Revamped the ACPI 'menuconfig' layout: created new "ACPI Support"
-submenu, unified IA32 and IA64 options, added new "Boot using
-ACPI
-tables" option, etc.
-
-Increased the default timeout for the EC driver from 1ms to 10ms
-(1000 cycles of 10us) to try to address AE_TIME errors during EC
-transactions.
-
- ----------------------------------------
-Summary of changes for this label: 11_02_01
-
-1) ACPI CA Core Subsystem:
-
-ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
-(QWordAcc keyword). All ACPI 2.0 64-bit support is now
-implemented.
-
-OSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
-changes to support ACPI 2.0 Qword field access. Read/Write
-PciConfiguration(), Read/Write Memory(), and Read/Write Port()
-now
-accept an ACPI_INTEGER (64 bits) as the value parameter. Also,
-the value parameter for the address space handler interface is
-now
-an ACPI_INTEGER. OSL implementations of these interfaces must
-now
-handle the case where the Width parameter is 64.
-
-Index Fields: Fixed a problem where unaligned bit assembly and
-disassembly for IndexFields was not supported correctly.
-
-Index and Bank Fields: Nested Index and Bank Fields are now
-supported. During field access, a check is performed to ensure
-that the value written to an Index or Bank register is not out of
-the range of the register. The Index (or Bank) register is
-written before each access to the field data. Future support will
-include allowing individual IndexFields to be wider than the
-DataRegister width.
-
-Fields: Fixed a problem where the AML interpreter was incorrectly
-attempting to write beyond the end of a Field/OpRegion. This was
-a boundary case that occurred when a DWORD field was written to a
-BYTE access OpRegion, forcing multiple writes and causing the
-interpreter to write one datum too many.
-
-Fields: Fixed a problem with Field/OpRegion access where the
-starting bit address of a field was incorrectly calculated if the
-current access type was wider than a byte (WordAcc, DwordAcc, or
-QwordAcc).
-
-Fields: Fixed a problem where forward references to individual
-FieldUnits (individual Field names within a Field definition)
-were
-not resolved during the AML table load.
-
-Fields: Fixed a problem where forward references from a Field
-definition to the parent Operation Region definition were not
-resolved during the AML table load.
-
-Fields: Duplicate FieldUnit names within a scope are now detected
-during AML table load.
-
-Acpi Interfaces: Fixed a problem where the AcpiGetName()
-interface
-returned an incorrect name for the root node.
-
-Code and Data Size: Code and Data optimizations have permitted
-new
-feature development with an actual reduction in the library size.
-Current core subsystem library sizes are shown below. These are
-the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not
-include
-any ACPI driver or OSPM code. The debug version of the code
-includes the debug output trace mechanism and has a larger code
-and data size. Note that these values will vary depending on the
-efficiency of the compiler and the compiler options used during
-generation.
-
- Previous Release (10_18_01):
- Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total
- Debug Version: 136.7K Code, 57.4K Data, 194.2K Total
-
- Current Release:
- Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total
- Debug Version: 134.5K Code, 55.4K Data, 189.9K Total
-
- 2) Linux:
-
-Improved /proc processor output (Pavel Machek) Re-added
-MODULE_LICENSE("GPL") to all modules.
-
- 3) ASL Compiler version X2030:
-
-Duplicate FieldUnit names within a scope are now detected and
-flagged as errors.
-
- 4) Documentation:
-
-Programmer Reference updated to reflect OSL and address space
-handler interface changes described above.
-
-----------------------------------------
-Summary of changes for this label: 10_18_01
-
-ACPI CA Core Subsystem:
-
-Fixed a problem with the internal object reference count
-mechanism
-that occasionally caused premature object deletion. This resolves
-all of the outstanding problem reports where an object is deleted
-in the middle of an interpreter evaluation. Although this
-problem
-only showed up in rather obscure cases, the solution to the
-problem involved an adjustment of all reference counts involving
-objects attached to namespace nodes.
-
-Fixed a problem with Field support in the interpreter where
-writing to an aligned field whose length is an exact multiple (2
-or greater) of the field access granularity would cause an
-attempt
-to write beyond the end of the field.
-
-The top level AML opcode execution functions within the
-interpreter have been renamed with a more meaningful and
-consistent naming convention. The modules exmonad.c and
-exdyadic.c were eliminated. New modules are exoparg1.c,
-exoparg2.c, exoparg3.c, and exoparg6.c.
-
-Support for the ACPI 2.0 "Mid" ASL operator has been implemented.
-
-Fixed a problem where the AML debugger was causing some internal
-objects to not be deleted during subsystem termination.
-
-Fixed a problem with the external AcpiEvaluateObject interface
-where the subsystem would fault if the named object to be
-evaluated refered to a constant such as Zero, Ones, etc.
-
-Fixed a problem with IndexFields and BankFields where the
-subsystem would fault if the index, data, or bank registers were
-not defined in the same scope as the field itself.
-
-Added printf format string checking for compilers that support
-this feature. Corrected more than 50 instances of issues with
-format specifiers within invocations of ACPI_DEBUG_PRINT
-throughout the core subsystem code.
-
-The ASL "Revision" operator now returns the ACPI support level
-implemented in the core - the value "2" since the ACPI 2.0
-support
-is more than 50% implemented.
-
-Enhanced the output of the AML debugger "dump namespace" command
-to output in a more human-readable form.
-
-Current core subsystem library code sizes are shown below. These
-
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not
-include
-any ACPI driver or OSPM code. The debug version of the code
-includes the full debug trace mechanism -- leading to a much
-
-larger code and data size. Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Previous Label (09_20_01):
- Non-Debug Version: 65K Code, 5K Data, 70K Total
- Debug Version: 138K Code, 58K Data, 196K Total
-
- This Label:
-
- Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total
- Debug Version: 136.7K Code, 57.4K Data, 194.2K Total
-
-Linux:
-
-Implemented a "Bad BIOS Blacklist" to track machines that have
-known ASL/AML problems.
-
-Enhanced the /proc interface for the thermal zone driver and
-added
-support for _HOT (the critical suspend trip point). The 'info'
-file now includes threshold/policy information, and allows
-setting
-of _SCP (cooling preference) and _TZP (polling frequency) values
-to the 'info' file. Examples: "echo tzp=5 > info" sets the
-polling
-frequency to 5 seconds, and "echo scp=1 > info" sets the cooling
-preference to the passive/quiet mode (if supported by the ASL).
-
-Implemented a workaround for a gcc bug that resuted in an OOPs
-when loading the control method battery driver.
-
- ----------------------------------------
-Summary of changes for this label: 09_20_01
-
- ACPI CA Core Subsystem:
-
-The AcpiEnableEvent and AcpiDisableEvent interfaces have been
-modified to allow individual GPE levels to be flagged as wake-
-enabled (i.e., these GPEs are to remain enabled when the platform
-sleeps.)
-
-The AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
-support wake-enabled GPEs. This means that upon entering the
-sleep state, all GPEs that are not wake-enabled are disabled.
-When leaving the sleep state, these GPEs are reenabled.
-
-A local double-precision divide/modulo module has been added to
-enhance portability to OS kernels where a 64-bit math library is
-not available. The new module is "utmath.c".
-
-Several optimizations have been made to reduce the use of CPU
-stack. Originally over 2K, the maximum stack usage is now below
-2K at 1860 bytes (1.82k)
-
-Fixed a problem with the AcpiGetFirmwareTable interface where the
-root table pointer was not mapped into a logical address
-properly.
-
-Fixed a problem where a NULL pointer was being dereferenced in
-the
-interpreter code for the ASL Notify operator.
-
-Fixed a problem where the use of the ASL Revision operator
-returned an error. This operator now returns the current version
-of the ACPI CA core subsystem.
-
-Fixed a problem where objects passed as control method parameters
-to AcpiEvaluateObject were always deleted at method termination.
-However, these objects may end up being stored into the namespace
-by the called method. The object reference count mechanism was
-applied to these objects instead of a force delete.
-
-Fixed a problem where static strings or buffers (contained in the
-AML code) that are declared as package elements within the ASL
-code could cause a fault because the interpreter would attempt to
-delete them. These objects are now marked with the "static
-object" flag to prevent any attempt to delete them.
-
-Implemented an interpreter optimization to use operands directly
-from the state object instead of extracting the operands to local
-variables. This reduces stack use and code size, and improves
-performance.
-
-The module exxface.c was eliminated as it was an unnecessary
-extra
-layer of code.
-
-Current core subsystem library code sizes are shown below. These
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not
-include
-any ACPI driver or OSPM code. The debug version of the code
-includes the full debug trace mechanism -- leading to a much
-larger code and data size. Note that these values will vary
-depending on the efficiency of the compiler and the compiler
-options used during generation.
-
- Non-Debug Version: 65K Code, 5K Data, 70K Total
-(Previously 69K) Debug Version: 138K Code, 58K Data, 196K
-Total (Previously 195K)
-
-Linux:
-
-Support for ACPI 2.0 64-bit integers has been added. All ACPI
-Integer objects are now 64 bits wide
-
-All Acpi data types and structures are now in lower case. Only
-Acpi macros are upper case for differentiation.
-
- Documentation:
-
-Changes to the external interfaces as described above.
-
- ----------------------------------------
-Summary of changes for this label: 08_31_01
-
- ACPI CA Core Subsystem:
-
-A bug with interpreter implementation of the ASL Divide operator
-was found and fixed. The implicit function return value (not the
-explicit store operands) was returning the remainder instead of
-the quotient. This was a longstanding bug and it fixes several
-known outstanding issues on various platforms.
-
-The ACPI_DEBUG_PRINT and function trace entry/exit macros have
-been further optimized for size. There are 700 invocations of
-the
-DEBUG_PRINT macro alone, so each optimization reduces the size of
-the debug version of the subsystem significantly.
-
-A stack trace mechanism has been implemented. The maximum stack
-usage is about 2K on 32-bit platforms. The debugger command
-"stat
-stack" will display the current maximum stack usage.
-
-All public symbols and global variables within the subsystem are
-now prefixed with the string "Acpi". This keeps all of the
-symbols grouped together in a kernel map, and avoids conflicts
-with other kernel subsystems.
-
-Most of the internal fixed lookup tables have been moved into the
-code segment via the const operator.
-
-Several enhancements have been made to the interpreter to both
-reduce the code size and improve performance.
-
-Current core subsystem library code sizes are shown below. These
-are the code and data sizes for the acpica.lib produced by the
-Microsoft Visual C++ 6.0 compiler, and these values do not
-include
-any ACPI driver or OSPM code. The debug version of the code
-includes the full debug trace mechanism which contains over 700
-invocations of the DEBUG_PRINT macro, 500 function entry macro
-invocations, and over 900 function exit macro invocations --
-leading to a much larger code and data size. Note that these
-values will vary depending on the efficiency of the compiler and
-the compiler options used during generation.
-
- Non-Debug Version: 64K Code, 5K Data, 69K Total
-Debug Version: 137K Code, 58K Data, 195K Total
-
- Linux:
-
-Implemented wbinvd() macro, pending a kernel-wide definition.
-
-Fixed /proc/acpi/event to handle poll() and short reads.
-
- ASL Compiler, version X2026:
-
-Fixed a problem introduced in the previous label where the AML
-
-code emitted for package objects produced packages with zero
-length.
-
- ----------------------------------------
-Summary of changes for this label: 08_16_01
-
-ACPI CA Core Subsystem:
-
-The following ACPI 2.0 ASL operators have been implemented in the
-AML interpreter (These are already supported by the Intel ASL
-compiler): ToDecimalString, ToHexString, ToString, ToInteger,
-and
-ToBuffer. Support for 64-bit AML constants is implemented in the
-AML parser, debugger, and disassembler.
-
-The internal memory tracking mechanism (leak detection code) has
-been upgraded to reduce the memory overhead (a separate tracking
-block is no longer allocated for each memory allocation), and now
-supports all of the internal object caches.
-
-The data structures and code for the internal object caches have
-been coelesced and optimized so that there is a single cache and
-memory list data structure and a single group of functions that
-implement generic cache management. This has reduced the code
-size in both the debug and release versions of the subsystem.
-
-The DEBUG_PRINT macro(s) have been optimized for size and
-replaced
-by ACPI_DEBUG_PRINT. The syntax for this macro is slightly
-different, because it generates a single call to an internal
-function. This results in a savings of about 90 bytes per
-invocation, resulting in an overall code and data savings of
-about
-16% in the debug version of the subsystem.
-
- Linux:
-
-Fixed C3 disk corruption problems and re-enabled C3 on supporting
-machines.
-
-Integrated low-level sleep code by Patrick Mochel.
-
-Further tweaked source code Linuxization.
-
-Other minor fixes.
-
- ASL Compiler:
-
-Support for ACPI 2.0 variable length packages is fixed/completed.
-
-Fixed a problem where the optional length parameter for the ACPI
-2.0 ToString operator.
-
-Fixed multiple extraneous error messages when a syntax error is
-detected within the declaration line of a control method.
-
- ----------------------------------------
-Summary of changes for this label: 07_17_01
-
-ACPI CA Core Subsystem:
-
-Added a new interface named AcpiGetFirmwareTable to obtain any
-ACPI table via the ACPI signature. The interface can be called
-at
-any time during kernel initialization, even before the kernel
-virtual memory manager is initialized and paging is enabled.
-This
-allows kernel subsystems to obtain ACPI tables very early, even
-before the ACPI CA subsystem is initialized.
-
-Fixed a problem where Fields defined with the AnyAcc attribute
-could be resolved to the incorrect address under the following
-conditions: 1) the field width is larger than 8 bits and 2) the
-parent operation region is not defined on a DWORD boundary.
-
-Fixed a problem where the interpreter is not being locked during
-namespace initialization (during execution of the _INI control
-methods), causing an error when an attempt is made to release it
-later.
-
-ACPI 2.0 support in the AML Interpreter has begun and will be
-ongoing throughout the rest of this year. In this label, The Mod
-operator is implemented.
-
-Added a new data type to contain full PCI addresses named
-ACPI_PCI_ID. This structure contains the PCI Segment, Bus,
-Device,
-and Function values.
-
- Linux:
-
-Enhanced the Linux version of the source code to change most
-capitalized ACPI type names to lowercase. For example, all
-instances of ACPI_STATUS are changed to acpi_status. This will
-result in a large diff, but the change is strictly cosmetic and
-aligns the CA code closer to the Linux coding standard.
-
-OSL Interfaces:
-
-The interfaces to the PCI configuration space have been changed
-to
-add the PCI Segment number and to split the single 32-bit
-combined
-DeviceFunction field into two 16-bit fields. This was
-accomplished by moving the four values that define an address in
-PCI configuration space (segment, bus, device, and function) to
-the new ACPI_PCI_ID structure.
-
-The changes to the PCI configuration space interfaces led to a
-reexamination of the complete set of address space access
-interfaces for PCI, I/O, and Memory. The previously existing 18
-interfaces have proven difficult to maintain (any small change
-must be propagated across at least 6 interfaces) and do not
-easily
-allow for future expansion to 64 bits if necessary. Also, on
-some
-systems, it would not be appropriate to demultiplex the access
-width (8, 16, 32,or 64) before calling the OSL if the
-corresponding native OS interfaces contain a similar access width
-parameter. For these reasons, the 18 address space interfaces
-have been replaced by these 6 new ones:
-
-AcpiOsReadPciConfiguration
-AcpiOsWritePciConfiguration
-AcpiOsReadMemory
-AcpiOsWriteMemory
-AcpiOsReadPort
-AcpiOsWritePort
-
-Added a new interface named AcpiOsGetRootPointer to allow the OSL
-to perform the platform and/or OS-specific actions necessary to
-obtain the ACPI RSDP table pointer. On IA-32 platforms, this
-interface will simply call down to the CA core to perform the low-
-memory search for the table. On IA-64, the RSDP is obtained from
-EFI. Migrating this interface to the OSL allows the CA core to
-
-remain OS and platform independent.
-
-Added a new interface named AcpiOsSignal to provide a generic
-"function code and pointer" interface for various miscellaneous
-signals and notifications that must be made to the host OS. The
-first such signals are intended to support the ASL Fatal and
-Breakpoint operators. In the latter case, the AcpiOsBreakpoint
-interface has been obsoleted.
-
-The definition of the AcpiFormatException interface has been
-changed to simplify its use. The caller no longer must supply a
-buffer to the call; A pointer to a const string is now returned
-directly. This allows the call to be easily used in printf
-statements, etc. since the caller does not have to manage a local
-buffer.
-
-
- ASL Compiler, Version X2025:
-
-The ACPI 2.0 Switch/Case/Default operators have been implemented
-and are fully functional. They will work with all ACPI 1.0
-interpreters, since the operators are simply translated to
-If/Else
-pairs.
-
-The ACPI 2.0 ElseIf operator is implemented and will also work
-with 1.0 interpreters, for the same reason.
-
-Implemented support for ACPI 2.0 variable-length packages. These
-packages have a separate opcode, and their size is determined by
-the interpreter at run-time.
-
-Documentation The ACPI CA Programmer Reference has been updated
-to
-reflect the new interfaces and changes to existing interfaces.
-
- ------------------------------------------
-Summary of changes for this label: 06_15_01
-
- ACPI CA Core Subsystem:
-
-Fixed a problem where a DWORD-accessed field within a Buffer
-object would get its byte address inadvertently rounded down to
-the nearest DWORD. Buffers are always Byte-accessible.
-
- ASL Compiler, version X2024:
-
-Fixed a problem where the Switch() operator would either fault or
-hang the compiler. Note however, that the AML code for this ACPI
-2.0 operator is not yet implemented.
-
-Compiler uses the new AcpiOsGetTimer interface to obtain compile
-timings.
-
-Implementation of the CreateField operator automatically converts
-a reference to a named field within a resource descriptor from a
-byte offset to a bit offset if required.
-
-Added some missing named fields from the resource descriptor
-support. These are the names that are automatically created by
-the
-compiler to reference fields within a descriptor. They are only
-valid at compile time and are not passed through to the AML
-interpreter.
-
-Resource descriptor named fields are now typed as Integers and
-subject to compile-time typechecking when used in expressions.
-
- ------------------------------------------
-Summary of changes for this label: 05_18_01
-
- ACPI CA Core Subsystem:
-
-Fixed a couple of problems in the Field support code where bits
-from adjacent fields could be returned along with the proper
-field
-bits. Restructured the field support code to improve performance,
-readability and maintainability.
-
-New DEBUG_PRINTP macro automatically inserts the procedure name
-into the output, saving hundreds of copies of procedure name
-strings within the source, shrinking the memory footprint of the
-debug version of the core subsystem.
-
- Source Code Structure:
-
-The source code directory tree was restructured to reflect the
-current organization of the component architecture. Some files
-and directories have been moved and/or renamed.
-
- Linux:
-
-Fixed leaking kacpidpc processes.
-
-Fixed queueing event data even when /proc/acpi/event is not
-opened.
-
- ASL Compiler, version X2020:
-
-Memory allocation performance enhancement - over 24X compile time
-improvement on large ASL files. Parse nodes and namestring
-buffers are now allocated from a large internal compiler buffer.
-
-The temporary .SRC file is deleted unless the "-s" option is
-specified
-
-The "-d" debug output option now sends all output to the .DBG
-file
-instead of the console.
-
-"External" second parameter is now optional
-
-"ElseIf" syntax now properly allows the predicate
-
-Last operand to "Load" now recognized as a Target operand
-
-Debug object can now be used anywhere as a normal object.
-
-ResourceTemplate now returns an object of type BUFFER
-
-EISAID now returns an object of type INTEGER
-
-"Index" now works with a STRING operand
-
-"LoadTable" now accepts optional parameters
-
-"ToString" length parameter is now optional
-
-"Interrupt (ResourceType," parse error fixed.
-
-"Register" with a user-defined region space parse error fixed
-
-Escaped backslash at the end of a string ("\\") scan/parse error
-fixed
-
-"Revision" is now an object of type INTEGER.
-
-
-
-------------------------------------------
-Summary of changes for this label: 05_02_01
-
-Linux:
-
-/proc/acpi/event now blocks properly.
-
-Removed /proc/sys/acpi. You can still dump your DSDT from
-/proc/acpi/dsdt.
-
- ACPI CA Core Subsystem:
-
-Fixed a problem introduced in the previous label where some of
-the
-"small" resource descriptor types were not recognized.
-
-Improved error messages for the case where an ASL Field is
-outside
-the range of the parent operation region.
-
- ASL Compiler, version X2018:
-
-
-Added error detection for ASL Fields that extend beyond the
-length
-of the parent operation region (only if the length of the region
-is known at compile time.) This includes fields that have a
-minimum access width that is smaller than the parent region, and
-individual field units that are partially or entirely beyond the
-extent of the parent.
-
-
-
-------------------------------------------
-Summary of changes for this label: 04_27_01
-
- ACPI CA Core Subsystem:
-
-Fixed a problem where the namespace mutex could be released at
-the
-wrong time during execution of AcpiRemoveAddressSpaceHandler.
-
-Added optional thread ID output for debug traces, to simplify
-debugging of multiple threads. Added context switch notification
-when the debug code realizes that a different thread is now
-executing ACPI code.
-
-Some additional external data types have been prefixed with the
-string "ACPI_" for consistency. This may effect existing code.
-The data types affected are the external callback typedefs -
-e.g.,
-
-WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
-
- Linux:
-
-Fixed an issue with the OSL semaphore implementation where a
-thread was waking up with an error from receiving a SIGCHLD
-signal.
-
-Linux version of ACPI CA now uses the system C library for string
-manipulation routines instead of a local implementation.
-
-Cleaned up comments and removed TBDs.
-
- ASL Compiler, version X2017:
-
-Enhanced error detection and reporting for all file I/O
-operations.
-
- Documentation:
-
-Programmer Reference updated to version 1.06.
-
-
-
-------------------------------------------
-Summary of changes for this label: 04_13_01
-
- ACPI CA Core Subsystem:
-
-Restructured support for BufferFields and RegionFields.
-BankFields support is now fully operational. All known 32-bit
-limitations on field sizes have been removed. Both BufferFields
-and (Operation) RegionFields are now supported by the same field
-management code.
-
-Resource support now supports QWORD address and IO resources. The
-16/32/64 bit address structures and the Extended IRQ structure
-have been changed to properly handle Source Resource strings.
-
-A ThreadId of -1 is now used to indicate a "mutex not acquired"
-condition internally and must never be returned by
-AcpiOsThreadId.
-This reserved value was changed from 0 since Unix systems allow a
-thread ID of 0.
-
-Linux:
-
-Driver code reorganized to enhance portability
-
-Added a kernel configuration option to control ACPI_DEBUG
-
-Fixed the EC driver to honor _GLK.
-
-ASL Compiler, version X2016:
-
-Fixed support for the "FixedHw" keyword. Previously, the FixedHw
-address space was set to 0, not 0x7f as it should be.
-
- ------------------------------------------
-Summary of changes for this label: 03_13_01
-
- ACPI CA Core Subsystem:
-
-During ACPI initialization, the _SB_._INI method is now run if
-present.
-
-Notify handler fix - notifies are deferred until the parent
-method
-completes execution. This fixes the "mutex already acquired"
-issue seen occasionally.
-
-Part of the "implicit conversion" rules in ACPI 2.0 have been
-found to cause compatibility problems with existing ASL/AML. The
-convert "result-to-target-type" implementation has been removed
-for stores to method Args and Locals. Source operand conversion
-is still fully implemented. Possible changes to ACPI 2.0
-specification pending.
-
-Fix to AcpiRsCalculatePciRoutingTableLength to return correct
-length.
-
-Fix for compiler warnings for 64-bit compiles.
-
- Linux:
-
-/proc output aligned for easier parsing.
-
-Release-version compile problem fixed.
-
-New kernel configuration options documented in Configure.help.
-
-IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
-context" message.
-
- OSPM:
-
-Power resource driver integrated with bus manager.
-
-Fixed kernel fault during active cooling for thermal zones.
-
-Source Code:
-
-The source code tree has been restructured.
-
-
-
-------------------------------------------
-Summary of changes for this label: 03_02_01
-
- Linux OS Services Layer (OSL):
-
-Major revision of all Linux-specific code.
-
-Modularized all ACPI-specific drivers.
-
-Added new thermal zone and power resource drivers.
-
-Revamped /proc interface (new functionality is under /proc/acpi).
-
-New kernel configuration options.
-
- Linux known issues:
-
-New kernel configuration options not documented in Configure.help
-yet.
-
-
-Module dependencies not currently implemented. If used, they
-should be loaded in this order: busmgr, power, ec, system,
-processor, battery, ac_adapter, button, thermal.
-
-Modules will not load if CONFIG_MODVERSION is set.
-
-IBM 600E - entering S5 may reboot instead of shutting down.
-
-IBM 600E - Sleep button may generate "Invalid <NULL> context"
-message.
-
-Some systems may fail with "execution mutex already acquired"
-message.
-
- ACPI CA Core Subsystem:
-
-Added a new OSL Interface, AcpiOsGetThreadId. This was required
-for the deadlock detection code. Defined to return a non-zero,
-32-
-bit thread ID for the currently executing thread. May be a non-
-zero constant integer on single-thread systems.
-
-Implemented deadlock detection for internal subsystem mutexes.
-We
-may add conditional compilation for this code (debug only) later.
-
-ASL/AML Mutex object semantics are now fully supported. This
-includes multiple acquires/releases by owner and support for the
-
-Mutex SyncLevel parameter.
-
-A new "Force Release" mechanism automatically frees all ASL
-Mutexes that have been acquired but not released when a thread
-exits the interpreter. This forces conformance to the ACPI spec
-("All mutexes must be released when an invocation exits") and
-prevents deadlocked ASL threads. This mechanism can be expanded
-(later) to monitor other resource acquisitions if OEM ASL code
-continues to misbehave (which it will).
-
-Several new ACPI exception codes have been added for the Mutex
-support.
-
-Recursive method calls are now allowed and supported (the ACPI
-spec does in fact allow recursive method calls.) The number of
-recursive calls is subject to the restrictions imposed by the
-SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
-parameter.
-
-Implemented support for the SyncLevel parameter for control
-methods (ACPI 2.0 feature)
-
-Fixed a deadlock problem when multiple threads attempted to use
-the interpreter.
-
-Fixed a problem where the string length of a String package
-element was not always set in a package returned from
-AcpiEvaluateObject.
-
-Fixed a problem where the length of a String package element was
-not always included in the length of the overall package returned
-from AcpiEvaluateObject.
-
-Added external interfaces (Acpi*) to the ACPI debug memory
-manager. This manager keeps a list of all outstanding
-allocations, and can therefore detect memory leaks and attempts
-to
-free memory blocks more than once. Useful for code such as the
-power manager, etc. May not be appropriate for device drivers.
-Performance with the debug code enabled is slow.
-
-The ACPI Global Lock is now an optional hardware element.
-
- ASL Compiler Version X2015:
-
-Integrated changes to allow the compiler to be generated on
-multiple platforms.
-
-Linux makefile added to generate the compiler on Linux
-
- Source Code:
-
-All platform-specific headers have been moved to their own
-subdirectory, Include/Platform.
-
-New source file added, Interpreter/ammutex.c
-
-New header file, Include/acstruct.h
-
- Documentation:
-
-The programmer reference has been updated for the following new
-interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
-
- ------------------------------------------
-Summary of changes for this label: 02_08_01
-
-Core ACPI CA Subsystem: Fixed a problem where an error was
-incorrectly returned if the return resource buffer was larger
-than
-the actual data (in the resource interfaces).
-
-References to named objects within packages are resolved to the
-
-full pathname string before packages are returned directly (via
-the AcpiEvaluateObject interface) or indirectly via the resource
-interfaces.
-
-Linux OS Services Layer (OSL):
-
-Improved /proc battery interface.
-
-
-Added C-state debugging output and other miscellaneous fixes.
-
-ASL Compiler Version X2014:
-
-All defined method arguments can now be used as local variables,
-including the ones that are not actually passed in as parameters.
-The compiler tracks initialization of the arguments and issues an
-exception if they are used without prior assignment (just like
-locals).
-
-The -o option now specifies a filename prefix that is used for
-all
-output files, including the AML output file. Otherwise, the
-default behavior is as follows: 1) the AML goes to the file
-specified in the DSDT. 2) all other output files use the input
-source filename as the base.
-
- ------------------------------------------
-Summary of changes for this label: 01_25_01
-
-Core ACPI CA Subsystem: Restructured the implementation of object
-store support within the interpreter. This includes support for
-the Store operator as well as any ASL operators that include a
-target operand.
-
-Partially implemented support for Implicit Result-to-Target
-conversion. This is when a result object is converted on the fly
-to the type of an existing target object. Completion of this
-support is pending further analysis of the ACPI specification
-concerning this matter.
-
-CPU-specific code has been removed from the subsystem (hardware
-directory).
-
-New Power Management Timer functions added
-
-Linux OS Services Layer (OSL): Moved system state transition code
-to the core, fixed it, and modified Linux OSL accordingly.
-
-Fixed C2 and C3 latency calculations.
-
-
-We no longer use the compilation date for the version message on
-initialization, but retrieve the version from
-AcpiGetSystemInfo().
-
-Incorporated for fix Sony VAIO machines.
-
-Documentation: The Programmer Reference has been updated and
-reformatted.
-
-
-ASL Compiler: Version X2013: Fixed a problem where the line
-numbering and error reporting could get out of sync in the
-presence of multiple include files.
-
- ------------------------------------------
-Summary of changes for this label: 01_15_01
-
-Core ACPI CA Subsystem:
-
-Implemented support for type conversions in the execution of the
-ASL Concatenate operator (The second operand is converted to
-match the type of the first operand before concatenation.)
-
-Support for implicit source operand conversion is partially
-implemented. The ASL source operand types Integer, Buffer, and
-String are freely interchangeable for most ASL operators and are
-converted by the interpreter on the fly as required. Implicit
-Target operand conversion (where the result is converted to the
-target type before storing) is not yet implemented.
-
-Support for 32-bit and 64-bit BCD integers is implemented.
-
-Problem fixed where a field read on an aligned field could cause
-a
-read past the end of the field.
-
-New exception, AE_AML_NO_RETURN_VALUE, is returned when a method
-does not return a value, but the caller expects one. (The ASL
-compiler flags this as a warning.)
-
-ASL Compiler:
-
-Version X2011:
-1. Static typechecking of all operands is implemented. This
-prevents the use of invalid objects (such as using a Package
-where
-an Integer is required) at compile time instead of at interpreter
-run-time.
-2. The ASL source line is printed with ALL errors and warnings.
-3. Bug fix for source EOF without final linefeed.
-4. Debug option is split into a parse trace and a namespace
-trace.
-5. Namespace output option (-n) includes initial values for
-integers and strings.
-6. Parse-only option added for quick syntax checking.
-7. Compiler checks for duplicate ACPI name declarations
-
-Version X2012:
-1. Relaxed typechecking to allow interchangeability between
-strings, integers, and buffers. These types are now converted by
-the interpreter at runtime.
-2. Compiler reports time taken by each internal subsystem in the
-debug output file.
-
-
- ------------------------------------------
-Summary of changes for this label: 12_14_00
-
-ASL Compiler:
-
-This is the first official release of the compiler. Since the
-compiler requires elements of the Core Subsystem, this label
-synchronizes everything.
-
-------------------------------------------
-Summary of changes for this label: 12_08_00
-
-
-Fixed a problem where named references within the ASL definition
-of both OperationRegions and CreateXXXFields did not work
-properly. The symptom was an AE_AML_OPERAND_TYPE during
-initialization of the region/field. This is similar (but not
-related internally) to the problem that was fixed in the last
-label.
-
-Implemented both 32-bit and 64-bit support for the BCD ASL
-functions ToBCD and FromBCD.
-
-Updated all legal headers to include "2000" in the copyright
-years.
-
- ------------------------------------------
-Summary of changes for this label: 12_01_00
-
-Fixed a problem where method invocations within the ASL
-definition
-of both OperationRegions and CreateXXXFields did not work
-properly. The symptom was an AE_AML_OPERAND_TYPE during
-initialization of the region/field:
-
- nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
-[DEBG] ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
-(0x3005)
-
-Fixed a problem where operators with more than one nested
-subexpression would fail. The symptoms were varied, by mostly
-AE_AML_OPERAND_TYPE errors. This was actually a rather serious
-problem that has gone unnoticed until now.
-
- Subtract (Add (1,2), Multiply (3,4))
-
-Fixed a problem where AcpiGetHandle didn't quite get fixed in the
-previous build (The prefix part of a relative path was handled
-incorrectly).
-
-Fixed a problem where Operation Region initialization failed if
-the operation region name was a "namepath" instead of a simple
-"nameseg". Symptom was an AE_NO_OPERAND error.
-
-Fixed a problem where an assignment to a local variable via the
-indirect RefOf mechanism only worked for the first such
-assignment. Subsequent assignments were ignored.
-
- ------------------------------------------
-Summary of changes for this label: 11_15_00
-
-ACPI 2.0 table support with backwards support for ACPI 1.0 and
-the
-0.71 extensions. Note: although we can read ACPI 2.0 BIOS
-tables,
-the AML interpreter does NOT have support for the new 2.0 ASL
-grammar terms at this time.
-
-All ACPI hardware access is via the GAS structures in the ACPI
-2.0
-FADT.
-
-All physical memory addresses across all platforms are now 64
-bits
-wide. Logical address width remains dependent on the platform
-(i.e., "void *").
-
-AcpiOsMapMemory interface changed to a 64-bit physical address.
-
-The AML interpreter integer size is now 64 bits, as per the ACPI
-2.0 specification.
-
-For backwards compatibility with ACPI 1.0, ACPI tables with a
-revision number less than 2 use 32-bit integers only.
-
-Fixed a problem where the evaluation of OpRegion operands did not
-always resolve them to numbers properly.
-
-------------------------------------------
-Summary of changes for this label: 10_20_00
-
-Fix for CBN_._STA issue. This fix will allow correct access to
-CBN_ OpRegions when the _STA returns 0x8.
-
-Support to convert ACPI constants (Ones, Zeros, One) to actual
-values before a package object is returned
-
-Fix for method call as predicate to if/while construct causing
-incorrect if/while behavior
-
-Fix for Else block package lengths sometimes calculated wrong (if
-block > 63 bytes)
-
-Fix for Processor object length field, was always zero
-
-Table load abort if FACP sanity check fails
-
-Fix for problem with Scope(name) if name already exists
-
-Warning emitted if a named object referenced cannot be found
-(resolved) during method execution.
-
-
-
-
-
-------------------------------------------
-Summary of changes for this label: 9_29_00
-
-New table initialization interfaces: AcpiInitializeSubsystem no
-longer has any parameters AcpiFindRootPointer - Find the RSDP (if
-necessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
->RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
-AcpiLoadTables
-
-Note: These interface changes require changes to all existing
-OSDs
-
-The PCI_Config default address space handler is always installed
-at the root namespace object.
-
--------------------------------------------
-Summary of changes for this label: 09_15_00
-
-The new initialization architecture is implemented. New
-interfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
-AcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
-
-(Namespace is automatically loaded when a table is loaded)
-
-The ACPI_OPERAND_OBJECT has been optimized to shrink its size
-from
-52 bytes to 32 bytes. There is usually one of these for every
-namespace object, so the memory savings is significant.
-
-Implemented just-in-time evaluation of the CreateField operators.
-
-Bug fixes for IA-64 support have been integrated.
-
-Additional code review comments have been implemented
-
-The so-called "third pass parse" has been replaced by a final
-walk
-through the namespace to initialize all operation regions
-(address
-spaces) and fields that have not yet been initialized during the
-execution of the various _INI and REG methods.
-
-New file - namespace/nsinit.c
-
--------------------------------------------
-Summary of changes for this label: 09_01_00
-
-Namespace manager data structures have been reworked to change
-the
-primary object from a table to a single object. This has
-resulted in dynamic memory savings of 3X within the namespace
-and
-2X overall in the ACPI CA subsystem.
-
-Fixed problem where the call to AcpiEvFindPciRootBuses was
-inadvertently left commented out.
-
-Reduced the warning count when generating the source with the GCC
-compiler.
-
-Revision numbers added to each module header showing the
-SourceSafe version of the file. Please refer to this version
-number when giving us feedback or comments on individual modules.
-
-The main object types within the subsystem have been renamed to
-clarify their purpose:
-
-ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
-ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
-ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
-
-NOTE: no changes to the initialization sequence are included in
-this label.
-
--------------------------------------------
-Summary of changes for this label: 08_23_00
-
-Fixed problem where TerminateControlMethod was being called
-multiple times per method
-
-Fixed debugger problem where single stepping caused a semaphore
-to
-be oversignalled
-
-Improved performance through additional parse object caching -
-added ACPI_EXTENDED_OP type
-
--------------------------------------------
-Summary of changes for this label: 08_10_00
-
-Parser/Interpreter integration: Eliminated the creation of
-complete parse trees for ACPI tables and control methods.
-Instead, parse subtrees are created and then deleted as soon as
-they are processed (Either entered into the namespace or
-executed
-by the interpreter). This reduces the use of dynamic kernel
-memory significantly. (about 10X)
-
-Exception codes broken into classes and renumbered. Be sure to
-recompile all code that includes acexcep.h. Hopefully we won't
-have to renumber the codes again now that they are split into
-classes (environment, programmer, AML code, ACPI table, and
-internal).
-
-Fixed some additional alignment issues in the Resource Manager
-subcomponent
-
-Implemented semaphore tracking in the AcpiExec utility, and fixed
-several places where mutexes/semaphores were being unlocked
-without a corresponding lock operation. There are no known
-semaphore or mutex "leaks" at this time.
-
-Fixed the case where an ASL Return operator is used to return an
-unnamed package.
-
--------------------------------------------
-Summary of changes for this label: 07_28_00
-
-Fixed a problem with the way addresses were calculated in
-AcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This problem
-manifested itself when a Field was created with WordAccess or
-DwordAccess, but the field unit defined within the Field was
-less
-
-than a Word or Dword.
-
-Fixed a problem in AmlDumpOperands() module's loop to pull
-operands off of the operand stack to display information. The
-problem manifested itself as a TLB error on 64-bit systems when
-accessing an operand stack with two or more operands.
-
-Fixed a problem with the PCI configuration space handlers where
-context was getting confused between accesses. This required a
-change to the generic address space handler and address space
-setup definitions. Handlers now get both a global handler
-context
-(this is the one passed in by the user when executing
-AcpiInstallAddressSpaceHandler() and a specific region context
-that is unique to each region (For example, the _ADR, _SEG and
-_BBN values associated with a specific region). The generic
-function definitions have changed to the following:
-
-typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
-UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
-*HandlerContext, // This used to be void *Context void
-*RegionContext); // This is an additional parameter
-
-typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
-RegionHandle, UINT32 Function, void *HandlerContext, void
-**RegionContext); // This used to be **ReturnContext
-
--------------------------------------------
-Summary of changes for this label: 07_21_00
-
-Major file consolidation and rename. All files within the
-interpreter have been renamed as well as most header files.
-This
-was done to prevent collisions with existing files in the host
-OSs -- filenames such as "config.h" and "global.h" seem to be
-quite common. The VC project files have been updated. All
-makefiles will require modification.
-
-The parser/interpreter integration continues in Phase 5 with the
-implementation of a complete 2-pass parse (the AML is parsed
-twice) for each table; This avoids the construction of a huge
-parse tree and therefore reduces the amount of dynamic memory
-required by the subsystem. Greater use of the parse object cache
-means that performance is unaffected.
-
-Many comments from the two code reviews have been rolled in.
-
-The 64-bit alignment support is complete.
-
--------------------------------------------
-Summary of changes for this label: 06_30_00
-
-With a nod and a tip of the hat to the technology of yesteryear,
-we've added support in the source code for 80 column output
-devices. The code is now mostly constrained to 80 columns or
-less to support environments and editors that 1) cannot display
-or print more than 80 characters on a single line, and 2) cannot
-disable line wrapping.
-
-A major restructuring of the namespace data structure has been
-completed. The result is 1) cleaner and more
-understandable/maintainable code, and 2) a significant reduction
-in the dynamic memory requirement for each named ACPI object
-(almost half).
-
--------------------------------------------
-Summary of changes for this label: 06_23_00
-
-Linux support has been added. In order to obtain approval to get
-the ACPI CA subsystem into the Linux kernel, we've had to make
-quite a few changes to the base subsystem that will affect all
-users (all the changes are generic and OS- independent). The
-effects of these global changes have been somewhat far reaching.
-Files have been merged and/or renamed and interfaces have been
-renamed. The major changes are described below.
-
-Osd* interfaces renamed to AcpiOs* to eliminate namespace
-pollution/confusion within our target kernels. All OSD
-interfaces must be modified to match the new naming convention.
-
-Files merged across the subsystem. A number of the smaller
-source
-and header files have been merged to reduce the file count and
-increase the density of the existing files. There are too many
-to list here. In general, makefiles that call out individual
-files will require rebuilding.
-
-Interpreter files renamed. All interpreter files now have the
-prefix am* instead of ie* and is*.
-
-Header files renamed: The acapi.h file is now acpixf.h. The
-acpiosd.h file is now acpiosxf.h. We are removing references to
-the acronym "API" since it is somewhat windowsy. The new name is
-"external interface" or xface or xf in the filenames.j
-
-
-All manifest constants have been forced to upper case (some were
-mixed case.) Also, the string "ACPI_" has been prepended to
-many
-(not all) of the constants, typedefs, and structs.
-
-The globals "DebugLevel" and "DebugLayer" have been renamed
-"AcpiDbgLevel" and "AcpiDbgLayer" respectively.
-
-All other globals within the subsystem are now prefixed with
-"AcpiGbl_" Internal procedures within the subsystem are now
-prefixed with "Acpi" (with only a few exceptions). The original
-two-letter abbreviation for the subcomponent remains after
-"Acpi"
-- for example, CmCallocate became AcpiCmCallocate.
-
-Added a source code translation/conversion utility. Used to
-generate the Linux source code, it can be modified to generate
-other types of source as well. Can also be used to cleanup
-existing source by removing extraneous spaces and blank lines.
-Found in tools/acpisrc/*
-
-OsdUnMapMemory was renamed to OsdUnmapMemory and then
-AcpiOsUnmapMemory. (UnMap became Unmap).
-
-A "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
-When set to one, this indicates that the caller wants to use the
-
-semaphore as a mutex, not a counting semaphore. ACPI CA uses
-both types. However, implementers of this call may want to use
-different OS primitives depending on the type of semaphore
-requested. For example, some operating systems provide separate
-
-"mutex" and "semaphore" interfaces - where the mutex interface
-is
-much faster because it doesn't have all the overhead of a full
-semaphore implementation.
-
-Fixed a deadlock problem where a method that accesses the PCI
-address space can block forever if it is the first access to the
-space.
-
--------------------------------------------
-Summary of changes for this label: 06_02_00
-
-Support for environments that cannot handle unaligned data
-accesses (e.g. firmware and OS environments devoid of alignment
-handler technology namely SAL/EFI and the IA-64 Linux kernel)
-has
-been added (via configurable macros) in these three areas: -
-Transfer of data from the raw AML byte stream is done via byte
-moves instead of word/dword/qword moves. - External objects
-are
-aligned within the user buffer, including package elements (sub-
-objects). - Conversion of name strings to UINT32 Acpi Names is
-now
-done byte-wise.
-
-The Store operator was modified to mimic Microsoft's
-implementation when storing to a Buffer Field.
-
-Added a check of the BM_STS bit before entering C3.
-
-The methods subdirectory has been obsoleted and removed. A new
-file, cmeval.c subsumes the functionality.
-
-A 16-bit (DOS) version of AcpiExec has been developed. The
-makefile is under the acpiexec directory.
OpenPOWER on IntegriCloud