mirror of
https://github.com/acpica/acpica/
synced 2025-02-22 08:24:12 +03:00
804 lines
28 KiB
Plaintext
804 lines
28 KiB
Plaintext
------------------------------------------
|
||
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.
|