2005-07-09 02:43:18 +00:00
|
|
|
|
----------------------------------------
|
2005-07-09 02:45:45 +00:00
|
|
|
|
Summary of changes for this label: 09_20_01
|
2005-07-09 02:43:18 +00:00
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:44:55 +00:00
|
|
|
|
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 <20>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 <20>static object<63> 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
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:43:18 +00:00
|
|
|
|
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:
|
|
|
|
|
|
2005-07-09 02:44:06 +00:00
|
|
|
|
Fixed a problem introduced in the previous label where the AML code emitted
|
|
|
|
|
for package objects produced packages with zero length.
|
2005-07-09 02:43:18 +00:00
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:42:30 +00:00
|
|
|
|
----------------------------------------
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:41:41 +00:00
|
|
|
|
----------------------------------------
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:40:52 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:40:02 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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 <20>-s<> option is specified
|
|
|
|
|
|
|
|
|
|
The <20>-d<> debug output option now sends all output to the .DBG file instead
|
|
|
|
|
of the console.
|
|
|
|
|
|
|
|
|
|
<EFBFBD>External<EFBFBD> second parameter is now optional
|
|
|
|
|
|
|
|
|
|
<EFBFBD>ElseIf<EFBFBD> syntax now properly allows the predicate
|
|
|
|
|
|
|
|
|
|
Last operand to <20>Load<61> 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
|
|
|
|
|
|
|
|
|
|
<EFBFBD>Index<EFBFBD> now works with a STRING operand
|
|
|
|
|
|
|
|
|
|
<EFBFBD>LoadTable<EFBFBD> now accepts optional parameters
|
|
|
|
|
|
|
|
|
|
<EFBFBD>ToString<EFBFBD> length parameter is now optional
|
|
|
|
|
|
|
|
|
|
<EFBFBD>Interrupt (ResourceType,<2C> parse error fixed.
|
|
|
|
|
|
|
|
|
|
<EFBFBD>Register<EFBFBD> with a user-defined region space parse error fixed
|
|
|
|
|
|
|
|
|
|
Escaped backslash at the end of a string (<28>\\<5C>) scan/parse error fixed
|
|
|
|
|
|
|
|
|
|
<EFBFBD>Revision<EFBFBD> is now an object of type INTEGER.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:39:12 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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 <20>small<6C>
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:38:23 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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
|
|
|
|
|
<EFBFBD>ACPI_<EFBFBD> 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:37:34 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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 <20>mutex not acquired<65>
|
|
|
|
|
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 <20>FixedHw<48> keyword. Previously, the FixedHw
|
|
|
|
|
address space was set to 0, not 0x7f as it should be.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:36:44 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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 <20>mutex already acquired<65> issue
|
|
|
|
|
seen occasionally.
|
|
|
|
|
|
|
|
|
|
Part of the <20>implicit conversion<6F> rules in ACPI 2.0 have been found to
|
|
|
|
|
cause compatibility problems with existing ASL/AML. The convert
|
|
|
|
|
<EFBFBD>result-to-target-type<70> 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:35:02 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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.
|
|
|
|
|
|
2005-07-09 02:35:54 +00:00
|
|
|
|
Modules will not load if CONFIG_MODVERSION is set.
|
|
|
|
|
|
2005-07-09 02:35:02 +00:00
|
|
|
|
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 <20>Force Release<73> 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 (<28>All mutexes must be released when an
|
|
|
|
|
invocation exits<74>) 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.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:34:11 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:33:17 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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 <20>2000<30> in the copyright years.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:32:28 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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<64>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 <20>namepath<74> instead of a simple <20>nameseg<65>.
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
2005-07-09 02:31:39 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
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., <20>void *<2A>).
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
2005-07-09 02:30:47 +00:00
|
|
|
|
------------------------------------------
|
|
|
|
|
Summary of changes for this label: 10_20_00
|
|
|
|
|
|
|
|
|
|
Fix for CBN_._STA issue. This fix will allow correct access to CBN_ OpRegions
|
2005-07-09 02:31:39 +00:00
|
|
|
|
when the _STA returns 0x8.
|
2005-07-09 02:30:47 +00:00
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------
|
2005-07-09 02:29:57 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2005-07-09 02:29:07 +00:00
|
|
|
|
-------------------------------------------
|
|
|
|
|
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 <20>third pass parse<73> 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
|
|
|
|
|
|
2005-07-09 02:28:16 +00:00
|
|
|
|
-------------------------------------------
|
|
|
|
|
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.
|