Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 1498 → Rev 2216

/drivers/devman/acpica/changes.txt
1,8 → 1,756
----------------------------------------
23 June 2011. Summary of changes for version 20110623:
 
1) ACPI CA Core Subsystem:
 
Updated the predefined name repair mechanism to not attempt repair of a _TSS
return object if a _PSS object is present. We can only sort the _TSS return
package if there is no _PSS within the same scope. This is because if _PSS is
present, the ACPI specification dictates that the _TSS Power Dissipation field
is to be ignored, and therefore some BIOSs leave garbage values in the _TSS
Power field(s). In this case, it is best to just return the _TSS package as-
is. Reported by, and fixed with assistance from Fenghua Yu.
 
Added an option to globally disable the control method return value validation
and repair. This runtime option can be used to disable return value repair if
this is causing a problem on a particular machine. Also added an option to
AcpiExec (-dr) to set this disable flag.
 
All makefiles and project files: Major changes to improve generation of ACPICA
tools. ACPICA BZ 912:
Reduce default optimization levels to improve compatibility
For Linux, add strict-aliasing=0 for gcc 4
Cleanup and simplify use of command line defines
Cleanup multithread library support
Improve usage messages
 
Linux-specific header: update handling of THREAD_ID and pthread. For the 32-
bit case, improve casting to eliminate possible warnings, especially with the
acpica tools.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
version of the code includes the debug output trace mechanism and has a much
larger code and data size.
 
Previous Release (VC 9.0):
Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
Current Release (VC 9.0):
Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
 
2) iASL Compiler/Disassembler and Tools:
 
With this release, a new utility named "acpihelp" has been added to the ACPICA
package. This utility summarizes the ACPI specification chapters for the ASL
and AML languages. It generates under Linux/Unix as well as Windows, and
provides the following functionality:
Find/display ASL operator(s) -- with description and syntax.
Find/display ASL keyword(s) -- with exact spelling and descriptions.
Find/display ACPI predefined name(s) -- with description, number
of arguments, and the return value data type.
Find/display AML opcode name(s) -- with opcode, arguments, and grammar.
Decode/display AML opcode -- with opcode name, arguments, and grammar.
 
Service Layers: Make multi-thread support configurable. Conditionally compile
the multi-thread support so that threading libraries will not be linked if not
necessary. The only tool that requires multi-thread support is AcpiExec.
 
iASL: Update yyerrror/AslCompilerError for "const" errors. Newer versions of
Bison appear to want the interface to yyerror to be a const char * (or at
least this is a problem when generating iASL on some systems.) ACPICA BZ 923
Pierre Lejeune.
 
Tools: Fix for systems where O_BINARY is not defined. Only used for Windows
versions of the tools.
 
----------------------------------------
27 May 2011. Summary of changes for version 20110527:
 
1) ACPI CA Core Subsystem:
 
ASL Load() operator: Reinstate most restrictions on the incoming ACPI table
signature. Now, only allow SSDT, OEMx, and a null signature. History:
1) Originally, we checked the table signature for "SSDT" or "PSDT".
(PSDT is now obsolete.)
2) We added support for OEMx tables, signature "OEM" plus a fourth
"don't care" character.
3) Valid tables were encountered with a null signature, so we just
gave up on validating the signature, (05/2008).
4) We encountered non-AML tables such as the MADT, which caused
interpreter errors and kernel faults. So now, we once again allow
only SSDT, OEMx, and now, also a null signature. (05/2011).
 
Added the missing _TDL predefined name to the global name list in order to
enable validation. Affects both the core ACPICA code and the iASL compiler.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
version of the code includes the debug output trace mechanism and has a much
larger code and data size.
 
Previous Release (VC 9.0):
Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total
Debug Version: 164.5K Code, 68.0K Data, 232.5K Total
Current Release (VC 9.0):
Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total
Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
 
2) iASL Compiler/Disassembler and Tools:
 
Debugger/AcpiExec: Implemented support for "complex" method arguments on the
debugger command line. This adds support beyond simple integers -- including
Strings, Buffers, and Packages. Includes support for nested packages.
Increased the default command line buffer size to accommodate these arguments.
See the ACPICA reference for details and syntax. ACPICA BZ 917.
Debugger/AcpiExec: Implemented support for "default" method arguments for the
Execute/Debug command. Now, the debugger will always invoke a control method
with the required number of arguments -- even if the command line specifies
none or insufficient arguments. It uses default integer values for any missing
arguments. Also fixes a bug where only six method arguments maximum were
supported instead of the required seven.
 
Debugger/AcpiExec: Add a maximum buffer length parameter to AcpiOsGetLine and
also return status in order to prevent buffer overruns. See the ACPICA
reference for details and syntax. ACPICA BZ 921
 
iASL: Cleaned up support for Berkeley yacc. A general cleanup of code and
makefiles to simplify support for the two different but similar parser
generators, bison and yacc.
 
Updated the generic unix makefile for gcc 4. The default gcc version is now
expected to be 4 or greater, since options specific to gcc 4 are used.
 
----------------------------------------
13 April 2011. Summary of changes for version 20110413:
 
1) ACPI CA Core Subsystem:
 
Implemented support to execute a so-called "orphan" _REG method under the EC
device. This change will force the execution of a _REG method underneath the
EC
device even if there is no corresponding operation region of type
EmbeddedControl. Fixes a problem seen on some machines and apparently is
compatible with Windows behavior. ACPICA BZ 875.
 
Added more predefined methods that are eligible for automatic NULL package
element removal. This change adds another group of predefined names to the
list
of names that can be repaired by having NULL package elements dynamically
removed. This group are those methods that return a single variable-length
package containing simple data types such as integers, buffers, strings. This
includes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx, _PSL,
_Sx,
and _TZD. ACPICA BZ 914.
 
Split and segregated all internal global lock functions to a new file,
evglock.c.
 
Updated internal address SpaceID for DataTable regions. Moved this internal
space
id in preparation for ACPI 5.0 changes that will include some new space IDs.
This
change should not affect user/host code.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib
produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of
the code includes the debug output trace mechanism and has a much larger code
and
data size.
 
Previous Release (VC 9.0):
Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total
Debug Version: 164.2K Code, 67.9K Data, 232.1K Total
Current Release (VC 9.0):
Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total
Debug Version: 164.5K Code, 68.0K Data, 232.5K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL/DTC: Major update for new grammar features. Allow generic data types in
custom ACPI tables. Field names are now optional. Any line can be split to
multiple lines using the continuation char (\). Large buffers now use line-
continuation character(s) and no colon on the continuation lines. See the
grammar
update in the iASL compiler reference. ACPI BZ 910,911. Lin Ming, Bob Moore.
 
iASL: Mark ASL "Return()" and the simple "Return" as "Null" return statements.
Since the parser stuffs a "zero" as the return value for these statements (due
to
the underlying AML grammar), they were seen as "return with value" by the iASL
semantic checking. They are now seen correctly as "null" return statements.
 
iASL: Check if a_REG declaration has a corresponding Operation Region. Adds a
check for each _REG to ensure that there is in fact a corresponding operation
region declaration in the same scope. If not, the _REG method is not very
useful
since it probably won't be executed. ACPICA BZ 915.
 
iASL/DTC: Finish support for expression evaluation. Added a new expression
parser
that implements c-style operator precedence and parenthesization. ACPICA
bugzilla
908.
 
Disassembler/DTC: Remove support for () and <> style comments in data tables.
Now
that DTC has full expression support, we don't want to have comment strings
that
start with a parentheses or a less-than symbol. Now, only the standard /* and
//
comments are supported, as well as the bracket [] comments.
 
AcpiXtract: Fix for RSDP and dynamic SSDT extraction. These tables have
"unusual"
headers in the acpidump file. Update the header validation to support these
tables. Problem introduced in previous AcpiXtract version in the change to
support "wrong checksum" error messages emitted by acpidump utility.
 
iASL: Add a * option to generate all template files (as a synonym for ALL) as
in
"iasl -T *" or "iasl -T ALL".
 
iASL/DTC: Do not abort compiler on fatal errors. We do not want to completely
abort the compiler on "fatal" errors, simply should abort the current compile.
This allows multiple compiles with a single (possibly wildcard) compiler
invocation.
 
----------------------------------------
16 March 2011. Summary of changes for version 20110316:
 
1) ACPI CA Core Subsystem:
 
Fixed a problem caused by a _PRW method appearing at the namespace root scope
during the setup of wake GPEs. A fault could occur if a _PRW directly under
the
root object was passed to the AcpiSetupGpeForWake interface. Lin Ming.
 
Implemented support for "spurious" Global Lock interrupts. On some systems, a
global lock interrupt can occur without the pending flag being set. Upon a GL
interrupt, we now ensure that a thread is actually waiting for the lock before
signaling GL availability. Rafael Wysocki, Bob Moore.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib
produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of
the code includes the debug output trace mechanism and has a much larger code
and
data size.
 
Previous Release (VC 9.0):
Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
Current Release (VC 9.0):
Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total
Debug Version: 164.2K Code, 67.9K Data, 232.1K Total
 
2) iASL Compiler/Disassembler and Tools:
 
Implemented full support for the "SLIC" ACPI table. Includes support in the
header files, disassembler, table compiler, and template generator. Bob Moore,
Lin Ming.
 
AcpiXtract: Correctly handle embedded comments and messages from AcpiDump.
Apparently some or all versions of acpidump will occasionally emit a comment
like
"Wrong checksum", etc., into the dump file. This was causing problems for
AcpiXtract. ACPICA BZ 905.
 
iASL: Fix the Linux makefile by removing an inadvertent double file inclusion.
ACPICA BZ 913.
 
AcpiExec: Update installation of operation region handlers. Install one
handler
for a user-defined address space. This is used by the ASL test suite (ASLTS).
 
----------------------------------------
11 February 2011. Summary of changes for version 20110211:
 
1) ACPI CA Core Subsystem:
 
Added a mechanism to defer _REG methods for some early-installed handlers.
Most user handlers should be installed before call to AcpiEnableSubsystem.
However, Event handlers and region handlers should be installed after
AcpiInitializeObjects. Override handlers for the "default" regions should be
installed early, however. This change executes all _REG methods for the
default regions (Memory/IO/PCI/DataTable) simultaneously to prevent any
chicken/egg issues between them. ACPICA BZ 848.
 
Implemented an optimization for GPE detection. This optimization will simply
ignore GPE registers that contain no enabled GPEs -- there is no need to
read the register since this information is available internally. This
becomes more important on machines with a large GPE space. ACPICA bugzilla
884. Lin Ming. Suggestion from Joe Liu.
 
Removed all use of the highly unreliable FADT revision field. The revision
number in the FADT has been found to be completely unreliable and cannot be
trusted. Only the actual table length can be used to infer the version. This
change updates the ACPICA core and the disassembler so that both no longer
even look at the FADT version and instead depend solely upon the FADT
length.
 
Fix an unresolved name issue for the no-debug and no-error-message source
generation cases. The _AcpiModuleName was left undefined in these cases, but
it is actually needed as a parameter to some interfaces. Define
_AcpiModuleName as a null string in these cases. ACPICA Bugzilla 888.
 
Split several large files (makefiles and project files updated)
utglobal.c -> utdecode.c
dbcomds.c -> dbmethod.c dbnames.c
dsopcode.c -> dsargs.c dscontrol.c
dsload.c -> dsload2.c
aslanalyze.c -> aslbtypes.c aslwalks.c
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has
a much larger code and data size.
 
Previous Release (VC 9.0):
Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
Current Release (VC 9.0):
Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL: Implemented the predefined macros __LINE__, __FILE__, and __DATE__.
These are useful C-style macros with the standard definitions. ACPICA
bugzilla 898.
 
iASL/DTC: Added support for integer expressions and labels. Support for full
expressions for all integer fields in all ACPI tables. Support for labels in
"generic" portions of tables such as UEFI. See the iASL reference manual.
 
Debugger: Added a command to display the status of global handlers. The
"handlers" command will display op region, fixed event, and miscellaneous
global handlers. installation status -- and for op regions, whether default
or user-installed handler will be used.
 
iASL: Warn if reserved method incorrectly returns a value. Many predefined
names are defined such that they do not return a value. If implemented as a
method, issue a warning if such a name explicitly returns a value. ACPICA
Bugzilla 855.
 
iASL: Added detection of GPE method name conflicts. Detects a conflict where
there are two GPE methods of the form _Lxy and _Exy in the same scope. (For
example, _L1D and _E1D in the same scope.) ACPICA bugzilla 848.
 
iASL/DTC: Fixed a couple input scanner issues with comments and line
numbers. Comment remover could get confused and miss a comment ending. Fixed
a problem with line counter maintenance.
 
iASL/DTC: Reduced the severity of some errors from fatal to error. There is
no need to abort on simple errors within a field definition.
 
Debugger: Simplified the output of the help command. All help output now in
a single screen, instead of help subcommands. ACPICA Bugzilla 897.
 
----------------------------------------
12 January 2011. Summary of changes for version 20110112:
 
1) ACPI CA Core Subsystem:
 
Fixed a race condition between method execution and namespace walks that can
possibly cause a fault. The problem was apparently introduced in version
20100528 as a result of a performance optimization that reduces the number of
namespace walks upon method exit by using the delete_namespace_subtree
function instead of the delete_namespace_by_owner function used previously.
Bug is a missing namespace lock in the delete_namespace_subtree function.
dana.myers@oracle.com
 
Fixed several issues and a possible fault with the automatic "serialized"
method support. History: This support changes a method to "serialized" on the
fly if the method generates an AE_ALREADY_EXISTS error, indicating the
possibility that it cannot handle reentrancy. This fix repairs a couple of
issues seen in the field, especially on machines with many cores:
 
1) Delete method children only upon the exit of the last thread,
so as to not delete objects out from under other running threads
(and possibly causing a fault.)
2) Set the "serialized" bit for the method only upon the exit of the
Last thread, so as to not cause deadlock when running threads
attempt to exit.
3) Cleanup the use of the AML "MethodFlags" and internal method flags
so that there is no longer any confusion between the two.
 
Lin Ming, Bob Moore. Reported by dana.myers@oracle.com.
 
Debugger: Now lock the namespace for duration of a namespace dump. Prevents
issues if the namespace is changing dynamically underneath the debugger.
Especially affects temporary namespace nodes, since the debugger displays
these also.
 
Updated the ordering of include files. The ACPICA headers should appear
before any compiler-specific headers (stdio.h, etc.) so that acenv.h can set
any necessary compiler-specific defines, etc. Affects the ACPI-related tools
and utilities.
 
Updated all ACPICA copyrights and signons to 2011. Added the 2011 copyright
to all module headers and signons, including the Linux header. This affects
virtually every file in the ACPICA core subsystem, iASL compiler, and all
utilities.
 
Added project files for MS Visual Studio 2008 (VC++ 9.0). The original
project files for VC++ 6.0 are now obsolete. New project files can be found
under acpica/generate/msvc9. See acpica/generate/msvc9/readme.txt for
details.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release (VC 6.0):
Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total
Debug Version: 166.6K Code, 52.1K Data, 218.7K Total
Current Release (VC 9.0):
Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL: Added generic data types to the Data Table compiler. Add "generic" data
types such as UINT32, String, Unicode, etc., to simplify the generation of
platform-defined tables such as UEFI. Lin Ming.
 
iASL: Added listing support for the Data Table Compiler. Adds listing support
(-l) to display actual binary output for each line of input code.
 
----------------------------------------
09 December 2010. Summary of changes for version 20101209:
 
1) ACPI CA Core Subsystem:
 
Completed the major overhaul of the GPE support code that was begun in July
2010. Major features include: removal of _PRW execution in ACPICA (host
executes _PRWs anyway), cleanup of "wake" GPE interfaces and processing,
changes to existing interfaces, simplification of GPE handler operation, and
a handful of new interfaces:
 
AcpiUpdateAllGpes
AcpiFinishGpe
AcpiSetupGpeForWake
AcpiSetGpeWakeMask
One new file, evxfgpe.c to consolidate all external GPE interfaces.
 
See the ACPICA Programmer Reference for full details and programming
information. See the new section 4.4 "General Purpose Event (GPE) Support"
for a full overview, and section 8.7 "ACPI General Purpose Event Management"
for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin Ming,
Bob Moore, Rafael Wysocki.
 
Implemented a new GPE feature for Windows compatibility, the "Implicit Wake
GPE Notify". This feature will automatically issue a Notify(2) on a device
when a Wake GPE is received if there is no corresponding GPE method or
handler. ACPICA BZ 870.
 
Fixed a problem with the Scope() operator during table parse and load phase.
During load phase (table load or method execution), the scope operator should
not enter the target into the namespace. Instead, it should open a new scope
at the target location. Linux BZ 19462, ACPICA BZ 882.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release:
Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total
Debug Version: 166.6K Code, 52.1K Data, 218.7K Total
Current Release:
Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL: Relax the alphanumeric restriction on _CID strings. These strings are
"bus-specific" per the ACPI specification, and therefore any characters are
acceptable. The only checks that can be performed are for a null string and
perhaps for a leading asterisk. ACPICA BZ 886.
 
iASL: Fixed a problem where a syntax error that caused a premature EOF
condition on the source file emitted a very confusing error message. The
premature EOF is now detected correctly. ACPICA BZ 891.
 
Disassembler: Decode the AccessSize within a Generic Address Structure (byte
access, word access, etc.) Note, this field does not allow arbitrary bit
access, the size is encoded as 1=byte, 2=word, 3=dword, and 4=qword.
 
New: AcpiNames utility - Example namespace dump utility. Shows an example of
ACPICA configuration for a minimal namespace dump utility. Uses table and
namespace managers, but no AML interpreter. Does not add any functionality
over AcpiExec, it is a subset of AcpiExec. The purpose is to show how to
partition and configure ACPICA. ACPICA BZ 883.
 
AML Debugger: Increased the debugger buffer size for method return objects.
Was 4K, increased to 16K. Also enhanced error messages for debugger method
execution, including the buffer overflow case.
 
----------------------------------------
13 October 2010. Summary of changes for version 20101013:
 
1) ACPI CA Core Subsystem:
 
Added support to clear the PCIEXP_WAKE event. When clearing ACPI events, now
clear the PCIEXP_WAKE_STS bit in the ACPI PM1 Status Register, via
HwClearAcpiStatus. Original change from Colin King. ACPICA BZ 880.
 
Changed the type of the predefined namespace object _TZ from ThermalZone to
Device. This was found to be confusing to the host software that processes
the various thermal zones, since _TZ is not really a ThermalZone. However, a
Notify() can still be performed on it. ACPICA BZ 876. Suggestion from Rui
Zhang.
 
Added Windows Vista SP2 to the list of supported _OSI strings. The actual
string is "Windows 2006 SP2".
 
Eliminated duplicate code in AcpiUtExecute* functions. Now that the nsrepair
code automatically repairs _HID-related strings, this type of code is no
longer needed in Execute_HID, Execute_CID, and Execute_UID. ACPICA BZ 878.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release:
Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
Current Release:
Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL: Implemented additional compile-time validation for _HID strings. The
non-hex prefix (such as "PNP" or "ACPI") must be uppercase, and the length of
the string must be exactly seven or eight characters. For both _HID and _CID
strings, all characters must be alphanumeric. ACPICA BZ 874.
 
iASL: Allow certain "null" resource descriptors. Some BIOS code creates
descriptors that are mostly or all zeros, with the expectation that they will
be filled in at runtime. iASL now allows this as long as there is a "resource
tag" (name) associated with the descriptor, which gives the ASL a handle
needed to modify the descriptor. ACPICA BZ 873.
 
Added single-thread support to the generic Unix application OSL. Primarily
for iASL support, this change removes the use of semaphores in the single-
threaded ACPICA tools/applications - increasing performance. The
_MULTI_THREADED option was replaced by the (reverse) ACPI_SINGLE_THREADED
option. ACPICA BZ 879.
 
AcpiExec: several fixes for the 64-bit version. Adds XSDT support and support
for 64-bit DSDT/FACS addresses in the FADT. Lin Ming.
 
iASL: Moved all compiler messages to a new file, aslmessages.h.
 
----------------------------------------
15 September 2010. Summary of changes for version 20100915:
 
1) ACPI CA Core Subsystem:
 
Removed the AcpiOsDerivePciId OSL interface. The various host implementations
of this function were not OS-dependent and are now obsolete and can be
removed from all host OSLs. This function has been replaced by
AcpiHwDerivePciId, which is now part of the ACPICA core code.
AcpiHwDerivePciId has been implemented without recursion. Adds one new
module, hwpci.c. ACPICA BZ 857.
 
Implemented a dynamic repair for _HID and _CID strings. The following
problems are now repaired at runtime: 1) Remove a leading asterisk in the
string, and 2) the entire string is uppercased. Both repairs are in
accordance with the ACPI specification and will simplify host driver code.
ACPICA BZ 871.
 
The ACPI_THREAD_ID type is no longer configurable, internally it is now
always UINT64. This simplifies the ACPICA code, especially any printf output.
UINT64 is the only common data type for all thread_id types across all
operating systems. It is now up to the host OSL to cast the native thread_id
type to UINT64 before returning the value to ACPICA (via AcpiOsGetThreadId).
Lin Ming, Bob Moore.
 
Added the ACPI_INLINE type to enhance the ACPICA configuration. The "inline"
keyword is not standard across compilers, and this type allows inline to be
configured on a per-compiler basis. Lin Ming.
 
Made the system global AcpiGbl_SystemAwakeAndRunning publically available.
Added an extern for this boolean in acpixf.h. Some hosts utilize this value
during suspend/restore operations. ACPICA BZ 869.
 
All code that implements error/warning messages with the "ACPI:" prefix has
been moved to a new module, utxferror.c.
 
The UINT64_OVERLAY was moved to utmath.c, which is the only module where it
is used. ACPICA BZ 829. Lin Ming, Bob Moore.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release:
Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total
Debug Version: 165.1K Code, 51.9K Data, 217.0K Total
Current Release:
Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL/Disassembler: Write ACPI errors to stderr instead of the output file.
This keeps the output files free of random error messages that may originate
from within the namespace/interpreter code. Used this opportunity to merge
all ACPI:-style messages into a single new module, utxferror.c. ACPICA BZ
866. Lin Ming, Bob Moore.
 
Tools: update some printfs for ansi warnings on size_t. Handle width change
of size_t on 32-bit versus 64-bit generations. Lin Ming.
 
----------------------------------------
06 August 2010. Summary of changes for version 20100806:
 
1) ACPI CA Core Subsystem:
 
Designed and implemented a new host interface to the _OSI support code. This
will allow the host to dynamically add or remove multiple _OSI strings, as
well as install an optional handler that is called for each _OSI invocation.
Also added a new AML debugger command, 'osi' to display and modify the global
_OSI string table, and test support in the AcpiExec utility. See the ACPICA
reference manual for full details. Lin Ming, Bob Moore. ACPICA BZ 836.
New Functions:
AcpiInstallInterface - Add an _OSI string.
AcpiRemoveInterface - Delete an _OSI string.
AcpiInstallInterfaceHandler - Install optional _OSI handler.
Obsolete Functions:
AcpiOsValidateInterface - no longer used.
New Files:
source/components/utilities/utosi.c
 
Re-introduced the support to enable multi-byte transfers for Embedded
Controller (EC) operation regions. A reported problem was found to be a bug
in the host OS, not in the multi-byte support. Previously, the maximum data
size passed to the EC operation region handler was a single byte. There are
often EC Fields larger than one byte that need to be transferred, and it is
useful for the EC driver to lock these as a single transaction. This change
enables single transfers larger than 8 bits. This effectively changes the
access to the EC space from ByteAcc to AnyAcc, and will probably require
changes to the host OS Embedded Controller driver to enable 16/32/64/256-bit
transfers in addition to 8-bit transfers. Alexey Starikovskiy, Lin Ming.
 
Fixed a problem with the prototype for AcpiOsReadPciConfiguration. The
prototype in acpiosxf.h had the output value pointer as a (void *).
It should be a (UINT64 *). This may affect some host OSL code.
 
Fixed a couple problems with the recently modified Linux makefiles for iASL
and AcpiExec. These new makefiles place the generated object files in the
local directory so that there can be no collisions between the files that are
shared between them that are compiled with different options.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release:
Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
Debug Version: 164.0K Code, 51.5K Data, 215.5K Total
Current Release:
Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total
Debug Version: 165.1K Code, 51.9K Data, 217.0K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL/Disassembler: Added a new option (-da, "disassemble all") to load the
namespace from and disassemble an entire group of AML files. Useful for
loading all of the AML tables for a given machine (DSDT, SSDT1...SSDTn) and
disassembling with one simple command. ACPICA BZ 865. Lin Ming.
 
iASL: Allow multiple invocations of -e option. This change allows multiple
uses of -e on the command line: "-e ssdt1.dat -e ssdt2.dat". ACPICA BZ 834.
Lin Ming.
 
----------------------------------------
02 July 2010. Summary of changes for version 20100702:
 
1) ACPI CA Core Subsystem:
 
Implemented several updates to the recently added GPE reference count
support. The model for "wake" GPEs is changing to give the host OS complete
control of these GPEs. Eventually, the ACPICA core will not execute any _PRW
methods, since the host already must execute them. Also, additional changes
were made to help ensure that the reference counts are kept in proper
synchronization with reality. Rafael J. Wysocki.
 
1) Ensure that GPEs are not enabled twice during initialization.
2) Ensure that GPE enable masks stay in sync with the reference count.
3) Do not inadvertently enable GPEs when writing GPE registers.
4) Remove the internal wake reference counter and add new AcpiGpeWakeup
interface. This interface will set or clear individual GPEs for wakeup.
5) Remove GpeType argument from AcpiEnable and AcpiDisable. These interfaces
are now used for "runtime" GPEs only.
 
Changed the behavior of the GPE install/remove handler interfaces. The GPE is
no longer disabled during this process, as it was found to cause problems on
some machines. Rafael J. Wysocki.
 
Reverted a change introduced in version 20100528 to enable Embedded
Controller multi-byte transfers. This change was found to cause problems with
Index Fields and possibly Bank Fields. It will be reintroduced when these
problems have been resolved.
 
Fixed a problem with references to Alias objects within Package Objects. A
reference to an Alias within the definition of a Package was not always
resolved properly. Aliases to objects like Processors, Thermal zones, etc.
were resolved to the actual object instead of a reference to the object as it
should be. Package objects are only allowed to contain integer, string,
buffer, package, and reference objects. Redhat bugzilla 608648.
 
Example Code and Data Size: These are the sizes for the OS-independent
acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
debug version of the code includes the debug output trace mechanism and has a
much larger code and data size.
 
Previous Release:
Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
Debug Version: 164.1K Code, 51.5K Data, 215.6K Total
Current Release:
Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
Debug Version: 164.0K Code, 51.5K Data, 215.5K Total
 
2) iASL Compiler/Disassembler and Tools:
 
iASL: Implemented a new compiler subsystem to allow definition and
compilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc. These
are called "ACPI Data Tables", and the new compiler is the "Data Table
Compiler". This compiler is intended to simplify the existing error-prone
process of creating these tables for the BIOS, as well as allowing the
disassembly, modification, recompilation, and override of existing ACPI data
tables. See the iASL User Guide for detailed information.
 
iASL: Implemented a new Template Generator option in support of the new Data
Table Compiler. This option will create examples of all known ACPI tables
that can be used as the basis for table development. See the iASL
documentation and the -T option.
 
Disassembler and headers: Added support for the WDDT ACPI table (Watchdog
Descriptor Table).
 
Updated the Linux makefiles for iASL and AcpiExec to place the generated
object files in the local directory so that there can be no collisions
between the shared files between them that are generated with different
options.
 
Added support for Mac OS X in the Unix OSL used for iASL and AcpiExec. Use
the #define __APPLE__ to enable this support.
 
----------------------------------------
28 May 2010. Summary of changes for version 20100528:
 
This release is available at www.acpica.org/downloads
 
Note: The ACPI 4.0a specification was released on April 5, 2010 and is
available at www.acpi.info. This is primarily an errata release.