3800 lines
139 KiB
Plaintext
3800 lines
139 KiB
Plaintext
----------------------------------------
|
|
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.
|