summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/CHANGES.txt
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/CHANGES.txt')
-rw-r--r--sys/contrib/dev/acpica/CHANGES.txt3203
1 files changed, 3203 insertions, 0 deletions
diff --git a/sys/contrib/dev/acpica/CHANGES.txt b/sys/contrib/dev/acpica/CHANGES.txt
new file mode 100644
index 0000000..3b82a15
--- /dev/null
+++ b/sys/contrib/dev/acpica/CHANGES.txt
@@ -0,0 +1,3203 @@
+----------------------------------------
+15 November 2002. Summary of changes for version 20021115.
+
+1) ACPI CA Core Subsystem:
+
+Fixed a memory leak problem where an error during resolution
+of method arguments during a method invocation from another
+method failed to cleanup properly by deleting all successfully
+resolved argument objects.
+
+Fixed a problem where the target of the Index() operator was
+not correctly constructed if the source object was a package.
+This problem has not been detected because the use of a target
+operand with Index() is very rare.
+
+Fixed a problem with the Index() operator where an attempt was
+made to delete the operand objects twice.
+
+Fixed a problem where an attempt was made to delete an operand
+twice during execution of the CondRefOf() operator if the
+target did not exist.
+
+Implemented the first of perhaps several internal create
+object functions that create and initialize a specific object
+type. This consolidates duplicated code wherever the object
+is created, thus shrinking the size of the subsystem.
+
+Implemented improved debug/error messages for errors that
+occur during nested method invocations. All executing method
+pathnames are displayed (with the error) as the call stack is
+unwound - thus simplifying debug.
+
+Fixed a problem introduced in the 10/02 release that caused
+premature deletion of a buffer object if a buffer was used as
+an ASL operand where an integer operand is required (Thus
+causing an implicit object conversion from Buffer to Integer.)
+The change in the 10/02 release was attempting to fix a memory
+leak (albeit incorrectly.)
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a much larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
+ Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
+ Current Release:
+ Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
+ Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
+
+
+2) Linux
+
+Changed the implementation of the ACPI semaphores to use
+down() instead of down_interruptable(). It is important that
+the execution of ACPI control methods not be interrupted by
+signals. Methods must run to completion, or the system may be
+left in an unknown/unstable state.
+
+Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
+set. (Shawn Starr)
+
+
+3) iASL Compiler/Disassembler
+
+Changed the default location of output files. All output
+files are now placed in the current directory by default
+instead of in the directory of the source file. This change
+may affect some existing makefiles, but it brings the behavior
+of the compiler in line with other similar tools. The
+location of the output files can be overridden with the -p
+command line switch.
+
+
+----------------------------------------
+11 November 2002. Summary of changes for version 20021111.
+
+
+0) ACPI Specification 2.0B is released and is now available
+at: http://www.acpi.info/index.html
+
+
+1) ACPI CA Core Subsystem:
+
+Implemented support for the ACPI 2.0 SMBus Operation Regions.
+This includes the early detection and handoff of the request
+to the SMBus region handler (avoiding all of the complex field
+support code), and support for the bidirectional return packet
+from an SMBus write operation. This paves the way for the
+development of SMBus drivers in each host operating system.
+
+Fixed a problem where the semaphore WAIT_FOREVER constant was
+defined as 32 bits, but must be 16 bits according to the ACPI
+specification. This had the side effect of causing ASL
+Mutex/Event timeouts even though the ASL code requested a wait
+forever. Changed all internal references to the ACPI timeout
+parameter to 16 bits to prevent future problems. Changed the
+name of WAIT_FOREVER to ACPI_WAIT_FOREVER.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a much larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
+ Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
+ Current Release:
+ Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
+ Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
+
+
+2) Linux
+
+Module loading/unloading fixes (John Cagle)
+
+
+3) iASL Compiler/Disassembler
+
+Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
+
+Implemented support for the disassembly of all SMBus protocol
+keywords (SMBQuick, SMBWord, etc.)
+
+----------------------------------------
+01 November 2002. Summary of changes for version 20021101.
+
+
+1) ACPI CA Core Subsystem:
+
+Fixed a problem where platforms that have a GPE1 block but no
+GPE0 block were not handled correctly. This resulted in a
+"GPE overlap" error message. GPE0 is no longer required.
+
+Removed code added in the previous release that inserted nodes
+into the namespace in alphabetical order. This caused some
+side-effects on various machines. The root cause of the
+problem is still under investigation since in theory, the
+internal ordering of the namespace nodes should not matter.
+
+Enhanced error reporting for the case where a named object is
+not found during control method execution. The full ACPI
+namepath (name reference) of the object that was not found is
+displayed in this case.
+
+Note: as a result of the overhaul of the namespace object
+types in the previous release, the namespace nodes for the
+predefined scopes (_TZ, _PR, etc.) are now of the type
+ACPI_TYPE_LOCAL_SCOPE instead of ACPI_TYPE_ANY. This
+simplifies the namespace management code but may affect code
+that walks the namespace tree looking for specific object
+types.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a much larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
+ Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
+ Current Release:
+ Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
+ Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
+
+
+2) Linux
+
+Fixed a problem introduced in the previous release where the
+Processor and Thermal objects were not recognized and
+installed in /proc. This was related to the scope type change
+described above.
+
+
+3) iASL Compiler/Disassembler
+
+Implemented the -g option to get all of the required ACPI
+tables from the registry and save them to files (Windows
+version of the compiler only.) The required tables are the
+FADT, FACS, and DSDT.
+
+Added ACPI table checksum validation during table disassembly
+in order to catch corrupted tables.
+
+
+----------------------------------------
+22 October 2002. Summary of changes for version 20021022.
+
+1) ACPI CA Core Subsystem:
+
+Implemented a restriction on the Scope operator that the
+target must already exist in the namespace at the time the
+operator is encountered (during table load or method
+execution). In other words, forward references are not
+allowed and Scope() cannot create a new object. This changes
+the previous behavior where the interpreter would create the
+name if not found. This new behavior correctly enables the
+search-to-root algorithm during namespace lookup of the target
+name. Because of this upsearch, this fixes the known Compaq
+_SB_.OKEC problem and makes both the AML interpreter and iASL
+compiler compatible with other ACPI implementations.
+
+Completed a major overhaul of the internal ACPI object types
+for the ACPI Namespace and the associated operand objects.
+Many of these types had become obsolete with the introduction
+of the two-pass namespace load. This cleanup simplifies the
+code and makes the entire namespace load mechanism much
+clearer and easier to understand.
+
+Improved debug output for tracking scope opening/closing to
+help diagnose scoping issues. The old scope name as well as
+the new scope name are displayed. Also improved error
+messages for problems with ASL Mutex objects and error
+messages for GPE problems.
+
+Cleaned up the namespace dump code, removed obsolete code.
+
+All string output (for all namespace/object dumps) now uses
+the common ACPI string output procedure which handles escapes
+properly and does not emit non-printable characters.
+
+Fixed some issues with constants in the 64-bit version of the
+local C library (utclib.c)
+
+
+2) Linux
+
+EC Driver: No longer attempts to acquire the Global Lock at
+interrupt level.
+
+
+3) iASL Compiler/Disassembler
+
+Implemented ACPI 2.0B grammar change that disallows all Type 1
+and 2 opcodes outside of a control method. This means that
+the "executable" operators (versus the "namespace" operators)
+cannot be used at the table level; they can only be used
+within a control method.
+
+Implemented the restriction on the Scope() operator where the
+target must already exist in the namespace at the time the
+operator is encountered (during ASL compilation). In other
+words, forward references are not allowed and Scope() cannot
+create a new object. This makes the iASL compiler compatible
+with other ACPI implementations and makes the Scope()
+implementation adhere to the ACPI specification.
+
+Fixed a problem where namepath optimization for the Alias
+operator was optimizing the wrong path (of the two namepaths.)
+This caused a "Missing alias link" error message.
+
+Fixed a problem where an "unknown reserved name" warning could
+be incorrectly generated for names like "_SB" when the
+trailing underscore is not used in the original ASL.
+
+Fixed a problem where the reserved name check did not handle
+NamePaths with multiple NameSegs correctly. The first nameseg
+of the NamePath was examined instead of the last NameSeg.
+
+
+----------------------------------------
+
+02 October 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem version 20021002:
+
+Fixed a problem where a store/copy of a string to an existing
+string did not always set the string length properly in the
+String object.
+
+Fixed a reported problem with the ToString operator where the
+behavior was identical to the ToHexString operator instead of
+just simply converting a raw buffer to a string data type.
+
+Fixed a problem where CopyObject and the other "explicit"
+conversion operators were not updating the internal namespace
+node type as part of the store operation.
+
+Fixed a memory leak during implicit source operand conversion
+where the original object was not deleted if it was converted
+to a new object of a different type.
+
+Enhanced error messages for all problems associated with
+namespace lookups. Common procedure generates and prints the
+lookup name as well as the formatted status.
+
+Completed implementation of a new design for the Alias support
+within the namespace. The existing design did not handle the
+case where a new object was assigned to one of the two names
+due to the use of an explicit conversion operator, resulting
+in the two names pointing to two different objects. The new
+design simply points the Alias name to the original name node
+- not to the object. This results in a level of indirection
+that must be handled in the name resolution mechanism.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
+ Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
+ Current Release:
+ Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
+ Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
+
+
+2) Linux
+
+Initialize thermal driver's timer before it is used. (Knut
+Neumann)
+
+Allow handling negative celsius values. (Kochi Takayoshi)
+
+Fix thermal management and make trip points. R/W (Pavel
+Machek)
+
+Fix /proc/acpi/sleep. (P. Christeas)
+
+IA64 fixes. (David Mosberger)
+
+Fix reversed logic in blacklist code. (Sergio Monteiro Basto)
+
+Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
+Brodowski)
+
+
+3) iASL Compiler/Disassembler
+
+Clarified some warning/error messages.
+
+
+----------------------------------------
+18 September 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem version 20020918:
+
+Fixed a reported problem with reference chaining (via the
+Index() and RefOf() operators) in the ObjectType() and
+SizeOf() operators. The definition of these operators
+includes the dereferencing of all chained references to return
+information on the base object.
+
+Fixed a problem with stores to indexed package elements - the
+existing code would not complete the store if an "implicit
+conversion" was not performed. In other words, if the
+existing object (package element) was to be replaced
+completely, the code didn't handle this case.
+
+Relaxed typechecking on the ASL "Scope" operator to allow the
+target name to refer to an object of type Integer, String, or
+Buffer, in addition to the scoping object types (Device,
+predefined Scopes, Processor, PowerResource, and ThermalZone.)
+This allows existing AML code that has workarounds for a bug
+in Windows to function properly. A warning is issued,
+however. This affects both the AML interpreter and the iASL
+compiler. Below is an example of this type of ASL code:
+
+ Name(DEB,0x00)
+ Scope(DEB)
+ {
+
+Fixed some reported problems with 64-bit integer support in
+the local implementation of C library functions (clib.c)
+
+
+2) Linux
+
+Use ACPI fix map region instead of IOAPIC region, since it is
+undefined in non-SMP.
+
+Ensure that the SCI has the proper polarity and trigger, even
+on systems that do not have an interrupt override entry in the
+MADT.
+
+2.5 big driver reorganization (Pat Mochel)
+
+Use early table mapping code from acpitable.c (Andi Kleen)
+
+New blacklist entries (Andi Kleen)
+
+Blacklist improvements. Split blacklist code out into a
+separate file. Move checking the blacklist to very early.
+Previously, we would use ACPI tables, and then halfway through
+init, check the blacklist -- too late. Now, it's early enough
+to completely fall-back to non-ACPI.
+
+
+3) iASL Compiler/Disassembler version 20020918:
+
+Fixed a problem where the typechecking code didn't know that
+an alias could point to a method. In other words, aliases
+were not being dereferenced during typechecking.
+
+
+----------------------------------------
+29 August 2002. Summary of changes for this release.
+
+1) ACPI CA Core Subsystem Version 20020829:
+
+If the target of a Scope() operator already exists, it must be
+an object type that actually opens a scope -- such as a
+Device, Method, Scope, etc. This is a fatal runtime error.
+Similar error check has been added to the iASL compiler also.
+
+Tightened up the namespace load to disallow multiple names in
+the same scope. This previously was allowed if both objects
+were of the same type. (i.e., a lookup was the same as
+entering a new name).
+
+
+2) Linux
+
+Ensure that the ACPI interrupt has the proper trigger and
+polarity.
+
+local_irq_disable is extraneous. (Matthew Wilcox)
+
+Make "acpi=off" actually do what it says, and not use the ACPI
+interpreter *or* the tables.
+
+Added arch-neutral support for parsing SLIT and SRAT tables
+(Kochi Takayoshi)
+
+
+3) iASL Compiler/Disassembler Version 20020829:
+
+Implemented namepath optimization for name declarations. For
+example, a declaration like "Method (\_SB_.ABCD)" would get
+optimized to "Method (ABCD)" if the declaration is within the
+\_SB_ scope. This optimization is in addition to the named
+reference path optimization first released in the previous
+version. This would seem to complete all possible
+optimizations for namepaths within the ASL/AML.
+
+If the target of a Scope() operator already exists, it must be
+an object type that actually opens a scope -- such as a
+Device, Method, Scope, etc.
+
+Implemented a check and warning for unreachable code in the
+same block below a Return() statement.
+
+Fixed a problem where the listing file was not generated if
+the compiler aborted if the maximum error count was exceeded
+(200).
+
+Fixed a problem where the typechecking of method return values
+was broken. This includes the check for a return value when
+the method is invoked as a TermArg (a return value is
+expected.)
+
+Fixed a reported problem where EOF conditions during a quoted
+string or comment caused a fault.
+
+
+----------------------------------------
+15 August 2002. Summary of changes for this release.
+
+1) ACPI CA Core Subsystem Version 20020815:
+
+Fixed a reported problem where a Store to a method argument
+that contains a reference did not perform the indirect store
+correctly. This problem was created during the conversion to
+the new reference object model - the indirect store to a
+method argument code was not updated to reflect the new model.
+
+Reworked the ACPI mode change code to better conform to ACPI
+2.0, handle corner cases, and improve code legibility (Kochi
+Takayoshi)
+
+Fixed a problem with the pathname parsing for the carat (^)
+prefix. The heavy use of the carat operator by the new
+namepath optimization in the iASL compiler uncovered a problem
+with the AML interpreter handling of this prefix. In the case
+where one or more carats precede a single nameseg, the nameseg
+was treated as standalone and the search rule (to root) was
+inadvertently applied. This could cause both the iASL
+compiler and the interpreter to find the wrong object or to
+miss the error that should occur if the object does not exist
+at that exact pathname.
+
+Found and fixed the problem where the HP Pavilion DSDT would
+not load. This was a relatively minor tweak to the table
+loading code (a problem caused by the unexpected encounter
+with a method invocation not within a control method), but it
+does not solve the overall issue of the execution of AML code
+at the table level. This investigation is still ongoing.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
+ Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
+ Current Release:
+ Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
+ Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
+
+
+2) Linux
+
+Remove redundant slab.h include (Brad Hards)
+
+Fix several bugs in thermal.c (Herbert Nachtnebel)
+
+Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
+
+Change acpi_system_suspend to use updated irq functions (Pavel
+Machek)
+
+Export acpi_get_firmware_table (Matthew Wilcox)
+
+Use proper root proc entry for ACPI (Kochi Takayoshi)
+
+Fix early-boot table parsing (Bjorn Helgaas)
+
+
+3) iASL Compiler/Disassembler
+
+Reworked the compiler options to make them more consistent and
+to use two-letter options where appropriate. We were running
+out of sensible letters. This may break some makefiles, so
+check the current options list by invoking the compiler with
+no parameters.
+
+Completed the design and implementation of the ASL namepath
+optimization option for the compiler. This option optimizes
+all references to named objects to the shortest possible path.
+The first attempt tries to utilize a single nameseg (4
+characters) and the "search-to-root" algorithm used by the
+interpreter. If that cannot be used (because either the name
+is not in the search path or there is a conflict with another
+object with the same name), the pathname is optimized using
+the carat prefix (usually a shorter string than specifying the
+entire path from the root.)
+
+Implemented support to obtain the DSDT from the Windows
+registry (when the disassembly option is specified with no
+input file). Added this code as the implementation for
+AcpiOsTableOverride in the Windows OSL. Migrated the 16-bit
+code (used in the AcpiDump utility) to scan memory for the
+DSDT to the AcpiOsTableOverride function in the DOS OSL to
+make the disassembler truly OS independent.
+
+Implemented a new option to disassemble and compile in one
+step. When used without an input filename, this option will
+grab the DSDT from the local machine, disassemble it, and
+compile it in one step.
+
+Added a warning message for invalid escapes (a backslash
+followed by any character other than the allowable escapes).
+This catches the quoted string error "\_SB_" (which should be
+"\\_SB_" ). Also, there are numerous instances in the ACPI
+specification where this error occurs.
+
+Added a compiler option to disable all optimizations. This is
+basically the "compatibility mode" because by using this
+option, the AML code will come out exactly the same as other
+ASL compilers.
+
+Added error messages for incorrectly ordered dependent
+resource functions. This includes: missing EndDependentFn
+macro at end of dependent resource list, nested dependent
+function macros (both start and end), and missing
+StartDependentFn macro. These are common errors that should
+be caught at compile time.
+
+Implemented _OSI support for the disassembler and compiler.
+_OSI must be included in the namespace for proper disassembly
+(because the disassembler must know the number of arguments.)
+
+Added an "optimization" message type that is optional (off by
+default). This message is used for all optimizations -
+including constant folding, integer optimization, and namepath
+optimization.
+
+----------------------------------------
+25 July 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020725:
+
+The AML Disassembler has been enhanced to produce compilable
+ASL code and has been integrated into the iASL compiler (see
+below) as well as the single-step disassembly for the AML
+debugger and the disassembler for the AcpiDump utility. All
+ACPI 2.0A opcodes, resource templates and macros are fully
+supported. The disassembler has been tested on over 30
+different AML files, producing identical AML when the
+resulting disassembled ASL file is recompiled with the same
+ASL compiler.
+
+Modified the Resource Manager to allow zero interrupts and
+zero dma channels during the GetCurrentResources call. This
+was causing problems on some platforms.
+
+Added the AcpiOsRedirectOutput interface to the OSL to
+simplify output redirection for the AcpiOsPrintf and
+AcpiOsVprintf interfaces.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
+ Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
+ Current Release:
+ Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
+ Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
+
+
+2) Linux
+
+Fixed a panic in the EC driver (Dominik Brodowski)
+
+Implemented checksum of the R/XSDT itself during Linux table
+scan (Richard Schaal)
+
+
+3) iASL compiler
+
+The AML disassembler is integrated into the compiler. The "-
+d" option invokes the disassembler to completely disassemble
+an input AML file, producing as output a text ASL file with
+the extension ".dsl" (to avoid name collisions with existing
+.asl source files.) A future enhancement will allow the
+disassembler to obtain the BIOS DSDT from the registry under
+Windows.
+
+Fixed a problem with the VendorShort and VendorLong resource
+descriptors where an invalid AML sequence was created.
+
+Implemented a fix for BufferData term in the ASL parser. It
+was inadvertently defined twice, allowing invalid syntax to
+pass and causing reduction conflicts.
+
+Fixed a problem where the Ones opcode could get converted to a
+value of zero if "Ones" was used where a byte, word or dword
+value was expected. The 64-bit value is now truncated to the
+correct size with the correct value.
+
+
+----------------------------------------
+02 July 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020702:
+
+The Table Manager code has been restructured to add several
+new features. Tables that are not required by the core
+subsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
+no longer validated in any way and are returned from
+AcpiGetFirmwareTable if requested. The AcpiOsTableOverride
+interface is now called for each table that is loaded by the
+subsystem in order to allow the host to override any table it
+chooses. Previously, only the DSDT could be overridden.
+Added one new files, tbrsdt.c and tbgetall.c.
+
+Fixed a problem with the conversion of internal package
+objects to external objects (when a package is returned from a
+control method.) The return buffer length was set to zero
+instead of the proper length of the package object.
+
+Fixed a reported problem with the use of the RefOf and DeRefOf
+operators when passing reference arguments to control methods.
+A new type of Reference object is used internally for
+references produced by the RefOf operator.
+
+Added additional error messages in the Resource Manager to
+explain AE_BAD_DATA errors when they occur during resource
+parsing.
+
+Split the AcpiEnableSubsystem into two primitives to enable a
+finer granularity initialization sequence. These two calls
+should be called in this order: AcpiEnableSubsystem (flags),
+AcpiInitializeObjects (flags). The flags parameter remains
+the same.
+
+
+2) Linux
+
+Updated the ACPI utilities module to understand the new style
+of fully resolved package objects that are now returned from
+the core subsystem. This eliminates errors of the form:
+
+ ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
+ acpi_utils-0430 [145] acpi_evaluate_reference:
+ Invalid element in package (not a device reference)
+
+The method evaluation utility uses the new buffer allocation
+scheme instead of calling AcpiEvaluate Object twice.
+
+Added support for ECDT. This allows the use of the Embedded
+Controller before the namespace has been fully initialized,
+which is necessary for ACPI 2.0 support, and for some laptops
+to initialize properly. (Laptops using ECDT are still rare, so
+only limited testing was performed of the added
+functionality.)
+
+Fixed memory leaks in the EC driver.
+
+Eliminated a brittle code structure in acpi_bus_init().
+
+Eliminated the acpi_evaluate() helper function in utils.c. It
+is no longer needed since acpi_evaluate_object can optionally
+allocate memory for the return object.
+
+Implemented fix for keyboard hang when getting battery
+readings on some systems (Stephen White)
+
+PCI IRQ routing update (Dominik Brodowski)
+
+Fix an ifdef to allow compilation on UP with LAPIC but no
+IOAPIC support
+
+----------------------------------------
+11 June 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020611:
+
+Fixed a reported problem where constants such as Zero and One
+appearing within _PRT packages were not handled correctly
+within the resource manager code. Originally reported against
+the ASL compiler because the code generator now optimizes
+integers to their minimal AML representation (i.e. AML
+constants if possible.) The _PRT code now handles all AML
+constant opcodes correctly (Zero, One, Ones, Revision).
+
+Fixed a problem with the Concatenate operator in the AML
+interpreter where a buffer result object was incorrectly
+marked as not fully evaluated, causing a run-time error of
+AE_AML_INTERNAL.
+
+All package sub-objects are now fully resolved before they are
+returned from the external ACPI interfaces. This means that
+name strings are resolved to object handles, and constant
+operators (Zero, One, Ones, Revision) are resolved to
+Integers.
+
+Implemented immediate resolution of the AML Constant opcodes
+(Zero, One, Ones, Revision) to Integer objects upon detection
+within the AML stream. This has simplified and reduced the
+generated code size of the subsystem by eliminating about 10
+switch statements for these constants (which previously were
+contained in Reference objects.) The complicating issues are
+that the Zero opcode is used as a "placeholder" for
+unspecified optional target operands and stores to constants
+are defined to be no-ops.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
+ Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
+ Current Release:
+ Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
+ Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
+
+
+2) Linux
+
+Added preliminary support for obtaining _TRA data for PCI root
+bridges (Bjorn Helgaas).
+
+
+3) iASL Compiler Version X2046:
+
+Fixed a problem where the "_DDN" reserved name was defined to
+be a control method with one argument. There are no
+arguments, and _DDN does not have to be a control method.
+
+Fixed a problem with the Linux version of the compiler where
+the source lines printed with error messages were the wrong
+lines. This turned out to be the "LF versus CR/LF" difference
+between Windows and Unix. This appears to be the longstanding
+issue concerning listing output and error messages.
+
+Fixed a problem with the Linux version of compiler where
+opcode names within error messages were wrong. This was
+caused by a slight difference in the output of the Flex tool
+on Linux versus Windows.
+
+Fixed a problem with the Linux compiler where the hex output
+files contained some garbage data caused by an internal buffer
+overrun.
+
+
+----------------------------------------
+17 May 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020517:
+
+Implemented a workaround to an BIOS bug discovered on the HP
+OmniBook where the FADT revision number and the table size are
+inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The
+new behavior is to fallback to using only the ACPI 1.0 fields
+of the FADT if the table is too small to be a ACPI 2.0 table
+as claimed by the revision number. Although this is a BIOS
+bug, this is a case where the workaround is simple enough and
+with no side effects, so it seemed prudent to add it. A
+warning message is issued, however.
+
+Implemented minimum size checks for the fixed-length ACPI
+tables -- the FADT and FACS, as well as consistency checks
+between the revision number and the table size.
+
+Fixed a reported problem in the table override support where
+the new table pointer was incorrectly treated as a physical
+address instead of a logical address.
+
+Eliminated the use of the AE_AML_ERROR exception and replaced
+it with more descriptive codes.
+
+Fixed a problem where an exception would occur if an ASL Field
+was defined with no named Field Units underneath it (used by
+some index fields).
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
+ Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
+ Current Release:
+ Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
+ Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
+
+
+
+2) Linux
+
+Much work done on ACPI init (MADT and PCI IRQ routing
+support). (Paul D. and Dominik Brodowski)
+
+Fix PCI IRQ-related panic on boot (Sam Revitch)
+
+Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
+
+Fix "MHz" typo (Dominik Brodowski)
+
+Fix RTC year 2000 issue (Dominik Brodowski)
+
+Preclude multiple button proc entries (Eric Brunet)
+
+Moved arch-specific code out of include/platform/aclinux.h
+
+3) iASL Compiler Version X2044:
+
+Implemented error checking for the string used in the EISAID
+macro (Usually used in the definition of the _HID object.)
+The code now strictly enforces the PnP format - exactly 7
+characters, 3 uppercase letters and 4 hex digits.
+
+If a raw string is used in the definition of the _HID object
+(instead of the EISAID macro), the string must contain all
+alphanumeric characters (e.g., "*PNP0011" is not allowed
+because of the asterisk.)
+
+Implemented checking for invalid use of ACPI reserved names
+for most of the name creation operators (Name, Device, Event,
+Mutex, OperationRegion, PowerResource, Processor, and
+ThermalZone.) Previously, this check was only performed for
+control methods.
+
+Implemented an additional check on the Name operator to emit
+an error if a reserved name that must be implemented in ASL as
+a control method is used. We know that a reserved name must
+be a method if it is defined with input arguments.
+
+The warning emitted when a namespace object reference is not
+found during the cross reference phase has been changed into
+an error. The "External" directive should be used for names
+defined in other modules.
+
+
+4) Tools and Utilities
+
+The 16-bit tools (adump16 and aexec16) have been regenerated
+and tested.
+
+Fixed a problem with the output of both acpidump and adump16
+where the indentation of closing parentheses and brackets was
+not aligned properly with the parent block.
+
+
+----------------------------------------
+03 May 2002. Summary of changes for this release.
+
+
+1) ACPI CA Core Subsystem Version 20020503:
+
+Added support a new OSL interface that allows the host
+operating system software to override the DSDT found in the
+firmware - AcpiOsTableOverride. With this interface, the OSL
+can examine the version of the firmware DSDT and replace it
+with a different one if desired.
+
+Added new external interfaces for accessing ACPI registers
+from device drivers and other system software -
+AcpiGetRegister and AcpiSetRegister. This was simply an
+externalization of the existing AcpiHwBitRegister interfaces.
+
+Fixed a regression introduced in the previous build where the
+ASL/AML CreateField operator always returned an error,
+"destination must be a NS Node".
+
+Extended the maximum time (before failure) to successfully
+enable ACPI mode to 3 seconds.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
+ Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
+ Current Release:
+ Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
+ Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
+
+
+2) Linux
+
+Enhanced ACPI init code for SMP. We are now fully MPS and $PIR-
+free. While 3 out of 4 of our in-house systems work fine, the
+last one still hangs when testing the LAPIC timer.
+
+Renamed many files in 2.5 kernel release to omit "acpi_" from
+the name.
+
+Added warning on boot for Presario 711FR.
+
+Sleep improvements (Pavel Machek)
+
+ACPI can now be built without CONFIG_PCI enabled.
+
+IA64: Fixed memory map functions (JI Lee)
+
+
+3) iASL Compiler Version X2043:
+
+Added support to allow the compiler to be integrated into the
+MS VC++ development environment for one-button compilation of
+single files or entire projects -- with error-to-source-line
+mapping.
+
+Implemented support for compile-time constant folding for the
+Type3, Type4, and Type5 opcodes first defined in the ACPI 2.0
+specification. This allows the ASL writer to use expressions
+instead of Integer/Buffer/String constants in terms that must
+evaluate to constants at compile time and will also simplify
+the emitted AML in any such sub-expressions that can be folded
+(evaluated at compile-time.) This increases the size of the
+compiler significantly because a portion of the ACPI CA AML
+interpreter is included within the compiler in order to pre-
+evaluate constant expressions.
+
+Fixed a problem with the "Unicode" ASL macro that caused the
+compiler to fault. (This macro is used in conjunction with
+the _STR reserved name.)
+
+Implemented an AML opcode optimization to use the Zero, One,
+and Ones opcodes where possible to further reduce the size of
+integer constants and thus reduce the overall size of the
+generated AML code.
+
+Implemented error checking for new reserved terms for ACPI
+version 2.0A.
+
+Implemented the -qr option to display the current list of ACPI
+reserved names known to the compiler.
+
+Implemented the -qc option to display the current list of ASL
+operators that are allowed within constant expressions and can
+therefore be folded at compile time if the operands are
+constants.
+
+
+4) Documentation
+
+Updated the Programmer's Reference for new interfaces, data
+types, and memory allocation model options.
+
+Updated the iASL Compiler User Reference to apply new format
+and add information about new features and options.
+
+----------------------------------------
+19 April 2002. Summary of changes for this release.
+
+1) ACPI CA Core Subsystem Version 20020419:
+
+The source code base for the Core Subsystem has been
+completely cleaned with PC-lint (FlexLint) for both 32-bit and
+64-bit versions. The Lint option files used are included in
+the /acpi/generate/lint directory.
+
+Implemented enhanced status/error checking across the entire
+Hardware manager subsystem. Any hardware errors (reported
+from the OSL) are now bubbled up and will abort a running
+control method.
+
+Fixed a problem where the per-ACPI-table integer width (32 or
+64) was stored only with control method nodes, causing a fault
+when non-control method code was executed during table
+loading. The solution implemented uses a global variable to
+indicate table width across the entire ACPI subsystem.
+Therefore, ACPI CA does not support mixed integer widths
+across different ACPI tables (DSDT, SSDT).
+
+Fixed a problem where NULL extended fields (X fields) in an
+ACPI 2.0 ACPI FADT caused the table load to fail. Although
+the existing ACPI specification is a bit fuzzy on this topic,
+the new behavior is to fall back on a ACPI 1.0 field if the
+corresponding ACPI 2.0 X field is zero (even though the table
+revision indicates a full ACPI 2.0 table.) The ACPI
+specification will be updated to clarify this issue.
+
+Fixed a problem with the SystemMemory operation region handler
+where memory was always accessed byte-wise even if the AML-
+specified access width was larger than a byte. This caused
+problems on systems with memory-mapped I/O. Memory is now
+accessed with the width specified. On systems that do not
+support non-aligned transfers, a check is made to guarantee
+proper address alignment before proceeding in order to avoid
+an AML-caused alignment fault within the kernel.
+
+Fixed a problem with the ExtendedIrq resource where only one
+byte of the 4-byte Irq field was extracted.
+
+Fixed the AcpiExDigitsNeeded() procedure to support _UID.
+This function was out of date and required a rewrite.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
+ Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
+ Current Release:
+ Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
+ Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
+
+
+2) Linux
+
+PCI IRQ routing fixes (Dominik Brodowski)
+
+
+3) iASL Compiler Version X2042:
+
+Implemented an additional compile-time error check for a field
+unit whose size + minimum access width would cause a run-time
+access beyond the end-of-region. Previously, only the field
+size itself was checked.
+
+The Core subsystem and iASL compiler now share a common parse
+object in preparation for compile-time evaluation of the type
+3/4/5 ASL operators.
+
+
+----------------------------------------
+Summary of changes for this release: 03_29_02
+
+1) ACPI CA Core Subsystem Version 20020329:
+
+Implemented support for late evaluation of TermArg operands to
+Buffer and Package objects. This allows complex expressions
+to be used in the declarations of these object types.
+
+Fixed an ACPI 1.0 compatibility issue when reading Fields. In
+ACPI 1.0, if the field was larger than 32 bits, it was
+returned as a buffer - otherwise it was returned as an
+integer. In ACPI 2.0, the field is returned as a buffer only
+if the field is larger than 64 bits. The TableRevision is now
+considered when making this conversion to avoid
+incompatibility with existing ASL code.
+
+Implemented logical addressing for AcpiOsGetRootPointer. This
+allows an RSDP with either a logical or physical address.
+With this support, the host OS can now override all ACPI
+tables with one logical RSDP. Includes implementation of
+"typed" pointer support to allow a common data type for both
+physical and logical pointers internally. This required a
+change to the AcpiOsGetRootPointer interface.
+
+Implemented the use of ACPI 2.0 Generic Address Structures for
+all GPE, Fixed Event, and PM Timer I/O. This allows the use
+of memory mapped I/O for these ACPI features.
+
+Initialization now ignores not only non-required tables (All
+tables other than the FADT, FACS, DSDT, and SSDTs), but also
+does not validate the table headers of unrecognized tables.
+
+Fixed a problem where a notify handler could only be
+installed/removed on an object of type Device. All "notify"
+objects are now supported -- Devices, Processor, Power, and
+Thermal.
+
+Removed most verbosity from the ACPI_DB_INFO debug level.
+Only critical information is returned when this debug level is
+enabled.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release
+ Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
+ Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
+ Current Release:
+ Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
+ Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
+
+
+2) Linux:
+
+The processor driver (acpi_processor.c) now fully supports
+ACPI 2.0-based processor performance control (e.g. Intel(R)
+SpeedStep(TM) technology) Note that older laptops that only
+have the Intel "applet" interface are not supported through
+this. The 'limit' and 'performance' interface (/proc) are
+fully functional. [Note that basic policy for controlling
+performance state transitions will be included in the next
+version of ospmd.] The idle handler was modified to more
+aggressively use C2, and PIIX4 errata handling underwent a
+complete overhaul (big thanks to Dominik Brodowski).
+
+Added support for ACPI-PCI device binding (acpi_pci_root.c).
+_ADR-based devices in the ACPI namespace are now dynamically
+bound (associated) with their PCI counterparts (e.g. PCI1-
+>01:00.0). This allows, among other things, ACPI to resolve
+bus numbers for subordinate PCI bridges.
+
+Enhanced PCI IRQ routing to get the proper bus number for _PRT
+entries defined underneath PCI bridges.
+
+Added IBM 600E to bad bios list due to invalid _ADR value for
+PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
+
+In the process of adding full MADT support (e.g. IOAPIC) for
+IA32 (acpi.c, mpparse.c) -- stay tuned.
+
+Added back visual differentiation between fixed-feature and
+control-method buttons in dmesg. Buttons are also subtyped
+(e.g. button/power/PWRF) to simplify button identification.
+
+We no longer use -Wno-unused when compiling debug. Please
+ignore any "_THIS_MODULE defined but not used" messages.
+
+Can now shut down the system using "magic sysrq" key.
+
+
+3) iASL Compiler version 2041:
+
+Fixed a problem where conversion errors for hex/octal/decimal
+constants were not reported.
+
+Implemented a fix for the General Register template Address
+field. This field was 8 bits when it should be 64.
+
+Fixed a problem where errors/warnings were no longer being
+emitted within the listing output file.
+
+Implemented the ACPI 2.0A restriction on ACPI Table Signatures
+to exactly 4 characters, alphanumeric only.
+
+
+
+
+----------------------------------------
+Summary of changes for this release: 03_08_02
+
+
+1) ACPI CA Core Subsystem Version 20020308:
+
+Fixed a problem with AML Fields where the use of the
+"AccessAny" keyword could cause an interpreter error due to
+attempting to read or write beyond the end of the parent
+Operation Region.
+
+Fixed a problem in the SystemMemory Operation Region handler
+where an attempt was made to map memory beyond the end of the
+region. This was the root cause of the "AE_ERROR" and
+"AE_NO_MEMORY" errors on some Linux systems.
+
+Fixed a problem where the interpreter/namespace "search to
+root" algorithm was not functioning for some object types.
+Relaxed the internal restriction on the search to allow
+upsearches for all external object types as well as most
+internal types.
+
+
+2) Linux:
+
+We now use safe_halt() macro versus individual calls to sti |
+hlt.
+
+Writing to the processor limit interface should now work.
+"echo 1" will increase the limit, 2 will decrease, and 0 will
+reset to the default.
+
+
+3) ASL compiler:
+
+Fixed segfault on Linux version.
+
+
+----------------------------------------
+Summary of changes for this release: 02_25_02
+
+1) ACPI CA Core Subsystem:
+
+
+Fixed a problem where the GPE bit masks were not initialized
+properly, causing erratic GPE behavior.
+
+Implemented limited support for multiple calling conventions.
+The code can be generated with either the VPL (variable
+parameter list, or "C") convention, or the FPL (fixed
+parameter list, or "Pascal") convention. The core subsystem
+is about 3.4% smaller when generated with FPL.
+
+
+2) Linux
+
+Re-add some /proc/acpi/event functionality that was lost
+during the rewrite
+
+Resolved issue with /proc events for fixed-feature buttons
+showing up as the system device.
+
+Fixed checks on C2/C3 latencies to be inclusive of maximum
+values.
+
+Replaced AE_ERRORs in acpi_osl.c with more specific error
+codes.
+
+Changed ACPI PRT option from "pci=noacpi-routing" to
+"pci=noacpi"
+
+Fixed limit interface & usage to fix bugs with passive cooling
+hysterisis.
+
+Restructured PRT support.
+
+
+----------------------------------------
+Summary of changes for this label: 02_14_02
+
+
+1) ACPI CA Core Subsystem:
+
+Implemented support in AcpiLoadTable to allow loading of FACS
+and FADT tables.
+
+Suport for the now-obsolete interim 0.71 64-bit ACPI tables
+has been removed. All 64-bit platforms should be migrated to
+the ACPI 2.0 tables. The actbl71.h header has been removed
+from the source tree.
+
+All C macros defined within the subsystem have been prefixed
+with "ACPI_" to avoid collision with other system include
+files.
+
+Removed the return value for the two AcpiOsPrint interfaces,
+since it is never used and causes lint warnings for ignoring
+the return value.
+
+Added error checking to all internal mutex acquire and release
+calls. Although a failure from one of these interfaces is
+probably a fatal system error, these checks will cause the
+immediate abort of the currently executing method or
+interface.
+
+Fixed a problem where the AcpiSetCurrentResources interface
+could fault. This was a side effect of the deployment of the
+new memory allocation model.
+
+Fixed a couple of problems with the Global Lock support
+introduced in the last major build. The "common" (1.0/2.0)
+internal FACS was being overwritten with the FACS signature
+and clobbering the Global Lock pointer. Also, the actual
+firmware FACS was being unmapped after construction of the
+"common" FACS, preventing access to the actual Global Lock
+field within it. The "common" internal FACS is no longer
+installed as an actual ACPI table; it is used simply as a
+global.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release (02_07_01)
+ Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total
+ Debug Version: 136.9K Code, 56.4K Data, 193.3K Total
+ Current Release:
+ Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
+ Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
+
+
+2) Linux
+
+Updated Linux-specific code for core macro and OSL interface
+changes described above.
+
+Improved /proc/acpi/event. It now can be opened only once and
+has proper poll functionality.
+
+Fixed and restructured power management (acpi_bus).
+
+Only create /proc "view by type" when devices of that class
+exist.
+
+Fixed "charging/discharging" bug (and others) in acpi_battery.
+
+Improved thermal zone code.
+
+
+3) ASL Compiler, version X2039:
+
+Implemented the new compiler restriction on ASL String
+hex/octal escapes to non-null, ASCII values. An error results
+if an invalid value is used. (This will require an ACPI 2.0
+specification change.)
+
+AML object labels that are output to the optional C and ASM
+source are now prefixed with both the ACPI table signature and
+table ID to help guarantee uniqueness within a large BIOS
+project.
+
+
+----------------------------------------
+Summary of changes for this label: 02_01_02
+
+1) ACPI CA Core Subsystem:
+
+ACPI 2.0 support is complete in the entire Core Subsystem and
+the ASL compiler. All new ACPI 2.0 operators are implemented
+and all other changes for ACPI 2.0 support are complete. With
+simultaneous code and data optimizations throughout the
+subsystem, ACPI 2.0 support has been implemented with almost
+no additional cost in terms of code and data size.
+
+Implemented a new mechanism for allocation of return buffers.
+If the buffer length is set to ACPI_ALLOCATE_BUFFER, the
+buffer will be allocated on behalf of the caller.
+Consolidated all return buffer validation and allocation to a
+common procedure. Return buffers will be allocated via the
+primary OSL allocation interface since it appears that a
+separate pool is not needed by most users. If a separate pool
+is required for these buffers, the caller can still use the
+original mechanism and pre-allocate the buffer(s).
+
+Implemented support for string operands within the DerefOf
+operator.
+
+Restructured the Hardware and Event managers to be table
+driven, simplifying the source code and reducing the amount of
+generated code.
+
+Split the common read/write low-level ACPI register bitfield
+procedure into a separate read and write, simplifying the code
+considerably.
+
+Obsoleted the AcpiOsCallocate OSL interface. This interface
+was used only a handful of times and didn't have enough
+critical mass for a separate interface. Replaced with a
+common calloc procedure in the core.
+
+Fixed a reported problem with the GPE number mapping mechanism
+that allows GPE1 numbers to be non-contiguous with GPE0.
+Reorganized the GPE information and shrunk a large array that
+was originally large enough to hold info for all possible GPEs
+(256) to simply large enough to hold all GPEs up to the
+largest GPE number on the machine.
+
+Fixed a reported problem with resource structure alignment on
+64-bit platforms.
+
+Changed the AcpiEnableEvent and AcpiDisableEvent external
+interfaces to not require any flags for the common case of
+enabling/disabling a GPE.
+
+Implemented support to allow a "Notify" on a Processor object.
+
+Most TBDs in comments within the source code have been
+resolved and eliminated.
+
+Fixed a problem in the interpreter where a standalone parent
+prefix (^) was not handled correctly in the interpreter and
+debugger.
+
+Removed obsolete and unnecessary GPE save/restore code.
+
+Implemented Field support in the ASL Load operator. This
+allows a table to be loaded from a named field, in addition to
+loading a table directly from an Operation Region.
+
+Implemented timeout and handle support in the external Global
+Lock interfaces.
+
+Fixed a problem in the AcpiDump utility where pathnames were
+no longer being generated correctly during the dump of named
+objects.
+
+Modified the AML debugger to give a full display of if/while
+predicates instead of just one AML opcode at a time. (The
+predicate can have several nested ASL statements.) The old
+method was confusing during single stepping.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release (12_18_01)
+ Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K
+Total
+ Debug Version: 138.3K Code, 55.9K Data, 194.2K
+Total
+ Current Release:
+ Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K
+Total
+ Debug Version: 136.9K Code, 56.4K Data, 193.3K
+Total
+
+2) Linux
+
+ Implemented fix for PIIX reverse throttling errata (Processor
+driver)
+
+Added new Limit interface (Processor and Thermal drivers)
+
+New thermal policy (Thermal driver)
+
+Many updates to /proc
+
+Battery "low" event support (Battery driver)
+
+Supports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
+
+IA32 - IA64 initialization unification, no longer experimental
+
+Menuconfig options redesigned
+
+3) ASL Compiler, version X2037:
+
+Implemented several new output features to simplify
+integration of AML code into firmware: 1) Output the AML in C
+source code with labels for each named ASL object. The
+original ASL source code is interleaved as C comments. 2)
+Output the AML in ASM source code with labels and interleaved
+ASL source. 3) Output the AML in raw hex table form, in
+either C or ASM.
+
+Implemented support for optional string parameters to the
+LoadTable operator.
+
+Completed support for embedded escape sequences within string
+literals. The compiler now supports all single character
+escapes as well as the Octal and Hex escapes. Note: the
+insertion of a null byte into a string literal (via the
+hex/octal escape) causes the string to be immediately
+terminated. A warning is issued.
+
+Fixed a problem where incorrect AML was generated for the case
+where an ASL namepath consists of a single parent prefix (
+
+) with no trailing name segments.
+
+The compiler has been successfully generated with a 64-bit C
+compiler.
+
+
+
+
+----------------------------------------
+Summary of changes for this label: 12_18_01
+
+1) Linux
+
+Enhanced blacklist with reason and severity fields. Any
+table's signature may now be used to identify a blacklisted
+system.
+
+Call _PIC control method to inform the firmware which
+interrupt model the OS is using. Turn on any disabled link
+devices.
+
+Cleaned up busmgr /proc error handling (Andreas Dilger)
+
+ 2) ACPI CA Core Subsystem:
+
+Implemented ACPI 2.0 semantics for the "Break" operator (Exit
+from while loop)
+
+Completed implementation of the ACPI 2.0 "Continue",
+"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
+operators. All new ACPI 2.0 operators are now implemented in
+both the ASL compiler and the AML interpreter. The only
+remaining ACPI 2.0 task is support for the String data type in
+the DerefOf operator. Fixed a problem with AcquireMutex where
+the status code was lost if the caller had to actually wait
+for the mutex.
+
+Increased the maximum ASL Field size from 64K bits to 4G bits.
+
+Completed implementation of the external Global Lock
+interfaces -- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.
+The Timeout and Handler parameters were added.
+
+Completed another pass at removing warnings and issues when
+compiling with 64-bit compilers. The code now compiles
+cleanly with the Intel 64-bit C/C++ compiler. Most notably,
+the pointer add and subtract (diff) macros have changed
+considerably.
+
+Created and deployed a new ACPI_SIZE type that is 64-bits wide
+on 64-bit platforms, 32-bits on all others. This type is used
+wherever memory allocation and/or the C sizeof() operator is
+used, and affects the OSL memory allocation interfaces
+AcpiOsAllocate and AcpiOsCallocate.
+
+Implemented sticky user breakpoints in the AML debugger.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that these
+values will vary depending on the efficiency of the compiler
+and the compiler options used during generation.
+
+ Previous Release (12_05_01)
+ Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K
+Total
+ Debug Version: 136.2K Code, 55.6K Data, 191.8K
+Total
+ Current Release:
+ Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K
+Total
+ Debug Version: 138.3K Code, 55.9K Data, 194.2K
+Total
+
+ 3) ASL Compiler, version X2034:
+
+Now checks for (and generates an error if detected) the use of
+a Break or Continue statement without an enclosing While
+statement.
+
+Successfully generated the compiler with the Intel 64-bit C
+compiler.
+
+ ----------------------------------------
+Summary of changes for this label: 12_05_01
+
+ 1) ACPI CA Core Subsystem:
+
+The ACPI 2.0 CopyObject operator is fully implemented. This
+operator creates a new copy of an object (and is also used to
+bypass the "implicit conversion" mechanism of the Store
+operator.)
+
+The ACPI 2.0 semantics for the SizeOf operator are fully
+implemented. The change is that performing a SizeOf on a
+reference object causes an automatic dereference of the object
+to tha actual value before the size is evaluated. This
+behavior was undefined in ACPI 1.0.
+
+The ACPI 2.0 semantics for the Extended IRQ resource
+descriptor have been implemented. The interrupt polarity and
+mode are now independently set.
+
+Fixed a problem where ASL Constants (Zero, One, Ones,
+Revision) appearing in Package objects were not properly
+converted to integers when the internal Package was converted
+to an external object (via the AcpiEvaluateObject interface.)
+
+Fixed a problem with the namespace object deletion mechanism
+for objects created by control methods. There were two parts
+to this problem: 1) Objects created during the initialization
+phase method parse were not being deleted, and 2) The object
+owner ID mechanism to track objects was broken.
+
+Fixed a problem where the use of the ASL Scope operator within
+a control method would result in an invalid opcode exception.
+
+Fixed a problem introduced in the previous label where the
+buffer length required for the _PRT structure was not being
+returned correctly.
+
+Code and Data Size: Current core subsystem library sizes are
+shown below. These are the code and data sizes for the
+acpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
+and these values do not include any ACPI driver or OSPM code.
+The debug version of the code includes the debug output trace
+mechanism and has a larger code and data size. Note that
+these values will vary depending on the efficiency of the
+compiler and the compiler options used during generation.
+
+ Previous Release (11_20_01)
+ Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K
+Total
+ Debug Version: 135.1K Code, 55.4K Data, 190.5K
+Total
+
+ Current Release:
+ Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K
+Total
+ Debug Version: 136.2K Code, 55.6K Data, 191.8K
+Total
+
+ 2) Linux:
+
+Updated all files to apply cleanly against 2.4.16.
+
+Added basic PCI Interrupt Routing Table (PRT) support for IA32
+(acpi_pci.c), and unified the PRT code for IA32 and IA64.
+This version supports both static and dyanmic PRT entries, but
+dynamic entries are treated as if they were static (not yet
+reconfigurable). Architecture- specific code to use this data
+is absent on IA32 but should be available shortly.
+
+Changed the initialization sequence to start the ACPI
+interpreter (acpi_init) prior to initialization of the PCI
+driver (pci_init) in init/main.c. This ordering is required
+to support PRT and facilitate other (future) enhancement. A
+side effect is that the ACPI bus driver and certain device
+drivers can no longer be loaded as modules.
+
+Modified the 'make menuconfig' options to allow PCI Interrupt
+Routing support to be included without the ACPI Bus and other
+device drivers.
+
+ 3) ASL Compiler, version X2033:
+
+Fixed some issues with the use of the new CopyObject and
+DataTableRegion operators. Both are fully functional.
+
+ ----------------------------------------
+Summary of changes for this label: 11_20_01
+
+ 20 November 2001. Summary of changes for this release.
+
+ 1) ACPI CA Core Subsystem:
+
+Updated Index support to match ACPI 2.0 semantics. Storing a
+Integer, String, or Buffer to an Index of a Buffer will store
+only the least-significant byte of the source to the Indexed
+buffer byte. Multiple writes are not performed.
+
+Fixed a problem where the access type used in an AccessAs ASL
+operator was not recorded correctly into the field object.
+
+Fixed a problem where ASL Event objects were created in a
+signalled state. Events are now created in an unsignalled
+state.
+
+The internal object cache is now purged after table loading
+and initialization to reduce the use of dynamic kernel memory
+-- on the assumption that object use is greatest during the
+parse phase of the entire table (versus the run-time use of
+individual control methods.)
+
+ACPI 2.0 variable-length packages are now fully operational.
+
+Code and Data Size: Code and Data optimizations have permitted
+new feature development with an actual reduction in the
+library size. Current core subsystem library sizes are shown
+below. These are the code and data sizes for the acpica.lib
+produced by the Microsoft Visual C++ 6.0 compiler, and these
+values do not include any ACPI driver or OSPM code. The debug
+version of the code includes the debug output trace mechanism
+and has a larger code and data size. Note that these values
+will vary depending on the efficiency of the compiler and the
+compiler options used during generation.
+
+ Previous Release (11_09_01):
+ Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K
+Total
+ Debug Version: 134.5K Code, 55.4K Data, 189.9K
+Total
+
+ Current Release:
+ Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K
+Total
+ Debug Version: 135.1K Code, 55.4K Data, 190.5K
+Total
+
+ 2) Linux:
+
+Enhanced the ACPI boot-time initialization code to allow the
+use of Local APIC tables for processor enumeration on IA-32,
+and to pave the way for a fully MPS-free boot (on SMP systems)
+in the near future. This functionality replaces
+arch/i386/kernel/acpitables.c, which was introduced in an
+earlier 2.4.15-preX release. To enable this feature you must
+add "acpi_boot=on" to the kernel command line -- see the help
+entry for CONFIG_ACPI_BOOT for more information. An IA-64
+release is in the works...
+
+Restructured the configuration options to allow boot-time
+table parsing support without inclusion of the ACPI
+Interpreter (and other) code.
+
+NOTE: This release does not include fixes for the reported
+events, power-down, and thermal passive cooling issues (coming
+soon).
+
+ 3) ASL Compiler:
+
+Added additional typechecking for Fields within restricted
+access Operation Regions. All fields within EC and CMOS
+regions must be declared with ByteAcc. All fields withing
+SMBus regions must be declared with the BufferAcc access type.
+
+Fixed a problem where the listing file output of control
+methods no longer interleaved the actual AML code with the ASL
+source code.
+
+
+
+----------------------------------------
+Summary of changes for this label: 11_09_01
+
+1) ACPI CA Core Subsystem:
+
+Implemented ACPI 2.0-defined support for writes to fields with
+a Buffer, String, or Integer source operand that is smaller
+than the target field. In these cases, the source operand is
+zero-extended to fill the target field.
+
+Fixed a problem where a Field starting bit offset (within the
+parent operation region) was calculated incorrectly if the
+alignment of the field differed from the access width. This
+affected CreateWordField, CreateDwordField, CreateQwordField,
+and possibly other fields that use the "AccessAny" keyword.
+
+Fixed a problem introduced in the 11_02_01 release where
+indirect stores through method arguments did not operate
+correctly.
+
+2) Linux:
+
+Implemented boot-time ACPI table parsing support
+(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This
+code facilitates the use of ACPI tables (e.g. MADT, SRAT)
+rather than legacy BIOS interfaces (e.g. MPS) for the
+configuration of system processors, memory, and interrupts
+during setup_arch(). Note that this patch does not include
+the required architecture-specific changes required to apply
+this information -- subsequent patches will be posted for both
+IA32 and IA64 to achieve this.
+
+Added low-level sleep support for IA32 platforms, courtesy of
+Pat Mochel. This allows IA32 systems to transition to/from
+various sleeping states (e.g. S1, S3), although the lack of a
+centralized driver model and power-manageable drivers will
+prevent its (successful) use on most systems.
+
+Revamped the ACPI 'menuconfig' layout: created new "ACPI
+Support" submenu, unified IA32 and IA64 options, added new
+"Boot using ACPI tables" option, etc.
+
+Increased the default timeout for the EC driver from 1ms to
+10ms (1000 cycles of 10us) to try to address AE_TIME errors
+during EC transactions.
+
+ ----------------------------------------
+Summary of changes for this label: 11_02_01
+
+1) ACPI CA Core Subsystem:
+
+ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
+(QWordAcc keyword). All ACPI 2.0 64-bit support is now
+implemented.
+
+OSL Interfaces: Several of the OSL (AcpiOs*) interfaces
+required changes to support ACPI 2.0 Qword field access.
+Read/Write PciConfiguration(), Read/Write Memory(), and
+Read/Write Port() now accept an ACPI_INTEGER (64 bits) as the
+value parameter. Also, the value parameter for the address
+space handler interface is now an ACPI_INTEGER. OSL
+implementations of these interfaces must now handle the case
+where the Width parameter is 64.
+
+Index Fields: Fixed a problem where unaligned bit assembly and
+disassembly for IndexFields was not supported correctly.
+
+Index and Bank Fields: Nested Index and Bank Fields are now
+supported. During field access, a check is performed to ensure
+that the value written to an Index or Bank register is not out
+of the range of the register. The Index (or Bank) register is
+written before each access to the field data. Future support
+will include allowing individual IndexFields to be wider than
+the DataRegister width.
+
+Fields: Fixed a problem where the AML interpreter was
+incorrectly attempting to write beyond the end of a
+Field/OpRegion. This was a boundary case that occurred when a
+DWORD field was written to a BYTE access OpRegion, forcing
+multiple writes and causing the interpreter to write one datum
+too many.
+
+Fields: Fixed a problem with Field/OpRegion access where the
+starting bit address of a field was incorrectly calculated if
+the current access type was wider than a byte (WordAcc,
+DwordAcc, or QwordAcc).
+
+Fields: Fixed a problem where forward references to individual
+FieldUnits (individual Field names within a Field definition)
+were not resolved during the AML table load.
+
+Fields: Fixed a problem where forward references from a Field
+definition to the parent Operation Region definition were not
+resolved during the AML table load.
+
+Fields: Duplicate FieldUnit names within a scope are now
+detected during AML table load.
+
+Acpi Interfaces: Fixed a problem where the AcpiGetName()
+interface returned an incorrect name for the root node.
+
+Code and Data Size: Code and Data optimizations have permitted
+new feature development with an actual reduction in the
+library size. Current core subsystem library sizes are shown
+below. These are the code and data sizes for the acpica.lib
+produced by the Microsoft Visual C++ 6.0 compiler, and these
+values do not include any ACPI driver or OSPM code. The debug
+version of the code includes the debug output trace mechanism
+and has a larger code and data size. Note that these values
+will vary depending on the efficiency of the compiler and the
+compiler options used during generation.
+
+ Previous Release (10_18_01):
+ Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K
+Total
+ Debug Version: 136.7K Code, 57.4K Data, 194.2K
+Total
+
+ Current Release:
+ Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K
+Total
+ Debug Version: 134.5K Code, 55.4K Data, 189.9K
+Total
+
+ 2) Linux:
+
+Improved /proc processor output (Pavel Machek) Re-added
+MODULE_LICENSE("GPL") to all modules.
+
+ 3) ASL Compiler version X2030:
+
+Duplicate FieldUnit names within a scope are now detected and
+flagged as errors.
+
+ 4) Documentation:
+
+Programmer Reference updated to reflect OSL and address space
+handler interface changes described above.
+
+----------------------------------------
+Summary of changes for this label: 10_18_01
+
+ACPI CA Core Subsystem:
+
+Fixed a problem with the internal object reference count
+mechanism that occasionally caused premature object deletion.
+This resolves all of the outstanding problem reports where an
+object is deleted in the middle of an interpreter evaluation.
+Although this problem only showed up in rather obscure cases,
+the solution to the problem involved an adjustment of all
+reference counts involving objects attached to namespace
+nodes.
+
+Fixed a problem with Field support in the interpreter where
+writing to an aligned field whose length is an exact multiple
+(2 or greater) of the field access granularity would cause an
+attempt to write beyond the end of the field.
+
+The top level AML opcode execution functions within the
+interpreter have been renamed with a more meaningful and
+consistent naming convention. The modules exmonad.c and
+exdyadic.c were eliminated. New modules are exoparg1.c,
+exoparg2.c, exoparg3.c, and exoparg6.c.
+
+Support for the ACPI 2.0 "Mid" ASL operator has been
+implemented.
+
+Fixed a problem where the AML debugger was causing some
+internal objects to not be deleted during subsystem
+termination.
+
+Fixed a problem with the external AcpiEvaluateObject interface
+where the subsystem would fault if the named object to be
+evaluated refered to a constant such as Zero, Ones, etc.
+
+Fixed a problem with IndexFields and BankFields where the
+subsystem would fault if the index, data, or bank registers
+were not defined in the same scope as the field itself.
+
+Added printf format string checking for compilers that support
+this feature. Corrected more than 50 instances of issues with
+format specifiers within invocations of ACPI_DEBUG_PRINT
+throughout the core subsystem code.
+
+The ASL "Revision" operator now returns the ACPI support level
+implemented in the core - the value "2" since the ACPI 2.0
+support is more than 50% implemented.
+
+Enhanced the output of the AML debugger "dump namespace"
+command to output in a more human-readable form.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib produced
+by the Microsoft Visual C++ 6.0 compiler, and these values do
+not include any ACPI driver or OSPM code. The debug version
+of the code includes the full debug trace mechanism -- leading
+to a much larger code and data size. Note that these values
+will vary depending on the efficiency of the compiler and the
+compiler options used during generation.
+
+ Previous Label (09_20_01):
+ Non-Debug Version: 65K Code, 5K Data, 70K
+Total
+ Debug Version: 138K Code, 58K Data, 196K
+Total
+
+ This Label:
+ Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K
+Total
+ Debug Version: 136.7K Code, 57.4K Data, 194.2K
+Total
+
+Linux:
+
+Implemented a "Bad BIOS Blacklist" to track machines that have
+known ASL/AML problems.
+
+Enhanced the /proc interface for the thermal zone driver and
+added support for _HOT (the critical suspend trip point). The
+'info' file now includes threshold/policy information, and
+allows setting of _SCP (cooling preference) and _TZP (polling
+frequency) values to the 'info' file. Examples: "echo tzp=5 >
+info" sets the polling frequency to 5 seconds, and "echo scp=1
+> info" sets the cooling preference to the passive/quiet mode
+(if supported by the ASL).
+
+Implemented a workaround for a gcc bug that resuted in an OOPs
+when loading the control method battery driver.
+
+ ----------------------------------------
+Summary of changes for this label: 09_20_01
+
+ ACPI CA Core Subsystem:
+
+The AcpiEnableEvent and AcpiDisableEvent interfaces have been
+modified to allow individual GPE levels to be flagged as wake-
+enabled (i.e., these GPEs are to remain enabled when the
+platform sleeps.)
+
+The AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
+support wake-enabled GPEs. This means that upon entering the
+sleep state, all GPEs that are not wake-enabled are disabled.
+When leaving the sleep state, these GPEs are reenabled.
+
+A local double-precision divide/modulo module has been added
+to enhance portability to OS kernels where a 64-bit math
+library is not available. The new module is "utmath.c".
+
+Several optimizations have been made to reduce the use of CPU
+stack. Originally over 2K, the maximum stack usage is now
+below 2K at 1860 bytes (1.82k)
+
+Fixed a problem with the AcpiGetFirmwareTable interface where
+the root table pointer was not mapped into a logical address
+properly.
+
+Fixed a problem where a NULL pointer was being dereferenced in
+the interpreter code for the ASL Notify operator.
+
+Fixed a problem where the use of the ASL Revision operator
+returned an error. This operator now returns the current
+version of the ACPI CA core subsystem.
+
+Fixed a problem where objects passed as control method
+parameters to AcpiEvaluateObject were always deleted at method
+termination. However, these objects may end up being stored
+into the namespace by the called method. The object reference
+count mechanism was applied to these objects instead of a
+force delete.
+
+Fixed a problem where static strings or buffers (contained in
+the AML code) that are declared as package elements within the
+ASL code could cause a fault because the interpreter would
+attempt to delete them. These objects are now marked with the
+"static object" flag to prevent any attempt to delete them.
+
+Implemented an interpreter optimization to use operands
+directly from the state object instead of extracting the
+operands to local variables. This reduces stack use and code
+size, and improves performance.
+
+The module exxface.c was eliminated as it was an unnecessary
+extra layer of code.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib produced
+by the Microsoft Visual C++ 6.0 compiler, and these values do
+not include any ACPI driver or OSPM code. The debug version
+of the code includes the full debug trace mechanism -- leading
+to a much larger code and data size. Note that these values
+will vary depending on the efficiency of the compiler and the
+compiler options used during generation.
+
+ Non-Debug Version: 65K Code, 5K Data, 70K Total
+(Previously 69K) Debug Version: 138K Code, 58K Data,
+196K Total (Previously 195K)
+
+Linux:
+
+Support for ACPI 2.0 64-bit integers has been added. All
+ACPI Integer objects are now 64 bits wide
+
+All Acpi data types and structures are now in lower case.
+Only Acpi macros are upper case for differentiation.
+
+ Documentation:
+
+Changes to the external interfaces as described above.
+
+ ----------------------------------------
+Summary of changes for this label: 08_31_01
+
+ ACPI CA Core Subsystem:
+
+A bug with interpreter implementation of the ASL Divide
+operator was found and fixed. The implicit function return
+value (not the explicit store operands) was returning the
+remainder instead of the quotient. This was a longstanding
+bug and it fixes several known outstanding issues on various
+platforms.
+
+The ACPI_DEBUG_PRINT and function trace entry/exit macros have
+been further optimized for size. There are 700 invocations of
+the DEBUG_PRINT macro alone, so each optimization reduces the
+size of the debug version of the subsystem significantly.
+
+A stack trace mechanism has been implemented. The maximum
+stack usage is about 2K on 32-bit platforms. The debugger
+command "stat stack" will display the current maximum stack
+usage.
+
+All public symbols and global variables within the subsystem
+are now prefixed with the string "Acpi". This keeps all of
+the symbols grouped together in a kernel map, and avoids
+conflicts with other kernel subsystems.
+
+Most of the internal fixed lookup tables have been moved into
+the code segment via the const operator.
+
+Several enhancements have been made to the interpreter to both
+reduce the code size and improve performance.
+
+Current core subsystem library code sizes are shown below.
+These are the code and data sizes for the acpica.lib produced
+by the Microsoft Visual C++ 6.0 compiler, and these values do
+not include any ACPI driver or OSPM code. The debug version
+of the code includes the full debug trace mechanism which
+contains over 700 invocations of the DEBUG_PRINT macro, 500
+function entry macro invocations, and over 900 function exit
+macro invocations -- leading to a much larger code and data
+size. Note that these values will vary depending on the
+efficiency of the compiler and the compiler options used
+during generation.
+
+ Non-Debug Version: 64K Code, 5K Data, 69K Total
+Debug Version: 137K Code, 58K Data, 195K Total
+
+ Linux:
+
+Implemented wbinvd() macro, pending a kernel-wide definition.
+
+Fixed /proc/acpi/event to handle poll() and short reads.
+
+ ASL Compiler, version X2026:
+
+Fixed a problem introduced in the previous label where the AML
+code emitted for package objects produced packages with zero
+length.
+
+ ----------------------------------------
+Summary of changes for this label: 08_16_01
+
+ACPI CA Core Subsystem:
+
+The following ACPI 2.0 ASL operators have been implemented in
+the AML interpreter (These are already supported by the Intel
+ASL compiler): ToDecimalString, ToHexString, ToString,
+ToInteger, and ToBuffer. Support for 64-bit AML constants is
+implemented in the AML parser, debugger, and disassembler.
+
+The internal memory tracking mechanism (leak detection code)
+has been upgraded to reduce the memory overhead (a separate
+tracking block is no longer allocated for each memory
+allocation), and now supports all of the internal object
+caches.
+
+The data structures and code for the internal object caches
+have been coelesced and optimized so that there is a single
+cache and memory list data structure and a single group of
+functions that implement generic cache management. This has
+reduced the code size in both the debug and release versions
+of the subsystem.
+
+The DEBUG_PRINT macro(s) have been optimized for size and
+replaced by ACPI_DEBUG_PRINT. The syntax for this macro is
+slightly different, because it generates a single call to an
+internal function. This results in a savings of about 90
+bytes per invocation, resulting in an overall code and data
+savings of about 16% in the debug version of the subsystem.
+
+ Linux:
+
+Fixed C3 disk corruption problems and re-enabled C3 on
+supporting machines.
+
+Integrated low-level sleep code by Patrick Mochel.
+
+Further tweaked source code Linuxization.
+
+Other minor fixes.
+
+ ASL Compiler:
+
+Support for ACPI 2.0 variable length packages is
+fixed/completed.
+
+Fixed a problem where the optional length parameter for the
+ACPI 2.0 ToString operator.
+
+Fixed multiple extraneous error messages when a syntax error
+is detected within the declaration line of a control method.
+
+ ----------------------------------------
+Summary of changes for this label: 07_17_01
+
+ACPI CA Core Subsystem:
+
+Added a new interface named AcpiGetFirmwareTable to obtain any
+ACPI table via the ACPI signature. The interface can be
+called at any time during kernel initialization, even before
+the kernel virtual memory manager is initialized and paging is
+enabled. This allows kernel subsystems to obtain ACPI tables
+very early, even before the ACPI CA subsystem is initialized.
+
+Fixed a problem where Fields defined with the AnyAcc attribute
+could be resolved to the incorrect address under the following
+conditions: 1) the field width is larger than 8 bits and 2)
+the parent operation region is not defined on a DWORD
+boundary.
+
+Fixed a problem where the interpreter is not being locked
+during namespace initialization (during execution of the _INI
+control methods), causing an error when an attempt is made to
+release it later.
+
+ACPI 2.0 support in the AML Interpreter has begun and will be
+ongoing throughout the rest of this year. In this label, The
+Mod operator is implemented.
+
+Added a new data type to contain full PCI addresses named
+ACPI_PCI_ID. This structure contains the PCI Segment, Bus,
+Device, and Function values.
+
+ Linux:
+
+Enhanced the Linux version of the source code to change most
+capitalized ACPI type names to lowercase. For example, all
+instances of ACPI_STATUS are changed to acpi_status. This
+will result in a large diff, but the change is strictly
+cosmetic and aligns the CA code closer to the Linux coding
+standard.
+
+OSL Interfaces:
+
+The interfaces to the PCI configuration space have been
+changed to add the PCI Segment number and to split the single
+32-bit combined DeviceFunction field into two 16-bit fields.
+This was accomplished by moving the four values that define an
+address in PCI configuration space (segment, bus, device, and
+function) to the new ACPI_PCI_ID structure.
+
+The changes to the PCI configuration space interfaces led to a
+reexamination of the complete set of address space access
+interfaces for PCI, I/O, and Memory. The previously existing
+18 interfaces have proven difficult to maintain (any small
+change must be propagated across at least 6 interfaces) and do
+not easily allow for future expansion to 64 bits if necessary.
+Also, on some systems, it would not be appropriate to
+demultiplex the access width (8, 16, 32,or 64) before calling
+the OSL if the corresponding native OS interfaces contain a
+similar access width parameter. For these reasons, the 18
+address space interfaces have been replaced by these 6 new
+ones:
+
+AcpiOsReadPciConfiguration
+AcpiOsWritePciConfiguration
+AcpiOsReadMemory
+AcpiOsWriteMemory
+AcpiOsReadPort
+AcpiOsWritePort
+
+Added a new interface named AcpiOsGetRootPointer to allow the
+OSL to perform the platform and/or OS-specific actions
+necessary to obtain the ACPI RSDP table pointer. On IA-32
+platforms, this interface will simply call down to the CA core
+to perform the low-memory search for the table. On IA-64, the
+RSDP is obtained from EFI. Migrating this interface to the
+OSL allows the CA core to remain OS and platform independent.
+
+Added a new interface named AcpiOsSignal to provide a generic
+"function code and pointer" interface for various
+miscellaneous signals and notifications that must be made to
+the host OS. The first such signals are intended to support
+the ASL Fatal and Breakpoint operators. In the latter case,
+the AcpiOsBreakpoint interface has been obsoleted.
+
+The definition of the AcpiFormatException interface has been
+changed to simplify its use. The caller no longer must supply
+a buffer to the call; A pointer to a const string is now
+returned directly. This allows the call to be easily used in
+printf statements, etc. since the caller does not have to
+manage a local buffer.
+
+ ASL Compiler, Version X2025:
+
+The ACPI 2.0 Switch/Case/Default operators have been
+implemented and are fully functional. They will work with all
+ACPI 1.0 interpreters, since the operators are simply
+translated to If/Else pairs.
+
+The ACPI 2.0 ElseIf operator is implemented and will also work
+with 1.0 interpreters, for the same reason.
+
+Implemented support for ACPI 2.0 variable-length packages.
+These packages have a separate opcode, and their size is
+determined by the interpreter at run-time.
+
+Documentation The ACPI CA Programmer Reference has been
+updated to reflect the new interfaces and changes to existing
+interfaces.
+
+ ------------------------------------------
+Summary of changes for this label: 06_15_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem where a DWORD-accessed field within a Buffer
+object would get its byte address inadvertently rounded down
+to the nearest DWORD. Buffers are always Byte-accessible.
+
+ ASL Compiler, version X2024:
+
+Fixed a problem where the Switch() operator would either fault
+or hang the compiler. Note however, that the AML code for
+this ACPI 2.0 operator is not yet implemented.
+
+Compiler uses the new AcpiOsGetTimer interface to obtain
+compile timings.
+
+Implementation of the CreateField operator automatically
+converts a reference to a named field within a resource
+descriptor from a byte offset to a bit offset if required.
+
+Added some missing named fields from the resource descriptor
+support. These are the names that are automatically created by
+the compiler to reference fields within a descriptor. They
+are only valid at compile time and are not passed through to
+the AML interpreter.
+
+Resource descriptor named fields are now typed as Integers and
+subject to compile-time typechecking when used in expressions.
+
+ ------------------------------------------
+Summary of changes for this label: 05_18_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a couple of problems in the Field support code where
+bits from adjacent fields could be returned along with the
+proper field bits. Restructured the field support code to
+improve performance, readability and maintainability.
+
+New DEBUG_PRINTP macro automatically inserts the procedure
+name into the output, saving hundreds of copies of procedure
+name strings within the source, shrinking the memory footprint
+of the debug version of the core subsystem.
+
+ Source Code Structure:
+
+The source code directory tree was restructured to reflect the
+current organization of the component architecture. Some
+files and directories have been moved and/or renamed.
+
+ Linux:
+
+Fixed leaking kacpidpc processes.
+
+Fixed queueing event data even when /proc/acpi/event is not
+opened.
+
+ ASL Compiler, version X2020:
+
+Memory allocation performance enhancement - over 24X compile
+time improvement on large ASL files. Parse nodes and
+namestring buffers are now allocated from a large internal
+compiler buffer.
+
+The temporary .SRC file is deleted unless the "-s" option is
+specified
+
+The "-d" debug output option now sends all output to the .DBG
+file instead of the console.
+
+"External" second parameter is now optional
+
+"ElseIf" syntax now properly allows the predicate
+
+Last operand to "Load" now recognized as a Target operand
+
+Debug object can now be used anywhere as a normal object.
+
+ResourceTemplate now returns an object of type BUFFER
+
+EISAID now returns an object of type INTEGER
+
+"Index" now works with a STRING operand
+
+"LoadTable" now accepts optional parameters
+
+"ToString" length parameter is now optional
+
+"Interrupt (ResourceType," parse error fixed.
+
+"Register" with a user-defined region space parse error fixed
+
+Escaped backslash at the end of a string ("\\") scan/parse
+error fixed
+
+"Revision" is now an object of type INTEGER.
+
+
+
+------------------------------------------
+Summary of changes for this label: 05_02_01
+
+Linux:
+
+/proc/acpi/event now blocks properly.
+
+Removed /proc/sys/acpi. You can still dump your DSDT from
+/proc/acpi/dsdt.
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem introduced in the previous label where some of
+the "small" resource descriptor types were not recognized.
+
+Improved error messages for the case where an ASL Field is
+outside the range of the parent operation region.
+
+ ASL Compiler, version X2018:
+
+Added error detection for ASL Fields that extend beyond the
+length of the parent operation region (only if the length of
+the region is known at compile time.) This includes fields
+that have a minimum access width that is smaller than the
+parent region, and individual field units that are partially
+or entirely beyond the extent of the parent.
+
+
+
+------------------------------------------
+Summary of changes for this label: 04_27_01
+
+ ACPI CA Core Subsystem:
+
+Fixed a problem where the namespace mutex could be released at
+the wrong time during execution of
+AcpiRemoveAddressSpaceHandler.
+
+Added optional thread ID output for debug traces, to simplify
+debugging of multiple threads. Added context switch
+notification when the debug code realizes that a different
+thread is now executing ACPI code.
+
+Some additional external data types have been prefixed with
+the string "ACPI_" for consistency. This may effect existing
+code. The data types affected are the external callback
+typedefs - e.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
+
+ Linux:
+
+Fixed an issue with the OSL semaphore implementation where a
+thread was waking up with an error from receiving a SIGCHLD
+signal.
+
+Linux version of ACPI CA now uses the system C library for
+string manipulation routines instead of a local
+implementation.
+
+Cleaned up comments and removed TBDs.
+
+ ASL Compiler, version X2017:
+
+Enhanced error detection and reporting for all file I/O
+operations.
+
+ Documentation:
+
+Programmer Reference updated to version 1.06.
+
+
+
+------------------------------------------
+Summary of changes for this label: 04_13_01
+
+ ACPI CA Core Subsystem:
+
+Restructured support for BufferFields and RegionFields.
+BankFields support is now fully operational. All known 32-bit
+limitations on field sizes have been removed. Both
+BufferFields and (Operation) RegionFields are now supported by
+the same field management code.
+
+Resource support now supports QWORD address and IO resources.
+The 16/32/64 bit address structures and the Extended IRQ
+structure have been changed to properly handle Source Resource
+strings.
+
+A ThreadId of -1 is now used to indicate a "mutex not
+acquired" condition internally and must never be returned by
+AcpiOsThreadId. This reserved value was changed from 0 since
+Unix systems allow a thread ID of 0.
+
+Linux:
+
+Driver code reorganized to enhance portability
+
+Added a kernel configuration option to control ACPI_DEBUG
+
+Fixed the EC driver to honor _GLK.
+
+ASL Compiler, version X2016:
+
+Fixed support for the "FixedHw" keyword. Previously, the
+FixedHw address space was set to 0, not 0x7f as it should be.
+
+ ------------------------------------------
+Summary of changes for this label: 03_13_01
+
+ ACPI CA Core Subsystem:
+
+During ACPI initialization, the _SB_._INI method is now run if
+present.
+
+Notify handler fix - notifies are deferred until the parent
+method completes execution. This fixes the "mutex already
+acquired" issue seen occasionally.
+
+Part of the "implicit conversion" rules in ACPI 2.0 have been
+found to cause compatibility problems with existing ASL/AML.
+The convert "result-to-target-type" implementation has been
+removed for stores to method Args and Locals. Source operand
+conversion is still fully implemented. Possible changes to
+ACPI 2.0 specification pending.
+
+Fix to AcpiRsCalculatePciRoutingTableLength to return correct
+length.
+
+Fix for compiler warnings for 64-bit compiles.
+
+ Linux:
+
+/proc output aligned for easier parsing.
+
+Release-version compile problem fixed.
+
+New kernel configuration options documented in Configure.help.
+
+IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
+context" message.
+
+ OSPM:
+
+Power resource driver integrated with bus manager.
+
+Fixed kernel fault during active cooling for thermal zones.
+
+Source Code:
+
+The source code tree has been restructured.
+
+
+
+------------------------------------------
+Summary of changes for this label: 03_02_01
+
+ Linux OS Services Layer (OSL):
+
+Major revision of all Linux-specific code.
+
+Modularized all ACPI-specific drivers.
+
+Added new thermal zone and power resource drivers.
+
+Revamped /proc interface (new functionality is under
+/proc/acpi).
+
+New kernel configuration options.
+
+ Linux known issues:
+
+New kernel configuration options not documented in
+Configure.help yet.
+
+Module dependencies not currently implemented. If used, they
+should be loaded in this order: busmgr, power, ec, system,
+processor, battery, ac_adapter, button, thermal.
+
+Modules will not load if CONFIG_MODVERSION is set.
+
+IBM 600E - entering S5 may reboot instead of shutting down.
+
+IBM 600E - Sleep button may generate "Invalid <NULL> context"
+message.
+
+Some systems may fail with "execution mutex already acquired"
+message.
+
+ ACPI CA Core Subsystem:
+
+Added a new OSL Interface, AcpiOsGetThreadId. This was
+required for the deadlock detection code. Defined to return a
+non-zero, 32-bit thread ID for the currently executing thread.
+May be a non-zero constant integer on single-thread systems.
+
+Implemented deadlock detection for internal subsystem mutexes.
+We may add conditional compilation for this code (debug only)
+later.
+
+ASL/AML Mutex object semantics are now fully supported. This
+includes multiple acquires/releases by owner and support for
+the Mutex SyncLevel parameter.
+
+A new "Force Release" mechanism automatically frees all ASL
+Mutexes that have been acquired but not released when a thread
+exits the interpreter. This forces conformance to the ACPI
+spec ("All mutexes must be released when an invocation exits")
+and prevents deadlocked ASL threads. This mechanism can be
+expanded (later) to monitor other resource acquisitions if OEM
+ASL code continues to misbehave (which it will).
+
+Several new ACPI exception codes have been added for the Mutex
+support.
+
+Recursive method calls are now allowed and supported (the ACPI
+spec does in fact allow recursive method calls.) The number
+of recursive calls is subject to the restrictions imposed by
+the SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
+parameter.
+
+Implemented support for the SyncLevel parameter for control
+methods (ACPI 2.0 feature)
+
+Fixed a deadlock problem when multiple threads attempted to
+use the interpreter.
+
+Fixed a problem where the string length of a String package
+element was not always set in a package returned from
+AcpiEvaluateObject.
+
+Fixed a problem where the length of a String package element
+was not always included in the length of the overall package
+returned from AcpiEvaluateObject.
+
+Added external interfaces (Acpi*) to the ACPI debug memory
+manager. This manager keeps a list of all outstanding
+allocations, and can therefore detect memory leaks and
+attempts to free memory blocks more than once. Useful for code
+such as the power manager, etc. May not be appropriate for
+device drivers. Performance with the debug code enabled is
+slow.
+
+The ACPI Global Lock is now an optional hardware element.
+
+ ASL Compiler Version X2015:
+
+Integrated changes to allow the compiler to be generated on
+multiple platforms.
+
+Linux makefile added to generate the compiler on Linux
+
+ Source Code:
+
+All platform-specific headers have been moved to their own
+subdirectory, Include/Platform.
+
+New source file added, Interpreter/ammutex.c
+
+New header file, Include/acstruct.h
+
+ Documentation:
+
+The programmer reference has been updated for the following
+new interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
+AcpiFree
+
+ ------------------------------------------
+Summary of changes for this label: 02_08_01
+
+Core ACPI CA Subsystem: Fixed a problem where an error was
+incorrectly returned if the return resource buffer was larger
+than the actual data (in the resource interfaces).
+
+References to named objects within packages are resolved to
+the full pathname string before packages are returned directly
+(via the AcpiEvaluateObject interface) or indirectly via the
+resource interfaces.
+
+Linux OS Services Layer (OSL):
+
+Improved /proc battery interface.
+
+
+Added C-state debugging output and other miscellaneous fixes.
+
+ASL Compiler Version X2014:
+
+All defined method arguments can now be used as local
+variables, including the ones that are not actually passed in
+as parameters. The compiler tracks initialization of the
+arguments and issues an exception if they are used without
+prior assignment (just like locals).
+
+The -o option now specifies a filename prefix that is used for
+all output files, including the AML output file. Otherwise,
+the default behavior is as follows: 1) the AML goes to the
+file specified in the DSDT. 2) all other output files use the
+input source filename as the base.
+
+ ------------------------------------------
+Summary of changes for this label: 01_25_01
+
+Core ACPI CA Subsystem: Restructured the implementation of
+object store support within the interpreter. This includes
+support for the Store operator as well as any ASL operators
+that include a target operand.
+
+Partially implemented support for Implicit Result-to-Target
+conversion. This is when a result object is converted on the
+fly to the type of an existing target object. Completion of
+this support is pending further analysis of the ACPI
+specification concerning this matter.
+
+CPU-specific code has been removed from the subsystem
+(hardware directory).
+
+New Power Management Timer functions added
+
+Linux OS Services Layer (OSL): Moved system state transition
+code to the core, fixed it, and modified Linux OSL
+accordingly.
+
+Fixed C2 and C3 latency calculations.
+
+
+We no longer use the compilation date for the version message
+on initialization, but retrieve the version from
+AcpiGetSystemInfo().
+
+Incorporated for fix Sony VAIO machines.
+
+Documentation: The Programmer Reference has been updated and
+reformatted.
+
+
+ASL Compiler: Version X2013: Fixed a problem where the line
+numbering and error reporting could get out of sync in the
+presence of multiple include files.
+
+ ------------------------------------------
+Summary of changes for this label: 01_15_01
+
+Core ACPI CA Subsystem:
+
+Implemented support for type conversions in the execution of
+the ASL Concatenate operator (The second operand is converted
+to match the type of the first operand before concatenation.)
+
+Support for implicit source operand conversion is partially
+implemented. The ASL source operand types Integer, Buffer,
+and String are freely interchangeable for most ASL operators
+and are converted by the interpreter on the fly as required.
+Implicit Target operand conversion (where the result is
+converted to the target type before storing) is not yet
+implemented.
+
+Support for 32-bit and 64-bit BCD integers is implemented.
+
+Problem fixed where a field read on an aligned field could
+cause a read past the end of the field.
+
+New exception, AE_AML_NO_RETURN_VALUE, is returned when a
+method does not return a value, but the caller expects one.
+(The ASL compiler flags this as a warning.)
+
+ASL Compiler:
+
+Version X2011:
+1. Static typechecking of all operands is implemented. This
+prevents the use of invalid objects (such as using a Package
+where an Integer is required) at compile time instead of at
+interpreter run-time.
+2. The ASL source line is printed with ALL errors and
+warnings.
+3. Bug fix for source EOF without final linefeed.
+4. Debug option is split into a parse trace and a namespace
+trace.
+5. Namespace output option (-n) includes initial values for
+integers and strings.
+6. Parse-only option added for quick syntax checking.
+7. Compiler checks for duplicate ACPI name declarations
+
+Version X2012:
+1. Relaxed typechecking to allow interchangeability between
+strings, integers, and buffers. These types are now converted
+by the interpreter at runtime.
+2. Compiler reports time taken by each internal subsystem in
+the debug output file.
+
+
+ ------------------------------------------
+Summary of changes for this label: 12_14_00
+
+ASL Compiler:
+
+This is the first official release of the compiler. Since the
+compiler requires elements of the Core Subsystem, this label
+synchronizes everything.
+
+------------------------------------------
+Summary of changes for this label: 12_08_00
+
+Fixed a problem where named references within the ASL
+definition of both OperationRegions and CreateXXXFields did
+not work properly. The symptom was an AE_AML_OPERAND_TYPE
+during initialization of the region/field. This is similar
+(but not related internally) to the problem that was fixed in
+the last label.
+
+Implemented both 32-bit and 64-bit support for the BCD ASL
+functions ToBCD and FromBCD.
+
+Updated all legal headers to include "2000" in the copyright
+years.
+
+ ------------------------------------------
+Summary of changes for this label: 12_01_00
+
+Fixed a problem where method invocations within the ASL
+definition of both OperationRegions and CreateXXXFields did
+not work properly. The symptom was an AE_AML_OPERAND_TYPE
+during initialization of the region/field:
+
+ nsinit-0209: AE_AML_OPERAND_TYPE while getting region
+arguments [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad
+operand(s) (0x3005)
+
+Fixed a problem where operators with more than one nested
+subexpression would fail. The symptoms were varied, by mostly
+AE_AML_OPERAND_TYPE errors. This was actually a rather
+serious problem that has gone unnoticed until now.
+
+ Subtract (Add (1,2), Multiply (3,4))
+
+Fixed a problem where AcpiGetHandle didn't quite get fixed in
+the previous build (The prefix part of a relative path was
+handled incorrectly).
+
+Fixed a problem where Operation Region initialization failed
+if the operation region name was a "namepath" instead of a
+simple "nameseg". Symptom was an AE_NO_OPERAND error.
+
+Fixed a problem where an assignment to a local variable via
+the indirect RefOf mechanism only worked for the first such
+assignment. Subsequent assignments were ignored.
+
+ ------------------------------------------
+Summary of changes for this label: 11_15_00
+
+ACPI 2.0 table support with backwards support for ACPI 1.0 and
+the 0.71 extensions. Note: although we can read ACPI 2.0 BIOS
+tables, the AML interpreter does NOT have support for the new
+2.0 ASL grammar terms at this time.
+
+All ACPI hardware access is via the GAS structures in the ACPI
+2.0 FADT.
+
+All physical memory addresses across all platforms are now 64
+bits wide. Logical address width remains dependent on the
+platform (i.e., "void *").
+
+AcpiOsMapMemory interface changed to a 64-bit physical
+address.
+
+The AML interpreter integer size is now 64 bits, as per the
+ACPI 2.0 specification.
+
+For backwards compatibility with ACPI 1.0, ACPI tables with a
+revision number less than 2 use 32-bit integers only.
+
+Fixed a problem where the evaluation of OpRegion operands did
+not always resolve them to numbers properly.
+
+------------------------------------------
+Summary of changes for this label: 10_20_00
+
+Fix for CBN_._STA issue. This fix will allow correct access
+to CBN_ OpRegions when the _STA returns 0x8.
+
+Support to convert ACPI constants (Ones, Zeros, One) to actual
+values before a package object is returned
+
+Fix for method call as predicate to if/while construct causing
+incorrect if/while behavior
+
+Fix for Else block package lengths sometimes calculated wrong
+(if block > 63 bytes)
+
+Fix for Processor object length field, was always zero
+
+Table load abort if FACP sanity check fails
+
+Fix for problem with Scope(name) if name already exists
+
+Warning emitted if a named object referenced cannot be found
+(resolved) during method execution.
+
+
+
+
+
+------------------------------------------
+Summary of changes for this label: 9_29_00
+
+New table initialization interfaces: AcpiInitializeSubsystem
+no longer has any parameters AcpiFindRootPointer - Find the
+RSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
+found at RSDP->RSDT Obsolete Interfaces AcpiLoadFirmwareTables
+- replaced by AcpiLoadTables
+
+Note: These interface changes require changes to all existing
+OSDs
+
+The PCI_Config default address space handler is always
+installed at the root namespace object.
+
+-------------------------------------------
+Summary of changes for this label: 09_15_00
+
+The new initialization architecture is implemented. New
+interfaces are: AcpiInitializeSubsystem (replaces
+AcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
+AcpiLoadNamespace (Namespace is automatically loaded when a
+table is loaded)
+
+The ACPI_OPERAND_OBJECT has been optimized to shrink its size
+from 52 bytes to 32 bytes. There is usually one of these for
+every namespace object, so the memory savings is significant.
+
+Implemented just-in-time evaluation of the CreateField
+operators.
+
+Bug fixes for IA-64 support have been integrated.
+
+Additional code review comments have been implemented
+
+The so-called "third pass parse" has been replaced by a final
+walk through the namespace to initialize all operation regions
+(address spaces) and fields that have not yet been initialized
+during the execution of the various _INI and REG methods.
+
+New file - namespace/nsinit.c
+
+-------------------------------------------
+Summary of changes for this label: 09_01_00
+
+Namespace manager data structures have been reworked to change
+the primary object from a table to a single object. This has
+resulted in dynamic memory savings of 3X within the namespace
+and 2X overall in the ACPI CA subsystem.
+
+Fixed problem where the call to AcpiEvFindPciRootBuses was
+inadvertently left commented out.
+
+Reduced the warning count when generating the source with the
+GCC compiler.
+
+Revision numbers added to each module header showing the
+SourceSafe version of the file. Please refer to this version
+number when giving us feedback or comments on individual
+modules.
+
+The main object types within the subsystem have been renamed
+to clarify their purpose:
+
+ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
+ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
+ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
+
+NOTE: no changes to the initialization sequence are included
+in this label.
+
+-------------------------------------------
+Summary of changes for this label: 08_23_00
+
+Fixed problem where TerminateControlMethod was being called
+multiple times per method
+
+Fixed debugger problem where single stepping caused a
+semaphore to be oversignalled
+
+Improved performance through additional parse object caching -
+added ACPI_EXTENDED_OP type
+
+-------------------------------------------
+Summary of changes for this label: 08_10_00
+
+Parser/Interpreter integration: Eliminated the creation of
+complete parse trees for ACPI tables and control methods.
+Instead, parse subtrees are created and then deleted as soon
+as they are processed (Either entered into the namespace or
+executed by the interpreter). This reduces the use of dynamic
+kernel memory significantly. (about 10X)
+
+Exception codes broken into classes and renumbered. Be sure
+to recompile all code that includes acexcep.h. Hopefully we
+won't have to renumber the codes again now that they are
+split into classes (environment, programmer, AML code, ACPI
+table, and internal).
+
+Fixed some additional alignment issues in the Resource Manager
+subcomponent
+
+Implemented semaphore tracking in the AcpiExec utility, and
+fixed several places where mutexes/semaphores were being
+unlocked without a corresponding lock operation. There are
+no known semaphore or mutex "leaks" at this time.
+
+Fixed the case where an ASL Return operator is used to return
+an unnamed package.
+
+-------------------------------------------
+Summary of changes for this label: 07_28_00
+
+Fixed a problem with the way addresses were calculated in
+AcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This
+problem manifested itself when a Field was created with
+WordAccess or DwordAccess, but the field unit defined within
+the Field was less than a Word or Dword.
+
+Fixed a problem in AmlDumpOperands() module's loop to pull
+operands off of the operand stack to display information. The
+problem manifested itself as a TLB error on 64-bit systems
+when accessing an operand stack with two or more operands.
+
+Fixed a problem with the PCI configuration space handlers
+where context was getting confused between accesses. This
+required a change to the generic address space handler and
+address space setup definitions. Handlers now get both a
+global handler context (this is the one passed in by the user
+when executing AcpiInstallAddressSpaceHandler() and a
+specific region context that is unique to each region (For
+example, the _ADR, _SEG and _BBN values associated with a
+specific region). The generic function definitions have
+changed to the following:
+
+typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
+Function, UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
+*HandlerContext, // This used to be void *Context void
+*RegionContext); // This is an additional parameter
+
+typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
+RegionHandle, UINT32 Function, void *HandlerContext, void
+**RegionContext); // This used to be **ReturnContext
+
+-------------------------------------------
+Summary of changes for this label: 07_21_00
+
+Major file consolidation and rename. All files within the
+interpreter have been renamed as well as most header files.
+This was done to prevent collisions with existing files in
+the host OSs -- filenames such as "config.h" and "global.h"
+seem to be quite common. The VC project files have been
+updated. All makefiles will require modification.
+
+The parser/interpreter integration continues in Phase 5 with
+the implementation of a complete 2-pass parse (the AML is
+parsed twice) for each table; This avoids the construction
+of a huge parse tree and therefore reduces the amount of
+dynamic memory required by the subsystem. Greater use of the
+parse object cache means that performance is unaffected.
+
+Many comments from the two code reviews have been rolled in.
+
+The 64-bit alignment support is complete.
+
+-------------------------------------------
+Summary of changes for this label: 06_30_00
+
+With a nod and a tip of the hat to the technology of
+yesteryear, we've added support in the source code for 80
+column output devices. The code is now mostly constrained to
+80 columns or less to support environments and editors that 1)
+cannot display or print more than 80 characters on a single
+line, and 2) cannot disable line wrapping.
+
+A major restructuring of the namespace data structure has been
+completed. The result is 1) cleaner and more
+understandable/maintainable code, and 2) a significant
+reduction in the dynamic memory requirement for each named
+ACPI object (almost half).
+
+-------------------------------------------
+Summary of changes for this label: 06_23_00
+
+Linux support has been added. In order to obtain approval to
+get the ACPI CA subsystem into the Linux kernel, we've had to
+make quite a few changes to the base subsystem that will
+affect all users (all the changes are generic and OS-
+independent). The effects of these global changes have been
+somewhat far reaching. Files have been merged and/or renamed
+and interfaces have been renamed. The major changes are
+described below.
+
+Osd* interfaces renamed to AcpiOs* to eliminate namespace
+pollution/confusion within our target kernels. All OSD
+interfaces must be modified to match the new naming
+convention.
+
+Files merged across the subsystem. A number of the smaller
+source and header files have been merged to reduce the file
+count and increase the density of the existing files. There
+are too many to list here. In general, makefiles that call
+out individual files will require rebuilding.
+
+Interpreter files renamed. All interpreter files now have the
+prefix am* instead of ie* and is*.
+
+Header files renamed: The acapi.h file is now acpixf.h. The
+acpiosd.h file is now acpiosxf.h. We are removing references
+to the acronym "API" since it is somewhat windowsy. The new
+name is "external interface" or xface or xf in the
+filenames.j
+
+
+All manifest constants have been forced to upper case (some
+were mixed case.) Also, the string "ACPI_" has been
+prepended to many (not all) of the constants, typedefs, and
+structs.
+
+The globals "DebugLevel" and "DebugLayer" have been renamed
+"AcpiDbgLevel" and "AcpiDbgLayer" respectively.
+
+All other globals within the subsystem are now prefixed with
+"AcpiGbl_" Internal procedures within the subsystem are now
+prefixed with "Acpi" (with only a few exceptions). The
+original two-letter abbreviation for the subcomponent remains
+after "Acpi" - for example, CmCallocate became
+AcpiCmCallocate.
+
+Added a source code translation/conversion utility. Used to
+generate the Linux source code, it can be modified to
+generate other types of source as well. Can also be used to
+cleanup existing source by removing extraneous spaces and
+blank lines. Found in tools/acpisrc/*
+
+OsdUnMapMemory was renamed to OsdUnmapMemory and then
+AcpiOsUnmapMemory. (UnMap became Unmap).
+
+A "MaxUnits" parameter has been added to
+AcpiOsCreateSemaphore. When set to one, this indicates that
+the caller wants to use the semaphore as a mutex, not a
+counting semaphore. ACPI CA uses both types. However,
+implementers of this call may want to use different OS
+primitives depending on the type of semaphore requested. For
+example, some operating systems provide separate "mutex" and
+"semaphore" interfaces - where the mutex interface is much
+faster because it doesn't have all the overhead of a full
+semaphore implementation.
+
+Fixed a deadlock problem where a method that accesses the PCI
+address space can block forever if it is the first access to
+the space.
+
+-------------------------------------------
+Summary of changes for this label: 06_02_00
+
+Support for environments that cannot handle unaligned data
+accesses (e.g. firmware and OS environments devoid of
+alignment handler technology namely SAL/EFI and the IA-64
+Linux kernel) has been added (via configurable macros) in
+these three areas: - Transfer of data from the raw AML byte
+stream is done via byte moves instead of word/dword/qword
+moves. - External objects are aligned within the user buffer,
+including package elements (sub-objects). - Conversion of
+name strings to UINT32 Acpi Names is now done byte-wise.
+
+The Store operator was modified to mimic Microsoft's
+implementation when storing to a Buffer Field.
+
+Added a check of the BM_STS bit before entering C3.
+
+The methods subdirectory has been obsoleted and removed. A
+new file, cmeval.c subsumes the functionality.
+
+A 16-bit (DOS) version of AcpiExec has been developed. The
+makefile is under the acpiexec directory.
OpenPOWER on IntegriCloud