|
Requested by Juan RP in PR 39301.
29 July 2008. Summary of changes for version 20080729:
This release is available at http://acpica.org/downloads
Direct git access via http://www.acpica.org/repos/acpica.git
1) ACPI CA Core Subsystem:
Fix a possible deadlock in the GPE dispatch. Remove call to
AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will attempt
to acquire the GPE lock but can deadlock since the GPE lock is already held
at dispatch time. This code was introduced in version 20060831 as a response
to Linux BZ 6881 and has since been removed from Linux.
Add a function to dereference returned reference objects. Examines the return
object from a call to AcpiEvaluateObject. Any Index or RefOf references are
automatically dereferenced in an attempt to return something useful (these
reference types cannot be converted into an external ACPI_OBJECT.) Provides
MS compatibility. Lin Ming, Bob Moore. Linux BZ 11105
x2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new
subtables for the MADT and one new subtable for the SRAT. Includes
disassembler and AcpiSrc support. Data from the Intel 64 Architecture x2APIC
Specification, June 2008.
Additional error checking for pathname utilities. Add error check after all
calls to AcpiNsGetPathnameLength. Add status return from
AcpiNsBuildExternalPath and check after all calls. Add parameter validation
to AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar.
Return status from the global init function AcpiUtGlobalInitialize. This is
used by both the kernel subsystem and the utilities such as iASL compiler.
The function could possibly fail when the caches are initialized. Yang Yi.
Add a function to decode reference object types to strings. Created for
improved error messages.
Improve object conversion error messages. Better error messages during object
conversion from internal to the external ACPI_OBJECT. Used for external calls
to AcpiEvaluateObject.
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: 79.6K Code, 16.2K Data, 95.8K Total
Debug Version: 153.5K Code, 48.2K Data, 201.7K Total
Current Release:
Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total
Debug Version: 153.9K Code, 48.4K Data, 202.3K Total
2) iASL Compiler/Disassembler and Tools:
Debugger: fix a possible hang when evaluating non-methods. Fixes a problem
introduced in version 20080701. If the object being evaluated (via execute
command) is not a method, the debugger can hang while trying to obtain non-
existent parameters.
iASL: relax error for using reserved "_T_x" identifiers. These names can
appear in a disassembled ASL file if they were emitted by the original
compiler. Instead of issuing an error or warning and forcing the user to
manually change these names, issue a remark instead.
iASL: error if named object created in while loop. Emit an error if any named
object is created within a While loop. If allowed, this code will generate a
run-time error on the second iteration of the loop when an attempt is made to
create the same named object twice. ACPICA bugzilla 730.
iASL: Support absolute pathnames for include files. Add support for absolute
pathnames within the Include operator. previously, only relative pathnames
were supported.
iASL: Enforce minimum 1 interrupt in interrupt macro and Resource Descriptor.
The ACPI spec requires one interrupt minimum. BZ 423
iASL: Handle a missing ResourceSource arg, with a present SourceIndex.
Handles the case for the Interrupt Resource Descriptor where
the ResourceSource argument is omitted but ResourceSourceIndex
is present. Now leave room for the Index. BZ 426
iASL: Prevent error message if CondRefOf target does not exist. Fixes cases
where an error message is emitted if the target does not exist. BZ 516
iASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option
(get ACPI tables on Windows). This was apparently broken in version 20070919.
AcpiXtract: Handle EOF while extracting data. Correctly handle the case where
the EOF happens immediately after the last table in the input file. Print
completion message. Previously, no message was displayed in this case.
----------------------------------------
01 July 2008. Summary of changes for version 20080701:
This release is available at http://acpica.org/downloads
Direct git access via http://www.acpica.org/repos/acpica.git
0) Git source tree / acpica.org
Fixed a problem where a git-clone from http would not transfer the entire
source
tree.
1) ACPI CA Core Subsystem:
Implemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one
enable
bit. Now performs a read-change-write of the enable register instead of
simply
writing out the cached enable mask. This will prevent inadvertent enabling of
GPEs if a rogue GPE is received during initialization (before GPE handlers
are
installed.)
Implemented a copy for dynamically loaded tables. Previously, dynamically
loaded
tables were simply mapped - but on some machines this memory is corrupted
after
suspend. Now copy the table to a local buffer. For the OpRegion case, added
checksum verify. Use the table length from the table header, not the region
length. For the Buffer case, use the table length also. Dennis Noordsij, Bob
Moore. BZ 10734
Fixed a problem where the same ACPI table could not be dynamically loaded and
unloaded more than once. Without this change, a table cannot be loaded again
once it has been loaded/unloaded one time. The current mechanism does not
unregister a table upon an unload. During a load, if the same table is found,
this no longer returns an exception. BZ 722
Fixed a problem where the wrong descriptor length was calculated for the
EndTag
descriptor in 64-bit mode. The "minimal" descriptors such as EndTag are
calculated as 12 bytes long, but the actual length in the internal descriptor
is
16 because of the round-up to 8 on the 64-bit build. Reported by Linn
Crosetto.
BZ 728
Fixed a possible memory leak in the Unload operator. The DdbHandle returned
by
Load() did not have its reference count decremented during unload, leading to
a
memory leak. Lin Ming. BZ 727
Fixed a possible memory leak when deleting thermal/processor objects. Any
associated notify handlers (and objects) were not being deleted. Fiodor
Suietov.
BZ 506
Fixed the ordering of the ASCII names in the global mutex table to match the
actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only.
Vegard Nossum. BZ 726
Enhanced the AcpiGetObjectInfo interface to return the number of required
arguments if the object is a control method. Added this call to the debugger
so
the proper number of default arguments are passed to a method. This prevents
a
warning when executing methods from AcpiExec.
Added a check for an invalid handle in AcpiGetObjectInfo. Return
AE_BAD_PARAMETER if input handle is invalid. BZ 474
Fixed an extraneous warning from exconfig.c on the 64-bit build.
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: 79.3K Code, 16.2K Data, 95.5K Total
Debug Version: 153.0K Code, 48.2K Data, 201.2K Total
Current Release:
Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total
Debug Version: 153.5K Code, 48.2K Data, 201.7K Total
2) iASL Compiler/Disassembler and Tools:
iASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both
resource
descriptor names.
iASL: Detect invalid ASCII characters in input (windows version). Removed the
"-
CF" flag from the flex compile, enables correct detection of non-ASCII
characters in the input. BZ 441
iASL: Eliminate warning when result of LoadTable is not used. Eliminate the
"result of operation not used" warning when the DDB handle returned from
LoadTable is not used. The warning is not needed. BZ 590
AcpiExec: Add support for dynamic table load/unload. Now calls _CFG method to
pass address of table to the AML. Added option to disable OpRegion simulation
to
allow creation of an OpRegion with a real address that was passed to _CFG.
All
of this allows testing of the Load and Unload operators from AcpiExec.
Debugger: update tables command for unloaded tables. Handle unloaded tables
and
use the standard table header output routine.
----------------------------------------
09 June 2008. Summary of changes for version 20080609:
1) ACPI CA Core Subsystem:
Implemented a workaround for reversed _PRT entries. A significant number of
BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This
change dynamically detects and repairs this problem. Provides compatibility
with MS ACPI. BZ 6859
Simplified the internal ACPI hardware interfaces to eliminate the locking
flag parameter from Register Read/Write. Added a new external interface,
AcpiGetRegisterUnlocked.
Fixed a problem where the invocation of a GPE control method could hang. This
was a regression introduced in 20080514. The new method argument count
validation mechanism can enter an infinite loop when a GPE method is
dispatched. Problem fixed by removing the obsolete code that passed GPE block
information to the notify handler via the control method parameter pointer.
Fixed a problem where the _SST execution status was incorrectly returned to
the caller of AcpiEnterSleepStatePrep. This was a regression introduced in
20080514. _SST is optional and a NOT_FOUND exception should never be
returned. BZ 716
Fixed a problem where a deleted object could be accessed from within the AML
parser. This was a regression introduced in version 20080123 as a fix for the
Unload operator. Lin Ming. BZ 10669
Cleaned up the debug operand dump mechanism. Eliminated unnecessary operands
and eliminated the use of a negative index in a loop. Operands are now
displayed in the correct order, not backwards. This also fixes a regression
introduced in 20080514 on 64-bit systems where the elimination of
ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 715
Fixed a possible memory leak in EvPciConfigRegionSetup where the error exit
path did not delete a locally allocated structure.
Updated definitions for the DMAR and SRAT tables to synchronize with the
current specifications. Includes disassembler support.
Fixed a problem in the mutex debug code (in utmutex.c) where an incorrect
loop termination value was used. Loop terminated on iteration early, missing
one mutex. Linn Crosetto
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: 79.5K Code, 16.2K Data, 95.7K Total
Debug Version: 153.3K Code, 48.3K Data, 201.6K Total
Current Release:
Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total
Debug Version: 153.0K Code, 48.2K Data, 201.2K Total
2) iASL Compiler/Disassembler and Tools:
Disassembler: Implemented support for EisaId() within _CID objects. Now
disassemble integer _CID objects back to EisaId invocations, including
multiple integers within _CID packages. Includes single-step support for
debugger also.
Disassembler: Added support for DMAR and SRAT table definition changes.
----------------------------------------
14 May 2008. Summary of changes for version 20080514:
1) ACPI CA Core Subsystem:
Fixed a problem where GPEs were enabled too early during the ACPICA
initialization. This could lead to "handler not installed" errors on some
machines. Moved GPE enable until after _REG/_STA/_INI methods are run. This
ensures that all operation regions and devices throughout the namespace have
been initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916.
Implemented a change to the enter sleep code. Moved execution of the _GTS
method to just before setting sleep enable bit. The execution was moved from
AcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed
immediately before the SLP_EN bit is set, as per the ACPI specification.
Luming Yu, BZ 1653.
Implemented a fix to disable unknown GPEs (2nd version). Now always disable
the GPE, even if ACPICA thinks that that it is already disabled. It is
possible that the AML or some other code has enabled the GPE unbeknownst to
the ACPICA code.
Fixed a problem with the Field operator where zero-length fields would return
an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length ASL
field declarations in Field(), BankField(), and IndexField(). BZ 10606.
Implemented a fix for the Load operator, now load the table at the namespace
root. This reverts a change introduced in version 20071019. The table is now
loaded at the namespace root even though this goes against the ACPI
specification. This provides compatibility with other ACPI implementations.
The ACPI specification will be updated to reflect this in ACPI 4.0. Lin Ming.
Fixed a problem where ACPICA would not Load() tables with unusual signatures.
Now ignore ACPI table signature for Load() operator. Only "SSDT" is
acceptable to the ACPI spec, but tables are seen with OEMx and null sigs.
Therefore, signature validation is worthless. Apparently MS ACPI accepts such
signatures, ACPICA must be compatible. BZ 10454.
Fixed a possible negative array index in AcpiUtValidateException. Added NULL
fields to the exception string arrays to eliminate a -1 subtraction on the
SubStatus field.
Updated the debug tracking macros to reduce overall code and data size.
Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings
instead of pointers to static strings. Jan Beulich and Bob Moore.
Implemented argument count checking in control method invocation via
AcpiEvaluateObject. Now emit an error if too few arguments, warning if too
many. This applies only to extern programmatic control method execution, not
method-to-method calls within the AML. Lin Ming.
Eliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is no
longer needed, especially with the removal of 16-bit support. It was replaced
mostly with UINT32, but also ACPI_SIZE where a type that changes 32/64 bit on
32/64-bit platforms is required.
Added the C const qualifier for appropriate string constants -- mostly
MODULE_NAME and printf format strings. Jan Beulich.
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: 80.0K Code, 17.4K Data, 97.4K Total
Debug Version: 159.4K Code, 64.4K Data, 223.8K Total
Current Release:
Non-Debug Version: 79.5K Code, 16.2K Data, 95.7K Total
Debug Version: 153.3K Code, 48.3K Data, 201.6K Total
2) iASL Compiler/Disassembler and Tools:
Implemented ACPI table revision ID validation in the disassembler. Zero is
always invalid. For DSDTs, the ID controls the interpreter integer width. 1
means 32-bit and this is unusual. 2 or greater is 64-bit.
|