?? changes.txt
字號:
----------------------------------------
09 November 2006. Summary of changes for version 20061109:
1) ACPI CA Core Subsystem:
Optimized the Load ASL operator in the case where the source
operand is an operation region. Simply map the operation region
memory, instead of performing a bytewise read. (Region must be of
type SystemMemory, see below.)
Fixed the Load ASL operator for the case where the source operand
is a region field. A buffer object is also allowed as the source
operand. BZ 480
Fixed a problem where the Load ASL operator allowed the source
operand to be an operation region of any type. It is now
restricted to regions of type SystemMemory, as per the ACPI
specification. BZ 481
Additional cleanup and optimizations for the new Table Manager
code.
AcpiEnable will now fail if all of the required ACPI tables are
not loaded (FADT, FACS, DSDT). BZ 477
Added #pragma pack(8/4) to acobject.h to ensure that the
structures in this header are always compiled as aligned. The
ACPI_OPERAND_OBJECT has been manually optimized to be aligned and
will not work if it is byte-packed.
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: 78.1K Code, 17.1K Data, 95.2K Total
Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
Current Release:
Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
2) iASL Compiler/Disassembler and Tools:
Fixed a problem where the presence of the _OSI predefined control
method within complex expressions could cause an internal compiler
error.
AcpiExec: Implemented full region support for multiple address
spaces. SpaceId is now part of the REGION object. BZ 429
----------------------------------------
11 October 2006. Summary of changes for version 20061011:
1) ACPI CA Core Subsystem:
Completed an AML interpreter performance enhancement for control
method execution. Previously a 2-pass parse/execution, control
methods are now completely parsed and executed in a single pass.
This improves overall interpreter performance by ~25%, reduces
code size, and reduces CPU stack use. (Valery Podrezov +
interpreter changes in version 20051202 that eliminated namespace
loading during the pass one parse.)
Implemented _CID support for PCI Root Bridge detection. If the
_HID does not match the predefined PCI Root Bridge IDs, the _CID
list (if present) is now obtained and also checked for an ID
match.
Implemented additional support for the PCI _ADR execution:
upsearch until a device scope is found before executing _ADR. This
allows PCI_Config operation regions to be declared locally within
control methods underneath PCI device objects.
Fixed a problem with a possible race condition between threads
executing AcpiWalkNamespace and the AML interpreter. This
condition was removed by modifying AcpiWalkNamespace to (by
default) ignore all temporary namespace entries created during any
concurrent control method execution. An additional namespace race
condition is known to exist between AcpiWalkNamespace and the
Load/Unload ASL operators and is still under investigation.
Restructured the AML ParseLoop function, breaking it into several
subfunctions in order to reduce CPU stack use and improve
maintainability. (Mikhail Kouzmich)
AcpiGetHandle: Fix for parameter validation to detect invalid
combinations of prefix handle and pathname. BZ 478
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: 77.9K Code, 17.1K Data, 95.0K Total
Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
Current Release:
Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
2) iASL Compiler/Disassembler and Tools:
Ported the -g option (get local ACPI tables) to the new ACPICA
Table Manager to restore original behavior.
----------------------------------------
27 September 2006. Summary of changes for version 20060927:
1) ACPI CA Core Subsystem:
Removed the "Flags" parameter from AcpiGetRegister and
AcpiSetRegister. These functions now use a spinlock for mutual
exclusion and the interrupt level indication flag is not needed.
Fixed a problem with the Global Lock where the lock could appear
to be obtained before it is actually obtained. The global lock
semaphore was inadvertently created with one unit instead of zero
units. (BZ 464) Fiodor Suietov.
Fixed a possible memory leak and fault in
AcpiExResolveObjectToValue during a read from a buffer or region
field. (BZ 458) Fiodor Suietov.
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: 77.9K Code, 17.1K Data, 95.0K Total
Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
Current Release:
Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
2) iASL Compiler/Disassembler and Tools:
Fixed a compilation problem with the pre-defined Resource
Descriptor field names where an "object does not exist" error
could be incorrectly generated if the parent ResourceTemplate
pathname places the template within a different namespace scope
than the current scope. (BZ 7212)
Fixed a problem where the compiler could hang after syntax errors
detected in an ElseIf construct. (BZ 453)
Fixed a problem with the AmlFilename parameter to the
DefinitionBlock() operator. An incorrect output filename was
produced when this parameter was a null string (""). Now, the
original input filename is used as the AML output filename, with
an ".aml" extension.
Implemented a generic batch command mode for the AcpiExec utility
(execute any AML debugger command) (Valery Podrezov).
----------------------------------------
12 September 2006. Summary of changes for version 20060912:
1) ACPI CA Core Subsystem:
Enhanced the implementation of the "serialized mode" of the
interpreter (enabled via the AcpiGbl_AllMethodsSerialized flag.)
When this mode is specified, instead of creating a serialization
semaphore per control method, the interpreter lock is simply no
longer released before a blocking operation during control method
execution. This effectively makes the AML Interpreter single-
threaded. The overhead of a semaphore per-method is eliminated.
Fixed a regression where an error was no longer emitted if a
control method attempts to create 2 objects of the same name. This
once again returns AE_ALREADY_EXISTS. When this exception occurs,
it invokes the mechanism that will dynamically serialize the
control method to possible prevent future errors. (BZ 440)
Integrated a fix for a problem with PCI Express HID detection in
the PCI Config Space setup procedure. (BZ 7145)
Moved all FADT-related functions to a new file, tbfadt.c.
Eliminated the AcpiHwInitialize function - the FADT registers are
now validated when the table is loaded.
Added two new warnings during FADT verification - 1) if the FADT
is larger than the largest known FADT version, and 2) if there is
a mismatch between a 32-bit block address and the 64-bit X
counterpart (when both are non-zero.)
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: 77.9K Code, 16.7K Data, 94.6K Total
Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
Current Release:
Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
2) iASL Compiler/Disassembler and Tools:
Fixed a problem with the implementation of the Switch() operator
where the temporary variable was declared too close to the actual
Switch, instead of at method level. This could cause a problem if
the Switch() operator is within a while loop, causing an error on
the second iteration. (BZ 460)
Disassembler - fix for error emitted for unknown type for target
of scope operator. Now, ignore it and continue.
Disassembly of an FADT now verifies the input FADT and reports any
errors found. Fix for proper disassembly of full-sized (ACPI 2.0)
FADTs.
Disassembly of raw data buffers with byte initialization data now
prefixes each output line with the current buffer offset.
Disassembly of ASF! table now includes all variable-length data
fields at the end of some of the subtables.
The disassembler now emits a comment if a buffer appears to be a
ResourceTemplate, but cannot be disassembled as such because the
EndTag does not appear at the very end of the buffer.
AcpiExec - Added the "-t" command line option to enable the
serialized mode of the AML interpreter.
----------------------------------------
31 August 2006. Summary of changes for version 20060831:
1) ACPI CA Core Subsystem:
Miscellaneous fixes for the Table Manager:
- Correctly initialize internal common FADT for all 64-bit "X"
fields
- Fixed a couple table mapping issues during table load
- Fixed a couple alignment issues for IA64
- Initialize input array to zero in AcpiInitializeTables
- Additional parameter validation for AcpiGetTable,
AcpiGetTableHeader, AcpiGetTableByIndex
Change for GPE support: when a "wake" GPE is received, all wake
GPEs are now immediately disabled to prevent the waking GPE from
firing again and to prevent other wake GPEs from interrupting the
wake process.
Added the AcpiGpeCount global that tracks the number of processed
GPEs, to be used for debugging systems with a large number of ACPI
interrupts.
Implemented support for the "DMAR" ACPI table (DMA Redirection
Table) in both the ACPICA headers and the disassembler.
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: 77.8K Code, 16.5K Data, 94.3K Total
Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
Current Release:
Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
2) iASL Compiler/Disassembler and Tools:
Disassembler support for the DMAR ACPI table.
----------------------------------------
23 August 2006. Summary of changes for version 20060823:
1) ACPI CA Core Subsystem:
The Table Manager component has been completely redesigned and
reimplemented. The new design is much simpler, and reduces the
overall code and data size of the kernel-resident ACPICA by
approximately 5%. Also, it is now possible to obtain the ACPI
tables very early during kernel initialization, even before
dynamic memory management is initialized. (Alexey Starikovskiy,
Fiodor Suietov, Bob Moore)
Obsolete ACPICA interfaces:
- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early
kernel init time).
- AcpiLoadTable: Not needed.
- AcpiUnloadTable: Not needed.
New ACPICA interfaces:
- AcpiInitializeTables: Must be called before the table manager
can be used.
- AcpiReallocateRootTable: Used to transfer the root table to
dynamically allocated memory after it becomes available.
- AcpiGetTableByIndex: Allows the host to easily enumerate all
ACPI tables in the RSDT/XSDT.
Other ACPICA changes:
- AcpiGetTableHeader returns the actual mapped table header, not a
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -