Print this page
update to acpica-unix2-20131218
update to acpica-unix2-20131115
update to acpica-unix2-20130927
acpica-unix2-20130823
PANKOVs restructure
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/intel/io/acpica/changes.txt
+++ new/usr/src/common/acpica/changes.txt
1 1 ----------------------------------------
2 -27 May 2011. Summary of changes for version 20110527:
2 +18 December 2013. Summary of changes for version 20131218:
3 3
4 -This release is available at www.acpica.org/downloads
4 +Global note: The ACPI 5.0A specification was released this month. There
5 +are no changes needed for ACPICA since this release of ACPI is an
6 +errata/clarification release. The specification is available at
7 +acpi.info.
5 8
9 +
10 +1) ACPICA kernel-resident subsystem:
11 +
12 +Added validation of the XSDT root table if it is present. Some older
13 +platforms contain an XSDT that is ill-formed or otherwise invalid (such
14 +as containing some or all entries that are NULL pointers). This change
15 +adds a new function to validate the XSDT before actually using it. If the
16 +XSDT is found to be invalid, ACPICA will now automatically fall back to
17 +using the RSDT instead. Original implementation by Zhao Yakui. Ported to
18 +ACPICA and enhanced by Lv Zheng and Bob Moore.
19 +
20 +Added a runtime option to ignore the XSDT and force the use of the RSDT.
21 +This change adds a runtime option that will force ACPICA to use the RSDT
22 +instead of the XSDT (AcpiGbl_DoNotUseXsdt). Although the ACPI spec
23 +requires that an XSDT be used instead of the RSDT, the XSDT has been
24 +found to be corrupt or ill-formed on some machines. Lv Zheng.
25 +
26 +Added a runtime option to favor 32-bit FADT register addresses over the
27 +64-bit addresses. This change adds an option to favor 32-bit FADT
28 +addresses when there is a conflict between the 32-bit and 64-bit versions
29 +of the same register. The default behavior is to use the 64-bit version
30 +in accordance with the ACPI specification. This can now be overridden via
31 +the AcpiGbl_Use32BitFadtAddresses flag. ACPICA BZ 885. Lv Zheng.
32 +
33 +During the change above, the internal "Convert FADT" and "Verify FADT"
34 +functions have been merged to simplify the code, making it easier to
35 +understand and maintain. ACPICA BZ 933.
36 +
37 +Improve exception reporting and handling for GPE block installation.
38 +Return an actual status from AcpiEvGetGpeXruptBlock and don't clobber the
39 +status when exiting AcpiEvInstallGpeBlock. ACPICA BZ 1019.
40 +
41 +Added helper macros to extract bus/segment numbers from the HEST table.
42 +This change adds two macros to extract the encoded bus and segment
43 +numbers from the HEST Bus field - ACPI_HEST_BUS and ACPI_HEST_SEGMENT.
44 +Betty Dall <betty.dall@hp.com>
45 +
46 +Removed the unused ACPI_FREE_BUFFER macro. This macro is no longer used
47 +by ACPICA. It is not a public macro, so it should have no effect on
48 +existing OSV code. Lv Zheng.
49 +
50 +Example Code and Data Size: These are the sizes for the OS-independent
51 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
52 +debug version of the code includes the debug output trace mechanism and
53 +has a much larger code and data size.
54 +
55 + Current Release:
56 + Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total
57 + Debug Version: 185.6K Code, 77.3K Data, 262.9K Total
58 + Previous Release:
59 + Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total
60 + Debug Version: 185.1K Code, 77.2K Data, 262.3K Total
61 +
62 +
63 +2) iASL Compiler/Disassembler and Tools:
64 +
65 +Disassembler: Improved pathname support for emitted External()
66 +statements. This change adds full pathname support for external names
67 +that have been resolved internally by the inclusion of additional ACPI
68 +tables (via the iASL -e option). Without this change, the disassembler
69 +can emit multiple externals for the same object, or it become confused
70 +when the Scope() operator is used on an external object. Overall, greatly
71 +improves the ability to actually recompile the emitted ASL code when
72 +objects a referenced across multiple ACPI tables. Reported by Michael
73 +Tsirkin (mst@redhat.com).
74 +
75 +Tests/ASLTS: Updated functional control suite to execute with no errors.
76 +David Box. Fixed several errors related to the testing of the interpreter
77 +slack mode. Lv Zheng.
78 +
79 +iASL: Added support to detect names that are declared within a control
80 +method, but are unused (these are temporary names that are only valid
81 +during the time the method is executing). A remark is issued for these
82 +cases. ACPICA BZ 1022.
83 +
84 +iASL: Added full support for the DBG2 table. Adds full disassembler,
85 +table compiler, and template generator support for the DBG2 table (Debug
86 +Port 2 table).
87 +
88 +iASL: Added full support for the PCCT table, update the table definition.
89 +Updates the PCCT table definition in the actbl3.h header and adds table
90 +compiler and template generator support.
91 +
92 +iASL: Added an option to emit only error messages (no warnings/remarks).
93 +The -ve option will enable only error messages, warnings and remarks are
94 +suppressed. This can simplify debugging when only the errors are
95 +important, such as when an ACPI table is disassembled and there are many
96 +warnings and remarks -- but only the actual errors are of real interest.
97 +
98 +Example ACPICA code (source/tools/examples): Updated the example code so
99 +that it builds to an actual working program, not just example code. Added
100 +ACPI tables and execution of an example control method in the DSDT. Added
101 +makefile support for Unix generation.
102 +
103 +----------------------------------------
104 +15 November 2013. Summary of changes for version 20131115:
105 +
106 +This release is available at https://acpica.org/downloads
107 +
108 +
109 +1) ACPICA kernel-resident subsystem:
110 +
111 +Resource Manager: Fixed loop termination for the "get AML length"
112 +function. The loop previously had an error termination on a NULL resource
113 +pointer, which can never happen since the loop simply increments a valid
114 +resource pointer. This fix changes the loop to terminate with an error on
115 +an invalid end-of-buffer condition. The problem can be seen as an
116 +infinite loop by callers to AcpiSetCurrentResources with an invalid or
117 +corrupted resource descriptor, or a resource descriptor that is missing
118 +an END_TAG descriptor. Reported by Dan Carpenter
119 +<dan.carpenter@oracle.com>. Lv Zheng, Bob Moore.
120 +
121 +Table unload and ACPICA termination: Delete all attached data objects
122 +during namespace node deletion. This fix updates namespace node deletion
123 +to delete the entire list of attached objects (attached via
124 +AcpiAttachObject) instead of just one of the attached items. ACPICA BZ
125 +1024. Tomasz Nowicki (tomasz.nowicki@linaro.org).
126 +
127 +ACPICA termination: Added support to delete all objects attached to the
128 +root namespace node. This fix deletes any and all objects that have been
129 +attached to the root node via AcpiAttachData. Previously, none of these
130 +objects were deleted. Reported by Tomasz Nowicki. ACPICA BZ 1026.
131 +
132 +Debug output: Do not emit the function nesting level for the in-kernel
133 +build. The nesting level is really only useful during a single-thread
134 +execution. Therefore, only enable this output for the AcpiExec utility.
135 +Also, only emit the thread ID when executing under AcpiExec (Context
136 +switches are still always detected and a message is emitted). ACPICA BZ
137 +972.
138 +
139 +Example Code and Data Size: These are the sizes for the OS-independent
140 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
141 +debug version of the code includes the debug output trace mechanism and
142 +has a much larger code and data size.
143 +
144 + Current Release:
145 + Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total
146 + Debug Version: 185.1K Code, 77.2K Data, 262.3K Total
147 + Previous Release:
148 + Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total
149 + Debug Version: 185.2K Code, 77.2K Data, 262.4K Total
150 +
151 +
152 +2) iASL Compiler/Disassembler and Tools:
153 +
154 +AcpiExec/Unix-OSL: Use <termios.h> instead of <termio.h>. This is the
155 +correct portable POSIX header for terminal control functions.
156 +
157 +Disassembler: Fixed control method invocation issues related to the use
158 +of the CondRefOf() operator. The problem is seen in the disassembly where
159 +control method invocations may not be disassembled properly if the
160 +control method name has been used previously as an argument to CondRefOf.
161 +The solution is to not attempt to emit an external declaration for the
162 +CondRefOf target (it is not necessary in the first place). This prevents
163 +disassembler object type confusion. ACPICA BZ 988.
164 +
165 +Unix Makefiles: Added an option to disable compiler optimizations and the
166 +_FORTIFY_SOURCE flag. Some older compilers have problems compiling ACPICA
167 +with optimizations (reportedly, gcc 4.4 for example). This change adds a
168 +command line option for make (NOOPT) that disables all compiler
169 +optimizations and the _FORTIFY_SOURCE compiler flag. The default
170 +optimization is -O2 with the _FORTIFY_SOURCE flag specified. ACPICA BZ
171 +1034. Lv Zheng, Bob Moore.
172 +
173 +Tests/ASLTS: Added options to specify individual test cases and modes.
174 +This allows testers running aslts.sh to optionally specify individual
175 +test modes and test cases. Also added an option to disable the forced
176 +generation of the ACPICA tools from source if desired. Lv Zheng.
177 +
178 +----------------------------------------
179 +27 September 2013. Summary of changes for version 20130927:
180 +
181 +This release is available at https://acpica.org/downloads
182 +
183 +
184 +1) ACPICA kernel-resident subsystem:
185 +
186 +Fixed a problem with store operations to reference objects. This change
187 +fixes a problem where a Store operation to an ArgX object that contained
188 +a
189 +reference to a field object did not complete the automatic dereference
190 +and
191 +then write to the actual field object. Instead, the object type of the
192 +field object was inadvertently changed to match the type of the source
193 +operand. The new behavior will actually write to the field object (buffer
194 +field or field unit), thus matching the correct ACPI-defined behavior.
195 +
196 +Implemented support to allow the host to redefine individual OSL
197 +prototypes. This change enables the host to redefine OSL prototypes found
198 +in the acpiosxf.h file. This allows the host to implement OSL interfaces
199 +with a macro or inlined function. Further, it allows the host to add any
200 +additional required modifiers such as __iomem, __init, __exit, etc., as
201 +necessary on a per-interface basis. Enables maximum flexibility for the
202 +OSL interfaces. Lv Zheng.
203 +
204 +Hardcoded the access width for the FADT-defined reset register. The ACPI
205 +specification requires the reset register width to be 8 bits. ACPICA now
206 +hardcodes the width to 8 and ignores the FADT width value. This provides
207 +compatibility with other ACPI implementations that have allowed BIOS code
208 +with bad register width values to go unnoticed. Matthew Garett, Bob
209 +Moore,
210 +Lv Zheng.
211 +
212 +Changed the position/use of the ACPI_PRINTF_LIKE macro. This macro is
213 +used
214 +in the OSL header (acpiosxf). The change modifies the position of this
215 +macro in each instance where it is used (AcpiDebugPrint, etc.) to avoid
216 +build issues if the OSL defines the implementation of the interface to be
217 +an inline stub function. Lv Zheng.
218 +
219 +Deployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA
220 +initialization interfaces. This change adds a new macro for the main init
221 +and terminate external interfaces in order to support hosts that require
222 +additional or different processing for these functions. Changed from
223 +ACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv
224 +Zheng, Bob Moore.
225 +
226 +Cleaned up the memory allocation macros for configurability. In the
227 +common
228 +case, the ACPI_ALLOCATE and related macros now resolve directly to their
229 +respective AcpiOs* OSL interfaces. Two options:
230 +1) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by
231 +default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
232 +2) For AcpiExec (and for debugging), the macros can optionally be
233 +resolved
234 +to the local ACPICA interfaces that track each allocation (local tracking
235 +is used to immediately detect memory leaks).
236 +Lv Zheng.
237 +
238 +Simplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel
239 +to predefine this macro to either TRUE or FALSE during the system build.
240 +
241 +Replaced __FUNCTION_ with __func__ in the gcc-specific header.
242 +
243 +Example Code and Data Size: These are the sizes for the OS-independent
244 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
245 +debug version of the code includes the debug output trace mechanism and
246 +has a much larger code and data size.
247 +
248 + Current Release:
249 + Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total
250 + Debug Version: 185.2K Code, 77.2K Data, 262.4K Total
251 + Previous Release:
252 + Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total
253 + Debug Version: 184.4K Code, 76.8K Data, 261.2K Total
254 +
255 +
256 +2) iASL Compiler/Disassembler and Tools:
257 +
258 +iASL: Implemented wildcard support for the -e option. This simplifies use
259 +when there are many SSDTs that must be included to resolve external
260 +method
261 +declarations. ACPICA BZ 1041. Example:
262 + iasl -e ssdt*.dat -d dsdt.dat
263 +
264 +AcpiExec: Add history/line-editing for Unix/Linux systems. This change
265 +adds a portable module that implements full history and limited line
266 +editing for Unix and Linux systems. It does not use readline() due to
267 +portability issues. Instead it uses the POSIX termio interface to put the
268 +terminal in raw input mode so that the various special keys can be
269 +trapped
270 +(such as up/down-arrow for history support and left/right-arrow for line
271 +editing). Uses the existing debugger history mechanism. ACPICA BZ 1036.
272 +
273 +AcpiXtract: Add support to handle (ignore) "empty" lines containing only
274 +one or more spaces. This provides compatible with early or different
275 +versions of the AcpiDump utility. ACPICA BZ 1044.
276 +
277 +AcpiDump: Do not ignore tables that contain only an ACPI table header.
278 +Apparently, some BIOSs create SSDTs that contain an ACPI table header but
279 +no other data. This change adds support to dump these tables. Any tables
280 +shorter than the length of an ACPI table header remain in error (an error
281 +message is emitted). Reported by Yi Li.
282 +
283 +Debugger: Echo actual command along with the "unknown command" message.
284 +
285 +----------------------------------------
286 +23 August 2013. Summary of changes for version 20130823:
287 +
288 +1) ACPICA kernel-resident subsystem:
289 +
290 +Implemented support for host-installed System Control Interrupt (SCI)
291 +handlers. Certain ACPI functionality requires the host to handle raw
292 +SCIs. For example, the "SCI Doorbell" that is defined for memory power
293 +state support requires the host device driver to handle SCIs to examine
294 +if the doorbell has been activated. Multiple SCI handlers can be
295 +installed to allow for future expansion. New external interfaces are
296 +AcpiInstallSciHandler, AcpiRemoveSciHandler; see the ACPICA reference for
297 +details. Lv Zheng, Bob Moore. ACPICA BZ 1032.
298 +
299 +Operation region support: Never locally free the handler "context"
300 +pointer. This change removes some dangerous code that attempts to free
301 +the handler context pointer in some (rare) circumstances. The owner of
302 +the handler owns this pointer and the ACPICA code should never touch it.
303 +Although not seen to be an issue in any kernel, it did show up as a
304 +problem (fault) under AcpiExec. Also, set the internal storage field for
305 +the context pointer to zero when the region is deactivated, simply for
306 +sanity. David Box. ACPICA BZ 1039.
307 +
308 +AcpiRead: On error, do not modify the return value target location. If an
309 +error happens in the middle of a split 32/32 64-bit I/O operation, do not
310 +modify the target of the return value pointer. Makes the code consistent
311 +with the rest of ACPICA. Bjorn Helgaas.
312 +
313 +Example Code and Data Size: These are the sizes for the OS-independent
314 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
315 +debug version of the code includes the debug output trace mechanism and
316 +has a much larger code and data size.
317 +
318 + Current Release:
319 + Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total
320 + Debug Version: 184.4K Code, 76.8K Data, 261.2K Total
321 + Previous Release:
322 + Non-Debug Version: 96.2K Code, 27.1K Data, 123.3K Total
323 + Debug Version: 185.4K Code, 77.1K Data, 262.5K Total
324 +
325 +
326 +2) iASL Compiler/Disassembler and Tools:
327 +
328 +AcpiDump: Implemented several new features and fixed some problems:
329 +1) Added support to dump the RSDP, RSDT, and XSDT tables.
330 +2) Added support for multiple table instances (SSDT, UEFI).
331 +3) Added option to dump "customized" (overridden) tables (-c).
332 +4) Fixed a problem where some table filenames were improperly
333 +constructed.
334 +5) Improved some error messages, removed some unnecessary messages.
335 +
336 +iASL: Implemented additional support for disassembly of ACPI tables that
337 +contain invocations of external control methods. The -fe<file> option
338 +allows the import of a file that specifies the external methods along
339 +with the required number of arguments for each -- allowing for the
340 +correct disassembly of the table. This is a workaround for a limitation
341 +of AML code where the disassembler often cannot determine the number of
342 +arguments required for an external control method and generates incorrect
343 +ASL code. See the iASL reference for details. ACPICA BZ 1030.
344 +
345 +Debugger: Implemented a new command (paths) that displays the full
346 +pathnames (namepaths) and object types of all objects in the namespace.
347 +This is an alternative to the namespace command.
348 +
349 +Debugger: Implemented a new command (sci) that invokes the SCI dispatch
350 +mechanism and any installed handlers.
351 +
352 +iASL: Fixed a possible segfault for "too many parent prefixes" condition.
353 +This can occur if there are too many parent prefixes in a namepath (for
354 +example, ^^^^^^PCI0.ECRD). ACPICA BZ 1035.
355 +
356 +Application OSLs: Set the return value for the PCI read functions. These
357 +functions simply return AE_OK, but should set the return value to zero
358 +also. This change implements this. ACPICA BZ 1038.
359 +
360 +Debugger: Prevent possible command line buffer overflow. Increase the
361 +size of a couple of the debugger line buffers, and ensure that overflow
362 +cannot happen. ACPICA BZ 1037.
363 +
364 +iASL: Changed to abort immediately on serious errors during the parsing
365 +phase. Due to the nature of ASL, there is no point in attempting to
366 +compile these types of errors, and they typically end up causing a
367 +cascade of hundreds of errors which obscure the original problem.
368 +
369 +----------------------------------------
370 +25 July 2013. Summary of changes for version 20130725:
371 +
372 +1) ACPICA kernel-resident subsystem:
373 +
374 +Fixed a problem with the DerefOf operator where references to FieldUnits
375 +and BufferFields incorrectly returned the parent object, not the actual
376 +value of the object. After this change, a dereference of a FieldUnit
377 +reference results in a read operation on the field to get the value, and
378 +likewise, the appropriate BufferField value is extracted from the target
379 +buffer.
380 +
381 +Fixed a problem where the _WAK method could cause a fault under these
382 +circumstances: 1) Interpreter slack mode was not enabled, and 2) the _WAK
383 +method returned no value. The problem is rarely seen because most kernels
384 +run ACPICA in slack mode.
385 +
386 +For the DerefOf operator, a fatal error now results if an attempt is made
387 +to dereference a reference (created by the Index operator) to a NULL
388 +package element. Provides compatibility with other ACPI implementations,
389 +and this behavior will be added to a future version of the ACPI
390 +specification.
391 +
392 +The ACPI Power Management Timer (defined in the FADT) is now optional.
393 +This provides compatibility with other ACPI implementations and will
394 +appear in the next version of the ACPI specification. If there is no PM
395 +Timer on the platform, AcpiGetTimer returns AE_SUPPORT. An address of
396 +zero in the FADT indicates no PM timer.
397 +
398 +Implemented a new interface for _OSI support, AcpiUpdateInterfaces. This
399 +allows the host to globally enable/disable all vendor strings, all
400 +feature strings, or both. Intended to be primarily used for debugging
401 +purposes only. Lv Zheng.
402 +
403 +Expose the collected _OSI data to the host via a global variable. This
404 +data tracks the highest level vendor ID that has been invoked by the BIOS
405 +so that the host (and potentially ACPICA itself) can change behaviors
406 +based upon the age of the BIOS.
407 +
408 +Example Code and Data Size: These are the sizes for the OS-independent
409 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
410 +debug version of the code includes the debug output trace mechanism and
411 +has a much larger code and data size.
412 +
413 + Current Release:
414 + Non-Debug Version: 96.2K Code, 27.1K Data, 123.3K Total
415 + Debug Version: 184.4K Code, 76.8K Data, 261.2K Total
416 + Previous Release:
417 + Non-Debug Version: 95.9K Code, 26.9K Data, 122.8K Total
418 + Debug Version: 184.1K Code, 76.7K Data, 260.8K Total
419 +
420 +
421 +2) iASL Compiler/Disassembler and Tools:
422 +
423 +iASL: Created the following enhancements for the -so option (create
424 +offset table):
425 +1)Add offsets for the last nameseg in each namepath for every supported
426 +object type
427 +2)Add support for Processor, Device, Thermal Zone, and Scope objects
428 +3)Add the actual AML opcode for the parent object of every supported
429 +object type
430 +4)Add support for the ZERO/ONE/ONES AML opcodes for integer objects
431 +
432 +Disassembler: Emit all unresolved external symbols in a single block.
433 +These are external references to control methods that could not be
434 +resolved, and thus, the disassembler had to make a guess at the number of
435 +arguments to parse.
436 +
437 +iASL: The argument to the -T option (create table template) is now
438 +optional. If not specified, the default table is a DSDT, typically the
439 +most common case.
440 +
441 +----------------------------------------
442 +26 June 2013. Summary of changes for version 20130626:
443 +
444 +1) ACPICA kernel-resident subsystem:
445 +
446 +Fixed an issue with runtime repair of the _CST object. Null or invalid
447 +elements were not always removed properly. Lv Zheng.
448 +
449 +Removed an arbitrary restriction of 256 GPEs per GPE block (such as the
450 +FADT-defined GPE0 and GPE1). For GPE0, GPE1, and each GPE Block Device,
451 +the maximum number of GPEs is 1016. Use of multiple GPE block devices
452 +makes the system-wide number of GPEs essentially unlimited.
453 +
454 +Example Code and Data Size: These are the sizes for the OS-independent
455 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
456 +debug version of the code includes the debug output trace mechanism and
457 +has a much larger code and data size.
458 +
459 + Current Release:
460 + Non-Debug Version: 95.9K Code, 26.9K Data, 122.8K Total
461 + Debug Version: 184.1K Code, 76.7K Data, 260.8K Total
462 + Previous Release:
463 + Non-Debug Version: 96.0K Code, 27.0K Data, 123.0K Total
464 + Debug Version: 184.1K Code, 76.8K Data, 260.9K Total
465 +
466 +
467 +2) iASL Compiler/Disassembler and Tools:
468 +
469 +Portable AcpiDump: Implemented full support for the Linux and FreeBSD
470 +hosts. Now supports Linux, FreeBSD, and Windows.
471 +
472 +Disassembler: Added some missing types for the HEST and EINJ tables: "Set
473 +Error Type With Address", "CMCI", "MCE", and "Flush Cacheline".
474 +
475 +iASL/Preprocessor: Implemented full support for nested
476 +#if/#else/#elif/#endif blocks. Allows arbitrary depth of nested blocks.
477 +
478 +Disassembler: Expanded maximum output string length to 64K. Was 256 bytes
479 +max. The original purpose of this constraint was to limit the amount of
480 +debug output. However, the string function in question (UtPrintString) is
481 +now used for the disassembler also, where 256 bytes is insufficient.
482 +Reported by RehabMan@GitHub.
483 +
484 +iASL/DataTables: Fixed some problems and issues with compilation of DMAR
485 +tables. ACPICA BZ 999. Lv Zheng.
486 +
487 +iASL: Fixed a couple of error exit issues that could result in a "Could
488 +not delete <file>" message during ASL compilation.
489 +
490 +AcpiDump: Allow "FADT" and "MADT" as valid table signatures, even though
491 +the actual signatures for these tables are "FACP" and "APIC",
492 +respectively.
493 +
494 +AcpiDump: Added support for multiple UEFI tables. Only SSDT and UEFI
495 +tables are allowed to have multiple instances.
496 +
497 +----------------------------------------
498 +17 May 2013. Summary of changes for version 20130517:
499 +
500 +1) ACPICA kernel-resident subsystem:
501 +
502 +Fixed a regression introduced in version 20130328 for _INI methods. This
503 +change fixes a problem introduced in 20130328 where _INI methods are no
504 +longer executed properly because of a memory block that was not
505 +initialized correctly. ACPICA BZ 1016. Tomasz Nowicki
506 +<tomasz.nowicki@linaro.org>.
507 +
508 +Fixed a possible problem with the new extended sleep registers in the
509 +ACPI
510 +5.0 FADT. Do not use these registers (even if populated) unless the HW-
511 +reduced bit is set in the FADT (as per the ACPI specification). ACPICA BZ
512 +1020. Lv Zheng.
513 +
514 +Implemented return value repair code for _CST predefined objects: Sort
515 +the
516 +list and detect/remove invalid entries. ACPICA BZ 890. Lv Zheng.
517 +
518 +Implemented a debug-only option to disable loading of SSDTs from the
519 +RSDT/XSDT during ACPICA initialization. This can be useful for debugging
520 +ACPI problems on some machines. Set AcpiGbl_DisableSsdtTableLoad in
521 +acglobal.h - ACPICA BZ 1005. Lv Zheng.
522 +
523 +Fixed some issues in the ACPICA initialization and termination code:
524 +Tomasz Nowicki <tomasz.nowicki@linaro.org>
525 +1) Clear events initialized flag upon event component termination. ACPICA
526 +BZ 1013.
527 +2) Fixed a possible memory leak in GPE init error path. ACPICA BZ 1018.
528 +3) Delete global lock pending lock during termination. ACPICA BZ 1012.
529 +4) Clear debug buffer global on termination to prevent possible multiple
530 +delete. ACPICA BZ 1010.
531 +
532 +Standardized all switch() blocks across the entire source base. After
533 +many
534 +years, different formatting for switch() had crept in. This change makes
535 +the formatting of every switch block identical. ACPICA BZ 997. Chao Guan.
536 +
537 +Split some files to enhance ACPICA modularity and configurability:
538 +1) Split buffer dump routines into utilities/utbuffer.c
539 +2) Split internal error message routines into utilities/uterror.c
540 +3) Split table print utilities into tables/tbprint.c
541 +4) Split iASL command-line option processing into asloptions.c
542 +
543 +Makefile enhancements:
544 +1) Support for all new files above.
545 +2) Abort make on errors from any subcomponent. Chao Guan.
546 +3) Add build support for Apple Mac OS X. Liang Qi.
547 +
548 +Example Code and Data Size: These are the sizes for the OS-independent
549 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
550 +debug version of the code includes the debug output trace mechanism and
551 +has a much larger code and data size.
552 +
553 + Current Release:
554 + Non-Debug Version: 96.0K Code, 27.0K Data, 123.0K Total
555 + Debug Version: 184.1K Code, 76.8K Data, 260.9K Total
556 + Previous Release:
557 + Non-Debug Version: 95.6K Code, 26.8K Data, 122.4K Total
558 + Debug Version: 183.5K Code, 76.6K Data, 260.1K Total
559 +
560 +
561 +2) iASL Compiler/Disassembler and Tools:
562 +
563 +New utility: Implemented an easily portable version of the acpidump
564 +utility to extract ACPI tables from the system (or a file) in an ASCII
565 +hex
566 +dump format. The top-level code implements the various command line
567 +options, file I/O, and table dump routines. To port to a new host, only
568 +three functions need to be implemented to get tables -- since this
569 +functionality is OS-dependent. See the tools/acpidump/apmain.c module and
570 +the ACPICA reference for porting instructions. ACPICA BZ 859. Notes:
571 +1) The Windows version obtains the ACPI tables from the Registry.
572 +2) The Linux version is under development.
573 +3) Other hosts - If an OS-dependent module is submitted, it will be
574 +distributed with ACPICA.
575 +
576 +iASL: Fixed a regression for -D preprocessor option (define symbol). A
577 +restructuring/change to the initialization sequence caused this option to
578 +no longer work properly.
579 +
580 +iASL: Implemented a mechanism to disable specific warnings and remarks.
581 +Adds a new command line option, "-vw <messageid> as well as "#pragma
582 +disable <messageid>". ACPICA BZ 989. Chao Guan, Bob Moore.
583 +
584 +iASL: Fix for too-strict package object validation. The package object
585 +validation for return values from the predefined names is a bit too
586 +strict, it does not allow names references within the package (which will
587 +be resolved at runtime.) These types of references cannot be validated at
588 +compile time. This change ignores named references within package objects
589 +for names that return or define static packages.
590 +
591 +Debugger: Fixed the 80-character command line limitation for the History
592 +command. Now allows lines of arbitrary length. ACPICA BZ 1000. Chao Guan.
593 +
594 +iASL: Added control method and package support for the -so option
595 +(generates AML offset table for BIOS support.)
596 +
597 +iASL: issue a remark if a non-serialized method creates named objects. If
598 +a thread blocks within the method for any reason, and another thread
599 +enters the method, the method will fail because an attempt will be made
600 +to
601 +create the same (named) object twice. In this case, issue a remark that
602 +the method should be marked serialized. NOTE: may become a warning later.
603 +ACPICA BZ 909.
604 +
605 +----------------------------------------
606 +18 April 2013. Summary of changes for version 20130418:
607 +
608 +1) ACPICA kernel-resident subsystem:
609 +
610 +Fixed a possible buffer overrun during some rare but specific field unit
611 +read operations. This overrun can only happen if the DSDT version is 1 --
612 +meaning that all AML integers are 32 bits -- and the field length is
613 +between 33 and 55 bits long. During the read, an internal buffer object
614 +is
615 +created for the field unit because the field is larger than an integer
616 +(32
617 +bits). However, in this case, the buffer will be incorrectly written
618 +beyond the end because the buffer length is less than the internal
619 +minimum
620 +of 64 bits (8 bytes) long. The buffer will be either 5, 6, or 7 bytes
621 +long, but a full 8 bytes will be written.
622 +
623 +Updated the Embedded Controller "orphan" _REG method support. This refers
624 +to _REG methods under the EC device that have no corresponding operation
625 +region. This is allowed by the ACPI specification. This update removes a
626 +dependency on the existence an ECDT table. It will execute an orphan _REG
627 +method as long as the operation region handler for the EC is installed at
628 +the EC device node and not the namespace root. Rui Zhang (original
629 +update), Bob Moore (update/integrate).
630 +
631 +Implemented run-time argument typechecking for all predefined ACPI names
632 +(_STA, _BIF, etc.) This change performs object typechecking on all
633 +incoming arguments for all predefined names executed via
634 +AcpiEvaluateObject. This ensures that ACPI-related device drivers are
635 +passing correct object types as well as the correct number of arguments
636 +(therefore identifying any issues immediately). Also, the ASL/namespace
637 +definition of the predefined name is checked against the ACPI
638 +specification for the proper argument count. Adds one new file,
639 +nsarguments.c
640 +
641 +Changed an exception code for the ASL UnLoad() operator. Changed the
642 +exception code for the case where the input DdbHandle is invalid, from
643 +AE_BAD_PARAMETER to the more appropriate AE_AML_OPERAND_TYPE.
644 +
645 +Unix/Linux makefiles: Removed the use of the -O2 optimization flag in the
646 +global makefile. The use of this flag causes compiler errors on earlier
647 +versions of GCC, so it has been removed for compatibility.
648 +
649 +Miscellaneous cleanup:
650 +1) Removed some unused/obsolete macros
651 +2) Fixed a possible memory leak in the _OSI support
652 +3) Removed an unused variable in the predefined name support
653 +4) Windows OSL: remove obsolete reference to a memory list field
654 +
655 +Example Code and Data Size: These are the sizes for the OS-independent
656 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
657 +debug version of the code includes the debug output trace mechanism and
658 +has a much larger code and data size.
659 +
660 + Current Release:
661 + Non-Debug Version: 95.2K Code, 26.4K Data, 121.6K Total
662 + Debug Version: 183.0K Code, 76.0K Data, 259.0K Total
663 + Previous Release:
664 + Non-Debug Version: 95.6K Code, 26.8K Data, 122.4K Total
665 + Debug Version: 183.5K Code, 76.6K Data, 260.1K Total
666 +
667 +
668 +2) iASL Compiler/Disassembler and Tools:
669 +
670 +AcpiExec: Added installation of a handler for the SystemCMOS address
671 +space. This prevents control method abort if a method accesses this
672 +space.
673 +
674 +AcpiExec: Added support for multiple EC devices, and now install EC
675 +operation region handler(s) at the actual EC device instead of the
676 +namespace root. This reflects the typical behavior of host operating
677 +systems.
678 +
679 +AcpiExec: Updated to ensure that all operation region handlers are
680 +installed before the _REG methods are executed. This prevents a _REG
681 +method from aborting if it accesses an address space has no handler.
682 +AcpiExec installs a handler for every possible address space.
683 +
684 +Debugger: Enhanced the "handlers" command to display non-root handlers.
685 +This change enhances the handlers command to display handlers associated
686 +with individual devices throughout the namespace, in addition to the
687 +currently supported display of handlers associated with the root
688 +namespace
689 +node.
690 +
691 +ASL Test Suite: Several test suite errors have been identified and
692 +resolved, reducing the total error count during execution. Chao Guan.
693 +
694 +----------------------------------------
695 +28 March 2013. Summary of changes for version 20130328:
696 +
697 +1) ACPICA kernel-resident subsystem:
698 +
699 +Fixed several possible race conditions with the internal object reference
700 +counting mechanism. Some of the external ACPICA interfaces update object
701 +reference counts without holding the interpreter or namespace lock. This
702 +change adds a spinlock to protect reference count updates on the internal
703 +ACPICA objects. Reported by and with assistance from Andriy Gapon
704 +(avg@FreeBSD.org).
705 +
706 +FADT support: Removed an extraneous warning for very large GPE register
707 +sets. This change removes a size mismatch warning if the legacy length
708 +field for a GPE register set is larger than the 64-bit GAS structure can
709 +accommodate. GPE register sets can be larger than the 255-bit width
710 +limitation of the GAS structure. Linn Crosetto (linn@hp.com).
711 +
712 +_OSI Support: handle any errors from AcpiOsAcquireMutex. Check for error
713 +return from this interface. Handles a possible timeout case if
714 +ACPI_WAIT_FOREVER is modified by the host to be a value less than
715 +"forever". Jung-uk Kim.
716 +
717 +Predefined name support: Add allowed/required argument type information
718 +to
719 +the master predefined info table. This change adds the infrastructure to
720 +enable typechecking on incoming arguments for all predefined
721 +methods/objects. It does not actually contain the code that will fully
722 +utilize this information, this is still under development. Also condenses
723 +some duplicate code for the predefined names into a new module,
724 +utilities/utpredef.c
725 +
726 +Example Code and Data Size: These are the sizes for the OS-independent
727 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
728 +debug version of the code includes the debug output trace mechanism and
729 +has a much larger code and data size.
730 +
731 + Previous Release:
732 + Non-Debug Version: 95.0K Code, 25.9K Data, 120.9K Total
733 + Debug Version: 182.9K Code, 75.6K Data, 258.5K Total
734 + Current Release:
735 + Non-Debug Version: 95.2K Code, 26.4K Data, 121.6K Total
736 + Debug Version: 183.0K Code, 76.0K Data, 259.0K Total
737 +
738 +
739 +2) iASL Compiler/Disassembler and Tools:
740 +
741 +iASL: Implemented a new option to simplify the development of ACPI-
742 +related
743 +BIOS code. Adds support for a new "offset table" output file. The -so
744 +option will create a C table containing the AML table offsets of various
745 +named objects in the namespace so that BIOS code can modify them easily
746 +at
747 +boot time. This can simplify BIOS runtime code by eliminating expensive
748 +searches for "magic values", enhancing boot times and adding greater
749 +reliability. With assistance from Lee Hamel.
750 +
751 +iASL: Allow additional predefined names to return zero-length packages.
752 +Now, all predefined names that are defined by the ACPI specification to
753 +return a "variable-length package of packages" are allowed to return a
754 +zero length top-level package. This allows the BIOS to tell the host that
755 +the requested feature is not supported, and supports existing BIOS/ASL
756 +code and practices.
757 +
758 +iASL: Changed the "result not used" warning to an error. This is the case
759 +where an ASL operator is effectively a NOOP because the result of the
760 +operation is not stored anywhere. For example:
761 + Add (4, Local0)
762 +There is no target (missing 3rd argument), nor is the function return
763 +value used. This is potentially a very serious problem -- since the code
764 +was probably intended to do something, but for whatever reason, the value
765 +was not stored. Therefore, this issue has been upgraded from a warning to
766 +an error.
767 +
768 +AcpiHelp: Added allowable/required argument types to the predefined names
769 +info display. This feature utilizes the recent update to the predefined
770 +names table (above).
771 +
772 +----------------------------------------
773 +14 February 2013. Summary of changes for version 20130214:
774 +
775 +1) ACPICA Kernel-resident Subsystem:
776 +
777 +Fixed a possible regression on some hosts: Reinstated the safe return
778 +macros (return_ACPI_STATUS, etc.) that ensure that the argument is
779 +evaluated only once. Although these macros are not needed for the ACPICA
780 +code itself, they are often used by ACPI-related host device drivers
781 +where
782 +the safe feature may be necessary.
783 +
784 +Fixed several issues related to the ACPI 5.0 reduced hardware support
785 +(SOC): Now ensure that if the platform declares itself as hardware-
786 +reduced
787 +via the FADT, the following functions become NOOPs (and always return
788 +AE_OK) because ACPI is always enabled by definition on these machines:
789 + AcpiEnable
790 + AcpiDisable
791 + AcpiHwGetMode
792 + AcpiHwSetMode
793 +
794 +Dynamic Object Repair: Implemented additional runtime repairs for
795 +predefined name return values. Both of these repairs can simplify code in
796 +the related device drivers that invoke these methods:
797 +1) For the _STR and _MLS names, automatically repair/convert an ASCII
798 +string to a Unicode buffer.
799 +2) For the _CRS, _PRS, and _DMA names, return a resource descriptor with
800 +a
801 +lone end tag descriptor in the following cases: A Return(0) was executed,
802 +a null buffer was returned, or no object at all was returned (non-slack
803 +mode only). Adds a new file, nsconvert.c
804 +ACPICA BZ 998. Bob Moore, Lv Zheng.
805 +
806 +Resource Manager: Added additional code to prevent possible infinite
807 +loops
808 +while traversing corrupted or ill-formed resource template buffers. Check
809 +for zero-length resource descriptors in all code that loops through
810 +resource templates (the length field is used to index through the
811 +template). This change also hardens the external AcpiWalkResources and
812 +AcpiWalkResourceBuffer interfaces.
813 +
814 +Local Cache Manager: Enhanced the main data structure to eliminate an
815 +unnecessary mechanism to access the next object in the list. Actually
816 +provides a small performance enhancement for hosts that use the local
817 +ACPICA cache manager. Jung-uk Kim.
818 +
819 +Example Code and Data Size: These are the sizes for the OS-independent
820 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
821 +debug version of the code includes the debug output trace mechanism and
822 +has a much larger code and data size.
823 +
824 + Previous Release:
825 + Non-Debug Version: 94.5K Code, 25.4K Data, 119.9K Total
826 + Debug Version: 182.3K Code, 75.0K Data, 257.3K Total
827 + Current Release:
828 + Non-Debug Version: 95.0K Code, 25.9K Data, 120.9K Total
829 + Debug Version: 182.9K Code, 75.6K Data, 258.5K Total
830 +
831 +
832 +2) iASL Compiler/Disassembler and Tools:
833 +
834 +iASL/Disassembler: Fixed several issues with the definition of the ACPI
835 +5.0 RASF table (RAS Feature Table). This change incorporates late changes
836 +that were made to the ACPI 5.0 specification.
837 +
838 +iASL/Disassembler: Added full support for the following new ACPI tables:
839 + 1) The MTMR table (MID Timer Table)
840 + 2) The VRTC table (Virtual Real Time Clock Table).
841 +Includes header file, disassembler, table compiler, and template support
842 +for both tables.
843 +
844 +iASL: Implemented compile-time validation of package objects returned by
845 +predefined names. This new feature validates static package objects
846 +returned by the various predefined names defined to return packages. Both
847 +object types and package lengths are validated, for both parent packages
848 +and sub-packages, if any. The code is similar in structure and behavior
849 +to
850 +the runtime repair mechanism within the AML interpreter and uses the
851 +existing predefined name information table. Adds a new file, aslprepkg.c.
852 +ACPICA BZ 938.
853 +
854 +iASL: Implemented auto-detection of binary ACPI tables for disassembly.
855 +This feature detects a binary file with a valid ACPI table header and
856 +invokes the disassembler automatically. Eliminates the need to
857 +specifically invoke the disassembler with the -d option. ACPICA BZ 862.
858 +
859 +iASL/Disassembler: Added several warnings for the case where there are
860 +unresolved control methods during the disassembly. This can potentially
861 +cause errors when the output file is compiled, because the disassembler
862 +assumes zero method arguments in these cases (it cannot determine the
863 +actual number of arguments without resolution/definition of the method).
864 +
865 +Debugger: Added support to display all resources with a single command.
866 +Invocation of the resources command with no arguments will now display
867 +all
868 +resources within the current namespace.
869 +
870 +AcpiHelp: Added descriptive text for each ACPICA exception code displayed
871 +via the -e option.
872 +
873 +----------------------------------------
874 +17 January 2013. Summary of changes for version 20130117:
875 +
876 +1) ACPICA Kernel-resident Subsystem:
877 +
878 +Updated the AcpiGetSleepTypeData interface: Allow the \_Sx methods to
879 +return either 1 or 2 integers. Although the ACPI spec defines the \_Sx
880 +objects to return a package containing one integer, most BIOS code
881 +returns
882 +two integers and the previous code reflects that. However, we also need
883 +to
884 +support BIOS code that actually implements to the ACPI spec, and this
885 +change reflects this.
886 +
887 +Fixed two issues with the ACPI_DEBUG_PRINT macros:
888 +1) Added the ACPI_DO_WHILE macro to the main DEBUG_PRINT helper macro for
889 +C compilers that require this support.
890 +2) Renamed the internal ACPI_DEBUG macro to ACPI_DO_DEBUG_PRINT since
891 +ACPI_DEBUG is already used by many of the various hosts.
892 +
893 +Updated all ACPICA copyrights and signons to 2013. Added the 2013
894 +copyright to all module headers and signons, including the standard Linux
895 +header. This affects virtually every file in the ACPICA core subsystem,
896 +iASL compiler, all ACPICA utilities, and the test suites.
897 +
898 +Example Code and Data Size: These are the sizes for the OS-independent
899 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
900 +debug version of the code includes the debug output trace mechanism and
901 +has a much larger code and data size.
902 +
903 + Previous Release:
904 + Non-Debug Version: 94.5K Code, 25.5K Data, 120.0K Total
905 + Debug Version: 182.2K Code, 74.9K Data, 257.1K Total
906 + Current Release:
907 + Non-Debug Version: 94.5K Code, 25.4K Data, 119.9K Total
908 + Debug Version: 182.3K Code, 75.0K Data, 257.3K Total
909 +
910 +
911 +2) iASL Compiler/Disassembler and Tools:
912 +
913 +Generic Unix OSL: Use a buffer to eliminate multiple vfprintf()s and
914 +prevent a possible fault on some hosts. Some C libraries modify the arg
915 +pointer parameter to vfprintf making it difficult to call it twice in the
916 +AcpiOsVprintf function. Use a local buffer to workaround this issue. This
917 +does not affect the Windows OSL since the Win C library does not modify
918 +the arg pointer. Chao Guan, Bob Moore.
919 +
920 +iASL: Fixed a possible infinite loop when the maximum error count is
921 +reached. If an output file other than the .AML file is specified (such as
922 +a listing file), and the maximum number of errors is reached, do not
923 +attempt to flush data to the output file(s) as the compiler is aborting.
924 +This can cause an infinite loop as the max error count code essentially
925 +keeps calling itself.
926 +
927 +iASL/Disassembler: Added an option (-in) to ignore NOOP
928 +opcodes/operators.
929 +Implemented for both the compiler and the disassembler. Often, the NOOP
930 +opcode is used as padding for packages that are changed dynamically by
931 +the
932 +BIOS. When disassembled and recompiled, these NOOPs will cause syntax
933 +errors. This option causes the disassembler to ignore all NOOP opcodes
934 +(0xA3), and it also causes the compiler to ignore all ASL source code
935 +NOOP
936 +statements as well.
937 +
938 +Debugger: Enhanced the Sleep command to execute all sleep states. This
939 +change allows Sleep to be invoked with no arguments and causes the
940 +debugger to execute all of the sleep states, 0-5, automatically.
941 +
942 +----------------------------------------
943 +20 December 2012. Summary of changes for version 20121220:
944 +
945 +1) ACPICA Kernel-resident Subsystem:
946 +
947 +Implemented a new interface, AcpiWalkResourceBuffer. This interface is an
948 +alternate entry point for AcpiWalkResources and improves the usability of
949 +the resource manager by accepting as input a buffer containing the output
950 +of either a _CRS, _PRS, or _AEI method. The key functionality is that the
951 +input buffer is not deleted by this interface so that it can be used by
952 +the host later. See the ACPICA reference for details.
953 +
954 +Interpreter: Add a warning if a 64-bit constant appears in a 32-bit table
955 +(DSDT version < 2). The constant will be truncated and this warning
956 +reflects that behavior.
957 +
958 +Resource Manager: Add support for the new ACPI 5.0 wake bit in the IRQ,
959 +ExtendedInterrupt, and GpioInt descriptors. This change adds support to
960 +both get and set the new wake bit in these descriptors, separately from
961 +the existing share bit. Reported by Aaron Lu.
962 +
963 +Interpreter: Fix Store() when an implicit conversion is not possible. For
964 +example, in the cases such as a store of a string to an existing package
965 +object, implement the store as a CopyObject(). This is a small departure
966 +from the ACPI specification which states that the control method should
967 +be
968 +aborted in this case. However, the ASLTS suite depends on this behavior.
969 +
970 +Performance improvement for the various FUNCTION_TRACE and DEBUG_PRINT
971 +macros: check if debug output is currently enabled as soon as possible to
972 +minimize performance impact if debug is in fact not enabled.
973 +
974 +Source code restructuring: Cleanup to improve modularity. The following
975 +new files have been added: dbconvert.c, evhandler.c, nsprepkg.c,
976 +psopinfo.c, psobject.c, rsdumpinfo.c, utstring.c, and utownerid.c.
977 +Associated makefiles and project files have been updated.
978 +
979 +Changed an exception code for LoadTable operator. For the case where one
980 +of the input strings is too long, change the returned exception code from
981 +AE_BAD_PARAMETER to AE_AML_STRING_LIMIT.
982 +
983 +Fixed a possible memory leak in dispatcher error path. On error, delete
984 +the mutex object created during method mutex creation. Reported by
985 +tim.gardner@canonical.com.
986 +
987 +Example Code and Data Size: These are the sizes for the OS-independent
988 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
989 +debug version of the code includes the debug output trace mechanism and
990 +has a much larger code and data size.
991 +
992 + Previous Release:
993 + Non-Debug Version: 94.3K Code, 25.3K Data, 119.6K Total
994 + Debug Version: 175.5K Code, 74.5K Data, 250.0K Total
995 + Current Release:
996 + Non-Debug Version: 94.5K Code, 25.5K Data, 120.0K Total
997 + Debug Version: 182.2K Code, 74.9K Data, 257.1K Total
998 +
999 +
1000 +2) iASL Compiler/Disassembler and Tools:
1001 +
1002 +iASL: Disallow a method call as argument to the ObjectType ASL operator.
1003 +This change tracks an errata to the ACPI 5.0 document. The AML grammar
1004 +will not allow the interpreter to differentiate between a method and a
1005 +method invocation when these are used as an argument to the ObjectType
1006 +operator. The ACPI specification change is to disallow a method
1007 +invocation
1008 +(UserTerm) for the ObjectType operator.
1009 +
1010 +Finish support for the TPM2 and CSRT tables in the headers, table
1011 +compiler, and disassembler.
1012 +
1013 +Unix user-space OSL: Fix a problem with WaitSemaphore where the timeout
1014 +always expires immediately if the semaphore is not available. The
1015 +original
1016 +code was using a relative-time timeout, but sem_timedwait requires the
1017 +use
1018 +of an absolute time.
1019 +
1020 +iASL: Added a remark if the Timer() operator is used within a 32-bit
1021 +table. This operator returns a 64-bit time value that will be truncated
1022 +within a 32-bit table.
1023 +
1024 +iASL Source code restructuring: Cleanup to improve modularity. The
1025 +following new files have been added: aslhex.c, aslxref.c, aslnamesp.c,
1026 +aslmethod.c, and aslfileio.c. Associated makefiles and project files have
1027 +been updated.
1028 +
1029 +
1030 +----------------------------------------
1031 +14 November 2012. Summary of changes for version 20121114:
1032 +
1033 +1) ACPICA Kernel-resident Subsystem:
1034 +
1035 +Implemented a performance enhancement for ACPI/AML Package objects. This
1036 +change greatly increases the performance of Package objects within the
1037 +interpreter. It changes the processing of reference counts for packages
1038 +by
1039 +optimizing for the most common case where the package sub-objects are
1040 +either Integers, Strings, or Buffers. Increases the overall performance
1041 +of
1042 +the ASLTS test suite by 1.5X (Increases the Slack Mode performance by
1043 +2X.)
1044 +Chao Guan. ACPICA BZ 943.
1045 +
1046 +Implemented and deployed common macros to extract flag bits from resource
1047 +descriptors. Improves readability and maintainability of the code. Fixes
1048 +a
1049 +problem with the UART serial bus descriptor for the number of data bits
1050 +flags (was incorrectly 2 bits, should be 3).
1051 +
1052 +Enhanced the ACPI_GETx and ACPI_SETx macros. Improved the implementation
1053 +of the macros and changed the SETx macros to the style of (destination,
1054 +source). Also added ACPI_CASTx companion macros. Lv Zheng.
1055 +
1056 +Example Code and Data Size: These are the sizes for the OS-independent
1057 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1058 +debug version of the code includes the debug output trace mechanism and
1059 +has a much larger code and data size.
1060 +
1061 + Previous Release:
1062 + Non-Debug Version: 93.9K Code, 25.2K Data, 119.1K Total
1063 + Debug Version: 175.5K Code, 74.5K Data, 250.0K Total
1064 + Current Release:
1065 + Non-Debug Version: 94.3K Code, 25.3K Data, 119.6K Total
1066 + Debug Version: 175.5K Code, 74.5K Data, 250.0K Total
1067 +
1068 +
1069 +2) iASL Compiler/Disassembler and Tools:
1070 +
1071 +Disassembler: Added the new ACPI 5.0 interrupt sharing flags. This change
1072 +adds the ShareAndWake and ExclusiveAndWake flags which were added to the
1073 +Irq, Interrupt, and Gpio resource descriptors in ACPI 5.0. ACPICA BZ 986.
1074 +
1075 +Disassembler: Fixed a problem with external declaration generation. Fixes
1076 +a problem where an incorrect pathname could be generated for an external
1077 +declaration if the original reference to the object includes leading
1078 +carats (^). ACPICA BZ 984.
1079 +
1080 +Debugger: Completed a major update for the Disassemble<method> command.
1081 +This command was out-of-date and did not properly disassemble control
1082 +methods that had any reasonable complexity. This fix brings the command
1083 +up
1084 +to the same level as the rest of the disassembler. Adds one new file,
1085 +dmdeferred.c, which is existing code that is now common with the main
1086 +disassembler and the debugger disassemble command. ACPICA MZ 978.
1087 +
1088 +iASL: Moved the parser entry prototype to avoid a duplicate declaration.
1089 +Newer versions of Bison emit this prototype, so moved the prototype out
1090 +of
1091 +the iASL header to where it is actually used in order to avoid a
1092 +duplicate
1093 +declaration.
1094 +
1095 +iASL/Tools: Standardized use of the stream I/O functions:
1096 + 1) Ensure check for I/O error after every fopen/fread/fwrite
1097 + 2) Ensure proper order of size/count arguments for fread/fwrite
1098 + 3) Use test of (Actual != Requested) after all fwrite, and most fread
1099 + 4) Standardize I/O error messages
1100 +Improves reliability and maintainability of the code. Bob Moore, Lv
1101 +Zheng.
1102 +ACPICA BZ 981.
1103 +
1104 +Disassembler: Prevent duplicate External() statements. During generation
1105 +of external statements, detect similar pathnames that are actually
1106 +duplicates such as these:
1107 + External (\ABCD)
1108 + External (ABCD)
1109 +Remove all leading '\' characters from pathnames during the external
1110 +statement generation so that duplicates will be detected and tossed.
1111 +ACPICA BZ 985.
1112 +
1113 +Tools: Replace low-level I/O with stream I/O functions. Replace
1114 +open/read/write/close with the stream I/O equivalents
1115 +fopen/fread/fwrite/fclose for portability and performance. Lv Zheng, Bob
1116 +Moore.
1117 +
1118 +AcpiBin: Fix for the dump-to-hex function. Now correctly output the table
1119 +name header so that AcpiXtract recognizes the output file/table.
1120 +
1121 +iASL: Remove obsolete -2 option flag. Originally intended to force the
1122 +compiler/disassembler into an ACPI 2.0 mode, this was never implemented
1123 +and the entire concept is now obsolete.
1124 +
1125 +----------------------------------------
1126 +18 October 2012. Summary of changes for version 20121018:
1127 +
1128 +
1129 +1) ACPICA Kernel-resident Subsystem:
1130 +
1131 +Updated support for the ACPI 5.0 MPST table. Fixes some problems
1132 +introduced by late changes to the table as it was added to the ACPI 5.0
1133 +specification. Includes header, disassembler, and data table compiler
1134 +support as well as a new version of the MPST template.
1135 +
1136 +AcpiGetObjectInfo: Enhanced the device object support to include the ACPI
1137 +5.0 _SUB method. Now calls _SUB in addition to the other PNP-related ID
1138 +methods: _HID, _CID, and _UID.
1139 +
1140 +Changed ACPI_DEVICE_ID to ACPI_PNP_DEVICE_ID. Also changed
1141 +ACPI_DEVICE_ID_LIST to ACPI_PNP_DEVICE_ID_LIST. These changes prevent
1142 +name collisions on hosts that reserve the *_DEVICE_ID (or *DeviceId)
1143 +names for their various drivers. Affects the AcpiGetObjectInfo external
1144 +interface, and other internal interfaces as well.
1145 +
1146 +Added and deployed a new macro for ACPI_NAME management: ACPI_MOVE_NAME.
1147 +This macro resolves to a simple 32-bit move of the 4-character ACPI_NAME
1148 +on machines that support non-aligned transfers. Optimizes for this case
1149 +rather than using a strncpy. With assistance from Zheng Lv.
1150 +
1151 +Resource Manager: Small fix for buffer size calculation. Fixed a one byte
1152 +error in the output buffer calculation. Feng Tang. ACPICA BZ 849.
1153 +
1154 +Added a new debug print message for AML mutex objects that are force-
1155 +released. At control method termination, any currently acquired mutex
1156 +objects are force-released. Adds a new debug-only message for each one
1157 +that is released.
1158 +
1159 +Audited/updated all ACPICA return macros and the function debug depth
1160 +counter: 1) Ensure that all functions that use the various TRACE macros
1161 +also use the appropriate ACPICA return macros. 2) Ensure that all normal
1162 +return statements surround the return expression (value) with parens to
1163 +ensure consistency across the ACPICA code base. Guan Chao, Tang Feng,
1164 +Zheng Lv, Bob Moore. ACPICA Bugzilla 972.
1165 +
1166 +Global source code changes/maintenance: All extra lines at the start and
1167 +end of each source file have been removed for consistency. Also, within
1168 +comments, all new sentences start with a single space instead of a double
1169 +space, again for consistency across the code base.
1170 +
1171 +Example Code and Data Size: These are the sizes for the OS-independent
1172 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1173 +debug version of the code includes the debug output trace mechanism and
1174 +has a much larger code and data size.
1175 +
1176 + Previous Release:
1177 + Non-Debug Version: 93.7K Code, 25.3K Data, 119.0K Total
1178 + Debug Version: 175.0K Code, 74.4K Data, 249.4K Total
1179 + Current Release:
1180 + Non-Debug Version: 93.9K Code, 25.2K Data, 119.1K Total
1181 + Debug Version: 175.5K Code, 74.5K Data, 250.0K Total
1182 +
1183 +
1184 +2) iASL Compiler/Disassembler and Tools:
1185 +
1186 +AcpiExec: Improved the algorithm used for memory leak/corruption
1187 +detection. Added some intelligence to the code that maintains the global
1188 +list of allocated memory. The list is now ordered by allocated memory
1189 +address, significantly improving performance. When running AcpiExec on
1190 +the ASLTS test suite, speed improvements of 3X to 5X are seen, depending
1191 +on the platform and/or the environment. Note, this performance
1192 +enhancement affects the AcpiExec utility only, not the kernel-resident
1193 +ACPICA code.
1194 +
1195 +Enhanced error reporting for invalid AML opcodes and bad ACPI_NAMEs. For
1196 +the disassembler, dump the 48 bytes surrounding the invalid opcode. Fix
1197 +incorrect table offset reported for invalid opcodes. Report the original
1198 +32-bit value for bad ACPI_NAMEs (as well as the repaired name.)
1199 +
1200 +Disassembler: Enhanced the -vt option to emit the binary table data in
1201 +hex format to assist with debugging.
1202 +
1203 +Fixed a potential filename buffer overflow in osunixdir.c. Increased the
1204 +size of file structure. Colin Ian King.
1205 +
1206 +----------------------------------------
1207 +13 September 2012. Summary of changes for version 20120913:
1208 +
1209 +
1210 +1) ACPICA Kernel-resident Subsystem:
1211 +
1212 +ACPI 5.0: Added two new notify types for the Hardware Error Notification
1213 +Structure within the Hardware Error Source Table (HEST) table -- CMCI(5)
1214 +and
1215 +MCE(6).
1216 +
1217 +Table Manager: Merged/removed duplicate code in the root table resize
1218 +functions. One function is external, the other is internal. Lv Zheng,
1219 +ACPICA
1220 +BZ 846.
1221 +
1222 +Makefiles: Completely removed the obsolete "Linux" makefiles under
1223 +acpica/generate/linux. These makefiles are obsolete and have been
1224 +replaced
1225 +by
1226 +the generic unix makefiles under acpica/generate/unix.
1227 +
1228 +Makefiles: Ensure that binary files always copied properly. Minor rule
1229 +change
1230 +to ensure that the final binary output files are always copied up to the
1231 +appropriate binary directory (bin32 or bin64.)
1232 +
1233 +Example Code and Data Size: These are the sizes for the OS-independent
1234 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1235 +debug
1236 +version of the code includes the debug output trace mechanism and has a
1237 +much
1238 +larger code and data size.
1239 +
1240 + Previous Release:
1241 + Non-Debug Version: 93.8K Code, 25.3K Data, 119.1K Total
1242 + Debug Version: 175.7K Code, 74.8K Data, 250.5K Total
1243 + Current Release:
1244 + Non-Debug Version: 93.7K Code, 25.3K Data, 119.0K Total
1245 + Debug Version: 175.0K Code, 74.4K Data, 249.4K Total
1246 +
1247 +
1248 +2) iASL Compiler/Disassembler and Tools:
1249 +
1250 +Disassembler: Fixed a possible fault during the disassembly of resource
1251 +descriptors when a second parse is required because of the invocation of
1252 +external control methods within the table. With assistance from
1253 +adq@lidskialf.net. ACPICA BZ 976.
1254 +
1255 +iASL: Fixed a namepath optimization problem. An error can occur if the
1256 +parse
1257 +node that contains the namepath to be optimized does not have a parent
1258 +node
1259 +that is a named object. This change fixes the problem.
1260 +
1261 +iASL: Fixed a regression where the AML file is not deleted on errors. The
1262 +AML
1263 +output file should be deleted if there are any errors during the
1264 +compiler.
1265 +The
1266 +only exception is if the -f (force output) option is used. ACPICA BZ 974.
1267 +
1268 +iASL: Added a feature to automatically increase internal line buffer
1269 +sizes.
1270 +Via realloc(), automatically increase the internal line buffer sizes as
1271 +necessary to support very long source code lines. The current version of
1272 +the
1273 +preprocessor requires a buffer long enough to contain full source code
1274 +lines.
1275 +This change increases the line buffer(s) if the input lines go beyond the
1276 +current buffer size. This eliminates errors that occurred when a source
1277 +code
1278 +line was longer than the buffer.
1279 +
1280 +iASL: Fixed a problem with constant folding in method declarations. The
1281 +SyncLevel term is a ByteConstExpr, and incorrect code would be generated
1282 +if a
1283 +Type3 opcode was used.
1284 +
1285 +Debugger: Improved command help support. For incorrect argument count,
1286 +display
1287 +full help for the command. For help command itself, allow an argument to
1288 +specify a command.
1289 +
1290 +Test Suites: Several bug fixes for the ASLTS suite reduces the number of
1291 +errors during execution of the suite. Guan Chao.
1292 +
1293 +----------------------------------------
1294 +16 August 2012. Summary of changes for version 20120816:
1295 +
1296 +
1297 +1) ACPICA Kernel-resident Subsystem:
1298 +
1299 +Removed all use of the deprecated _GTS and _BFS predefined methods. The
1300 +_GTS
1301 +(Going To Sleep) and _BFS (Back From Sleep) methods are essentially
1302 +deprecated and will probably be removed from the ACPI specification.
1303 +Windows
1304 +does not invoke them, and reportedly never will. The final nail in the
1305 +coffin
1306 +is that the ACPI specification states that these methods must be run with
1307 +interrupts off, which is not going to happen in a kernel interpreter.
1308 +Note:
1309 +Linux has removed all use of the methods also. It was discovered that
1310 +invoking these functions caused failures on some machines, probably
1311 +because
1312 +they were never tested since Windows does not call them. Affects two
1313 +external
1314 +interfaces, AcpiEnterSleepState and AcpiLeaveSleepStatePrep. Tang Feng.
1315 +ACPICA BZ 969.
1316 +
1317 +Implemented support for complex bit-packed buffers returned from the _PLD
1318 +(Physical Location of Device) predefined method. Adds a new external
1319 +interface, AcpiDecodePldBuffer that parses the buffer into a more usable
1320 +C
1321 +structure. Note: C Bitfields cannot be used for this type of predefined
1322 +structure since the memory layout of individual bitfields is not defined
1323 +by
1324 +the C language. In addition, there are endian concerns where a compiler
1325 +will
1326 +change the bitfield ordering based on the machine type. The new ACPICA
1327 +interface eliminates these issues, and should be called after _PLD is
1328 +executed. ACPICA BZ 954.
1329 +
1330 +Implemented a change to allow a scope change to root (via "Scope (\)")
1331 +during
1332 +execution of module-level ASL code (code that is executed at table load
1333 +time.) Lin Ming.
1334 +
1335 +Added the Windows8/Server2012 string for the _OSI method. This change
1336 +adds
1337 +a
1338 +new _OSI string, "Windows 2012" for both Windows 8 and Windows Server
1339 +2012.
1340 +
1341 +Added header support for the new ACPI tables DBG2 (Debug Port Table Type
1342 +2)
1343 +and CSRT (Core System Resource Table).
1344 +
1345 +Added struct header support for the _FDE, _GRT, _GTM, and _SRT predefined
1346 +names. This simplifies access to the buffers returned by these predefined
1347 +names. Adds a new file, include/acbuffer.h. ACPICA BZ 956.
1348 +
1349 +GPE support: Removed an extraneous parameter from the various low-level
1350 +internal GPE functions. Tang Feng.
1351 +
1352 +Removed the linux makefiles from the unix packages. The generate/linux
1353 +makefiles are obsolete and have been removed from the unix tarball
1354 +release
1355 +packages. The replacement makefiles are under generate/unix, and there is
1356 +a
1357 +top-level makefile under the main acpica directory. ACPICA BZ 967, 912.
1358 +
1359 +Updates for Unix makefiles:
1360 +1) Add -D_FORTIFY_SOURCE=2 for gcc generation. Arjan van de Ven.
1361 +2) Update linker flags (move to end of command line) for AcpiExec
1362 +utility.
1363 +Guan Chao.
1364 +
1365 +Split ACPICA initialization functions to new file, utxfinit.c. Split from
1366 +utxface.c to improve modularity and reduce file size.
1367 +
1368 +Example Code and Data Size: These are the sizes for the OS-independent
1369 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1370 +debug version of the code includes the debug output trace mechanism and
1371 +has a
1372 +much larger code and data size.
1373 +
1374 + Previous Release:
1375 + Non-Debug Version: 93.5K Code, 25.3K Data, 118.8K Total
1376 + Debug Version: 173.7K Code, 74.0K Data, 247.7K Total
1377 + Current Release:
1378 + Non-Debug Version: 93.8K Code, 25.3K Data, 119.1K Total
1379 + Debug Version: 175.7K Code, 74.8K Data, 250.5K Total
1380 +
1381 +
1382 +2) iASL Compiler/Disassembler and Tools:
1383 +
1384 +iASL: Fixed a problem with constant folding for fixed-length constant
1385 +expressions. The constant-folding code was not being invoked for constant
1386 +expressions that allow the use of type 3/4/5 opcodes to generate
1387 +constants
1388 +for expressions such as ByteConstExpr, WordConstExpr, etc. This could
1389 +result
1390 +in the generation of invalid AML bytecode. ACPICA BZ 970.
1391 +
1392 +iASL: Fixed a generation issue on newer versions of Bison. Newer versions
1393 +apparently automatically emit some of the necessary externals. This
1394 +change
1395 +handles these versions in order to eliminate generation warnings.
1396 +
1397 +Disassembler: Added support to decode the DBG2 and CSRT ACPI tables.
1398 +
1399 +Disassembler: Add support to decode _PLD buffers. The decoded buffer
1400 +appears
1401 +within comments in the output file.
1402 +
1403 +Debugger: Fixed a regression with the "Threads" command where
1404 +AE_BAD_PARAMETER was always returned.
1405 +
1406 +----------------------------------------
1407 +11 July 2012. Summary of changes for version 20120711:
1408 +
1409 +1) ACPICA Kernel-resident Subsystem:
1410 +
1411 +Fixed a possible fault in the return package object repair code. Fixes a
1412 +problem that can occur when a lone package object is wrapped with an
1413 +outer
1414 +package object in order to force conformance to the ACPI specification.
1415 +Can
1416 +affect these predefined names: _ALR, _MLS, _PSS, _TRT, _TSS, _PRT, _HPX,
1417 +_DLM,
1418 +_CSD, _PSD, _TSD.
1419 +
1420 +Removed code to disable/enable bus master arbitration (ARB_DIS bit in the
1421 +PM2_CNT register) in the ACPICA sleep/wake interfaces. Management of the
1422 +ARB_DIS bit must be implemented in the host-dependent C3 processor power
1423 +state
1424 +support. Note, ARB_DIS is obsolete and only applies to older chipsets,
1425 +both
1426 +Intel and other vendors. (for Intel: ICH4-M and earlier)
1427 +
1428 +This change removes the code to disable/enable bus master arbitration
1429 +during
1430 +suspend/resume. Use of the ARB_DIS bit in the optional PM2_CNT register
1431 +causes
1432 +resume problems on some machines. The change has been in use for over
1433 +seven
1434 +years within Linux.
1435 +
1436 +Implemented two new external interfaces to support host-directed dynamic
1437 +ACPI
1438 +table load and unload. They are intended to simplify the host
1439 +implementation
1440 +of hot-plug support:
1441 + AcpiLoadTable: Load an SSDT from a buffer into the namespace.
1442 + AcpiUnloadParentTable: Unload an SSDT via a named object owned by the
1443 +table.
1444 +See the ACPICA reference for additional details. Adds one new file,
1445 +components/tables/tbxfload.c
1446 +
1447 +Implemented and deployed two new interfaces for errors and warnings that
1448 +are
1449 +known to be caused by BIOS/firmware issues:
1450 + AcpiBiosError: Prints "ACPI Firmware Error" message.
1451 + AcpiBiosWarning: Prints "ACPI Firmware Warning" message.
1452 +Deployed these new interfaces in the ACPICA Table Manager code for ACPI
1453 +table
1454 +and FADT errors. Additional deployment to be completed as appropriate in
1455 +the
1456 +future. The associated conditional macros are ACPI_BIOS_ERROR and
1457 +ACPI_BIOS_WARNING. See the ACPICA reference for additional details.
1458 +ACPICA
1459 +BZ
1460 +843.
1461 +
1462 +Implicit notify support: ensure that no memory allocation occurs within a
1463 +critical region. This fix moves a memory allocation outside of the time
1464 +that a
1465 +spinlock is held. Fixes issues on systems that do not allow this
1466 +behavior.
1467 +Jung-uk Kim.
1468 +
1469 +Split exception code utilities and tables into a new file,
1470 +utilities/utexcep.c
1471 +
1472 +Example Code and Data Size: These are the sizes for the OS-independent
1473 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1474 +debug
1475 +version of the code includes the debug output trace mechanism and has a
1476 +much
1477 +larger code and data size.
1478 +
1479 + Previous Release:
1480 + Non-Debug Version: 93.1K Code, 25.1K Data, 118.2K Total
1481 + Debug Version: 172.9K Code, 73.6K Data, 246.5K Total
1482 + Current Release:
1483 + Non-Debug Version: 93.5K Code, 25.3K Data, 118.8K Total
1484 + Debug Version: 173.7K Code, 74.0K Data, 247.7K Total
1485 +
1486 +
1487 +2) iASL Compiler/Disassembler and Tools:
1488 +
1489 +iASL: Fixed a parser problem for hosts where EOF is defined as -1 instead
1490 +of
1491 +0. Jung-uk Kim.
1492 +
1493 +Debugger: Enhanced the "tables" command to emit additional information
1494 +about
1495 +the current set of ACPI tables, including the owner ID and flags decode.
1496 +
1497 +Debugger: Reimplemented the "unload" command to use the new
1498 +AcpiUnloadParentTable external interface. This command was disable
1499 +previously
1500 +due to need for an unload interface.
1501 +
1502 +AcpiHelp: Added a new option to decode ACPICA exception codes. The -e
1503 +option
1504 +will decode 16-bit hex status codes (ACPI_STATUS) to name strings.
1505 +
1506 +----------------------------------------
1507 +20 June 2012. Summary of changes for version 20120620:
1508 +
1509 +
1510 +1) ACPICA Kernel-resident Subsystem:
1511 +
1512 +Implemented support to expand the "implicit notify" feature to allow
1513 +multiple
1514 +devices to be notified by a single GPE. This feature automatically
1515 +generates a
1516 +runtime device notification in the absence of a BIOS-provided GPE control
1517 +method (_Lxx/_Exx) or a host-installed handler for the GPE. Implicit
1518 +notify is
1519 +provided by ACPICA for Windows compatibility, and is a workaround for
1520 +BIOS
1521 +AML
1522 +code errors. See the description of the AcpiSetupGpeForWake interface in
1523 +the
1524 +APCICA reference. Bob Moore, Rafael Wysocki. ACPICA BZ 918.
1525 +
1526 +Changed some comments and internal function names to simplify and ensure
1527 +correctness of the Linux code translation. No functional changes.
1528 +
1529 +Example Code and Data Size: These are the sizes for the OS-independent
1530 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1531 +debug
1532 +version of the code includes the debug output trace mechanism and has a
1533 +much
1534 +larger code and data size.
1535 +
1536 + Previous Release:
1537 + Non-Debug Version: 93.0K Code, 25.1K Data, 118.1K Total
1538 + Debug Version: 172.7K Code, 73.6K Data, 246.3K Total
1539 + Current Release:
1540 + Non-Debug Version: 93.1K Code, 25.1K Data, 118.2K Total
1541 + Debug Version: 172.9K Code, 73.6K Data, 246.5K Total
1542 +
1543 +
1544 +2) iASL Compiler/Disassembler and Tools:
1545 +
1546 +Disassembler: Added support to emit short, commented descriptions for the
1547 +ACPI
1548 +predefined names in order to improve the readability of the disassembled
1549 +output. ACPICA BZ 959. Changes include:
1550 + 1) Emit descriptions for all standard predefined names (_INI, _STA,
1551 +_PRW,
1552 +etc.)
1553 + 2) Emit generic descriptions for the special names (_Exx, _Qxx, etc.)
1554 + 3) Emit descriptions for the resource descriptor names (_MIN, _LEN,
1555 +etc.)
1556 +
1557 +AcpiSrc: Fixed several long-standing Linux code translation issues.
1558 +Argument
1559 +descriptions in function headers are now translated properly to lower
1560 +case
1561 +and
1562 +underscores. ACPICA BZ 961. Also fixes translation problems such as
1563 +these:
1564 +(old -> new)
1565 + i_aSL -> iASL
1566 + 00-7_f -> 00-7F
1567 + 16_k -> 16K
1568 + local_fADT -> local_FADT
1569 + execute_oSI -> execute_OSI
1570 +
1571 +iASL: Fixed a problem where null bytes were inadvertently emitted into
1572 +some
1573 +listing files.
1574 +
1575 +iASL: Added the existing debug options to the standard help screen. There
1576 +are
1577 +no longer two different help screens. ACPICA BZ 957.
1578 +
1579 +AcpiHelp: Fixed some typos in the various predefined name descriptions.
1580 +Also
1581 +expand some of the descriptions where appropriate.
1582 +
1583 +iASL: Fixed the -ot option (display compile times/statistics). Was not
1584 +working
1585 +properly for standard output; only worked for the debug file case.
1586 +
1587 +----------------------------------------
1588 +18 May 2012. Summary of changes for version 20120518:
1589 +
1590 +
1591 +1) ACPICA Core Subsystem:
1592 +
1593 +Added a new OSL interface, AcpiOsWaitEventsComplete. This interface is
1594 +defined
1595 +to block until asynchronous events such as notifies and GPEs have
1596 +completed.
1597 +Within ACPICA, it is only called before a notify or GPE handler is
1598 +removed/uninstalled. It also may be useful for the host OS within related
1599 +drivers such as the Embedded Controller driver. See the ACPICA reference
1600 +for
1601 +additional information. ACPICA BZ 868.
1602 +
1603 +ACPI Tables: Added a new error message for a possible overflow failure
1604 +during
1605 +the conversion of FADT 32-bit legacy register addresses to internal
1606 +common
1607 +64-
1608 +bit GAS structure representation. The GAS has a one-byte "bit length"
1609 +field,
1610 +thus limiting the register length to 255 bits. ACPICA BZ 953.
1611 +
1612 +Example Code and Data Size: These are the sizes for the OS-independent
1613 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1614 +debug
1615 +version of the code includes the debug output trace mechanism and has a
1616 +much
1617 +larger code and data size.
1618 +
1619 + Previous Release:
1620 + Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total
1621 + Debug Version: 172.6K Code, 73.4K Data, 246.0K Total
1622 + Current Release:
1623 + Non-Debug Version: 93.0K Code, 25.1K Data, 118.1K Total
1624 + Debug Version: 172.7K Code, 73.6K Data, 246.3K Total
1625 +
1626 +
1627 +2) iASL Compiler/Disassembler and Tools:
1628 +
1629 +iASL: Added the ACPI 5.0 "PCC" keyword for use in the Register() ASL
1630 +macro.
1631 +This keyword was added late in the ACPI 5.0 release cycle and was not
1632 +implemented until now.
1633 +
1634 +Disassembler: Added support for Operation Region externals. Adds missing
1635 +support for operation regions that are defined in another table, and
1636 +referenced locally via a Field or BankField ASL operator. Now generates
1637 +the
1638 +correct External statement.
1639 +
1640 +Disassembler: Several additional fixes for the External() statement
1641 +generation
1642 +related to some ASL operators. Also, order the External() statements
1643 +alphabetically in the disassembler output. Fixes the External()
1644 +generation
1645 +for
1646 +the Create* field, Alias, and Scope operators:
1647 + 1) Create* buffer field operators - fix type mismatch warning on
1648 +disassembly
1649 + 2) Alias - implement missing External support
1650 + 3) Scope - fix to make sure all necessary externals are emitted.
1651 +
1652 +iASL: Improved pathname support. For include files, merge the prefix
1653 +pathname
1654 +with the file pathname and eliminate unnecessary components. Convert
1655 +backslashes in all pathnames to forward slashes, for readability. Include
1656 +file
1657 +pathname changes affect both #include and Include() type operators.
1658 +
1659 +iASL/DTC/Preprocessor: Gracefully handle early EOF. Handle an EOF at the
1660 +end
1661 +of a valid line by inserting a newline and then returning the EOF during
1662 +the
1663 +next call to GetNextLine. Prevents the line from being ignored due to EOF
1664 +condition.
1665 +
1666 +iASL: Implemented some changes to enhance the IDE support (-vi option.)
1667 +Error
1668 +and Warning messages are now correctly recognized for both the source
1669 +code
1670 +browser and the global error and warning counts.
1671 +
1672 +----------------------------------------
1673 +20 April 2012. Summary of changes for version 20120420:
1674 +
1675 +
1676 +1) ACPICA Core Subsystem:
1677 +
1678 +Implemented support for multiple notify handlers. This change adds
1679 +support
1680 +to
1681 +allow multiple system and device notify handlers on Device, Thermal Zone,
1682 +and
1683 +Processor objects. This can simplify the host OS notification
1684 +implementation.
1685 +Also re-worked and restructured the entire notify support code to
1686 +simplify
1687 +handler installation, handler removal, notify event queuing, and notify
1688 +dispatch to handler(s). Note: there can still only be two global notify
1689 +handlers - one for system notifies and one for device notifies. There are
1690 +no
1691 +changes to the existing handler install/remove interfaces. Lin Ming, Bob
1692 +Moore, Rafael Wysocki.
1693 +
1694 +Fixed a regression in the package repair code where the object reference
1695 +count was calculated incorrectly. Regression was introduced in the commit
1696 +"Support to add Package wrappers".
1697 +
1698 +Fixed a couple possible memory leaks in the AML parser, in the error
1699 +recovery
1700 +path. Jesper Juhl, Lin Ming.
1701 +
1702 +Example Code and Data Size: These are the sizes for the OS-independent
1703 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1704 +debug version of the code includes the debug output trace mechanism and
1705 +has a
1706 +much larger code and data size.
1707 +
1708 + Previous Release:
1709 + Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total
1710 + Debug Version: 172.5K Code, 73.2K Data, 245.7K Total
1711 + Current Release:
1712 + Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total
1713 + Debug Version: 172.6K Code, 73.4K Data, 246.0K Total
1714 +
1715 +
1716 +2) iASL Compiler/Disassembler and Tools:
1717 +
1718 +iASL: Fixed a problem with the resource descriptor support where the
1719 +length
1720 +of the StartDependentFn and StartDependentFnNoPrio descriptors were not
1721 +included in cumulative descriptor offset, resulting in incorrect values
1722 +for
1723 +resource tags within resource descriptors appearing after a
1724 +StartDependent*
1725 +descriptor. Reported by Petr Vandrovec. ACPICA BZ 949.
1726 +
1727 +iASL and Preprocessor: Implemented full support for the #line directive
1728 +to
1729 +correctly track original source file line numbers through the .i
1730 +preprocessor
1731 +output file - for error and warning messages.
1732 +
1733 +iASL: Expand the allowable byte constants for address space IDs.
1734 +Previously,
1735 +the allowable range was 0x80-0xFF (user-defined spaces), now the range is
1736 +0x0A-0xFF to allow for custom and new IDs without changing the compiler.
1737 +
1738 +iASL: Add option to treat all warnings as errors (-we). ACPICA BZ 948.
1739 +
1740 +iASL: Add option to completely disable the preprocessor (-Pn).
1741 +
1742 +iASL: Now emit all error/warning messages to standard error (stderr) by
1743 +default (instead of the previous stdout).
1744 +
1745 +ASL Test Suite (ASLTS): Reduce iASL warnings due to use of Switch().
1746 +Update
1747 +for resource descriptor offset fix above. Update/cleanup error output
1748 +routines. Enable and send iASL errors/warnings to an error logfile
1749 +(error.txt). Send all other iASL output to a logfile (compiler.txt).
1750 +Fixed
1751 +several extraneous "unrecognized operator" messages.
1752 +
1753 +----------------------------------------
1754 +20 March 2012. Summary of changes for version 20120320:
1755 +
1756 +
1757 +1) ACPICA Core Subsystem:
1758 +
1759 +Enhanced the sleep/wake interfaces to optionally execute the _GTS method
1760 +(Going To Sleep) and the _BFS method (Back From Sleep). Windows
1761 +apparently
1762 +does not execute these methods, and therefore these methods are often
1763 +untested. It has been seen on some systems where the execution of these
1764 +methods causes errors and also prevents the machine from entering S5. It
1765 +is
1766 +therefore suggested that host operating systems do not execute these
1767 +methods
1768 +by default. In the future, perhaps these methods can be optionally
1769 +executed
1770 +based on the age of the system and/or what is the newest version of
1771 +Windows
1772 +that the BIOS asks for via _OSI. Changed interfaces: AcpiEnterSleepState
1773 +and
1774 +AcpileaveSleepStatePrep. See the ACPICA reference and Linux BZ 13041. Lin
1775 +Ming.
1776 +
1777 +Fixed a problem where the length of the local/common FADT was set too
1778 +early.
1779 +The local FADT table length cannot be set to the common length until the
1780 +original length has been examined. There is code that checks the table
1781 +length
1782 +and sets various fields appropriately. This can affect older machines
1783 +with
1784 +early FADT versions. For example, this can cause inadvertent writes to
1785 +the
1786 +CST_CNT register. Julian Anastasov.
1787 +
1788 +Fixed a mapping issue related to a physical table override. Use the
1789 +deferred
1790 +mapping mechanism for tables loaded via the physical override OSL
1791 +interface.
1792 +This allows for early mapping before the virtual memory manager is
1793 +available.
1794 +Thomas Renninger, Bob Moore.
1795 +
1796 +Enhanced the automatic return-object repair code: Repair a common problem
1797 +with
1798 +predefined methods that are defined to return a variable-length Package
1799 +of
1800 +sub-objects. If there is only one sub-object, some BIOS ASL code
1801 +mistakenly
1802 +simply returns the single object instead of a Package with one sub-
1803 +object.
1804 +This new support will repair this error by wrapping a Package object
1805 +around
1806 +the original object, creating the correct and expected Package with one
1807 +sub-
1808 +object. Names that can be repaired in this manner include: _ALR, _CSD,
1809 +_HPX,
1810 +_MLS, _PLD, _PRT, _PSS, _TRT, _TSS, _BCL, _DOD, _FIX, and _Sx. ACPICA BZ
1811 +939.
1812 +
1813 +Changed the exception code returned for invalid ACPI paths passed as
1814 +parameters to external interfaces such as AcpiEvaluateObject. Was
1815 +AE_BAD_PARAMETER, now is the more sensible AE_BAD_PATHNAME.
1816 +
1817 +Example Code and Data Size: These are the sizes for the OS-independent
1818 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1819 +debug
1820 +version of the code includes the debug output trace mechanism and has a
1821 +much
1822 +larger code and data size.
1823 +
1824 + Previous Release:
1825 + Non-Debug Version: 93.0K Code, 25.0K Data, 118.0K Total
1826 + Debug Version: 172.5K Code, 73.2K Data, 245.7K Total
1827 + Current Release:
1828 + Non-Debug Version: 92.9K Code, 25.0K Data, 117.9K Total
1829 + Debug Version: 172.5K Code, 73.2K Data, 245.7K Total
1830 +
1831 +
1832 +2) iASL Compiler/Disassembler and Tools:
1833 +
1834 +iASL: Added the infrastructure and initial implementation of a integrated
1835 +C-
1836 +like preprocessor. This will simplify BIOS development process by
1837 +eliminating
1838 +the need for a separate preprocessing step during builds. On Windows, it
1839 +also
1840 +eliminates the need to install a separate C compiler. ACPICA BZ 761. Some
1841 +features including full #define() macro support are still under
1842 +development.
1843 +These preprocessor directives are supported:
1844 + #define
1845 + #elif
1846 + #else
1847 + #endif
1848 + #error
1849 + #if
1850 + #ifdef
1851 + #ifndef
1852 + #include
1853 + #pragma message
1854 + #undef
1855 + #warning
1856 +In addition, these new command line options are supported:
1857 + -D <symbol> Define symbol for preprocessor use
1858 + -li Create preprocessed output file (*.i)
1859 + -P Preprocess only and create preprocessor output file (*.i)
1860 +
1861 +Table Compiler: Fixed a problem where the equals operator within an
1862 +expression
1863 +did not work properly.
1864 +
1865 +Updated iASL to use the current versions of Bison/Flex. Updated the
1866 +Windows
1867 +project file to invoke these tools from the standard location. ACPICA BZ
1868 +904.
1869 +Versions supported:
1870 + Flex for Windows: V2.5.4
1871 + Bison for Windows: V2.4.1
1872 +
1873 +----------------------------------------
1874 +15 February 2012. Summary of changes for version 20120215:
1875 +
1876 +
1877 +1) ACPICA Core Subsystem:
1878 +
1879 +There have been some major changes to the sleep/wake support code, as
1880 +described below (a - e).
1881 +
1882 +a) The AcpiLeaveSleepState has been split into two interfaces, similar to
1883 +AcpiEnterSleepStatePrep and AcpiEnterSleepState. The new interface is
1884 +AcpiLeaveSleepStatePrep. This allows the host to perform actions between
1885 +the
1886 +time the _BFS method is called and the _WAK method is called. NOTE: all
1887 +hosts
1888 +must update their wake/resume code or else sleep/wake will not work
1889 +properly.
1890 +Rafael Wysocki.
1891 +
1892 +b) In AcpiLeaveSleepState, now enable all runtime GPEs before calling the
1893 +_WAK
1894 +method. Some machines require that the GPEs are enabled before the _WAK
1895 +method
1896 +is executed. Thomas Renninger.
1897 +
1898 +c) In AcpiLeaveSleepState, now always clear the WAK_STS (wake status)
1899 +bit.
1900 +Some BIOS code assumes that WAK_STS will be cleared on resume and use it
1901 +to
1902 +determine whether the system is rebooting or resuming. Matthew Garrett.
1903 +
1904 +d) Move the invocations of _GTS (Going To Sleep) and _BFS (Back From
1905 +Sleep) to
1906 +match the ACPI specification requirement. Rafael Wysocki.
1907 +
1908 +e) Implemented full support for the ACPI 5.0 SleepStatus and SleepControl
1909 +registers within the V5 FADT. This support adds two new files:
1910 +hardware/hwesleep.c implements the support for the new registers. Moved
1911 +all
1912 +sleep/wake external interfaces to hardware/hwxfsleep.c.
1913 +
1914 +
1915 +Added a new OSL interface for ACPI table overrides,
1916 +AcpiOsPhysicalTableOverride. This interface allows the host to override a
1917 +table via a physical address, instead of the logical address required by
1918 +AcpiOsTableOverride. This simplifies the host implementation. Initial
1919 +implementation by Thomas Renninger. The ACPICA implementation creates a
1920 +single
1921 +shared function for table overrides that attempts both a logical and a
1922 +physical override.
1923 +
1924 +Expanded the OSL memory read/write interfaces to 64-bit data
1925 +(AcpiOsReadMemory, AcpiOsWriteMemory.) This enables full 64-bit memory
1926 +transfer support for GAS register structures passed to AcpiRead and
1927 +AcpiWrite.
1928 +
1929 +Implemented the ACPI_REDUCED_HARDWARE option to allow the creation of a
1930 +custom
1931 +build of ACPICA that supports only the ACPI 5.0 reduced hardware (SoC)
1932 +model.
1933 +See the ACPICA reference for details. ACPICA BZ 942. This option removes
1934 +about
1935 +10% of the code and 5% of the static data, and the following hardware
1936 +ACPI
1937 +features become unavailable:
1938 + PM Event and Control registers
1939 + SCI interrupt (and handler)
1940 + Fixed Events
1941 + General Purpose Events (GPEs)
1942 + Global Lock
1943 + ACPI PM timer
1944 + FACS table (Waking vectors and Global Lock)
1945 +
1946 +Updated the unix tarball directory structure to match the ACPICA git
1947 +source
1948 +tree. This ensures that the generic unix makefiles work properly (in
1949 +generate/unix). Also updated the Linux makefiles to match. ACPICA BZ
1950 +867.
1951 +
1952 +Updated the return value of the _REV predefined method to integer value 5
1953 +to
1954 +reflect ACPI 5.0 support.
1955 +
1956 +Moved the external ACPI PM timer interface prototypes to the public
1957 +acpixf.h
1958 +file where they belong.
1959 +
1960 +Example Code and Data Size: These are the sizes for the OS-independent
1961 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
1962 +debug
1963 +version of the code includes the debug output trace mechanism and has a
1964 +much
1965 +larger code and data size.
1966 +
1967 + Previous Release:
1968 + Non-Debug Version: 92.8K Code, 24.9K Data, 117.7K Total
1969 + Debug Version: 171.7K Code, 72.9K Data, 244.5K Total
1970 + Current Release:
1971 + Non-Debug Version: 93.0K Code, 25.0K Data, 118.0K Total
1972 + Debug Version: 172.5K Code, 73.2K Data, 245.7K Total
1973 +
1974 +
1975 +2) iASL Compiler/Disassembler and Tools:
1976 +
1977 +Disassembler: Fixed a problem with the new ACPI 5.0 serial resource
1978 +descriptors (I2C, SPI, UART) where the resource produce/consumer bit was
1979 +incorrectly displayed.
1980 +
1981 +AcpiHelp: Add display of ACPI/PNP device IDs that are defined in the ACPI
1982 +specification.
1983 +
1984 +----------------------------------------
1985 +11 January 2012. Summary of changes for version 20120111:
1986 +
1987 +
1988 +1) ACPICA Core Subsystem:
1989 +
1990 +Implemented a new mechanism to allow host device drivers to check for
1991 +address
1992 +range conflicts with ACPI Operation Regions. Both SystemMemory and
1993 +SystemIO
1994 +address spaces are supported. A new external interface,
1995 +AcpiCheckAddressRange,
1996 +allows drivers to check an address range against the ACPI namespace. See
1997 +the
1998 +ACPICA reference for additional details. Adds one new file,
1999 +utilities/utaddress.c. Lin Ming, Bob Moore.
2000 +
2001 +Fixed several issues with the ACPI 5.0 FADT support: Add the sleep
2002 +Control
2003 +and
2004 +Status registers, update the ACPI 5.0 flags, and update internal data
2005 +structures to handle an FADT larger than 256 bytes. The size of the ACPI
2006 +5.0
2007 +FADT is 268 bytes.
2008 +
2009 +Updated all ACPICA copyrights and signons to 2012. Added the 2012
2010 +copyright to
2011 +all module headers and signons, including the standard Linux header. This
2012 +affects virtually every file in the ACPICA core subsystem, iASL compiler,
2013 +and
2014 +all ACPICA utilities.
2015 +
2016 +Example Code and Data Size: These are the sizes for the OS-independent
2017 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
2018 +debug
2019 +version of the code includes the debug output trace mechanism and has a
2020 +much
2021 +larger code and data size.
2022 +
2023 + Previous Release:
2024 + Non-Debug Version: 92.3K Code, 24.9K Data, 117.2K Total
2025 + Debug Version: 170.8K Code, 72.6K Data, 243.4K Total
2026 + Current Release:
2027 + Non-Debug Version: 92.8K Code, 24.9K Data, 117.7K Total
2028 + Debug Version: 171.7K Code, 72.9K Data, 244.5K Total
2029 +
2030 +
2031 +2) iASL Compiler/Disassembler and Tools:
2032 +
2033 +Disassembler: fixed a problem with the automatic resource tag generation
2034 +support. Fixes a problem where the resource tags are inadvertently not
2035 +constructed if the table being disassembled contains external references
2036 +to
2037 +control methods. Moved the actual construction of the tags to after the
2038 +final
2039 +namespace is constructed (after 2nd parse is invoked due to external
2040 +control
2041 +method references.) ACPICA BZ 941.
2042 +
2043 +Table Compiler: Make all "generic" operators caseless. These are the
2044 +operators
2045 +like UINT8, String, etc. Making these caseless improves ease-of-use.
2046 +ACPICA BZ
2047 +934.
2048 +
2049 +----------------------------------------
2050 +23 November 2011. Summary of changes for version 20111123:
2051 +
2052 +0) ACPI 5.0 Support:
2053 +
2054 +This release contains full support for the ACPI 5.0 specification, as
2055 +summarized below.
2056 +
2057 +Reduced Hardware Support:
2058 +-------------------------
2059 +
2060 +This support allows for ACPI systems without the usual ACPI hardware.
2061 +This
2062 +support is enabled by a flag in the revision 5 FADT. If it is set, ACPICA
2063 +will
2064 +not attempt to initialize or use any of the usual ACPI hardware. Note,
2065 +when
2066 +this flag is set, all of the following ACPI hardware is assumed to be not
2067 +present and is not initialized or accessed:
2068 +
2069 + General Purpose Events (GPEs)
2070 + Fixed Events (PM1a/PM1b and PM Control)
2071 + Power Management Timer and Console Buttons (power/sleep)
2072 + Real-time Clock Alarm
2073 + Global Lock
2074 + System Control Interrupt (SCI)
2075 + The FACS is assumed to be non-existent
2076 +
2077 +ACPI Tables:
2078 +------------
2079 +
2080 +All new tables and updates to existing tables are fully supported in the
2081 +ACPICA headers (for use by device drivers), the disassembler, and the
2082 +iASL
2083 +Data Table Compiler. ACPI 5.0 defines these new tables:
2084 +
2085 + BGRT /* Boot Graphics Resource Table */
2086 + DRTM /* Dynamic Root of Trust for Measurement table */
2087 + FPDT /* Firmware Performance Data Table */
2088 + GTDT /* Generic Timer Description Table */
2089 + MPST /* Memory Power State Table */
2090 + PCCT /* Platform Communications Channel Table */
2091 + PMTT /* Platform Memory Topology Table */
2092 + RASF /* RAS Feature table */
2093 +
2094 +Operation Regions/SpaceIDs:
2095 +---------------------------
2096 +
2097 +All new operation regions are fully supported by the iASL compiler, the
2098 +disassembler, and the ACPICA runtime code (for dispatch to region
2099 +handlers.)
2100 +The new operation region Space IDs are:
2101 +
2102 + GeneralPurposeIo
2103 + GenericSerialBus
2104 +
2105 +Resource Descriptors:
2106 +---------------------
2107 +
2108 +All new ASL resource descriptors are fully supported by the iASL
2109 +compiler,
2110 +the
2111 +ASL/AML disassembler, and the ACPICA runtime Resource Manager code
2112 +(including
2113 +all new predefined resource tags). New descriptors are:
2114 +
2115 + FixedDma
2116 + GpioIo
2117 + GpioInt
2118 + I2cSerialBus
2119 + SpiSerialBus
2120 + UartSerialBus
2121 +
2122 +ASL/AML Operators, New and Modified:
2123 +------------------------------------
2124 +
2125 +One new operator is added, the Connection operator, which is used to
2126 +associate
2127 +a GeneralPurposeIo or GenericSerialBus resource descriptor with
2128 +individual
2129 +field objects within an operation region. Several new protocols are
2130 +associated
2131 +with the AccessAs operator. All are fully supported by the iASL compiler,
2132 +disassembler, and runtime ACPICA AML interpreter:
2133 +
2134 + Connection // Declare Field Connection
2135 +attributes
2136 + AccessAs: AttribBytes (n) // Read/Write N-Bytes Protocol
2137 + AccessAs: AttribRawBytes (n) // Raw Read/Write N-Bytes
2138 +Protocol
2139 + AccessAs: AttribRawProcessBytes (n) // Raw Process Call Protocol
2140 + RawDataBuffer // Data type for Vendor Data
2141 +fields
2142 +
2143 +Predefined ASL/AML Objects:
2144 +---------------------------
2145 +
2146 +All new predefined objects/control-methods are supported by the iASL
2147 +compiler
2148 +and the ACPICA runtime validation/repair (arguments and return values.)
2149 +New
2150 +predefined names include the following:
2151 +
2152 +Standard Predefined Names (Objects or Control Methods):
2153 + _AEI, _CLS, _CPC, _CWS, _DEP,
2154 + _DLM, _EVT, _GCP, _CRT, _GWS,
2155 + _HRV, _PRE, _PSE, _SRT, _SUB.
2156 +
2157 +Resource Tags (Names used to access individual fields within resource
2158 +descriptors):
2159 + _DBT, _DPL, _DRS, _END, _FLC,
2160 + _IOR, _LIN, _MOD, _PAR, _PHA,
2161 + _PIN, _PPI, _POL, _RXL, _SLV,
2162 + _SPE, _STB, _TXL, _VEN.
2163 +
2164 +ACPICA External Interfaces:
2165 +---------------------------
2166 +
2167 +Several new interfaces have been defined for use by ACPI-related device
2168 +drivers and other host OS services:
2169 +
2170 +AcpiAcquireMutex and AcpiReleaseMutex: These interfaces allow the host OS
2171 +to
2172 +acquire and release AML mutexes that are defined in the DSDT/SSDT tables
2173 +provided by the BIOS. They are intended to be used in conjunction with
2174 +the
2175 +ACPI 5.0 _DLM (Device Lock Method) in order to provide transaction-level
2176 +mutual exclusion with the AML code/interpreter.
2177 +
2178 +AcpiGetEventResources: Returns the (formatted) resource descriptors as
2179 +defined
2180 +by the ACPI 5.0 _AEI object (ACPI Event Information). This object
2181 +provides
2182 +resource descriptors associated with hardware-reduced platform events,
2183 +similar
2184 +to the AcpiGetCurrentResources interface.
2185 +
2186 +Operation Region Handlers: For General Purpose IO and Generic Serial Bus
2187 +operation regions, information about the Connection() object and any
2188 +optional
2189 +length information is passed to the region handler within the Context
2190 +parameter.
2191 +
2192 +AcpiBufferToResource: This interface converts a raw AML buffer containing
2193 +a
2194 +resource template or resource descriptor to the ACPI_RESOURCE internal
2195 +format
2196 +suitable for use by device drivers. Can be used by an operation region
2197 +handler
2198 +to convert the Connection() buffer object into a ACPI_RESOURCE.
2199 +
2200 +Miscellaneous/Tools/TestSuites:
2201 +-------------------------------
2202 +
2203 +Support for extended _HID names (Four alpha characters instead of three).
2204 +Support for ACPI 5.0 features in the AcpiExec and AcpiHelp utilities.
2205 +Support for ACPI 5.0 features in the ASLTS test suite.
2206 +Fully updated documentation (ACPICA and iASL reference documents.)
2207 +
2208 +ACPI Table Definition Language:
2209 +-------------------------------
2210 +
2211 +Support for this language was implemented and released as a subsystem of
2212 +the
2213 +iASL compiler in 2010. (See the iASL compiler User Guide.)
2214 +
2215 +
2216 +Non-ACPI 5.0 changes for this release:
2217 +--------------------------------------
2218 +
2219 +1) ACPICA Core Subsystem:
2220 +
2221 +Fix a problem with operation region declarations where a failure can
2222 +occur
2223 +if
2224 +the region name and an argument that evaluates to an object (such as the
2225 +region address) are in different namespace scopes. Lin Ming, ACPICA BZ
2226 +937.
2227 +
2228 +Do not abort an ACPI table load if an invalid space ID is found within.
2229 +This
2230 +will be caught later if the offending method is executed. ACPICA BZ 925.
2231 +
2232 +Fixed an issue with the FFixedHW space ID where the ID was not always
2233 +recognized properly (Both ACPICA and iASL). ACPICA BZ 926.
2234 +
2235 +Fixed a problem with the 32-bit generation of the unix-specific OSL
2236 +(osunixxf.c). Lin Ming, ACPICA BZ 936.
2237 +
2238 +Several changes made to enable generation with the GCC 4.6 compiler.
2239 +ACPICA BZ
2240 +935.
2241 +
2242 +New error messages: Unsupported I/O requests (not 8/16/32 bit), and
2243 +Index/Bank
2244 +field registers out-of-range.
2245 +
2246 +2) iASL Compiler/Disassembler and Tools:
2247 +
2248 +iASL: Implemented the __PATH__ operator, which returns the full pathname
2249 +of
2250 +the current source file.
2251 +
2252 +AcpiHelp: Automatically display expanded keyword information for all ASL
2253 +operators.
2254 +
2255 +Debugger: Add "Template" command to disassemble/dump resource template
2256 +buffers.
2257 +
2258 +Added a new master script to generate and execute the ASLTS test suite.
2259 +Automatically handles 32- and 64-bit generation. See tests/aslts.sh
2260 +
2261 +iASL: Fix problem with listing generation during processing of the
2262 +Switch()
2263 +operator where AML listing was disabled until the entire Switch block was
2264 +completed.
2265 +
2266 +iASL: Improve support for semicolon statement terminators. Fix "invalid
2267 +character" message for some cases when the semicolon is used. Semicolons
2268 +are
2269 +now allowed after every <Term> grammar element. ACPICA BZ 927.
2270 +
2271 +iASL: Fixed some possible aliasing warnings during generation. ACPICA BZ
2272 +923.
2273 +
2274 +Disassembler: Fix problem with disassembly of the DataTableRegion
2275 +operator
2276 +where an inadvertent "Unhandled deferred opcode" message could be
2277 +generated.
2278 +
2279 +3) Example Code and Data Size
2280 +
2281 +These are the sizes for the OS-independent acpica.lib produced by the
2282 +Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code
2283 +includes the debug output trace mechanism and has a much larger code and
2284 +data
2285 +size.
2286 +
2287 + Previous Release:
2288 + Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
2289 + Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
2290 + Current Release:
2291 + Non-Debug Version: 92.3K Code, 24.9K Data, 117.2K Total
2292 + Debug Version: 170.8K Code, 72.6K Data, 243.4K Total
2293 +
2294 +----------------------------------------
2295 +22 September 2011. Summary of changes for version 20110922:
2296 +
2297 +0) ACPI 5.0 News:
2298 +
2299 +Support for ACPI 5.0 in ACPICA has been underway for several months and
2300 +will
2301 +be released at the same time that ACPI 5.0 is officially released.
2302 +
2303 +The ACPI 5.0 specification is on track for release in the next few
2304 +months.
2305 +
2306 +1) ACPICA Core Subsystem:
2307 +
2308 +Fixed a problem where the maximum sleep time for the Sleep() operator was
2309 +intended to be limited to two seconds, but was inadvertently limited to
2310 +20
2311 +seconds instead.
2312 +
2313 +Linux and Unix makefiles: Added header file dependencies to ensure
2314 +correct
2315 +generation of ACPICA core code and utilities. Also simplified the
2316 +makefiles
2317 +considerably through the use of the vpath variable to specify search
2318 +paths.
2319 +ACPICA BZ 924.
2320 +
2321 +2) iASL Compiler/Disassembler and Tools:
2322 +
2323 +iASL: Implemented support to check the access length for all fields
2324 +created to
2325 +access named Resource Descriptor fields. For example, if a resource field
2326 +is
2327 +defined to be two bits, a warning is issued if a CreateXxxxField() is
2328 +used
2329 +with an incorrect bit length. This is implemented for all current
2330 +resource
2331 +descriptor names. ACPICA BZ 930.
2332 +
2333 +Disassembler: Fixed a byte ordering problem with the output of 24-bit and
2334 +56-
2335 +bit integers.
2336 +
2337 +iASL: Fixed a couple of issues associated with variable-length package
2338 +objects. 1) properly handle constants like One, Ones, Zero -- do not make
2339 +a
2340 +VAR_PACKAGE when these are used as a package length. 2) Allow the
2341 +VAR_PACKAGE
2342 +opcode (in addition to PACKAGE) when validating object types for
2343 +predefined
2344 +names.
2345 +
2346 +iASL: Emit statistics for all output files (instead of just the ASL input
2347 +and
2348 +AML output). Includes listings, hex files, etc.
2349 +
2350 +iASL: Added -G option to the table compiler to allow the compilation of
2351 +custom
2352 +ACPI tables. The only part of a table that is required is the standard
2353 +36-
2354 +byte
2355 +ACPI header.
2356 +
2357 +AcpiXtract: Ported to the standard ACPICA environment (with ACPICA
2358 +headers),
2359 +which also adds correct 64-bit support. Also, now all output filenames
2360 +are
2361 +completely lower case.
2362 +
2363 +AcpiExec: Ignore any non-AML tables (tables other than DSDT or SSDT) when
2364 +loading table files. A warning is issued for any such tables. The only
2365 +exception is an FADT. This also fixes a possible fault when attempting to
2366 +load
2367 +non-AML tables. ACPICA BZ 932.
2368 +
2369 +AcpiHelp: Added the AccessAs and Offset operators. Fixed a problem where
2370 +a
2371 +missing table terminator could cause a fault when using the -p option.
2372 +
2373 +AcpiSrc: Fixed a possible divide-by-zero fault when generating file
2374 +statistics.
2375 +
2376 +3) Example Code and Data Size
2377 +
2378 +These are the sizes for the OS-independent acpica.lib produced by the
2379 +Microsoft Visual C++ 9.0 32-bit compiler. The debug version of the code
2380 +includes the debug output trace mechanism and has a much larger code and
2381 +data
2382 +size.
2383 +
2384 + Previous Release (VC 9.0):
2385 + Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
2386 + Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
2387 + Current Release (VC 9.0):
2388 + Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
2389 + Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
2390 +
2391 +
2392 +----------------------------------------
2393 +23 June 2011. Summary of changes for version 20110623:
2394 +
6 2395 1) ACPI CA Core Subsystem:
7 2396
8 -ASL Load() operator: Reinstate most restrictions on the incoming ACPI table
2397 +Updated the predefined name repair mechanism to not attempt repair of a
2398 +_TSS
2399 +return object if a _PSS object is present. We can only sort the _TSS
2400 +return
2401 +package if there is no _PSS within the same scope. This is because if
2402 +_PSS
2403 +is
2404 +present, the ACPI specification dictates that the _TSS Power Dissipation
2405 +field
2406 +is to be ignored, and therefore some BIOSs leave garbage values in the
2407 +_TSS
2408 +Power field(s). In this case, it is best to just return the _TSS package
2409 +as-
2410 +is. Reported by, and fixed with assistance from Fenghua Yu.
2411 +
2412 +Added an option to globally disable the control method return value
2413 +validation
2414 +and repair. This runtime option can be used to disable return value
2415 +repair
2416 +if
2417 +this is causing a problem on a particular machine. Also added an option
2418 +to
2419 +AcpiExec (-dr) to set this disable flag.
2420 +
2421 +All makefiles and project files: Major changes to improve generation of
2422 +ACPICA
2423 +tools. ACPICA BZ 912:
2424 + Reduce default optimization levels to improve compatibility
2425 + For Linux, add strict-aliasing=0 for gcc 4
2426 + Cleanup and simplify use of command line defines
2427 + Cleanup multithread library support
2428 + Improve usage messages
2429 +
2430 +Linux-specific header: update handling of THREAD_ID and pthread. For the
2431 +32-
2432 +bit case, improve casting to eliminate possible warnings, especially with
2433 +the
2434 +acpica tools.
2435 +
2436 +Example Code and Data Size: These are the sizes for the OS-independent
2437 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
2438 +debug
2439 +version of the code includes the debug output trace mechanism and has a
2440 +much
2441 +larger code and data size.
2442 +
2443 + Previous Release (VC 9.0):
2444 + Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total
2445 + Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
2446 + Current Release (VC 9.0):
2447 + Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total
2448 + Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
2449 +
2450 +2) iASL Compiler/Disassembler and Tools:
2451 +
2452 +With this release, a new utility named "acpihelp" has been added to the
2453 +ACPICA
2454 +package. This utility summarizes the ACPI specification chapters for the
2455 +ASL
2456 +and AML languages. It generates under Linux/Unix as well as Windows, and
2457 +provides the following functionality:
2458 + Find/display ASL operator(s) -- with description and syntax.
2459 + Find/display ASL keyword(s) -- with exact spelling and descriptions.
2460 + Find/display ACPI predefined name(s) -- with description, number
2461 + of arguments, and the return value data type.
2462 + Find/display AML opcode name(s) -- with opcode, arguments, and
2463 +grammar.
2464 + Decode/display AML opcode -- with opcode name, arguments, and
2465 +grammar.
2466 +
2467 +Service Layers: Make multi-thread support configurable. Conditionally
2468 +compile
2469 +the multi-thread support so that threading libraries will not be linked
2470 +if
2471 +not
2472 +necessary. The only tool that requires multi-thread support is AcpiExec.
2473 +
2474 +iASL: Update yyerrror/AslCompilerError for "const" errors. Newer versions
2475 +of
2476 +Bison appear to want the interface to yyerror to be a const char * (or at
2477 +least this is a problem when generating iASL on some systems.) ACPICA BZ
2478 +923
2479 +Pierre Lejeune.
2480 +
2481 +Tools: Fix for systems where O_BINARY is not defined. Only used for
2482 +Windows
2483 +versions of the tools.
2484 +
2485 +----------------------------------------
2486 +27 May 2011. Summary of changes for version 20110527:
2487 +
2488 +1) ACPI CA Core Subsystem:
2489 +
2490 +ASL Load() operator: Reinstate most restrictions on the incoming ACPI
2491 +table
9 2492 signature. Now, only allow SSDT, OEMx, and a null signature. History:
10 2493 1) Originally, we checked the table signature for "SSDT" or "PSDT".
11 2494 (PSDT is now obsolete.)
12 2495 2) We added support for OEMx tables, signature "OEM" plus a fourth
13 2496 "don't care" character.
14 2497 3) Valid tables were encountered with a null signature, so we just
15 2498 gave up on validating the signature, (05/2008).
16 2499 4) We encountered non-AML tables such as the MADT, which caused
17 2500 interpreter errors and kernel faults. So now, we once again allow
18 2501 only SSDT, OEMx, and now, also a null signature. (05/2011).
19 2502
20 -Added the missing _TDL predefined name to the global name list in order to
21 -enable validation. Affects both the core ACPICA code and the iASL compiler.
2503 +Added the missing _TDL predefined name to the global name list in order
2504 +to
2505 +enable validation. Affects both the core ACPICA code and the iASL
2506 +compiler.
22 2507
23 2508 Example Code and Data Size: These are the sizes for the OS-independent
24 -acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
25 -version of the code includes the debug output trace mechanism and has a much
2509 +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
2510 +debug
2511 +version of the code includes the debug output trace mechanism and has a
2512 +much
26 2513 larger code and data size.
27 2514
28 2515 Previous Release (VC 9.0):
29 2516 Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total
30 2517 Debug Version: 164.5K Code, 68.0K Data, 232.5K Total
31 2518 Current Release (VC 9.0):
32 2519 Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total
33 2520 Debug Version: 165.6K Code, 68.4K Data, 234.0K Total
34 2521
35 2522 2) iASL Compiler/Disassembler and Tools:
36 2523
37 -Debugger/AcpiExec: Implemented support for "complex" method arguments on the
38 -debugger command line. This adds support beyond simple integers -- including
2524 +Debugger/AcpiExec: Implemented support for "complex" method arguments on
2525 +the
2526 +debugger command line. This adds support beyond simple integers --
2527 +including
39 2528 Strings, Buffers, and Packages. Includes support for nested packages.
40 -Increased the default command line buffer size to accommodate these arguments.
2529 +Increased the default command line buffer size to accommodate these
2530 +arguments.
41 2531 See the ACPICA reference for details and syntax. ACPICA BZ 917.
42 2532
43 -Debugger/AcpiExec: Implemented support for "default" method arguments for the
44 -Execute/Debug command. Now, the debugger will always invoke a control method
45 -with the required number of arguments -- even if the command line specifies
46 -none or insufficient arguments. It uses default integer values for any missing
2533 +Debugger/AcpiExec: Implemented support for "default" method arguments for
2534 +the
2535 +Execute/Debug command. Now, the debugger will always invoke a control
2536 +method
2537 +with the required number of arguments -- even if the command line
2538 +specifies
2539 +none or insufficient arguments. It uses default integer values for any
2540 +missing
47 2541 arguments. Also fixes a bug where only six method arguments maximum were
48 2542 supported instead of the required seven.
49 2543
50 -Debugger/AcpiExec: Add a maximum buffer length parameter to AcpiOsGetLine and
2544 +Debugger/AcpiExec: Add a maximum buffer length parameter to AcpiOsGetLine
2545 +and
51 2546 also return status in order to prevent buffer overruns. See the ACPICA
52 2547 reference for details and syntax. ACPICA BZ 921
53 2548
54 2549 iASL: Cleaned up support for Berkeley yacc. A general cleanup of code and
55 2550 makefiles to simplify support for the two different but similar parser
56 2551 generators, bison and yacc.
57 2552
58 -Updated the generic unix makefile for gcc 4. The default gcc version is now
2553 +Updated the generic unix makefile for gcc 4. The default gcc version is
2554 +now
59 2555 expected to be 4 or greater, since options specific to gcc 4 are used.
60 2556
61 2557 ----------------------------------------
62 2558 13 April 2011. Summary of changes for version 20110413:
63 2559
64 2560 1) ACPI CA Core Subsystem:
65 2561
66 -Implemented support to execute a so-called "orphan" _REG method under the EC
67 -device. This change will force the execution of a _REG method underneath the
2562 +Implemented support to execute a so-called "orphan" _REG method under the
68 2563 EC
2564 +device. This change will force the execution of a _REG method underneath
2565 +the
2566 +EC
69 2567 device even if there is no corresponding operation region of type
70 2568 EmbeddedControl. Fixes a problem seen on some machines and apparently is
71 2569 compatible with Windows behavior. ACPICA BZ 875.
72 2570
73 -Added more predefined methods that are eligible for automatic NULL package
74 -element removal. This change adds another group of predefined names to the
2571 +Added more predefined methods that are eligible for automatic NULL
2572 +package
2573 +element removal. This change adds another group of predefined names to
2574 +the
75 2575 list
76 2576 of names that can be repaired by having NULL package elements dynamically
77 -removed. This group are those methods that return a single variable-length
78 -package containing simple data types such as integers, buffers, strings. This
79 -includes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx, _PSL,
2577 +removed. This group are those methods that return a single variable-
2578 +length
2579 +package containing simple data types such as integers, buffers, strings.
2580 +This
2581 +includes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx,
2582 +_PSL,
80 2583 _Sx,
81 2584 and _TZD. ACPICA BZ 914.
82 2585
83 2586 Split and segregated all internal global lock functions to a new file,
84 2587 evglock.c.
85 2588
86 -Updated internal address SpaceID for DataTable regions. Moved this internal
2589 +Updated internal address SpaceID for DataTable regions. Moved this
2590 +internal
87 2591 space
88 -id in preparation for ACPI 5.0 changes that will include some new space IDs.
2592 +id in preparation for ACPI 5.0 changes that will include some new space
2593 +IDs.
89 2594 This
90 2595 change should not affect user/host code.
91 2596
92 2597 Example Code and Data Size: These are the sizes for the OS-independent
93 2598 acpica.lib
94 -produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of
95 -the code includes the debug output trace mechanism and has a much larger code
2599 +produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
2600 +version of
2601 +the code includes the debug output trace mechanism and has a much larger
2602 +code
96 2603 and
97 2604 data size.
98 2605
99 2606 Previous Release (VC 9.0):
100 2607 Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total
101 2608 Debug Version: 164.2K Code, 67.9K Data, 232.1K Total
102 2609 Current Release (VC 9.0):
103 2610 Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total
104 2611 Debug Version: 164.5K Code, 68.0K Data, 232.5K Total
105 2612
106 2613 2) iASL Compiler/Disassembler and Tools:
107 2614
108 -iASL/DTC: Major update for new grammar features. Allow generic data types in
109 -custom ACPI tables. Field names are now optional. Any line can be split to
110 -multiple lines using the continuation char (\). Large buffers now use line-
2615 +iASL/DTC: Major update for new grammar features. Allow generic data types
2616 +in
2617 +custom ACPI tables. Field names are now optional. Any line can be split
2618 +to
2619 +multiple lines using the continuation char (\). Large buffers now use
2620 +line-
111 2621 continuation character(s) and no colon on the continuation lines. See the
112 2622 grammar
113 -update in the iASL compiler reference. ACPI BZ 910,911. Lin Ming, Bob Moore.
2623 +update in the iASL compiler reference. ACPI BZ 910,911. Lin Ming, Bob
2624 +Moore.
114 2625
115 -iASL: Mark ASL "Return()" and the simple "Return" as "Null" return statements.
116 -Since the parser stuffs a "zero" as the return value for these statements (due
2626 +iASL: Mark ASL "Return()" and the simple "Return" as "Null" return
2627 +statements.
2628 +Since the parser stuffs a "zero" as the return value for these statements
2629 +(due
117 2630 to
118 -the underlying AML grammar), they were seen as "return with value" by the iASL
119 -semantic checking. They are now seen correctly as "null" return statements.
2631 +the underlying AML grammar), they were seen as "return with value" by the
2632 +iASL
2633 +semantic checking. They are now seen correctly as "null" return
2634 +statements.
120 2635
121 -iASL: Check if a_REG declaration has a corresponding Operation Region. Adds a
122 -check for each _REG to ensure that there is in fact a corresponding operation
2636 +iASL: Check if a_REG declaration has a corresponding Operation Region.
2637 +Adds a
2638 +check for each _REG to ensure that there is in fact a corresponding
2639 +operation
123 2640 region declaration in the same scope. If not, the _REG method is not very
124 2641 useful
125 2642 since it probably won't be executed. ACPICA BZ 915.
126 2643
127 -iASL/DTC: Finish support for expression evaluation. Added a new expression
2644 +iASL/DTC: Finish support for expression evaluation. Added a new
2645 +expression
128 2646 parser
129 2647 that implements c-style operator precedence and parenthesization. ACPICA
130 2648 bugzilla
131 2649 908.
132 2650
133 -Disassembler/DTC: Remove support for () and <> style comments in data tables.
2651 +Disassembler/DTC: Remove support for () and <> style comments in data
2652 +tables.
134 2653 Now
135 -that DTC has full expression support, we don't want to have comment strings
2654 +that DTC has full expression support, we don't want to have comment
2655 +strings
136 2656 that
137 -start with a parentheses or a less-than symbol. Now, only the standard /* and
2657 +start with a parentheses or a less-than symbol. Now, only the standard /*
2658 +and
138 2659 //
139 2660 comments are supported, as well as the bracket [] comments.
140 2661
141 2662 AcpiXtract: Fix for RSDP and dynamic SSDT extraction. These tables have
142 2663 "unusual"
143 -headers in the acpidump file. Update the header validation to support these
144 -tables. Problem introduced in previous AcpiXtract version in the change to
2664 +headers in the acpidump file. Update the header validation to support
2665 +these
2666 +tables. Problem introduced in previous AcpiXtract version in the change
2667 +to
145 2668 support "wrong checksum" error messages emitted by acpidump utility.
146 2669
147 -iASL: Add a * option to generate all template files (as a synonym for ALL) as
2670 +iASL: Add a * option to generate all template files (as a synonym for
2671 +ALL)
2672 +as
148 2673 in
149 2674 "iasl -T *" or "iasl -T ALL".
150 2675
151 -iASL/DTC: Do not abort compiler on fatal errors. We do not want to completely
152 -abort the compiler on "fatal" errors, simply should abort the current compile.
2676 +iASL/DTC: Do not abort compiler on fatal errors. We do not want to
2677 +completely
2678 +abort the compiler on "fatal" errors, simply should abort the current
2679 +compile.
153 2680 This allows multiple compiles with a single (possibly wildcard) compiler
154 2681 invocation.
155 2682
156 2683 ----------------------------------------
157 2684 16 March 2011. Summary of changes for version 20110316:
158 2685
159 2686 1) ACPI CA Core Subsystem:
160 2687
161 -Fixed a problem caused by a _PRW method appearing at the namespace root scope
162 -during the setup of wake GPEs. A fault could occur if a _PRW directly under
2688 +Fixed a problem caused by a _PRW method appearing at the namespace root
2689 +scope
2690 +during the setup of wake GPEs. A fault could occur if a _PRW directly
2691 +under
163 2692 the
164 2693 root object was passed to the AcpiSetupGpeForWake interface. Lin Ming.
165 2694
166 -Implemented support for "spurious" Global Lock interrupts. On some systems, a
167 -global lock interrupt can occur without the pending flag being set. Upon a GL
168 -interrupt, we now ensure that a thread is actually waiting for the lock before
2695 +Implemented support for "spurious" Global Lock interrupts. On some
2696 +systems, a
2697 +global lock interrupt can occur without the pending flag being set. Upon
2698 +a
2699 +GL
2700 +interrupt, we now ensure that a thread is actually waiting for the lock
2701 +before
169 2702 signaling GL availability. Rafael Wysocki, Bob Moore.
170 2703
171 2704 Example Code and Data Size: These are the sizes for the OS-independent
172 2705 acpica.lib
173 -produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of
174 -the code includes the debug output trace mechanism and has a much larger code
2706 +produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug
2707 +version of
2708 +the code includes the debug output trace mechanism and has a much larger
2709 +code
175 2710 and
176 2711 data size.
177 2712
178 2713 Previous Release (VC 9.0):
179 2714 Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
180 2715 Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
181 2716 Current Release (VC 9.0):
182 2717 Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total
183 2718 Debug Version: 164.2K Code, 67.9K Data, 232.1K Total
184 2719
185 2720 2) iASL Compiler/Disassembler and Tools:
186 2721
187 -Implemented full support for the "SLIC" ACPI table. Includes support in the
188 -header files, disassembler, table compiler, and template generator. Bob Moore,
2722 +Implemented full support for the "SLIC" ACPI table. Includes support in
2723 +the
2724 +header files, disassembler, table compiler, and template generator. Bob
2725 +Moore,
189 2726 Lin Ming.
190 2727
191 -AcpiXtract: Correctly handle embedded comments and messages from AcpiDump.
192 -Apparently some or all versions of acpidump will occasionally emit a comment
2728 +AcpiXtract: Correctly handle embedded comments and messages from
2729 +AcpiDump.
2730 +Apparently some or all versions of acpidump will occasionally emit a
2731 +comment
193 2732 like
194 2733 "Wrong checksum", etc., into the dump file. This was causing problems for
195 2734 AcpiXtract. ACPICA BZ 905.
196 2735
197 -iASL: Fix the Linux makefile by removing an inadvertent double file inclusion.
2736 +iASL: Fix the Linux makefile by removing an inadvertent double file
2737 +inclusion.
198 2738 ACPICA BZ 913.
199 2739
200 2740 AcpiExec: Update installation of operation region handlers. Install one
201 2741 handler
202 -for a user-defined address space. This is used by the ASL test suite (ASLTS).
2742 +for a user-defined address space. This is used by the ASL test suite
2743 +(ASLTS).
203 2744
204 2745 ----------------------------------------
205 2746 11 February 2011. Summary of changes for version 20110211:
206 2747
207 2748 1) ACPI CA Core Subsystem:
208 2749
209 -Added a mechanism to defer _REG methods for some early-installed handlers.
210 -Most user handlers should be installed before call to AcpiEnableSubsystem.
2750 +Added a mechanism to defer _REG methods for some early-installed
2751 +handlers.
2752 +Most user handlers should be installed before call to
2753 +AcpiEnableSubsystem.
211 2754 However, Event handlers and region handlers should be installed after
212 -AcpiInitializeObjects. Override handlers for the "default" regions should be
2755 +AcpiInitializeObjects. Override handlers for the "default" regions should
2756 +be
213 2757 installed early, however. This change executes all _REG methods for the
214 2758 default regions (Memory/IO/PCI/DataTable) simultaneously to prevent any
215 2759 chicken/egg issues between them. ACPICA BZ 848.
216 2760
217 -Implemented an optimization for GPE detection. This optimization will simply
2761 +Implemented an optimization for GPE detection. This optimization will
2762 +simply
218 2763 ignore GPE registers that contain no enabled GPEs -- there is no need to
219 2764 read the register since this information is available internally. This
220 -becomes more important on machines with a large GPE space. ACPICA bugzilla
2765 +becomes more important on machines with a large GPE space. ACPICA
2766 +bugzilla
221 2767 884. Lin Ming. Suggestion from Joe Liu.
222 2768
223 -Removed all use of the highly unreliable FADT revision field. The revision
224 -number in the FADT has been found to be completely unreliable and cannot be
225 -trusted. Only the actual table length can be used to infer the version. This
226 -change updates the ACPICA core and the disassembler so that both no longer
2769 +Removed all use of the highly unreliable FADT revision field. The
2770 +revision
2771 +number in the FADT has been found to be completely unreliable and cannot
2772 +be
2773 +trusted. Only the actual table length can be used to infer the version.
2774 +This
2775 +change updates the ACPICA core and the disassembler so that both no
2776 +longer
227 2777 even look at the FADT version and instead depend solely upon the FADT
228 2778 length.
229 2779
230 2780 Fix an unresolved name issue for the no-debug and no-error-message source
231 -generation cases. The _AcpiModuleName was left undefined in these cases, but
2781 +generation cases. The _AcpiModuleName was left undefined in these cases,
2782 +but
232 2783 it is actually needed as a parameter to some interfaces. Define
233 2784 _AcpiModuleName as a null string in these cases. ACPICA Bugzilla 888.
234 2785
235 2786 Split several large files (makefiles and project files updated)
236 2787 utglobal.c -> utdecode.c
237 2788 dbcomds.c -> dbmethod.c dbnames.c
238 2789 dsopcode.c -> dsargs.c dscontrol.c
239 2790 dsload.c -> dsload2.c
240 2791 aslanalyze.c -> aslbtypes.c aslwalks.c
241 2792
242 2793 Example Code and Data Size: These are the sizes for the OS-independent
243 2794 acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
244 -debug version of the code includes the debug output trace mechanism and has
2795 +debug version of the code includes the debug output trace mechanism and
2796 +has
245 2797 a much larger code and data size.
246 2798
247 2799 Previous Release (VC 9.0):
248 2800 Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
249 2801 Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
250 2802 Current Release (VC 9.0):
251 2803 Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
252 2804 Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
253 2805
254 2806 2) iASL Compiler/Disassembler and Tools:
255 2807
256 2808 iASL: Implemented the predefined macros __LINE__, __FILE__, and __DATE__.
257 2809 These are useful C-style macros with the standard definitions. ACPICA
258 2810 bugzilla 898.
259 2811
260 -iASL/DTC: Added support for integer expressions and labels. Support for full
261 -expressions for all integer fields in all ACPI tables. Support for labels in
2812 +iASL/DTC: Added support for integer expressions and labels. Support for
2813 +full
2814 +expressions for all integer fields in all ACPI tables. Support for labels
2815 +in
262 2816 "generic" portions of tables such as UEFI. See the iASL reference manual.
263 2817
264 2818 Debugger: Added a command to display the status of global handlers. The
265 2819 "handlers" command will display op region, fixed event, and miscellaneous
266 -global handlers. installation status -- and for op regions, whether default
2820 +global handlers. installation status -- and for op regions, whether
2821 +default
267 2822 or user-installed handler will be used.
268 2823
269 -iASL: Warn if reserved method incorrectly returns a value. Many predefined
270 -names are defined such that they do not return a value. If implemented as a
2824 +iASL: Warn if reserved method incorrectly returns a value. Many
2825 +predefined
2826 +names are defined such that they do not return a value. If implemented as
2827 +a
271 2828 method, issue a warning if such a name explicitly returns a value. ACPICA
272 2829 Bugzilla 855.
273 2830
274 -iASL: Added detection of GPE method name conflicts. Detects a conflict where
275 -there are two GPE methods of the form _Lxy and _Exy in the same scope. (For
2831 +iASL: Added detection of GPE method name conflicts. Detects a conflict
2832 +where
2833 +there are two GPE methods of the form _Lxy and _Exy in the same scope.
2834 +(For
276 2835 example, _L1D and _E1D in the same scope.) ACPICA bugzilla 848.
277 2836
278 2837 iASL/DTC: Fixed a couple input scanner issues with comments and line
279 -numbers. Comment remover could get confused and miss a comment ending. Fixed
2838 +numbers. Comment remover could get confused and miss a comment ending.
2839 +Fixed
280 2840 a problem with line counter maintenance.
281 2841
282 -iASL/DTC: Reduced the severity of some errors from fatal to error. There is
2842 +iASL/DTC: Reduced the severity of some errors from fatal to error. There
2843 +is
283 2844 no need to abort on simple errors within a field definition.
284 2845
285 -Debugger: Simplified the output of the help command. All help output now in
2846 +Debugger: Simplified the output of the help command. All help output now
2847 +in
286 2848 a single screen, instead of help subcommands. ACPICA Bugzilla 897.
287 2849
288 2850 ----------------------------------------
289 2851 12 January 2011. Summary of changes for version 20110112:
290 2852
291 2853 1) ACPI CA Core Subsystem:
292 2854
293 -Fixed a race condition between method execution and namespace walks that can
2855 +Fixed a race condition between method execution and namespace walks that
2856 +can
294 2857 possibly cause a fault. The problem was apparently introduced in version
295 -20100528 as a result of a performance optimization that reduces the number of
2858 +20100528 as a result of a performance optimization that reduces the
2859 +number
2860 +of
296 2861 namespace walks upon method exit by using the delete_namespace_subtree
297 -function instead of the delete_namespace_by_owner function used previously.
2862 +function instead of the delete_namespace_by_owner function used
2863 +previously.
298 2864 Bug is a missing namespace lock in the delete_namespace_subtree function.
299 2865 dana.myers@oracle.com
300 2866
301 2867 Fixed several issues and a possible fault with the automatic "serialized"
302 -method support. History: This support changes a method to "serialized" on the
2868 +method support. History: This support changes a method to "serialized" on
2869 +the
303 2870 fly if the method generates an AE_ALREADY_EXISTS error, indicating the
304 -possibility that it cannot handle reentrancy. This fix repairs a couple of
2871 +possibility that it cannot handle reentrancy. This fix repairs a couple
2872 +of
305 2873 issues seen in the field, especially on machines with many cores:
306 2874
307 2875 1) Delete method children only upon the exit of the last thread,
308 2876 so as to not delete objects out from under other running threads
309 2877 (and possibly causing a fault.)
310 2878 2) Set the "serialized" bit for the method only upon the exit of the
311 2879 Last thread, so as to not cause deadlock when running threads
312 2880 attempt to exit.
313 2881 3) Cleanup the use of the AML "MethodFlags" and internal method flags
314 2882 so that there is no longer any confusion between the two.
315 2883
316 2884 Lin Ming, Bob Moore. Reported by dana.myers@oracle.com.
317 2885
318 -Debugger: Now lock the namespace for duration of a namespace dump. Prevents
2886 +Debugger: Now lock the namespace for duration of a namespace dump.
2887 +Prevents
319 2888 issues if the namespace is changing dynamically underneath the debugger.
320 2889 Especially affects temporary namespace nodes, since the debugger displays
321 2890 these also.
322 2891
323 2892 Updated the ordering of include files. The ACPICA headers should appear
324 -before any compiler-specific headers (stdio.h, etc.) so that acenv.h can set
325 -any necessary compiler-specific defines, etc. Affects the ACPI-related tools
2893 +before any compiler-specific headers (stdio.h, etc.) so that acenv.h can
2894 +set
2895 +any necessary compiler-specific defines, etc. Affects the ACPI-related
2896 +tools
326 2897 and utilities.
327 2898
328 -Updated all ACPICA copyrights and signons to 2011. Added the 2011 copyright
329 -to all module headers and signons, including the Linux header. This affects
2899 +Updated all ACPICA copyrights and signons to 2011. Added the 2011
2900 +copyright
2901 +to all module headers and signons, including the Linux header. This
2902 +affects
330 2903 virtually every file in the ACPICA core subsystem, iASL compiler, and all
331 2904 utilities.
332 2905
333 2906 Added project files for MS Visual Studio 2008 (VC++ 9.0). The original
334 -project files for VC++ 6.0 are now obsolete. New project files can be found
2907 +project files for VC++ 6.0 are now obsolete. New project files can be
2908 +found
335 2909 under acpica/generate/msvc9. See acpica/generate/msvc9/readme.txt for
336 2910 details.
337 2911
338 2912 Example Code and Data Size: These are the sizes for the OS-independent
339 2913 acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The
340 -debug version of the code includes the debug output trace mechanism and has a
2914 +debug version of the code includes the debug output trace mechanism and
2915 +has a
341 2916 much larger code and data size.
342 2917
343 2918 Previous Release (VC 6.0):
344 2919 Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total
345 2920 Debug Version: 166.6K Code, 52.1K Data, 218.7K Total
346 2921 Current Release (VC 9.0):
347 2922 Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total
348 2923 Debug Version: 163.9K Code, 67.5K Data, 231.4K Total
349 2924
350 2925 2) iASL Compiler/Disassembler and Tools:
351 2926
352 -iASL: Added generic data types to the Data Table compiler. Add "generic" data
353 -types such as UINT32, String, Unicode, etc., to simplify the generation of
2927 +iASL: Added generic data types to the Data Table compiler. Add "generic"
2928 +data
2929 +types such as UINT32, String, Unicode, etc., to simplify the generation
2930 +of
354 2931 platform-defined tables such as UEFI. Lin Ming.
355 2932
356 -iASL: Added listing support for the Data Table Compiler. Adds listing support
2933 +iASL: Added listing support for the Data Table Compiler. Adds listing
2934 +support
357 2935 (-l) to display actual binary output for each line of input code.
358 2936
359 2937 ----------------------------------------
360 2938 09 December 2010. Summary of changes for version 20101209:
361 2939
362 2940 1) ACPI CA Core Subsystem:
363 2941
364 -Completed the major overhaul of the GPE support code that was begun in July
2942 +Completed the major overhaul of the GPE support code that was begun in
2943 +July
365 2944 2010. Major features include: removal of _PRW execution in ACPICA (host
366 2945 executes _PRWs anyway), cleanup of "wake" GPE interfaces and processing,
367 -changes to existing interfaces, simplification of GPE handler operation, and
2946 +changes to existing interfaces, simplification of GPE handler operation,
2947 +and
368 2948 a handful of new interfaces:
369 2949
370 2950 AcpiUpdateAllGpes
371 2951 AcpiFinishGpe
372 2952 AcpiSetupGpeForWake
373 2953 AcpiSetGpeWakeMask
374 2954 One new file, evxfgpe.c to consolidate all external GPE interfaces.
375 2955
376 2956 See the ACPICA Programmer Reference for full details and programming
377 -information. See the new section 4.4 "General Purpose Event (GPE) Support"
378 -for a full overview, and section 8.7 "ACPI General Purpose Event Management"
379 -for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin Ming,
2957 +information. See the new section 4.4 "General Purpose Event (GPE)
2958 +Support"
2959 +for a full overview, and section 8.7 "ACPI General Purpose Event
2960 +Management"
2961 +for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin
2962 +Ming,
380 2963 Bob Moore, Rafael Wysocki.
381 2964
382 -Implemented a new GPE feature for Windows compatibility, the "Implicit Wake
383 -GPE Notify". This feature will automatically issue a Notify(2) on a device
2965 +Implemented a new GPE feature for Windows compatibility, the "Implicit
2966 +Wake
2967 +GPE Notify". This feature will automatically issue a Notify(2) on a
2968 +device
384 2969 when a Wake GPE is received if there is no corresponding GPE method or
385 2970 handler. ACPICA BZ 870.
386 2971
387 -Fixed a problem with the Scope() operator during table parse and load phase.
388 -During load phase (table load or method execution), the scope operator should
389 -not enter the target into the namespace. Instead, it should open a new scope
2972 +Fixed a problem with the Scope() operator during table parse and load
2973 +phase.
2974 +During load phase (table load or method execution), the scope operator
2975 +should
2976 +not enter the target into the namespace. Instead, it should open a new
2977 +scope
390 2978 at the target location. Linux BZ 19462, ACPICA BZ 882.
391 2979
392 2980 Example Code and Data Size: These are the sizes for the OS-independent
393 2981 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
394 -debug version of the code includes the debug output trace mechanism and has a
2982 +debug version of the code includes the debug output trace mechanism and
2983 +has a
395 2984 much larger code and data size.
396 2985
397 2986 Previous Release:
398 2987 Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total
399 2988 Debug Version: 166.6K Code, 52.1K Data, 218.7K Total
400 2989 Current Release:
401 2990 Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
402 2991 Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
403 2992
404 2993 2) iASL Compiler/Disassembler and Tools:
405 2994
406 -iASL: Relax the alphanumeric restriction on _CID strings. These strings are
407 -"bus-specific" per the ACPI specification, and therefore any characters are
408 -acceptable. The only checks that can be performed are for a null string and
2995 +iASL: Relax the alphanumeric restriction on _CID strings. These strings
2996 +are
2997 +"bus-specific" per the ACPI specification, and therefore any characters
2998 +are
2999 +acceptable. The only checks that can be performed are for a null string
3000 +and
409 3001 perhaps for a leading asterisk. ACPICA BZ 886.
410 3002
411 3003 iASL: Fixed a problem where a syntax error that caused a premature EOF
412 3004 condition on the source file emitted a very confusing error message. The
413 3005 premature EOF is now detected correctly. ACPICA BZ 891.
414 3006
415 -Disassembler: Decode the AccessSize within a Generic Address Structure (byte
3007 +Disassembler: Decode the AccessSize within a Generic Address Structure
3008 +(byte
416 3009 access, word access, etc.) Note, this field does not allow arbitrary bit
417 3010 access, the size is encoded as 1=byte, 2=word, 3=dword, and 4=qword.
418 3011
419 -New: AcpiNames utility - Example namespace dump utility. Shows an example of
3012 +New: AcpiNames utility - Example namespace dump utility. Shows an example
3013 +of
420 3014 ACPICA configuration for a minimal namespace dump utility. Uses table and
421 -namespace managers, but no AML interpreter. Does not add any functionality
3015 +namespace managers, but no AML interpreter. Does not add any
3016 +functionality
422 3017 over AcpiExec, it is a subset of AcpiExec. The purpose is to show how to
423 3018 partition and configure ACPICA. ACPICA BZ 883.
424 3019
425 -AML Debugger: Increased the debugger buffer size for method return objects.
426 -Was 4K, increased to 16K. Also enhanced error messages for debugger method
3020 +AML Debugger: Increased the debugger buffer size for method return
3021 +objects.
3022 +Was 4K, increased to 16K. Also enhanced error messages for debugger
3023 +method
427 3024 execution, including the buffer overflow case.
428 3025
429 3026 ----------------------------------------
430 3027 13 October 2010. Summary of changes for version 20101013:
431 3028
432 3029 1) ACPI CA Core Subsystem:
433 3030
434 -Added support to clear the PCIEXP_WAKE event. When clearing ACPI events, now
3031 +Added support to clear the PCIEXP_WAKE event. When clearing ACPI events,
3032 +now
435 3033 clear the PCIEXP_WAKE_STS bit in the ACPI PM1 Status Register, via
436 3034 HwClearAcpiStatus. Original change from Colin King. ACPICA BZ 880.
437 3035
438 -Changed the type of the predefined namespace object _TZ from ThermalZone to
439 -Device. This was found to be confusing to the host software that processes
440 -the various thermal zones, since _TZ is not really a ThermalZone. However, a
3036 +Changed the type of the predefined namespace object _TZ from ThermalZone
3037 +to
3038 +Device. This was found to be confusing to the host software that
3039 +processes
3040 +the various thermal zones, since _TZ is not really a ThermalZone.
3041 +However,
3042 +a
441 3043 Notify() can still be performed on it. ACPICA BZ 876. Suggestion from Rui
442 3044 Zhang.
443 3045
444 3046 Added Windows Vista SP2 to the list of supported _OSI strings. The actual
445 3047 string is "Windows 2006 SP2".
446 3048
447 -Eliminated duplicate code in AcpiUtExecute* functions. Now that the nsrepair
3049 +Eliminated duplicate code in AcpiUtExecute* functions. Now that the
3050 +nsrepair
448 3051 code automatically repairs _HID-related strings, this type of code is no
449 -longer needed in Execute_HID, Execute_CID, and Execute_UID. ACPICA BZ 878.
3052 +longer needed in Execute_HID, Execute_CID, and Execute_UID. ACPICA BZ
3053 +878.
450 3054
451 3055 Example Code and Data Size: These are the sizes for the OS-independent
452 3056 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
453 -debug version of the code includes the debug output trace mechanism and has a
3057 +debug version of the code includes the debug output trace mechanism and
3058 +has a
454 3059 much larger code and data size.
455 3060
456 3061 Previous Release:
457 3062 Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
458 3063 Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
459 3064 Current Release:
460 3065 Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
461 3066 Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
462 3067
463 3068 2) iASL Compiler/Disassembler and Tools:
464 3069
465 -iASL: Implemented additional compile-time validation for _HID strings. The
466 -non-hex prefix (such as "PNP" or "ACPI") must be uppercase, and the length of
467 -the string must be exactly seven or eight characters. For both _HID and _CID
3070 +iASL: Implemented additional compile-time validation for _HID strings.
3071 +The
3072 +non-hex prefix (such as "PNP" or "ACPI") must be uppercase, and the
3073 +length
3074 +of
3075 +the string must be exactly seven or eight characters. For both _HID and
3076 +_CID
468 3077 strings, all characters must be alphanumeric. ACPICA BZ 874.
469 3078
470 3079 iASL: Allow certain "null" resource descriptors. Some BIOS code creates
471 -descriptors that are mostly or all zeros, with the expectation that they will
472 -be filled in at runtime. iASL now allows this as long as there is a "resource
3080 +descriptors that are mostly or all zeros, with the expectation that they
3081 +will
3082 +be filled in at runtime. iASL now allows this as long as there is a
3083 +"resource
473 3084 tag" (name) associated with the descriptor, which gives the ASL a handle
474 3085 needed to modify the descriptor. ACPICA BZ 873.
475 3086
476 -Added single-thread support to the generic Unix application OSL. Primarily
477 -for iASL support, this change removes the use of semaphores in the single-
3087 +Added single-thread support to the generic Unix application OSL.
3088 +Primarily
3089 +for iASL support, this change removes the use of semaphores in the
3090 +single-
478 3091 threaded ACPICA tools/applications - increasing performance. The
479 3092 _MULTI_THREADED option was replaced by the (reverse) ACPI_SINGLE_THREADED
480 3093 option. ACPICA BZ 879.
481 3094
482 -AcpiExec: several fixes for the 64-bit version. Adds XSDT support and support
3095 +AcpiExec: several fixes for the 64-bit version. Adds XSDT support and
3096 +support
483 3097 for 64-bit DSDT/FACS addresses in the FADT. Lin Ming.
484 3098
485 3099 iASL: Moved all compiler messages to a new file, aslmessages.h.
486 3100
487 3101 ----------------------------------------
488 3102 15 September 2010. Summary of changes for version 20100915:
489 3103
490 3104 1) ACPI CA Core Subsystem:
491 3105
492 -Removed the AcpiOsDerivePciId OSL interface. The various host implementations
3106 +Removed the AcpiOsDerivePciId OSL interface. The various host
3107 +implementations
493 3108 of this function were not OS-dependent and are now obsolete and can be
494 3109 removed from all host OSLs. This function has been replaced by
495 3110 AcpiHwDerivePciId, which is now part of the ACPICA core code.
496 3111 AcpiHwDerivePciId has been implemented without recursion. Adds one new
497 3112 module, hwpci.c. ACPICA BZ 857.
498 3113
499 3114 Implemented a dynamic repair for _HID and _CID strings. The following
500 3115 problems are now repaired at runtime: 1) Remove a leading asterisk in the
501 3116 string, and 2) the entire string is uppercased. Both repairs are in
502 -accordance with the ACPI specification and will simplify host driver code.
3117 +accordance with the ACPI specification and will simplify host driver
3118 +code.
503 3119 ACPICA BZ 871.
504 3120
505 3121 The ACPI_THREAD_ID type is no longer configurable, internally it is now
506 -always UINT64. This simplifies the ACPICA code, especially any printf output.
3122 +always UINT64. This simplifies the ACPICA code, especially any printf
3123 +output.
507 3124 UINT64 is the only common data type for all thread_id types across all
508 -operating systems. It is now up to the host OSL to cast the native thread_id
509 -type to UINT64 before returning the value to ACPICA (via AcpiOsGetThreadId).
3125 +operating systems. It is now up to the host OSL to cast the native
3126 +thread_id
3127 +type to UINT64 before returning the value to ACPICA (via
3128 +AcpiOsGetThreadId).
510 3129 Lin Ming, Bob Moore.
511 3130
512 -Added the ACPI_INLINE type to enhance the ACPICA configuration. The "inline"
513 -keyword is not standard across compilers, and this type allows inline to be
3131 +Added the ACPI_INLINE type to enhance the ACPICA configuration. The
3132 +"inline"
3133 +keyword is not standard across compilers, and this type allows inline to
3134 +be
514 3135 configured on a per-compiler basis. Lin Ming.
515 3136
516 -Made the system global AcpiGbl_SystemAwakeAndRunning publically available.
517 -Added an extern for this boolean in acpixf.h. Some hosts utilize this value
3137 +Made the system global AcpiGbl_SystemAwakeAndRunning publically
3138 +available.
3139 +Added an extern for this boolean in acpixf.h. Some hosts utilize this
3140 +value
518 3141 during suspend/restore operations. ACPICA BZ 869.
519 3142
520 -All code that implements error/warning messages with the "ACPI:" prefix has
3143 +All code that implements error/warning messages with the "ACPI:" prefix
3144 +has
521 3145 been moved to a new module, utxferror.c.
522 3146
523 -The UINT64_OVERLAY was moved to utmath.c, which is the only module where it
3147 +The UINT64_OVERLAY was moved to utmath.c, which is the only module where
3148 +it
524 3149 is used. ACPICA BZ 829. Lin Ming, Bob Moore.
525 3150
526 3151 Example Code and Data Size: These are the sizes for the OS-independent
527 3152 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
528 -debug version of the code includes the debug output trace mechanism and has a
3153 +debug version of the code includes the debug output trace mechanism and
3154 +has a
529 3155 much larger code and data size.
530 3156
531 3157 Previous Release:
532 3158 Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total
533 3159 Debug Version: 165.1K Code, 51.9K Data, 217.0K Total
534 3160 Current Release:
535 3161 Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total
536 3162 Debug Version: 166.3K Code, 52.1K Data, 218.4K Total
537 3163
538 3164 2) iASL Compiler/Disassembler and Tools:
539 3165
540 -iASL/Disassembler: Write ACPI errors to stderr instead of the output file.
541 -This keeps the output files free of random error messages that may originate
542 -from within the namespace/interpreter code. Used this opportunity to merge
3166 +iASL/Disassembler: Write ACPI errors to stderr instead of the output
3167 +file.
3168 +This keeps the output files free of random error messages that may
3169 +originate
3170 +from within the namespace/interpreter code. Used this opportunity to
3171 +merge
543 3172 all ACPI:-style messages into a single new module, utxferror.c. ACPICA BZ
544 3173 866. Lin Ming, Bob Moore.
545 3174
546 -Tools: update some printfs for ansi warnings on size_t. Handle width change
3175 +Tools: update some printfs for ansi warnings on size_t. Handle width
3176 +change
547 3177 of size_t on 32-bit versus 64-bit generations. Lin Ming.
548 3178
549 3179 ----------------------------------------
550 3180 06 August 2010. Summary of changes for version 20100806:
551 3181
552 3182 1) ACPI CA Core Subsystem:
553 3183
554 -Designed and implemented a new host interface to the _OSI support code. This
555 -will allow the host to dynamically add or remove multiple _OSI strings, as
556 -well as install an optional handler that is called for each _OSI invocation.
557 -Also added a new AML debugger command, 'osi' to display and modify the global
558 -_OSI string table, and test support in the AcpiExec utility. See the ACPICA
3184 +Designed and implemented a new host interface to the _OSI support code.
3185 +This
3186 +will allow the host to dynamically add or remove multiple _OSI strings,
3187 +as
3188 +well as install an optional handler that is called for each _OSI
3189 +invocation.
3190 +Also added a new AML debugger command, 'osi' to display and modify the
3191 +global
3192 +_OSI string table, and test support in the AcpiExec utility. See the
3193 +ACPICA
559 3194 reference manual for full details. Lin Ming, Bob Moore. ACPICA BZ 836.
560 3195 New Functions:
561 3196 AcpiInstallInterface - Add an _OSI string.
562 3197 AcpiRemoveInterface - Delete an _OSI string.
563 3198 AcpiInstallInterfaceHandler - Install optional _OSI handler.
564 3199 Obsolete Functions:
565 3200 AcpiOsValidateInterface - no longer used.
566 3201 New Files:
567 3202 source/components/utilities/utosi.c
568 3203
569 3204 Re-introduced the support to enable multi-byte transfers for Embedded
570 -Controller (EC) operation regions. A reported problem was found to be a bug
571 -in the host OS, not in the multi-byte support. Previously, the maximum data
572 -size passed to the EC operation region handler was a single byte. There are
573 -often EC Fields larger than one byte that need to be transferred, and it is
574 -useful for the EC driver to lock these as a single transaction. This change
3205 +Controller (EC) operation regions. A reported problem was found to be a
3206 +bug
3207 +in the host OS, not in the multi-byte support. Previously, the maximum
3208 +data
3209 +size passed to the EC operation region handler was a single byte. There
3210 +are
3211 +often EC Fields larger than one byte that need to be transferred, and it
3212 +is
3213 +useful for the EC driver to lock these as a single transaction. This
3214 +change
575 3215 enables single transfers larger than 8 bits. This effectively changes the
576 3216 access to the EC space from ByteAcc to AnyAcc, and will probably require
577 -changes to the host OS Embedded Controller driver to enable 16/32/64/256-bit
3217 +changes to the host OS Embedded Controller driver to enable 16/32/64/256-
3218 +bit
578 3219 transfers in addition to 8-bit transfers. Alexey Starikovskiy, Lin Ming.
579 3220
580 3221 Fixed a problem with the prototype for AcpiOsReadPciConfiguration. The
581 3222 prototype in acpiosxf.h had the output value pointer as a (void *).
582 3223 It should be a (UINT64 *). This may affect some host OSL code.
583 3224
584 -Fixed a couple problems with the recently modified Linux makefiles for iASL
3225 +Fixed a couple problems with the recently modified Linux makefiles for
3226 +iASL
585 3227 and AcpiExec. These new makefiles place the generated object files in the
586 -local directory so that there can be no collisions between the files that are
3228 +local directory so that there can be no collisions between the files that
3229 +are
587 3230 shared between them that are compiled with different options.
588 3231
589 3232 Example Code and Data Size: These are the sizes for the OS-independent
590 3233 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
591 -debug version of the code includes the debug output trace mechanism and has a
3234 +debug version of the code includes the debug output trace mechanism and
3235 +has a
592 3236 much larger code and data size.
593 3237
594 3238 Previous Release:
595 3239 Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
596 3240 Debug Version: 164.0K Code, 51.5K Data, 215.5K Total
597 3241 Current Release:
598 3242 Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total
599 3243 Debug Version: 165.1K Code, 51.9K Data, 217.0K Total
600 3244
601 3245 2) iASL Compiler/Disassembler and Tools:
602 3246
603 -iASL/Disassembler: Added a new option (-da, "disassemble all") to load the
3247 +iASL/Disassembler: Added a new option (-da, "disassemble all") to load
3248 +the
604 3249 namespace from and disassemble an entire group of AML files. Useful for
605 -loading all of the AML tables for a given machine (DSDT, SSDT1...SSDTn) and
3250 +loading all of the AML tables for a given machine (DSDT, SSDT1...SSDTn)
3251 +and
606 3252 disassembling with one simple command. ACPICA BZ 865. Lin Ming.
607 3253
608 -iASL: Allow multiple invocations of -e option. This change allows multiple
609 -uses of -e on the command line: "-e ssdt1.dat -e ssdt2.dat". ACPICA BZ 834.
3254 +iASL: Allow multiple invocations of -e option. This change allows
3255 +multiple
3256 +uses of -e on the command line: "-e ssdt1.dat -e ssdt2.dat". ACPICA BZ
3257 +834.
610 3258 Lin Ming.
611 3259
612 3260 ----------------------------------------
613 3261 02 July 2010. Summary of changes for version 20100702:
614 3262
615 3263 1) ACPI CA Core Subsystem:
616 3264
617 3265 Implemented several updates to the recently added GPE reference count
618 -support. The model for "wake" GPEs is changing to give the host OS complete
619 -control of these GPEs. Eventually, the ACPICA core will not execute any _PRW
620 -methods, since the host already must execute them. Also, additional changes
3266 +support. The model for "wake" GPEs is changing to give the host OS
3267 +complete
3268 +control of these GPEs. Eventually, the ACPICA core will not execute any
3269 +_PRW
3270 +methods, since the host already must execute them. Also, additional
3271 +changes
621 3272 were made to help ensure that the reference counts are kept in proper
622 3273 synchronization with reality. Rafael J. Wysocki.
623 3274
624 3275 1) Ensure that GPEs are not enabled twice during initialization.
625 3276 2) Ensure that GPE enable masks stay in sync with the reference count.
626 3277 3) Do not inadvertently enable GPEs when writing GPE registers.
627 3278 4) Remove the internal wake reference counter and add new AcpiGpeWakeup
628 3279 interface. This interface will set or clear individual GPEs for wakeup.
629 -5) Remove GpeType argument from AcpiEnable and AcpiDisable. These interfaces
3280 +5) Remove GpeType argument from AcpiEnable and AcpiDisable. These
3281 +interfaces
630 3282 are now used for "runtime" GPEs only.
631 3283
632 -Changed the behavior of the GPE install/remove handler interfaces. The GPE is
633 -no longer disabled during this process, as it was found to cause problems on
3284 +Changed the behavior of the GPE install/remove handler interfaces. The
3285 +GPE
3286 +is
3287 +no longer disabled during this process, as it was found to cause problems
3288 +on
634 3289 some machines. Rafael J. Wysocki.
635 3290
636 3291 Reverted a change introduced in version 20100528 to enable Embedded
637 -Controller multi-byte transfers. This change was found to cause problems with
3292 +Controller multi-byte transfers. This change was found to cause problems
3293 +with
638 3294 Index Fields and possibly Bank Fields. It will be reintroduced when these
639 3295 problems have been resolved.
640 3296
641 -Fixed a problem with references to Alias objects within Package Objects. A
3297 +Fixed a problem with references to Alias objects within Package Objects.
3298 +A
642 3299 reference to an Alias within the definition of a Package was not always
643 -resolved properly. Aliases to objects like Processors, Thermal zones, etc.
644 -were resolved to the actual object instead of a reference to the object as it
3300 +resolved properly. Aliases to objects like Processors, Thermal zones,
3301 +etc.
3302 +were resolved to the actual object instead of a reference to the object
3303 +as
3304 +it
645 3305 should be. Package objects are only allowed to contain integer, string,
646 3306 buffer, package, and reference objects. Redhat bugzilla 608648.
647 3307
648 3308 Example Code and Data Size: These are the sizes for the OS-independent
649 3309 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
650 -debug version of the code includes the debug output trace mechanism and has a
3310 +debug version of the code includes the debug output trace mechanism and
3311 +has a
651 3312 much larger code and data size.
652 3313
653 3314 Previous Release:
654 3315 Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
655 3316 Debug Version: 164.1K Code, 51.5K Data, 215.6K Total
656 3317 Current Release:
657 3318 Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
658 3319 Debug Version: 164.0K Code, 51.5K Data, 215.5K Total
659 3320
660 3321 2) iASL Compiler/Disassembler and Tools:
661 3322
662 3323 iASL: Implemented a new compiler subsystem to allow definition and
663 -compilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc. These
3324 +compilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc.
3325 +These
664 3326 are called "ACPI Data Tables", and the new compiler is the "Data Table
665 3327 Compiler". This compiler is intended to simplify the existing error-prone
666 3328 process of creating these tables for the BIOS, as well as allowing the
667 -disassembly, modification, recompilation, and override of existing ACPI data
3329 +disassembly, modification, recompilation, and override of existing ACPI
3330 +data
668 3331 tables. See the iASL User Guide for detailed information.
669 3332
670 -iASL: Implemented a new Template Generator option in support of the new Data
3333 +iASL: Implemented a new Template Generator option in support of the new
3334 +Data
671 3335 Table Compiler. This option will create examples of all known ACPI tables
672 3336 that can be used as the basis for table development. See the iASL
673 3337 documentation and the -T option.
674 3338
675 3339 Disassembler and headers: Added support for the WDDT ACPI table (Watchdog
676 3340 Descriptor Table).
677 3341
678 3342 Updated the Linux makefiles for iASL and AcpiExec to place the generated
679 3343 object files in the local directory so that there can be no collisions
680 3344 between the shared files between them that are generated with different
681 3345 options.
682 3346
683 -Added support for Mac OS X in the Unix OSL used for iASL and AcpiExec. Use
3347 +Added support for Mac OS X in the Unix OSL used for iASL and AcpiExec.
3348 +Use
684 3349 the #define __APPLE__ to enable this support.
685 3350
686 3351 ----------------------------------------
687 3352 28 May 2010. Summary of changes for version 20100528:
688 3353
689 3354 Note: The ACPI 4.0a specification was released on April 5, 2010 and is
690 3355 available at www.acpi.info. This is primarily an errata release.
691 3356
692 3357 1) ACPI CA Core Subsystem:
693 3358
694 -Undefined ACPI tables: We are looking for the definitions for the following
3359 +Undefined ACPI tables: We are looking for the definitions for the
3360 +following
695 3361 ACPI tables that have been seen in the field: ATKG, IEIT, GSCI.
696 3362
697 -Implemented support to enable multi-byte transfers for Embedded Controller
698 -(EC) operation regions. Previously, the maximum data size passed to the EC
699 -operation region handler was a single byte. There are often EC Fields larger
700 -than one byte that need to be transferred, and it is useful for the EC driver
701 -to lock these as a single transaction. This change enables single transfers
702 -larger than 8 bits. This effectively changes the access to the EC space from
703 -ByteAcc to AnyAcc, and will probably require changes to the host OS Embedded
704 -Controller driver to enable 16/32/64/256-bit transfers in addition to 8-bit
3363 +Implemented support to enable multi-byte transfers for Embedded
3364 +Controller
3365 +(EC) operation regions. Previously, the maximum data size passed to the
3366 +EC
3367 +operation region handler was a single byte. There are often EC Fields
3368 +larger
3369 +than one byte that need to be transferred, and it is useful for the EC
3370 +driver
3371 +to lock these as a single transaction. This change enables single
3372 +transfers
3373 +larger than 8 bits. This effectively changes the access to the EC space
3374 +from
3375 +ByteAcc to AnyAcc, and will probably require changes to the host OS
3376 +Embedded
3377 +Controller driver to enable 16/32/64/256-bit transfers in addition to 8-
3378 +bit
705 3379 transfers. Alexey Starikovskiy, Lin Ming
706 3380
707 -Implemented a performance enhancement for namespace search and access. This
708 -change enhances the performance of namespace searches and walks by adding a
709 -backpointer to the parent in each namespace node. On large namespaces, this
710 -change can improve overall ACPI performance by up to 9X. Adding a pointer to
711 -each namespace node increases the overall size of the internal namespace by
3381 +Implemented a performance enhancement for namespace search and access.
3382 +This
3383 +change enhances the performance of namespace searches and walks by adding
3384 +a
3385 +backpointer to the parent in each namespace node. On large namespaces,
3386 +this
3387 +change can improve overall ACPI performance by up to 9X. Adding a pointer
3388 +to
3389 +each namespace node increases the overall size of the internal namespace
3390 +by
712 3391 about 5%, since each namespace entry usually consists of both a namespace
713 3392 node and an ACPI operand object. However, this is the first growth of the
714 3393 namespace in ten years. ACPICA bugzilla 817. Alexey Starikovskiy.
715 3394
716 -Implemented a performance optimization that reduces the number of namespace
717 -walks. On control method exit, only walk the namespace if the method is known
718 -to have created namespace objects outside of its local scope. Previously, the
719 -entire namespace was traversed on each control method exit. This change can
720 -improve overall ACPI performance by up to 3X. Alexey Starikovskiy, Bob Moore.
3395 +Implemented a performance optimization that reduces the number of
3396 +namespace
3397 +walks. On control method exit, only walk the namespace if the method is
3398 +known
3399 +to have created namespace objects outside of its local scope. Previously,
3400 +the
3401 +entire namespace was traversed on each control method exit. This change
3402 +can
3403 +improve overall ACPI performance by up to 3X. Alexey Starikovskiy, Bob
3404 +Moore.
721 3405
722 -Added support to truncate I/O addresses to 16 bits for Windows compatibility.
3406 +Added support to truncate I/O addresses to 16 bits for Windows
3407 +compatibility.
723 3408 Some ASL code has been seen in the field that inadvertently has bits set
724 -above bit 15. This feature is optional and is enabled if the BIOS requests
3409 +above bit 15. This feature is optional and is enabled if the BIOS
3410 +requests
725 3411 any Windows OSI strings. It can also be enabled by the host OS. Matthew
726 3412 Garrett, Bob Moore.
727 3413
728 3414 Added support to limit the maximum time for the ASL Sleep() operator. To
729 3415 prevent accidental deep sleeps, limit the maximum time that Sleep() will
730 3416 actually sleep. Configurable, the default maximum is two seconds. ACPICA
731 3417 bugzilla 854.
732 3418
733 -Added run-time validation support for the _WDG and_WED Microsoft predefined
734 -methods. These objects are defined by "Windows Instrumentation", and are not
3419 +Added run-time validation support for the _WDG and_WED Microsoft
3420 +predefined
3421 +methods. These objects are defined by "Windows Instrumentation", and are
3422 +not
735 3423 part of the ACPI spec. ACPICA BZ 860.
736 3424
737 3425 Expanded all statistic counters used during namespace and device
738 -initialization from 16 to 32 bits in order to support very large namespaces.
3426 +initialization from 16 to 32 bits in order to support very large
3427 +namespaces.
739 3428
740 -Replaced all instances of %d in printf format specifiers with %u since nearly
3429 +Replaced all instances of %d in printf format specifiers with %u since
3430 +nearly
741 3431 all integers in ACPICA are unsigned.
742 3432
743 -Fixed the exception namestring for AE_WAKE_ONLY_GPE. Was incorrectly returned
3433 +Fixed the exception namestring for AE_WAKE_ONLY_GPE. Was incorrectly
3434 +returned
744 3435 as AE_NO_HANDLER.
745 3436
746 3437 Example Code and Data Size: These are the sizes for the OS-independent
747 3438 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
748 -debug version of the code includes the debug output trace mechanism and has a
3439 +debug version of the code includes the debug output trace mechanism and
3440 +has a
749 3441 much larger code and data size.
750 3442
751 3443 Previous Release:
752 3444 Non-Debug Version: 88.4K Code, 18.8K Data, 107.2K Total
753 3445 Debug Version: 164.2K Code, 51.5K Data, 215.7K Total
754 3446 Current Release:
755 3447 Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total
756 3448 Debug Version: 164.1K Code, 51.5K Data, 215.6K Total
757 3449
758 3450 2) iASL Compiler/Disassembler and Tools:
759 3451
760 3452 iASL: Added compiler support for the _WDG and_WED Microsoft predefined
761 -methods. These objects are defined by "Windows Instrumentation", and are not
3453 +methods. These objects are defined by "Windows Instrumentation", and are
3454 +not
762 3455 part of the ACPI spec. ACPICA BZ 860.
763 3456
764 3457 AcpiExec: added option to disable the memory tracking mechanism. The -dt
765 3458 option will disable the tracking mechanism, which improves performance
766 3459 considerably.
767 3460
768 3461 AcpiExec: Restructured the command line options into -d (disable) and -e
769 3462 (enable) options.
770 3463
771 3464 ----------------------------------------
772 3465 28 April 2010. Summary of changes for version 20100428:
773 3466
774 3467 1) ACPI CA Core Subsystem:
775 3468
776 3469 Implemented GPE support for dynamically loaded ACPI tables. For all GPEs,
777 -including FADT-based and GPE Block Devices, execute any _PRW methods in the
3470 +including FADT-based and GPE Block Devices, execute any _PRW methods in
3471 +the
778 3472 new table, and process any _Lxx/_Exx GPE methods in the new table. Any
779 3473 runtime GPE that is referenced by an _Lxx/_Exx method in the new table is
780 3474 immediately enabled. Handles the FADT-defined GPEs as well as GPE Block
781 3475 Devices. Provides compatibility with other ACPI implementations. Two new
782 -files added, evgpeinit.c and evgpeutil.c. ACPICA BZ 833. Lin Ming, Bob Moore.
3476 +files added, evgpeinit.c and evgpeutil.c. ACPICA BZ 833. Lin Ming, Bob
3477 +Moore.
783 3478
784 -Fixed a regression introduced in version 20100331 within the table manager
785 -where initial table loading could fail. This was introduced in the fix for
786 -AcpiReallocateRootTable. Also, renamed some of fields in the table manager
3479 +Fixed a regression introduced in version 20100331 within the table
3480 +manager
3481 +where initial table loading could fail. This was introduced in the fix
3482 +for
3483 +AcpiReallocateRootTable. Also, renamed some of fields in the table
3484 +manager
787 3485 data structures to clarify their meaning and use.
788 3486
789 3487 Fixed a possible allocation overrun during internal object copy in
790 -AcpiUtCopySimpleObject. The original code did not correctly handle the case
791 -where the object to be copied was a namespace node. Lin Ming. ACPICA BZ 847.
3488 +AcpiUtCopySimpleObject. The original code did not correctly handle the
3489 +case
3490 +where the object to be copied was a namespace node. Lin Ming. ACPICA BZ
3491 +847.
792 3492
793 3493 Updated the allocation dump routine, AcpiUtDumpAllocation and fixed a
794 -possible access beyond end-of-allocation. Also, now fully validate descriptor
3494 +possible access beyond end-of-allocation. Also, now fully validate
3495 +descriptor
795 3496 (size and type) before output. Lin Ming, Bob Moore. ACPICA BZ 847
796 3497
797 3498 Example Code and Data Size: These are the sizes for the OS-independent
798 3499 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
799 -debug version of the code includes the debug output trace mechanism and has a
3500 +debug version of the code includes the debug output trace mechanism and
3501 +has a
800 3502 much larger code and data size.
801 3503
802 3504 Previous Release:
803 3505 Non-Debug Version: 87.9K Code, 18.6K Data, 106.5K Total
804 3506 Debug Version: 163.5K Code, 51.3K Data, 214.8K Total
805 3507 Current Release:
806 3508 Non-Debug Version: 88.4K Code, 18.8K Data, 107.2K Total
807 3509 Debug Version: 164.2K Code, 51.5K Data, 215.7K Total
808 3510
809 3511 2) iASL Compiler/Disassembler and Tools:
810 3512
811 3513 iASL: Implemented Min/Max/Len/Gran validation for address resource
812 -descriptors. This change implements validation for the address fields that
3514 +descriptors. This change implements validation for the address fields
3515 +that
813 3516 are common to all address-type resource descriptors. These checks are
814 3517 implemented: Checks for valid Min/Max, length within the Min/Max window,
815 -valid granularity, Min/Max a multiple of granularity, and _MIF/_MAF as per
816 -table 6-40 in the ACPI 4.0a specification. Also split the large aslrestype1.c
3518 +valid granularity, Min/Max a multiple of granularity, and _MIF/_MAF as
3519 +per
3520 +table 6-40 in the ACPI 4.0a specification. Also split the large
3521 +aslrestype1.c
817 3522 and aslrestype2.c files into five new files. ACPICA BZ 840.
818 3523
819 -iASL: Added support for the _Wxx predefined names. This support was missing
3524 +iASL: Added support for the _Wxx predefined names. This support was
3525 +missing
820 3526 and these names were not recognized by the compiler as valid predefined
821 3527 names. ACPICA BZ 851.
822 3528
823 -iASL: Added an error for all predefined names that are defined to return no
824 -value and thus must be implemented as Control Methods. These include all of
3529 +iASL: Added an error for all predefined names that are defined to return
3530 +no
3531 +value and thus must be implemented as Control Methods. These include all
3532 +of
825 3533 the _Lxx, _Exx, _Wxx, and _Qxx names, as well as some other miscellaneous
826 3534 names such as _DIS, _INI, _IRC, _OFF, _ON, and _PSx. ACPICA BZ 850, 856.
827 3535
828 -iASL: Implemented the -ts option to emit hex AML data in ASL format, as an
829 -ASL Buffer. Allows ACPI tables to be easily included within ASL files, to be
830 -dynamically loaded via the Load() operator. Also cleaned up output for the -
3536 +iASL: Implemented the -ts option to emit hex AML data in ASL format, as
3537 +an
3538 +ASL Buffer. Allows ACPI tables to be easily included within ASL files, to
3539 +be
3540 +dynamically loaded via the Load() operator. Also cleaned up output for
3541 +the
3542 +-
831 3543 ta and -tc options. ACPICA BZ 853.
832 3544
833 3545 Tests: Added a new file with examples of extended iASL error checking.
834 3546 Demonstrates the advanced error checking ability of the iASL compiler.
835 3547 Available at tests/misc/badcode.asl.
836 3548
837 3549 ----------------------------------------
838 3550 31 March 2010. Summary of changes for version 20100331:
839 3551
840 3552 1) ACPI CA Core Subsystem:
841 3553
842 -Completed a major update for the GPE support in order to improve support for
843 -shared GPEs and to simplify both host OS and ACPICA code. Added a reference
844 -count mechanism to support shared GPEs that require multiple device drivers.
3554 +Completed a major update for the GPE support in order to improve support
3555 +for
3556 +shared GPEs and to simplify both host OS and ACPICA code. Added a
3557 +reference
3558 +count mechanism to support shared GPEs that require multiple device
3559 +drivers.
845 3560 Several external interfaces have changed. One external interface has been
846 3561 removed. One new external interface was added. Most of the GPE external
847 3562 interfaces now use the GPE spinlock instead of the events mutex (and the
848 -Flags parameter for many GPE interfaces has been removed.) See the updated
849 -ACPICA Programmer Reference for details. Matthew Garrett, Bob Moore, Rafael
3563 +Flags parameter for many GPE interfaces has been removed.) See the
3564 +updated
3565 +ACPICA Programmer Reference for details. Matthew Garrett, Bob Moore,
3566 +Rafael
850 3567 Wysocki. ACPICA BZ 831.
851 3568
852 3569 Changed:
853 3570 AcpiEnableGpe, AcpiDisableGpe, AcpiClearGpe, AcpiGetGpeStatus
854 3571 Removed:
855 3572 AcpiSetGpeType
856 3573 New:
857 3574 AcpiSetGpe
858 3575
859 -Implemented write support for DataTable operation regions. These regions are
860 -defined via the DataTableRegion() operator. Previously, only read support was
861 -implemented. The ACPI specification allows DataTableRegions to be read/write,
3576 +Implemented write support for DataTable operation regions. These regions
3577 +are
3578 +defined via the DataTableRegion() operator. Previously, only read support
3579 +was
3580 +implemented. The ACPI specification allows DataTableRegions to be
3581 +read/write,
862 3582 however.
863 3583
864 3584 Implemented a new subsystem option to force a copy of the DSDT to local
865 -memory. Optionally copy the entire DSDT to local memory (instead of simply
866 -mapping it.) There are some (albeit very rare) BIOSs that corrupt or replace
867 -the original DSDT, creating the need for this option. Default is FALSE, do
3585 +memory. Optionally copy the entire DSDT to local memory (instead of
3586 +simply
3587 +mapping it.) There are some (albeit very rare) BIOSs that corrupt or
3588 +replace
3589 +the original DSDT, creating the need for this option. Default is FALSE,
3590 +do
868 3591 not copy the DSDT.
869 3592
870 3593 Implemented detection of a corrupted or replaced DSDT. This change adds
871 -support to detect a DSDT that has been corrupted and/or replaced from outside
872 -the OS (by firmware). This is typically catastrophic for the system, but has
3594 +support to detect a DSDT that has been corrupted and/or replaced from
3595 +outside
3596 +the OS (by firmware). This is typically catastrophic for the system, but
3597 +has
873 3598 been seen on some machines. Once this problem has been detected, the DSDT
874 3599 copy option can be enabled via system configuration. Lin Ming, Bob Moore.
875 3600
876 -Fixed two problems with AcpiReallocateRootTable during the root table copy.
3601 +Fixed two problems with AcpiReallocateRootTable during the root table
3602 +copy.
877 3603 When copying the root table to the new allocation, the length used was
878 -incorrect. The new size was used instead of the current table size, meaning
879 -too much data was copied. Also, the count of available slots for ACPI tables
3604 +incorrect. The new size was used instead of the current table size,
3605 +meaning
3606 +too much data was copied. Also, the count of available slots for ACPI
3607 +tables
880 3608 was not set correctly. Alexey Starikovskiy, Bob Moore.
881 3609
882 3610 Example Code and Data Size: These are the sizes for the OS-independent
883 3611 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
884 -debug version of the code includes the debug output trace mechanism and has a
3612 +debug version of the code includes the debug output trace mechanism and
3613 +has a
885 3614 much larger code and data size.
886 3615
887 3616 Previous Release:
888 3617 Non-Debug Version: 87.5K Code, 18.4K Data, 105.9K Total
889 3618 Debug Version: 163.4K Code, 51.1K Data, 214.5K Total
890 3619 Current Release:
891 3620 Non-Debug Version: 87.9K Code, 18.6K Data, 106.5K Total
892 3621 Debug Version: 163.5K Code, 51.3K Data, 214.8K Total
893 3622
894 3623 2) iASL Compiler/Disassembler and Tools:
895 3624
896 3625 iASL: Implement limited typechecking for values returned from predefined
897 3626 control methods. The type of any returned static (unnamed) object is now
898 3627 validated. For example, Return(1). ACPICA BZ 786.
899 3628
900 -iASL: Fixed a predefined name object verification regression. Fixes a problem
3629 +iASL: Fixed a predefined name object verification regression. Fixes a
3630 +problem
901 3631 introduced in version 20100304. An error is incorrectly generated if a
902 3632 predefined name is declared as a static named object with a value defined
903 3633 using the keywords "Zero", "One", or "Ones". Lin Ming.
904 3634
905 -iASL: Added Windows 7 support for the -g option (get local ACPI tables) by
3635 +iASL: Added Windows 7 support for the -g option (get local ACPI tables)
3636 +by
906 3637 reducing the requested registry access rights. ACPICA BZ 842.
907 3638
908 -Disassembler: fixed a possible fault when generating External() statements.
909 -Introduced in commit ae7d6fd: Properly handle externals with parent-prefix
3639 +Disassembler: fixed a possible fault when generating External()
3640 +statements.
3641 +Introduced in commit ae7d6fd: Properly handle externals with parent-
3642 +prefix
910 3643 (carat). Fixes a string length allocation calculation. Lin Ming.
911 3644
912 3645 ----------------------------------------
913 3646 04 March 2010. Summary of changes for version 20100304:
914 3647
915 3648 1) ACPI CA Core Subsystem:
916 3649
917 3650 Fixed a possible problem with the AML Mutex handling function
918 3651 AcpiExReleaseMutex where the function could fault under the very rare
919 -condition when the interpreter has blocked, the interpreter lock is released,
3652 +condition when the interpreter has blocked, the interpreter lock is
3653 +released,
920 3654 the interpreter is then reentered via the same thread, and attempts to
921 -acquire an AML mutex that was previously acquired. FreeBSD report 140979. Lin
3655 +acquire an AML mutex that was previously acquired. FreeBSD report 140979.
3656 +Lin
922 3657 Ming.
923 3658
924 3659 Implemented additional configuration support for the AML "Debug Object".
925 3660 Output from the debug object can now be enabled via a global variable,
926 -AcpiGbl_EnableAmlDebugObject. This will assist with remote machine debugging.
927 -This debug output is now available in the release version of ACPICA instead
928 -of just the debug version. Also, the entire debug output module can now be
3661 +AcpiGbl_EnableAmlDebugObject. This will assist with remote machine
3662 +debugging.
3663 +This debug output is now available in the release version of ACPICA
3664 +instead
3665 +of just the debug version. Also, the entire debug output module can now
3666 +be
929 3667 configured out of the ACPICA build if desired. One new file added,
930 3668 executer/exdebug.c. Lin Ming, Bob Moore.
931 3669
932 3670 Added header support for the ACPI MCHI table (Management Controller Host
933 -Interface Table). This table was added in ACPI 4.0, but the defining document
3671 +Interface Table). This table was added in ACPI 4.0, but the defining
3672 +document
934 3673 has only recently become available.
935 3674
936 -Standardized output of integer values for ACPICA warnings/errors. Always use
937 -0x prefix for hex output, always use %u for unsigned integer decimal output.
938 -Affects ACPI_INFO, ACPI_ERROR, ACPI_EXCEPTION, and ACPI_WARNING (about 400
3675 +Standardized output of integer values for ACPICA warnings/errors. Always
3676 +use
3677 +0x prefix for hex output, always use %u for unsigned integer decimal
3678 +output.
3679 +Affects ACPI_INFO, ACPI_ERROR, ACPI_EXCEPTION, and ACPI_WARNING (about
3680 +400
939 3681 invocations.) These invocations were converted from the original
940 3682 ACPI_DEBUG_PRINT invocations and were not consistent. ACPICA BZ 835.
941 3683
942 3684 Example Code and Data Size: These are the sizes for the OS-independent
943 3685 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
944 -debug version of the code includes the debug output trace mechanism and has a
3686 +debug version of the code includes the debug output trace mechanism and
3687 +has a
945 3688 much larger code and data size.
946 3689
947 3690 Previous Release:
948 3691 Non-Debug Version: 87.1K Code, 18.0K Data, 105.1K Total
949 3692 Debug Version: 163.5K Code, 50.9K Data, 214.4K Total
950 3693 Current Release:
951 3694 Non-Debug Version: 87.5K Code, 18.4K Data, 105.9K Total
952 3695 Debug Version: 163.4K Code, 51.1K Data, 214.5K Total
953 3696
954 3697 2) iASL Compiler/Disassembler and Tools:
955 3698
956 3699 iASL: Implemented typechecking support for static (non-control method)
957 3700 predefined named objects that are declared with the Name() operator. For
958 3701 example, the type of this object is now validated to be of type Integer:
959 -Name(_BBN, 1). This change migrates the compiler to using the core predefined
3702 +Name(_BBN, 1). This change migrates the compiler to using the core
3703 +predefined
960 3704 name table instead of maintaining a local version. Added a new file,
961 3705 aslpredef.c. ACPICA BZ 832.
962 3706
963 3707 Disassembler: Added support for the ACPI 4.0 MCHI table.
964 3708
965 3709 ----------------------------------------
966 3710 21 January 2010. Summary of changes for version 20100121:
967 3711
968 3712 1) ACPI CA Core Subsystem:
969 3713
970 3714 Added the 2010 copyright to all module headers and signons. This affects
971 3715 virtually every file in the ACPICA core subsystem, the iASL compiler, the
972 3716 tools/utilities, and the test suites.
973 3717
974 -Implemented a change to the AcpiGetDevices interface to eliminate unnecessary
3718 +Implemented a change to the AcpiGetDevices interface to eliminate
3719 +unnecessary
975 3720 invocations of the _STA method. In the case where a specific _HID is
976 3721 requested, do not run _STA until a _HID match is found. This eliminates
977 -potentially dozens of _STA calls during a search for a particular device/HID,
3722 +potentially dozens of _STA calls during a search for a particular
3723 +device/HID,
978 3724 which in turn can improve boot times. ACPICA BZ 828. Lin Ming.
979 3725
980 -Implemented an additional repair for predefined method return values. Attempt
981 -to repair unexpected NULL elements within returned Package objects. Create an
982 -Integer of value zero, a NULL String, or a zero-length Buffer as appropriate.
3726 +Implemented an additional repair for predefined method return values.
3727 +Attempt
3728 +to repair unexpected NULL elements within returned Package objects.
3729 +Create
3730 +an
3731 +Integer of value zero, a NULL String, or a zero-length Buffer as
3732 +appropriate.
983 3733 ACPICA BZ 818. Lin Ming, Bob Moore.
984 3734
985 -Removed the obsolete ACPI_INTEGER data type. This type was introduced as the
986 -code was migrated from ACPI 1.0 (with 32-bit AML integers) to ACPI 2.0 (with
987 -64-bit AML integers). It is now obsolete and this change removes it from the
988 -ACPICA code base, replaced by UINT64. The original typedef has been retained
989 -for now for compatibility with existing device driver code. ACPICA BZ 824.
3735 +Removed the obsolete ACPI_INTEGER data type. This type was introduced as
3736 +the
3737 +code was migrated from ACPI 1.0 (with 32-bit AML integers) to ACPI 2.0
3738 +(with
3739 +64-bit AML integers). It is now obsolete and this change removes it from
3740 +the
3741 +ACPICA code base, replaced by UINT64. The original typedef has been
3742 +retained
3743 +for now for compatibility with existing device driver code. ACPICA BZ
3744 +824.
990 3745
991 -Removed the unused UINT32_STRUCT type, and the obsolete Integer64 field in
3746 +Removed the unused UINT32_STRUCT type, and the obsolete Integer64 field
3747 +in
992 3748 the parse tree object.
993 3749
994 -Added additional warning options for the gcc-4 generation. Updated the source
995 -accordingly. This includes some code restructuring to eliminate unreachable
996 -code, elimination of some gotos, elimination of unused return values, some
3750 +Added additional warning options for the gcc-4 generation. Updated the
3751 +source
3752 +accordingly. This includes some code restructuring to eliminate
3753 +unreachable
3754 +code, elimination of some gotos, elimination of unused return values,
3755 +some
997 3756 additional casting, and removal of redundant declarations.
998 3757
999 3758 Example Code and Data Size: These are the sizes for the OS-independent
1000 3759 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1001 -debug version of the code includes the debug output trace mechanism and has a
3760 +debug version of the code includes the debug output trace mechanism and
3761 +has a
1002 3762 much larger code and data size.
1003 3763
1004 3764 Previous Release:
1005 3765 Non-Debug Version: 87.0K Code, 18.0K Data, 105.0K Total
1006 3766 Debug Version: 163.4K Code, 50.8K Data, 214.2K Total
1007 3767 Current Release:
1008 3768 Non-Debug Version: 87.1K Code, 18.0K Data, 105.1K Total
1009 3769 Debug Version: 163.5K Code, 50.9K Data, 214.4K Total
1010 3770
1011 3771 2) iASL Compiler/Disassembler and Tools:
1012 3772
1013 3773 No functional changes for this release.
1014 3774
1015 3775 ----------------------------------------
1016 3776 14 December 2009. Summary of changes for version 20091214:
1017 3777
1018 3778 1) ACPI CA Core Subsystem:
1019 3779
1020 -Enhanced automatic data type conversions for predefined name repairs. This
1021 -change expands the automatic repairs/conversions for predefined name return
1022 -values to make Integers, Strings, and Buffers fully interchangeable. Also, a
1023 -Buffer can be converted to a Package of Integers if necessary. The nsrepair.c
3780 +Enhanced automatic data type conversions for predefined name repairs.
3781 +This
3782 +change expands the automatic repairs/conversions for predefined name
3783 +return
3784 +values to make Integers, Strings, and Buffers fully interchangeable.
3785 +Also,
3786 +a
3787 +Buffer can be converted to a Package of Integers if necessary. The
3788 +nsrepair.c
1024 3789 module was completely restructured. Lin Ming, Bob Moore.
1025 3790
1026 -Implemented automatic removal of null package elements during predefined name
3791 +Implemented automatic removal of null package elements during predefined
3792 +name
1027 3793 repairs. This change will automatically remove embedded and trailing NULL
1028 -package elements from returned package objects that are defined to contain a
1029 -variable number of sub-packages. The driver is then presented with a package
3794 +package elements from returned package objects that are defined to
3795 +contain
3796 +a
3797 +variable number of sub-packages. The driver is then presented with a
3798 +package
1030 3799 with no null elements to deal with. ACPICA BZ 819.
1031 3800
1032 3801 Implemented a repair for the predefined _FDE and _GTM names. The expected
1033 -return value for both names is a Buffer of 5 DWORDs. This repair fixes two
1034 -possible problems (both seen in the field), where a package of integers is
1035 -returned, or a buffer of BYTEs is returned. With assistance from Jung-uk Kim.
3802 +return value for both names is a Buffer of 5 DWORDs. This repair fixes
3803 +two
3804 +possible problems (both seen in the field), where a package of integers
3805 +is
3806 +returned, or a buffer of BYTEs is returned. With assistance from Jung-uk
3807 +Kim.
1036 3808
1037 -Implemented additional module-level code support. This change will properly
1038 -execute module-level code that is not at the root of the namespace (under a
1039 -Device object, etc.). Now executes the code within the current scope instead
3809 +Implemented additional module-level code support. This change will
3810 +properly
3811 +execute module-level code that is not at the root of the namespace (under
3812 +a
3813 +Device object, etc.). Now executes the code within the current scope
3814 +instead
1040 3815 of the root. ACPICA BZ 762. Lin Ming.
1041 3816
1042 -Fixed possible mutex acquisition errors when running _REG methods. Fixes a
1043 -problem where mutex errors can occur when running a _REG method that is in
1044 -the same scope as a method-defined operation region or an operation region
1045 -under a module-level IF block. This type of code is rare, so the problem has
3817 +Fixed possible mutex acquisition errors when running _REG methods. Fixes
3818 +a
3819 +problem where mutex errors can occur when running a _REG method that is
3820 +in
3821 +the same scope as a method-defined operation region or an operation
3822 +region
3823 +under a module-level IF block. This type of code is rare, so the problem
3824 +has
1046 3825 not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore.
1047 3826
1048 -Fixed a possible memory leak during module-level code execution. An object
3827 +Fixed a possible memory leak during module-level code execution. An
3828 +object
1049 3829 could be leaked for each block of executed module-level code if the
1050 -interpreter slack mode is enabled This change deletes any implicitly returned
3830 +interpreter slack mode is enabled This change deletes any implicitly
3831 +returned
1051 3832 object from the module-level code block. Lin Ming.
1052 3833
1053 -Removed messages for successful predefined repair(s). The repair mechanism
1054 -was considered too wordy. Now, messages are only unconditionally emitted if
3834 +Removed messages for successful predefined repair(s). The repair
3835 +mechanism
3836 +was considered too wordy. Now, messages are only unconditionally emitted
3837 +if
1055 3838 the return object cannot be repaired. Existing messages for successful
1056 -repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827.
3839 +repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ
3840 +827.
1057 3841
1058 3842 Example Code and Data Size: These are the sizes for the OS-independent
1059 3843 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1060 -debug version of the code includes the debug output trace mechanism and has a
3844 +debug version of the code includes the debug output trace mechanism and
3845 +has a
1061 3846 much larger code and data size.
1062 3847
1063 3848 Previous Release:
1064 3849 Non-Debug Version: 86.6K Code, 18.2K Data, 104.8K Total
1065 3850 Debug Version: 162.7K Code, 50.8K Data, 213.5K Total
1066 3851 Current Release:
1067 3852 Non-Debug Version: 87.0K Code, 18.0K Data, 105.0K Total
1068 3853 Debug Version: 163.4K Code, 50.8K Data, 214.2K Total
1069 3854
1070 3855 2) iASL Compiler/Disassembler and Tools:
1071 3856
1072 -iASL: Fixed a regression introduced in 20091112 where intermediate .SRC files
3857 +iASL: Fixed a regression introduced in 20091112 where intermediate .SRC
3858 +files
1073 3859 were no longer automatically removed at the termination of the compile.
1074 3860
1075 3861 acpiexec: Implemented the -f option to specify default region fill value.
1076 3862 This option specifies the value used to initialize buffers that simulate
1077 -operation regions. Default value is zero. Useful for debugging problems that
3863 +operation regions. Default value is zero. Useful for debugging problems
3864 +that
1078 3865 depend on a specific initial value for a region or field.
1079 3866
1080 3867 ----------------------------------------
1081 3868 12 November 2009. Summary of changes for version 20091112:
1082 3869
1083 3870 1) ACPI CA Core Subsystem:
1084 3871
1085 3872 Implemented a post-order callback to AcpiWalkNamespace. The existing
1086 3873 interface only has a pre-order callback. This change adds an additional
1087 -parameter for a post-order callback which will be more useful for bus scans.
3874 +parameter for a post-order callback which will be more useful for bus
3875 +scans.
1088 3876 ACPICA BZ 779. Lin Ming. Updated the ACPICA Programmer Reference.
1089 3877
1090 3878 Modified the behavior of the operation region memory mapping cache for
1091 -SystemMemory. Ensure that the memory mappings created for operation regions
3879 +SystemMemory. Ensure that the memory mappings created for operation
3880 +regions
1092 3881 do not cross 4K page boundaries. Crossing a page boundary while mapping
1093 -regions can cause kernel warnings on some hosts if the pages have different
1094 -attributes. Such regions are probably BIOS bugs, and this is the workaround.
3882 +regions can cause kernel warnings on some hosts if the pages have
3883 +different
3884 +attributes. Such regions are probably BIOS bugs, and this is the
3885 +workaround.
1095 3886 Linux BZ 14445. Lin Ming.
1096 3887
1097 3888 Implemented an automatic repair for predefined methods that must return
1098 -sorted lists. This change will repair (by sorting) packages returned by _ALR,
1099 -_PSS, and _TSS. Drivers can now assume that the packages are correctly sorted
3889 +sorted lists. This change will repair (by sorting) packages returned by
3890 +_ALR,
3891 +_PSS, and _TSS. Drivers can now assume that the packages are correctly
3892 +sorted
1100 3893 and do not contain NULL package elements. Adds one new file,
1101 3894 namespace/nsrepair2.c. ACPICA BZ 784. Lin Ming, Bob Moore.
1102 3895
1103 -Fixed a possible fault during predefined name validation if a return Package
3896 +Fixed a possible fault during predefined name validation if a return
3897 +Package
1104 3898 object contains NULL elements. Also adds a warning if a NULL element is
1105 -followed by any non-null elements. ACPICA BZ 813, 814. Future enhancement may
3899 +followed by any non-null elements. ACPICA BZ 813, 814. Future enhancement
3900 +may
1106 3901 include repair or removal of all such NULL elements where possible.
1107 3902
1108 -Implemented additional module-level executable AML code support. This change
3903 +Implemented additional module-level executable AML code support. This
3904 +change
1109 3905 will execute module-level code that is not at the root of the namespace
1110 -(under a Device object, etc.) at table load time. Module-level executable AML
3906 +(under a Device object, etc.) at table load time. Module-level executable
3907 +AML
1111 3908 code has been illegal since ACPI 2.0. ACPICA BZ 762. Lin Ming.
1112 3909
1113 -Implemented a new internal function to create Integer objects. This function
3910 +Implemented a new internal function to create Integer objects. This
3911 +function
1114 3912 simplifies miscellaneous object creation code. ACPICA BZ 823.
1115 3913
1116 -Reduced the severity of predefined repair messages, Warning to Info. Since
1117 -the object was successfully repaired, a warning is too severe. Reduced to an
1118 -info message for now. These messages may eventually be changed to debug-only.
3914 +Reduced the severity of predefined repair messages, Warning to Info.
3915 +Since
3916 +the object was successfully repaired, a warning is too severe. Reduced to
3917 +an
3918 +info message for now. These messages may eventually be changed to debug-
3919 +only.
1119 3920 ACPICA BZ 812.
1120 3921
1121 3922 Example Code and Data Size: These are the sizes for the OS-independent
1122 3923 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1123 -debug version of the code includes the debug output trace mechanism and has a
3924 +debug version of the code includes the debug output trace mechanism and
3925 +has a
1124 3926 much larger code and data size.
1125 3927
1126 3928 Previous Release:
1127 3929 Non-Debug Version: 85.8K Code, 18.0K Data, 103.8K Total
1128 3930 Debug Version: 161.8K Code, 50.6K Data, 212.4K Total
1129 3931 Current Release:
1130 3932 Non-Debug Version: 86.6K Code, 18.2K Data, 104.8K Total
1131 3933 Debug Version: 162.7K Code, 50.8K Data, 213.5K Total
1132 3934
1133 3935 2) iASL Compiler/Disassembler and Tools:
1134 3936
1135 -iASL: Implemented Switch() with While(1) so that Break works correctly. This
1136 -change correctly implements the Switch operator with a surrounding While(1)
3937 +iASL: Implemented Switch() with While(1) so that Break works correctly.
3938 +This
3939 +change correctly implements the Switch operator with a surrounding
3940 +While(1)
1137 3941 so that the Break operator works as expected. ACPICA BZ 461. Lin Ming.
1138 3942
1139 -iASL: Added a message if a package initializer list is shorter than package
1140 -length. Adds a new remark for a Package() declaration if an initializer list
3943 +iASL: Added a message if a package initializer list is shorter than
3944 +package
3945 +length. Adds a new remark for a Package() declaration if an initializer
3946 +list
1141 3947 exists, but is shorter than the declared length of the package. Although
1142 3948 technically legal, this is probably a coding error and it is seen in the
1143 3949 field. ACPICA BZ 815. Lin Ming, Bob Moore.
1144 3950
1145 -iASL: Fixed a problem where the compiler could fault after the maximum number
3951 +iASL: Fixed a problem where the compiler could fault after the maximum
3952 +number
1146 3953 of errors was reached (200).
1147 3954
1148 -acpixtract: Fixed a possible warning for pointer cast if the compiler warning
3955 +acpixtract: Fixed a possible warning for pointer cast if the compiler
3956 +warning
1149 3957 level set very high.
1150 3958
1151 3959 ----------------------------------------
1152 3960 13 October 2009. Summary of changes for version 20091013:
1153 3961
1154 3962 1) ACPI CA Core Subsystem:
1155 3963
1156 -Fixed a problem where an Operation Region _REG method could be executed more
1157 -than once. If a custom address space handler is installed by the host before
1158 -the "initialize operation regions" phase of the ACPICA initialization, any
3964 +Fixed a problem where an Operation Region _REG method could be executed
3965 +more
3966 +than once. If a custom address space handler is installed by the host
3967 +before
3968 +the "initialize operation regions" phase of the ACPICA initialization,
3969 +any
1159 3970 _REG methods for that address space could be executed twice. This change
1160 3971 fixes the problem. ACPICA BZ 427. Lin Ming.
1161 3972
1162 3973 Fixed a possible memory leak for the Scope() ASL operator. When the exact
1163 3974 invocation of "Scope(\)" is executed (change scope to root), one internal
1164 3975 operand object was leaked. Lin Ming.
1165 3976
1166 3977 Implemented a run-time repair for the _MAT predefined method. If the _MAT
1167 3978 return value is defined as a Field object in the AML, and the field
1168 -size is less than or equal to the default width of an integer (32 or 64),_MAT
3979 +size is less than or equal to the default width of an integer (32 or
3980 +64),_MAT
1169 3981 can incorrectly return an Integer instead of a Buffer. ACPICA now
1170 3982 automatically repairs this problem. ACPICA BZ 810.
1171 3983
1172 -Implemented a run-time repair for the _BIF and _BIX predefined methods. The
3984 +Implemented a run-time repair for the _BIF and _BIX predefined methods.
3985 +The
1173 3986 "OEM Information" field is often incorrectly returned as an Integer with
1174 -value zero if the field is not supported by the platform. This is due to an
3987 +value zero if the field is not supported by the platform. This is due to
3988 +an
1175 3989 ambiguity in the ACPI specification. The field should always be a string.
1176 3990 ACPICA now automatically repairs this problem by returning a NULL string
1177 3991 within the returned Package. ACPICA BZ 807.
1178 3992
1179 3993 Example Code and Data Size: These are the sizes for the OS-independent
1180 3994 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1181 -debug version of the code includes the debug output trace mechanism and has a
3995 +debug version of the code includes the debug output trace mechanism and
3996 +has a
1182 3997 much larger code and data size.
1183 3998
1184 3999 Previous Release:
1185 4000 Non-Debug Version: 85.6K Code, 18.0K Data, 103.6K Total
1186 4001 Debug Version: 161.7K Code, 50.9K Data, 212.6K Total
1187 4002 Current Release:
1188 4003 Non-Debug Version: 85.8K Code, 18.0K Data, 103.8K Total
1189 4004 Debug Version: 161.8K Code, 50.6K Data, 212.4K Total
1190 4005
1191 4006 2) iASL Compiler/Disassembler and Tools:
1192 4007
1193 4008 Disassembler: Fixed a problem where references to external symbols that
1194 -contained one or more parent-prefixes (carats) were not handled correctly,
4009 +contained one or more parent-prefixes (carats) were not handled
4010 +correctly,
1195 4011 possibly causing a fault. ACPICA BZ 806. Lin Ming.
1196 4012
1197 4013 Disassembler: Restructured the code so that all functions that handle
1198 4014 external symbols are in a single module. One new file is added,
1199 4015 common/dmextern.c.
1200 4016
1201 4017 AML Debugger: Added a max count argument for the Batch command (which
1202 4018 executes multiple predefined methods within the namespace.)
1203 4019
1204 4020 iASL: Updated the compiler documentation (User Reference.) Available at
1205 4021 http://www.acpica.org/documentation/. ACPICA BZ 750.
1206 4022
↓ open down ↓ |
2 lines elided |
↑ open up ↑ |
1207 4023 AcpiXtract: Updated for Lint and other formatting changes. Close all open
1208 4024 files.
1209 4025
1210 4026 ----------------------------------------
1211 4027 03 September 2009. Summary of changes for version 20090903:
1212 4028
1213 4029 1) ACPI CA Core Subsystem:
1214 4030
1215 4031 For Windows Vista compatibility, added the automatic execution of an _INI
1216 4032 method located at the namespace root (\_INI). This method is executed at
1217 -table load time. This support is in addition to the automatic execution of
4033 +table load time. This support is in addition to the automatic execution
4034 +of
1218 4035 \_SB._INI. Lin Ming.
1219 4036
1220 -Fixed a possible memory leak in the interpreter for AML package objects if
1221 -the package initializer list is longer than the defined size of the package.
1222 -This apparently can only happen if the BIOS changes the package size on the
4037 +Fixed a possible memory leak in the interpreter for AML package objects
4038 +if
4039 +the package initializer list is longer than the defined size of the
4040 +package.
4041 +This apparently can only happen if the BIOS changes the package size on
4042 +the
1223 4043 fly (seen in a _PSS object), as ASL compilers do not allow this. The
1224 -interpreter will truncate the package to the defined size (and issue an error
1225 -message), but previously could leave the extra objects undeleted if they were
1226 -pre-created during the argument processing (such is the case if the package
4044 +interpreter will truncate the package to the defined size (and issue an
4045 +error
4046 +message), but previously could leave the extra objects undeleted if they
4047 +were
4048 +pre-created during the argument processing (such is the case if the
4049 +package
1227 4050 consists of a number of sub-packages as in the _PSS.) ACPICA BZ 805.
1228 4051
1229 4052 Fixed a problem seen when a Buffer or String is stored to itself via ASL.
1230 -This has been reported in the field. Previously, ACPICA would zero out the
4053 +This has been reported in the field. Previously, ACPICA would zero out
4054 +the
1231 4055 buffer/string. Now, the operation is treated as a noop. Provides Windows
1232 4056 compatibility. ACPICA BZ 803. Lin Ming.
1233 4057
1234 4058 Removed an extraneous error message for ASL constructs of the form
1235 -Store(LocalX,LocalX) when LocalX is uninitialized. These curious statements
1236 -are seen in many BIOSs and are once again treated as NOOPs and no error is
4059 +Store(LocalX,LocalX) when LocalX is uninitialized. These curious
4060 +statements
4061 +are seen in many BIOSs and are once again treated as NOOPs and no error
4062 +is
1237 4063 emitted when they are encountered. ACPICA BZ 785.
1238 4064
1239 4065 Fixed an extraneous warning message if a _DSM reserved method returns a
1240 4066 Package object. _DSM can return any type of object, so validation on the
1241 4067 return type cannot be performed. ACPICA BZ 802.
1242 4068
1243 4069 Example Code and Data Size: These are the sizes for the OS-independent
1244 4070 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1245 -debug version of the code includes the debug output trace mechanism and has a
4071 +debug version of the code includes the debug output trace mechanism and
4072 +has a
1246 4073 much larger code and data size.
1247 4074
1248 4075 Previous Release:
1249 4076 Non-Debug Version: 85.5K Code, 18.0K Data, 103.5K Total
1250 4077 Debug Version: 161.6K Code, 50.9K Data, 212.5K Total
1251 4078 Current Release:
1252 4079 Non-Debug Version: 85.6K Code, 18.0K Data, 103.6K Total
1253 4080 Debug Version: 161.7K Code, 50.9K Data, 212.6K Total
1254 4081
1255 4082 2) iASL Compiler/Disassembler and Tools:
1256 4083
1257 4084 iASL: Fixed a problem with the use of the Alias operator and Resource
1258 4085 Templates. The correct alias is now constructed and no error is emitted.
1259 4086 ACPICA BZ 738.
1260 4087
1261 -iASL: Implemented the -I option to specify additional search directories for
4088 +iASL: Implemented the -I option to specify additional search directories
4089 +for
1262 4090 include files. Allows multiple additional search paths for include files.
1263 -Directories are searched in the order specified on the command line (after
4091 +Directories are searched in the order specified on the command line
4092 +(after
1264 4093 the local directory is searched.) ACPICA BZ 800.
1265 4094
1266 4095 iASL: Fixed a problem where the full pathname for include files was not
1267 4096 emitted for warnings/errors. This caused the IDE support to not work
1268 4097 properly. ACPICA BZ 765.
1269 4098
1270 4099 iASL: Implemented the -@ option to specify a Windows-style response file
1271 4100 containing additional command line options. ACPICA BZ 801.
1272 4101
1273 -AcpiExec: Added support to load multiple AML files simultaneously (such as a
4102 +AcpiExec: Added support to load multiple AML files simultaneously (such
4103 +as
4104 +a
1274 4105 DSDT and multiple SSDTs). Also added support for wildcards within the AML
1275 4106 pathname. These features allow all machine tables to be easily loaded and
1276 4107 debugged together. ACPICA BZ 804.
1277 4108
1278 -Disassembler: Added missing support for disassembly of HEST table Error Bank
4109 +Disassembler: Added missing support for disassembly of HEST table Error
4110 +Bank
1279 4111 subtables.
1280 4112
1281 4113 ----------------------------------------
1282 4114 30 July 2009. Summary of changes for version 20090730:
1283 4115
1284 4116 The ACPI 4.0 implementation for ACPICA is complete with this release.
1285 4117
1286 4118 1) ACPI CA Core Subsystem:
1287 4119
1288 4120 ACPI 4.0: Added header file support for all new and changed ACPI tables.
1289 -Completely new tables are: IBFT, IVRS, MSCT, and WAET. Tables that are new
1290 -for ACPI 4.0, but have previously been supported in ACPICA are: CPEP, BERT,
1291 -EINJ, ERST, and HEST. Other newly supported tables are: UEFI and WDAT. There
4121 +Completely new tables are: IBFT, IVRS, MSCT, and WAET. Tables that are
4122 +new
4123 +for ACPI 4.0, but have previously been supported in ACPICA are: CPEP,
4124 +BERT,
4125 +EINJ, ERST, and HEST. Other newly supported tables are: UEFI and WDAT.
4126 +There
1292 4127 have been some ACPI 4.0 changes to other existing tables. Split the large
1293 4128 actbl1.h header into the existing actbl2.h header. ACPICA BZ 774.
1294 4129
1295 -ACPI 4.0: Implemented predefined name validation for all new names. There are
1296 -31 new names in ACPI 4.0. The predefined validation module was split into two
4130 +ACPI 4.0: Implemented predefined name validation for all new names. There
4131 +are
4132 +31 new names in ACPI 4.0. The predefined validation module was split into
4133 +two
1297 4134 files. The new file is namespace/nsrepair.c. ACPICA BZ 770.
1298 4135
1299 4136 Implemented support for so-called "module-level executable code". This is
1300 -executable AML code that exists outside of any control method and is intended
1301 -to be executed at table load time. Although illegal since ACPI 2.0, this type
1302 -of code still exists and is apparently still being created. Blocks of this
1303 -code are now detected and executed as intended. Currently, the code blocks
4137 +executable AML code that exists outside of any control method and is
4138 +intended
4139 +to be executed at table load time. Although illegal since ACPI 2.0, this
4140 +type
4141 +of code still exists and is apparently still being created. Blocks of
4142 +this
4143 +code are now detected and executed as intended. Currently, the code
4144 +blocks
1304 4145 must exist under either an If, Else, or While construct; these are the
1305 4146 typical cases seen in the field. ACPICA BZ 762. Lin Ming.
1306 4147
1307 4148 Implemented an automatic dynamic repair for predefined names that return
1308 -nested Package objects. This applies to predefined names that are defined to
4149 +nested Package objects. This applies to predefined names that are defined
4150 +to
1309 4151 return a variable-length Package of sub-packages. If the number of sub-
1310 -packages is one, BIOS code is occasionally seen that creates a simple single
4152 +packages is one, BIOS code is occasionally seen that creates a simple
4153 +single
1311 4154 package with no sub-packages. This code attempts to fix the problem by
1312 -wrapping a new package object around the existing package. These methods can
1313 -be repaired: _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, and _TSS. ACPICA BZ
4155 +wrapping a new package object around the existing package. These methods
4156 +can
4157 +be repaired: _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, and _TSS. ACPICA
4158 +BZ
1314 4159 790.
1315 4160
1316 -Fixed a regression introduced in 20090625 for the AcpiGetDevices interface.
1317 -The _HID/_CID matching was broken and no longer matched IDs correctly. ACPICA
4161 +Fixed a regression introduced in 20090625 for the AcpiGetDevices
4162 +interface.
4163 +The _HID/_CID matching was broken and no longer matched IDs correctly.
4164 +ACPICA
1318 4165 BZ 793.
1319 4166
1320 4167 Fixed a problem with AcpiReset where the reset would silently fail if the
1321 -register was one of the protected I/O ports. AcpiReset now bypasses the port
1322 -validation mechanism. This may eventually be driven into the AcpiRead/Write
4168 +register was one of the protected I/O ports. AcpiReset now bypasses the
4169 +port
4170 +validation mechanism. This may eventually be driven into the
4171 +AcpiRead/Write
1323 4172 interfaces.
1324 4173
1325 4174 Fixed a regression related to the recent update of the AcpiRead/Write
1326 -interfaces. A sleep/suspend could fail if the optional PM2 Control register
4175 +interfaces. A sleep/suspend could fail if the optional PM2 Control
4176 +register
1327 4177 does not exist during an attempt to write the Bus Master Arbitration bit.
1328 -(However, some hosts already delete the code that writes this bit, and the
4178 +(However, some hosts already delete the code that writes this bit, and
4179 +the
1329 4180 code may in fact be obsolete at this date.) ACPICA BZ 799.
1330 4181
1331 -Fixed a problem where AcpiTerminate could fault if inadvertently called twice
4182 +Fixed a problem where AcpiTerminate could fault if inadvertently called
4183 +twice
1332 4184 in succession. ACPICA BZ 795.
1333 4185
1334 4186 Example Code and Data Size: These are the sizes for the OS-independent
1335 4187 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1336 -debug version of the code includes the debug output trace mechanism and has a
4188 +debug version of the code includes the debug output trace mechanism and
4189 +has a
1337 4190 much larger code and data size.
1338 4191
1339 4192 Previous Release:
1340 4193 Non-Debug Version: 84.7K Code, 17.8K Data, 102.5K Total
1341 4194 Debug Version: 160.5K Code, 50.6K Data, 211.1K Total
1342 4195 Current Release:
1343 4196 Non-Debug Version: 85.5K Code, 18.0K Data, 103.5K Total
1344 4197 Debug Version: 161.6K Code, 50.9K Data, 212.5K Total
1345 4198
1346 4199 2) iASL Compiler/Disassembler and Tools:
1347 4200
1348 4201 ACPI 4.0: Implemented disassembler support for all new ACPI tables and
1349 4202 changes to existing tables. ACPICA BZ 775.
1350 4203
↓ open down ↓ |
4 lines elided |
↑ open up ↑ |
1351 4204 ----------------------------------------
1352 4205 25 June 2009. Summary of changes for version 20090625:
1353 4206
1354 4207 The ACPI 4.0 Specification was released on June 16 and is available at
1355 4208 www.acpi.info. ACPICA implementation of ACPI 4.0 is underway and will
1356 4209 continue for the next few releases.
1357 4210
1358 4211 1) ACPI CA Core Subsystem:
1359 4212
1360 4213 ACPI 4.0: Implemented interpreter support for the IPMI operation region
1361 -address space. Includes support for bi-directional data buffers and an IPMI
1362 -address space handler (to be installed by an IPMI device driver.) ACPICA BZ
4214 +address space. Includes support for bi-directional data buffers and an
4215 +IPMI
4216 +address space handler (to be installed by an IPMI device driver.) ACPICA
4217 +BZ
1363 4218 773. Lin Ming.
1364 4219
1365 -ACPI 4.0: Added changes for existing ACPI tables - FACS and SRAT. Includes
4220 +ACPI 4.0: Added changes for existing ACPI tables - FACS and SRAT.
4221 +Includes
1366 4222 support in both the header files and the disassembler.
1367 4223
1368 4224 Completed a major update for the AcpiGetObjectInfo external interface.
1369 4225 Changes include:
1370 4226 - Support for variable, unlimited length HID, UID, and CID strings.
1371 - - Support Processor objects the same as Devices (HID,UID,CID,ADR,STA, etc.)
4227 + - Support Processor objects the same as Devices (HID,UID,CID,ADR,STA,
4228 +etc.)
1372 4229 - Call the _SxW power methods on behalf of a device object.
1373 4230 - Determine if a device is a PCI root bridge.
1374 4231 - Change the ACPI_BUFFER parameter to ACPI_DEVICE_INFO.
1375 -These changes will require an update to all callers of this interface. See
1376 -the updated ACPICA Programmer Reference for details. One new source file has
4232 +These changes will require an update to all callers of this interface.
4233 +See
4234 +the updated ACPICA Programmer Reference for details. One new source file
4235 +has
1377 4236 been added - utilities/utids.c. ACPICA BZ 368, 780.
1378 4237
1379 4238 Updated the AcpiRead and AcpiWrite external interfaces to support 64-bit
1380 -transfers. The Value parameter has been extended from 32 bits to 64 bits in
1381 -order to support new ACPI 4.0 tables. These changes will require an update to
4239 +transfers. The Value parameter has been extended from 32 bits to 64 bits
4240 +in
4241 +order to support new ACPI 4.0 tables. These changes will require an
4242 +update
4243 +to
1382 4244 all callers of these interfaces. See the ACPICA Programmer Reference for
1383 4245 details. ACPICA BZ 768.
1384 4246
1385 -Fixed several problems with AcpiAttachData. The handler was not invoked when
1386 -the host node was deleted. The data sub-object was not automatically deleted
1387 -when the host node was deleted. The interface to the handler had an unused
4247 +Fixed several problems with AcpiAttachData. The handler was not invoked
4248 +when
4249 +the host node was deleted. The data sub-object was not automatically
4250 +deleted
4251 +when the host node was deleted. The interface to the handler had an
4252 +unused
1388 4253 parameter, this was removed. ACPICA BZ 778.
1389 4254
1390 4255 Enhanced the function that dumps ACPI table headers. All non-printable
1391 -characters in the string fields are now replaced with '?' (Signature, OemId,
4256 +characters in the string fields are now replaced with '?' (Signature,
4257 +OemId,
1392 4258 OemTableId, and CompilerId.) ACPI tables with non-printable characters in
1393 4259 these fields are occasionally seen in the field. ACPICA BZ 788.
1394 4260
1395 4261 Fixed a problem with predefined method repair code where the code that
1396 -attempts to repair/convert an object of incorrect type is only executed on
1397 -the first time the predefined method is called. The mechanism that disables
4262 +attempts to repair/convert an object of incorrect type is only executed
4263 +on
4264 +the first time the predefined method is called. The mechanism that
4265 +disables
1398 4266 warnings on subsequent calls was interfering with the repair mechanism.
1399 4267 ACPICA BZ 781.
1400 4268
1401 -Fixed a possible memory leak in the predefined validation/repair code when a
4269 +Fixed a possible memory leak in the predefined validation/repair code
4270 +when
4271 +a
1402 4272 buffer is automatically converted to an expected string object.
1403 4273
1404 -Removed obsolete 16-bit files from the distribution and from the current git
4274 +Removed obsolete 16-bit files from the distribution and from the current
4275 +git
1405 4276 tree head. ACPICA BZ 776.
1406 4277
1407 4278 Example Code and Data Size: These are the sizes for the OS-independent
1408 4279 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1409 -debug version of the code includes the debug output trace mechanism and has a
4280 +debug version of the code includes the debug output trace mechanism and
4281 +has a
1410 4282 much larger code and data size.
1411 4283
1412 4284 Previous Release:
1413 4285 Non-Debug Version: 83.4K Code, 17.5K Data, 100.9K Total
1414 4286 Debug Version: 158.9K Code, 50.0K Data, 208.9K Total
1415 4287 Current Release:
1416 4288 Non-Debug Version: 84.7K Code, 17.8K Data, 102.5K Total
1417 4289 Debug Version: 160.5K Code, 50.6K Data, 211.1K Total
1418 4290
1419 4291 2) iASL Compiler/Disassembler and Tools:
1420 4292
1421 4293 ACPI 4.0: iASL and Disassembler - implemented support for the new IPMI
↓ open down ↓ |
2 lines elided |
↑ open up ↑ |
1422 4294 operation region keyword. ACPICA BZ 771, 772. Lin Ming.
1423 4295
1424 4296 ACPI 4.0: iASL - implemented compile-time validation support for all new
1425 4297 predefined names and control methods (31 total). ACPICA BZ 769.
1426 4298
1427 4299 ----------------------------------------
1428 4300 21 May 2009. Summary of changes for version 20090521:
1429 4301
1430 4302 1) ACPI CA Core Subsystem:
1431 4303
1432 -Disabled the preservation of the SCI enable bit in the PM1 control register.
1433 -The SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification to be
4304 +Disabled the preservation of the SCI enable bit in the PM1 control
4305 +register.
4306 +The SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification
4307 +to
4308 +be
1434 4309 a "preserved" bit - "OSPM always preserves this bit position", section
1435 4310 4.7.3.2.1. However, some machines fail if this bit is in fact preserved
1436 4311 because the bit needs to be explicitly set by the OS as a workaround. No
1437 4312 machines fail if the bit is not preserved. Therefore, ACPICA no longer
1438 4313 attempts to preserve this bit.
1439 4314
1440 4315 Fixed a problem in AcpiRsGetPciRoutingTableLength where an invalid or
1441 4316 incorrectly formed _PRT package could cause a fault. Added validation to
1442 4317 ensure that each package element is actually a sub-package.
1443 4318
1444 -Implemented a new interface to install or override a single control method,
1445 -AcpiInstallMethod. This interface is useful when debugging in order to repair
1446 -an existing method or to install a missing method without having to override
4319 +Implemented a new interface to install or override a single control
4320 +method,
4321 +AcpiInstallMethod. This interface is useful when debugging in order to
4322 +repair
4323 +an existing method or to install a missing method without having to
4324 +override
1447 4325 the entire ACPI table. See the ACPICA Programmer Reference for use and
1448 4326 examples. Lin Ming, Bob Moore.
1449 4327
1450 4328 Fixed several reference count issues with the DdbHandle object that is
1451 -created from a Load or LoadTable operator. Prevent premature deletion of the
1452 -object. Also, mark the object as invalid once the table has been unloaded.
1453 -This is needed because the handle itself may not be deleted after the table
4329 +created from a Load or LoadTable operator. Prevent premature deletion of
4330 +the
4331 +object. Also, mark the object as invalid once the table has been
4332 +unloaded.
4333 +This is needed because the handle itself may not be deleted after the
4334 +table
1454 4335 unload, depending on whether it has been stored in a named object by the
1455 4336 caller. Lin Ming.
1456 4337
1457 4338 Fixed a problem with Mutex Sync Levels. Fixed a problem where if multiple
1458 -mutexes of the same sync level are acquired but then not released in strict
1459 -opposite order, the internally maintained Current Sync Level becomes confused
4339 +mutexes of the same sync level are acquired but then not released in
4340 +strict
4341 +opposite order, the internally maintained Current Sync Level becomes
4342 +confused
1460 4343 and can cause subsequent execution errors. ACPICA BZ 471.
1461 4344
1462 4345 Changed the allowable release order for ASL mutex objects. The ACPI 4.0
1463 -specification has been changed to make the SyncLevel for mutex objects more
1464 -useful. When releasing a mutex, the SyncLevel of the mutex must now be the
1465 -same as the current sync level. This makes more sense than the previous rule
4346 +specification has been changed to make the SyncLevel for mutex objects
4347 +more
4348 +useful. When releasing a mutex, the SyncLevel of the mutex must now be
4349 +the
4350 +same as the current sync level. This makes more sense than the previous
4351 +rule
1466 4352 (SyncLevel less than or equal). This change updates the code to match the
1467 4353 specification.
1468 4354
1469 -Fixed a problem with the local version of the AcpiOsPurgeCache function. The
4355 +Fixed a problem with the local version of the AcpiOsPurgeCache function.
4356 +The
1470 4357 (local) cache must be locked during all cache object deletions. Andrew
1471 4358 Baumann.
1472 4359
1473 -Updated the Load operator to use operation region interfaces. This replaces
1474 -direct memory mapping with region access calls. Now, all region accesses go
4360 +Updated the Load operator to use operation region interfaces. This
4361 +replaces
4362 +direct memory mapping with region access calls. Now, all region accesses
4363 +go
1475 4364 through the installed region handler as they should.
1476 4365
1477 -Simplified and optimized the NsGetNextNode function. Reduced parameter count
4366 +Simplified and optimized the NsGetNextNode function. Reduced parameter
4367 +count
1478 4368 and reduced code for this frequently used function.
1479 4369
1480 4370 Example Code and Data Size: These are the sizes for the OS-independent
1481 4371 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1482 -debug version of the code includes the debug output trace mechanism and has a
4372 +debug version of the code includes the debug output trace mechanism and
4373 +has a
1483 4374 much larger code and data size.
1484 4375
1485 4376 Previous Release:
1486 4377 Non-Debug Version: 82.8K Code, 17.5K Data, 100.3K Total
1487 4378 Debug Version: 158.0K Code, 49.9K Data, 207.9K Total
1488 4379 Current Release:
1489 4380 Non-Debug Version: 83.4K Code, 17.5K Data, 100.9K Total
1490 4381 Debug Version: 158.9K Code, 50.0K Data, 208.9K Total
1491 4382
1492 4383 2) iASL Compiler/Disassembler and Tools:
1493 4384
1494 -Disassembler: Fixed some issues with DMAR, HEST, MADT tables. Some problems
1495 -with sub-table disassembly and handling invalid sub-tables. Attempt recovery
4385 +Disassembler: Fixed some issues with DMAR, HEST, MADT tables. Some
4386 +problems
4387 +with sub-table disassembly and handling invalid sub-tables. Attempt
4388 +recovery
1496 4389 after an invalid sub-table ID.
1497 4390
1498 4391 ----------------------------------------
1499 4392 22 April 2009. Summary of changes for version 20090422:
1500 4393
1501 4394 1) ACPI CA Core Subsystem:
1502 4395
1503 -Fixed a compatibility issue with the recently released I/O port protection
4396 +Fixed a compatibility issue with the recently released I/O port
4397 +protection
1504 4398 mechanism. For windows compatibility, 1) On a port protection violation,
1505 -simply ignore the request and do not return an exception (allow the control
4399 +simply ignore the request and do not return an exception (allow the
4400 +control
1506 4401 method to continue execution.) 2) If only part of the request overlaps a
1507 -protected port, read/write the individual ports that are not protected. Linux
4402 +protected port, read/write the individual ports that are not protected.
4403 +Linux
1508 4404 BZ 13036. Lin Ming
1509 4405
1510 -Enhanced the execution of the ASL/AML BreakPoint operator so that it actually
4406 +Enhanced the execution of the ASL/AML BreakPoint operator so that it
4407 +actually
1511 4408 breaks into the AML debugger if the debugger is present. This matches the
1512 4409 ACPI-defined behavior.
1513 4410
1514 4411 Fixed several possible warnings related to the use of the configurable
1515 4412 ACPI_THREAD_ID. This type can now be configured as either an integer or a
1516 4413 pointer with no warnings. Also fixes several warnings in printf-like
1517 4414 statements for the 64-bit build when the type is configured as a pointer.
1518 4415 ACPICA BZ 766, 767.
1519 4416
1520 -Fixed a number of possible warnings when compiling with gcc 4+ (depending on
1521 -warning options.) Examples include printf formats, aliasing, unused globals,
4417 +Fixed a number of possible warnings when compiling with gcc 4+ (depending
4418 +on
4419 +warning options.) Examples include printf formats, aliasing, unused
4420 +globals,
1522 4421 missing prototypes, missing switch default statements, use of non-ANSI
1523 -library functions, use of non-ANSI constructs. See generate/unix/Makefile for
4422 +library functions, use of non-ANSI constructs. See generate/unix/Makefile
4423 +for
1524 4424 a list of warning options used with gcc 3 and 4. ACPICA BZ 735.
1525 4425
1526 4426 Example Code and Data Size: These are the sizes for the OS-independent
1527 4427 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1528 -debug version of the code includes the debug output trace mechanism and has a
4428 +debug version of the code includes the debug output trace mechanism and
4429 +has a
1529 4430 much larger code and data size.
1530 4431
1531 4432 Previous Release:
1532 4433 Non-Debug Version: 82.6K Code, 17.6K Data, 100.2K Total
1533 4434 Debug Version: 157.7K Code, 49.9K Data, 207.6K Total
1534 4435 Current Release:
1535 4436 Non-Debug Version: 82.8K Code, 17.5K Data, 100.3K Total
1536 4437 Debug Version: 158.0K Code, 49.9K Data, 207.9K Total
1537 4438
1538 4439 2) iASL Compiler/Disassembler and Tools:
1539 4440
1540 -iASL: Fixed a generation warning from Bison 2.3 and fixed several warnings on
4441 +iASL: Fixed a generation warning from Bison 2.3 and fixed several
4442 +warnings
4443 +on
1541 4444 the 64-bit build.
1542 4445
1543 -iASL: Fixed a problem where the Unix/Linux versions of the compiler could not
4446 +iASL: Fixed a problem where the Unix/Linux versions of the compiler could
4447 +not
1544 4448 correctly digest Windows/DOS formatted files (with CR/LF).
1545 4449
1546 4450 iASL: Added a new option for "quiet mode" (-va) that produces only the
1547 4451 compilation summary, not individual errors and warnings. Useful for large
1548 4452 batch compilations.
1549 4453
1550 -AcpiExec: Implemented a new option (-z) to enable a forced semaphore/mutex
1551 -timeout that can be used to detect hang conditions during execution of AML
1552 -code (includes both internal semaphores and AML-defined mutexes and events.)
4454 +AcpiExec: Implemented a new option (-z) to enable a forced
4455 +semaphore/mutex
4456 +timeout that can be used to detect hang conditions during execution of
4457 +AML
4458 +code (includes both internal semaphores and AML-defined mutexes and
4459 +events.)
1553 4460
1554 4461 Added new makefiles for the generation of acpica in a generic unix-like
1555 -environment. These makefiles are intended to generate the acpica tools and
4462 +environment. These makefiles are intended to generate the acpica tools
4463 +and
1556 4464 utilities from the original acpica git source tree structure.
1557 4465
1558 4466 Test Suites: Updated and cleaned up the documentation files. Updated the
1559 -copyrights to 2009, affecting all source files. Use the new version of iASL
1560 -with quiet mode. Increased the number of available semaphores in the Windows
1561 -OSL, allowing the aslts to execute fully on Windows. For the Unix OSL, added
4467 +copyrights to 2009, affecting all source files. Use the new version of
4468 +iASL
4469 +with quiet mode. Increased the number of available semaphores in the
4470 +Windows
4471 +OSL, allowing the aslts to execute fully on Windows. For the Unix OSL,
4472 +added
1562 4473 an alternate implementation of the semaphore timeout to allow aslts to
1563 4474 execute fully on Cygwin.
1564 4475
1565 4476 ----------------------------------------
1566 4477 20 March 2009. Summary of changes for version 20090320:
1567 4478
1568 4479 1) ACPI CA Core Subsystem:
1569 4480
1570 -Fixed a possible race condition between AcpiWalkNamespace and dynamic table
1571 -unloads. Added a reader/writer locking mechanism to allow multiple concurrent
1572 -namespace walks (readers), but block a dynamic table unload until it can gain
1573 -exclusive write access to the namespace. This fixes a problem where a table
1574 -unload could (possibly catastrophically) delete the portion of the namespace
1575 -that is currently being examined by a walk. Adds a new file, utlock.c, that
4481 +Fixed a possible race condition between AcpiWalkNamespace and dynamic
4482 +table
4483 +unloads. Added a reader/writer locking mechanism to allow multiple
4484 +concurrent
4485 +namespace walks (readers), but block a dynamic table unload until it can
4486 +gain
4487 +exclusive write access to the namespace. This fixes a problem where a
4488 +table
4489 +unload could (possibly catastrophically) delete the portion of the
4490 +namespace
4491 +that is currently being examined by a walk. Adds a new file, utlock.c,
4492 +that
1576 4493 implements the reader/writer lock mechanism. ACPICA BZ 749.
1577 4494
1578 -Fixed a regression introduced in version 20090220 where a change to the FADT
1579 -handling could cause the ACPICA subsystem to access non-existent I/O ports.
4495 +Fixed a regression introduced in version 20090220 where a change to the
4496 +FADT
4497 +handling could cause the ACPICA subsystem to access non-existent I/O
4498 +ports.
1580 4499
1581 -Modified the handling of FADT register and table (FACS/DSDT) addresses. The
4500 +Modified the handling of FADT register and table (FACS/DSDT) addresses.
4501 +The
1582 4502 FADT can contain both 32-bit and 64-bit versions of these addresses.
1583 -Previously, the 64-bit versions were favored, meaning that if both 32 and 64
4503 +Previously, the 64-bit versions were favored, meaning that if both 32 and
4504 +64
1584 4505 versions were valid, but not equal, the 64-bit version was used. This was
1585 -found to cause some machines to fail. Now, in this case, the 32-bit version
4506 +found to cause some machines to fail. Now, in this case, the 32-bit
4507 +version
1586 4508 is used instead. This now matches the Windows behavior.
1587 4509
1588 -Implemented a new mechanism to protect certain I/O ports. Provides Microsoft
4510 +Implemented a new mechanism to protect certain I/O ports. Provides
4511 +Microsoft
1589 4512 compatibility and protects the standard PC I/O ports from access via AML
1590 4513 code. Adds a new file, hwvalid.c
1591 4514
1592 4515 Fixed a possible extraneous warning message from the FADT support. The
1593 4516 message warns of a 32/64 length mismatch between the legacy and GAS
1594 4517 definitions for a register.
1595 4518
1596 -Removed the obsolete AcpiOsValidateAddress OSL interface. This interface is
1597 -made obsolete by the port protection mechanism above. It was previously used
1598 -to validate the entire address range of an operation region, which could be
4519 +Removed the obsolete AcpiOsValidateAddress OSL interface. This interface
4520 +is
4521 +made obsolete by the port protection mechanism above. It was previously
4522 +used
4523 +to validate the entire address range of an operation region, which could
4524 +be
1599 4525 incorrect if the range included illegal ports, but fields within the
1600 4526 operation region did not actually access those ports. Validation is now
1601 4527 performed on a per-field basis instead of the entire region.
1602 4528
1603 4529 Modified the handling of the PM1 Status Register ignored bit (bit 11.)
1604 -Ignored bits must be "preserved" according to the ACPI spec. Usually, this
1605 -means a read/modify/write when writing to the register. However, for status
1606 -registers, writing a one means clear the event. Writing a zero means preserve
1607 -the event (do not clear.) This behavior is clarified in the ACPI 4.0 spec,
4530 +Ignored bits must be "preserved" according to the ACPI spec. Usually,
4531 +this
4532 +means a read/modify/write when writing to the register. However, for
4533 +status
4534 +registers, writing a one means clear the event. Writing a zero means
4535 +preserve
4536 +the event (do not clear.) This behavior is clarified in the ACPI 4.0
4537 +spec,
1608 4538 and the ACPICA code now simply always writes a zero to the ignored bit.
1609 4539
1610 -Modified the handling of ignored bits for the PM1 A/B Control Registers. As
4540 +Modified the handling of ignored bits for the PM1 A/B Control Registers.
4541 +As
1611 4542 per the ACPI specification, for the control registers, preserve
1612 -(read/modify/write) all bits that are defined as either reserved or ignored.
4543 +(read/modify/write) all bits that are defined as either reserved or
4544 +ignored.
1613 4545
1614 4546 Updated the handling of write-only bits in the PM1 A/B Control Registers.
1615 4547 When reading the register, zero the write-only bits as per the ACPI spec.
1616 4548 ACPICA BZ 443. Lin Ming.
1617 4549
1618 4550 Removed "Linux" from the list of supported _OSI strings. Linux no longer
1619 -wants to reply true to this request. The Windows strings are the only paths
4551 +wants to reply true to this request. The Windows strings are the only
4552 +paths
1620 4553 through the AML that are tested and known to work properly.
1621 4554
1622 4555 Previous Release:
1623 4556 Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total
1624 4557 Debug Version: 156.9K Code, 49.8K Data, 206.7K Total
1625 4558 Current Release:
1626 4559 Non-Debug Version: 82.6K Code, 17.6K Data, 100.2K Total
1627 4560 Debug Version: 157.7K Code, 49.9K Data, 207.6K Total
1628 4561
1629 4562 2) iASL Compiler/Disassembler and Tools:
1630 4563
1631 -Acpiexec: Split the large aeexec.c file into two new files, aehandlers.c and
4564 +Acpiexec: Split the large aeexec.c file into two new files, aehandlers.c
4565 +and
1632 4566 aetables.c
1633 4567
1634 4568 ----------------------------------------
1635 4569 20 February 2009. Summary of changes for version 20090220:
1636 4570
1637 4571 1) ACPI CA Core Subsystem:
1638 4572
1639 -Optimized the ACPI register locking. Removed locking for reads from the ACPI
1640 -bit registers in PM1 Status, Enable, Control, and PM2 Control. The lock is
4573 +Optimized the ACPI register locking. Removed locking for reads from the
4574 +ACPI
4575 +bit registers in PM1 Status, Enable, Control, and PM2 Control. The lock
4576 +is
1641 4577 not required when reading the single-bit registers. The
1642 -AcpiGetRegisterUnlocked function is no longer needed and has been removed.
1643 -This will improve performance for reads on these registers. ACPICA BZ 760.
4578 +AcpiGetRegisterUnlocked function is no longer needed and has been
4579 +removed.
4580 +This will improve performance for reads on these registers. ACPICA BZ
4581 +760.
1644 4582
1645 4583 Fixed the parameter validation for AcpiRead/Write. Now return
1646 -AE_BAD_PARAMETER if the input register pointer is null, and AE_BAD_ADDRESS if
1647 -the register has an address of zero. Previously, these cases simply returned
1648 -AE_OK. For optional registers such as PM1B status/enable/control, the caller
4584 +AE_BAD_PARAMETER if the input register pointer is null, and
4585 +AE_BAD_ADDRESS
4586 +if
4587 +the register has an address of zero. Previously, these cases simply
4588 +returned
4589 +AE_OK. For optional registers such as PM1B status/enable/control, the
4590 +caller
1649 4591 should check for a valid register address before calling. ACPICA BZ 748.
1650 4592
1651 4593 Renamed the external ACPI bit register access functions. Renamed
1652 4594 AcpiGetRegister and AcpiSetRegister to clarify the purpose of these
1653 -functions. The new names are AcpiReadBitRegister and AcpiWriteBitRegister.
1654 -Also, restructured the code for these functions by simplifying the code path
4595 +functions. The new names are AcpiReadBitRegister and
4596 +AcpiWriteBitRegister.
4597 +Also, restructured the code for these functions by simplifying the code
4598 +path
1655 4599 and condensing duplicate code to reduce code size.
1656 4600
1657 4601 Added new functions to transparently handle the possibly split PM1 A/B
1658 -registers. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two functions
1659 -now handle the split registers for PM1 Status, Enable, and Control. ACPICA BZ
4602 +registers. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two
4603 +functions
4604 +now handle the split registers for PM1 Status, Enable, and Control.
4605 +ACPICA
4606 +BZ
1660 4607 746.
1661 4608
1662 -Added a function to handle the PM1 control registers, AcpiHwWritePm1Control.
1663 -This function writes both of the PM1 control registers (A/B). These registers
1664 -are different than the PM1 A/B status and enable registers in that different
1665 -values can be written to the A/B registers. Most notably, the SLP_TYP bits
1666 -can be different, as per the values returned from the _Sx predefined methods.
4609 +Added a function to handle the PM1 control registers,
4610 +AcpiHwWritePm1Control.
4611 +This function writes both of the PM1 control registers (A/B). These
4612 +registers
4613 +are different than the PM1 A/B status and enable registers in that
4614 +different
4615 +values can be written to the A/B registers. Most notably, the SLP_TYP
4616 +bits
4617 +can be different, as per the values returned from the _Sx predefined
4618 +methods.
1667 4619
1668 -Removed an extra register write within AcpiHwClearAcpiStatus. This function
1669 -was writing an optional PM1B status register twice. The existing call to the
1670 -low-level AcpiHwRegisterWrite automatically handles a possibly split PM1 A/B
4620 +Removed an extra register write within AcpiHwClearAcpiStatus. This
4621 +function
4622 +was writing an optional PM1B status register twice. The existing call to
4623 +the
4624 +low-level AcpiHwRegisterWrite automatically handles a possibly split PM1
4625 +A/B
1671 4626 register. ACPICA BZ 751.
1672 4627
1673 -Split out the PM1 Status registers from the FADT. Added new globals for these
4628 +Split out the PM1 Status registers from the FADT. Added new globals for
4629 +these
1674 4630 registers (A/B), similar to the way the PM1 Enable registers are handled.
1675 -Instead of overloading the FADT Event Register blocks. This makes the code
4631 +Instead of overloading the FADT Event Register blocks. This makes the
4632 +code
1676 4633 clearer and less prone to error.
1677 4634
1678 -Fixed the warning message for when the platform contains too many ACPI tables
1679 -for the default size of the global root table data structure. The calculation
4635 +Fixed the warning message for when the platform contains too many ACPI
4636 +tables
4637 +for the default size of the global root table data structure. The
4638 +calculation
1680 4639 for the truncation value was incorrect.
1681 4640
1682 4641 Removed the ACPI_GET_OBJECT_TYPE macro. Removed all instances of this
1683 -obsolete macro, since it is now a simple reference to ->common.type. There
4642 +obsolete macro, since it is now a simple reference to ->common.type.
4643 +There
1684 4644 were about 150 invocations of the macro across 41 files. ACPICA BZ 755.
1685 4645
1686 4646 Removed the redundant ACPI_BITREG_SLEEP_TYPE_B. This type is the same as
1687 4647 TYPE_A. Removed this and all related instances. Renamed SLEEP_TYPE_A to
1688 4648 simply SLEEP_TYPE. ACPICA BZ 754.
1689 4649
1690 4650 Conditionally compile the AcpiSetFirmwareWakingVector64 function. This
1691 4651 function is only needed on 64-bit host operating systems and is thus not
1692 4652 included for 32-bit hosts.
1693 4653
1694 -Debug output: print the input and result for invocations of the _OSI reserved
1695 -control method via the ACPI_LV_INFO debug level. Also, reduced some of the
4654 +Debug output: print the input and result for invocations of the _OSI
4655 +reserved
4656 +control method via the ACPI_LV_INFO debug level. Also, reduced some of
4657 +the
1696 4658 verbosity of this debug level. Len Brown.
1697 4659
1698 4660 Example Code and Data Size: These are the sizes for the OS-independent
1699 4661 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1700 -debug version of the code includes the debug output trace mechanism and has a
4662 +debug version of the code includes the debug output trace mechanism and
4663 +has a
1701 4664 much larger code and data size.
1702 4665
1703 4666 Previous Release:
1704 4667 Non-Debug Version: 82.3K Code, 17.5K Data, 99.8K Total
1705 4668 Debug Version: 157.3K Code, 49.8K Data, 207.1K Total
1706 4669 Current Release:
1707 4670 Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total
1708 4671 Debug Version: 156.9K Code, 49.8K Data, 206.7K Total
1709 4672
1710 4673 2) iASL Compiler/Disassembler and Tools:
1711 4674
1712 4675 Disassembler: Decode the FADT PM_Profile field. Emit ascii names for the
1713 4676 various legal performance profiles.
↓ open down ↓ |
3 lines elided |
↑ open up ↑ |
1714 4677
1715 4678 ----------------------------------------
1716 4679 23 January 2009. Summary of changes for version 20090123:
1717 4680
1718 4681 1) ACPI CA Core Subsystem:
1719 4682
1720 4683 Added the 2009 copyright to all module headers and signons. This affects
1721 4684 virtually every file in the ACPICA core subsystem, the iASL compiler, and
1722 4685 the tools/utilities.
1723 4686
1724 -Implemented a change to allow the host to override any ACPI table, including
1725 -dynamically loaded tables. Previously, only the DSDT could be replaced by the
1726 -host. With this change, the AcpiOsTableOverride interface is called for each
1727 -table found in the RSDT/XSDT during ACPICA initialization, and also whenever
4687 +Implemented a change to allow the host to override any ACPI table,
4688 +including
4689 +dynamically loaded tables. Previously, only the DSDT could be replaced by
4690 +the
4691 +host. With this change, the AcpiOsTableOverride interface is called for
4692 +each
4693 +table found in the RSDT/XSDT during ACPICA initialization, and also
4694 +whenever
1728 4695 a table is dynamically loaded via the AML Load operator.
1729 4696
1730 4697 Updated FADT flag definitions, especially the Boot Architecture flags.
1731 4698
1732 -Debugger: For the Find command, automatically pad the input ACPI name with
1733 -underscores if the name is shorter than 4 characters. This enables a match
4699 +Debugger: For the Find command, automatically pad the input ACPI name
4700 +with
4701 +underscores if the name is shorter than 4 characters. This enables a
4702 +match
1734 4703 with the actual namespace entry which is itself padded with underscores.
1735 4704
1736 4705 Example Code and Data Size: These are the sizes for the OS-independent
1737 4706 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1738 -debug version of the code includes the debug output trace mechanism and has a
4707 +debug version of the code includes the debug output trace mechanism and
4708 +has a
1739 4709 much larger code and data size.
1740 4710
1741 4711 Previous Release:
1742 4712 Non-Debug Version: 82.3K Code, 17.4K Data, 99.7K Total
1743 4713 Debug Version: 157.1K Code, 49.7K Data, 206.8K Total
1744 4714 Current Release:
1745 4715 Non-Debug Version: 82.3K Code, 17.5K Data, 99.8K Total
1746 4716 Debug Version: 157.3K Code, 49.8K Data, 207.1K Total
1747 4717
1748 4718 2) iASL Compiler/Disassembler and Tools:
1749 4719
1750 4720 Fix build error under Bison-2.4.
1751 4721
1752 -Dissasembler: Enhanced FADT support. Added decoding of the Boot Architecture
4722 +Dissasembler: Enhanced FADT support. Added decoding of the Boot
4723 +Architecture
1753 4724 flags. Now decode all flags, regardless of the FADT version. Flag output
1754 4725 includes the FADT version which first defined each flag.
1755 4726
1756 -The iASL -g option now dumps the RSDT to a file (in addition to the FADT and
4727 +The iASL -g option now dumps the RSDT to a file (in addition to the FADT
4728 +and
1757 4729 DSDT). Windows only.
1758 4730
1759 4731 ----------------------------------------
1760 4732 04 December 2008. Summary of changes for version 20081204:
1761 4733
1762 4734 1) ACPI CA Core Subsystem:
1763 4735
1764 -The ACPICA Programmer Reference has been completely updated and revamped for
4736 +The ACPICA Programmer Reference has been completely updated and revamped
4737 +for
1765 4738 this release. This includes updates to the external interfaces, OSL
1766 4739 interfaces, the overview sections, and the debugger reference.
1767 4740
1768 4741 Several new ACPICA interfaces have been implemented and documented in the
1769 4742 programmer reference:
1770 4743 AcpiReset - Writes the reset value to the FADT-defined reset register.
1771 4744 AcpiDisableAllGpes - Disable all available GPEs.
1772 4745 AcpiEnableAllRuntimeGpes - Enable all available runtime GPEs.
1773 4746 AcpiGetGpeDevice - Get the GPE block device associated with a GPE.
1774 4747 AcpiGbl_CurrentGpeCount - Tracks the current number of available GPEs.
1775 4748 AcpiRead - Low-level read ACPI register (was HwLowLevelRead.)
1776 4749 AcpiWrite - Low-level write ACPI register (was HwLowLevelWrite.)
1777 4750
1778 -Most of the public ACPI hardware-related interfaces have been moved to a new
4751 +Most of the public ACPI hardware-related interfaces have been moved to a
4752 +new
1779 4753 file, components/hardware/hwxface.c
1780 4754
1781 4755 Enhanced the FADT parsing and low-level ACPI register access: The ACPI
1782 4756 register lengths within the FADT are now used, and the low level ACPI
1783 4757 register access no longer hardcodes the ACPI register lengths. Given that
1784 -there may be some risk in actually trusting the FADT register lengths, a run-
1785 -time option was added to fall back to the default hardcoded lengths if the
4758 +there may be some risk in actually trusting the FADT register lengths, a
4759 +run-
4760 +time option was added to fall back to the default hardcoded lengths if
4761 +the
1786 4762 FADT proves to contain incorrect values - UseDefaultRegisterWidths. This
1787 -option is set to true for now, and a warning is issued if a suspicious FADT
4763 +option is set to true for now, and a warning is issued if a suspicious
4764 +FADT
1788 4765 register length is overridden with the default value.
1789 4766
1790 -Fixed a reference count issue in NsRepairObject. This problem was introduced
4767 +Fixed a reference count issue in NsRepairObject. This problem was
4768 +introduced
1791 4769 in version 20081031 as part of a fix to repair Buffer objects within
1792 4770 Packages. Lin Ming.
1793 4771
1794 4772 Added semaphore support to the Linux/Unix application OS-services layer
1795 4773 (OSL). ACPICA BZ 448. Lin Ming.
1796 4774
1797 -Added the ACPI_MUTEX_TYPE configuration option to select whether mutexes will
4775 +Added the ACPI_MUTEX_TYPE configuration option to select whether mutexes
4776 +will
1798 4777 be implemented in the OSL, or will binary semaphores be used instead.
1799 4778
1800 4779 Example Code and Data Size: These are the sizes for the OS-independent
1801 4780 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1802 -debug version of the code includes the debug output trace mechanism and has a
4781 +debug version of the code includes the debug output trace mechanism and
4782 +has a
1803 4783 much larger code and data size.
1804 4784
1805 4785 Previous Release:
1806 4786 Non-Debug Version: 81.7K Code, 17.3K Data, 99.0K Total
1807 4787 Debug Version: 156.4K Code, 49.4K Data, 205.8K Total
1808 4788 Current Release:
1809 4789 Non-Debug Version: 82.3K Code, 17.4K Data, 99.7K Total
1810 4790 Debug Version: 157.1K Code, 49.7K Data, 206.8K Total
1811 4791
1812 4792 2) iASL Compiler/Disassembler and Tools:
1813 4793
1814 -iASL: Completed the '-e' option to include additional ACPI tables in order to
1815 -aid with disassembly and External statement generation. ACPICA BZ 742. Lin
4794 +iASL: Completed the '-e' option to include additional ACPI tables in
4795 +order
4796 +to
4797 +aid with disassembly and External statement generation. ACPICA BZ 742.
4798 +Lin
1816 4799 Ming.
1817 4800
1818 4801 iASL: Removed the "named object in while loop" error. The compiler cannot
1819 4802 determine how many times a loop will execute. ACPICA BZ 730.
1820 4803
1821 -Disassembler: Implemented support for FADT revision 2 (MS extension). ACPICA
4804 +Disassembler: Implemented support for FADT revision 2 (MS extension).
4805 +ACPICA
1822 4806 BZ 743.
1823 4807
1824 -Disassembler: Updates for several ACPI data tables (HEST, EINJ, and MCFG).
4808 +Disassembler: Updates for several ACPI data tables (HEST, EINJ, and
4809 +MCFG).
1825 4810
1826 4811 ----------------------------------------
1827 4812 31 October 2008. Summary of changes for version 20081031:
1828 4813
1829 4814 1) ACPI CA Core Subsystem:
1830 4815
1831 -Restructured the ACPICA header files into public/private. acpi.h now includes
1832 -only the "public" acpica headers. All other acpica headers are "private" and
1833 -should not be included by acpica users. One new file, accommon.h is used to
1834 -include the commonly used private headers for acpica code generation. Future
4816 +Restructured the ACPICA header files into public/private. acpi.h now
4817 +includes
4818 +only the "public" acpica headers. All other acpica headers are "private"
4819 +and
4820 +should not be included by acpica users. One new file, accommon.h is used
4821 +to
4822 +include the commonly used private headers for acpica code generation.
4823 +Future
1835 4824 plans include moving all private headers to a new subdirectory.
1836 4825
1837 4826 Implemented an automatic Buffer->String return value conversion for
1838 -predefined ACPI methods. For these methods (such as _BIF), added automatic
1839 -conversion for return objects that are required to be a String, but a Buffer
1840 -was found instead. This can happen when reading string battery data from an
1841 -operation region, because it used to be difficult to convert the data from
1842 -buffer to string from within the ASL. Ensures that the host OS is provided
4827 +predefined ACPI methods. For these methods (such as _BIF), added
4828 +automatic
4829 +conversion for return objects that are required to be a String, but a
4830 +Buffer
4831 +was found instead. This can happen when reading string battery data from
4832 +an
4833 +operation region, because it used to be difficult to convert the data
4834 +from
4835 +buffer to string from within the ASL. Ensures that the host OS is
4836 +provided
1843 4837 with a valid null-terminated string. Linux BZ 11822.
1844 4838
1845 -Updated the FACS waking vector interfaces. Split AcpiSetFirmwareWakingVector
1846 -into two: one for the 32-bit vector, another for the 64-bit vector. This is
1847 -required because the host OS must setup the wake much differently for each
1848 -vector (real vs. protected mode, etc.) and the interface itself should not be
1849 -deciding which vector to use. Also, eliminated the GetFirmwareWakingVector
1850 -interface, as it served no purpose (only the firmware reads the vector, OS
4839 +Updated the FACS waking vector interfaces. Split
4840 +AcpiSetFirmwareWakingVector
4841 +into two: one for the 32-bit vector, another for the 64-bit vector. This
4842 +is
4843 +required because the host OS must setup the wake much differently for
4844 +each
4845 +vector (real vs. protected mode, etc.) and the interface itself should
4846 +not
4847 +be
4848 +deciding which vector to use. Also, eliminated the
4849 +GetFirmwareWakingVector
4850 +interface, as it served no purpose (only the firmware reads the vector,
4851 +OS
1851 4852 only writes the vector.) ACPICA BZ 731.
1852 4853
1853 -Implemented a mechanism to escape infinite AML While() loops. Added a loop
1854 -counter to force exit from AML While loops if the count becomes too large.
4854 +Implemented a mechanism to escape infinite AML While() loops. Added a
4855 +loop
4856 +counter to force exit from AML While loops if the count becomes too
4857 +large.
1855 4858 This can occur in poorly written AML when the hardware does not respond
1856 -within a while loop and the loop does not implement a timeout. The maximum
1857 -loop count is configurable. A new exception code is returned when a loop is
4859 +within a while loop and the loop does not implement a timeout. The
4860 +maximum
4861 +loop count is configurable. A new exception code is returned when a loop
4862 +is
1858 4863 broken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore.
1859 4864
1860 4865 Optimized the execution of AML While loops. Previously, a control state
1861 4866 object was allocated and freed for each execution of the loop. The
1862 -optimization is to simply reuse the control state for each iteration. This
4867 +optimization is to simply reuse the control state for each iteration.
4868 +This
1863 4869 speeds up the raw loop execution time by about 5%.
1864 4870
1865 -Enhanced the implicit return mechanism. For Windows compatibility, return an
1866 -implicit integer of value zero for methods that contain no executable code.
4871 +Enhanced the implicit return mechanism. For Windows compatibility, return
4872 +an
4873 +implicit integer of value zero for methods that contain no executable
4874 +code.
1867 4875 Such methods are seen in the field as stubs (presumably), and can cause
1868 4876 drivers to fail if they expect a return value. Lin Ming.
1869 4877
1870 4878 Allow multiple backslashes as root prefixes in namepaths. In a fully
1871 -qualified namepath, allow multiple backslash prefixes. This can happen (and
4879 +qualified namepath, allow multiple backslash prefixes. This can happen
4880 +(and
1872 4881 is seen in the field) because of the use of a double-backslash in strings
1873 -(since backslash is the escape character) causing confusion. ACPICA BZ 739
4882 +(since backslash is the escape character) causing confusion. ACPICA BZ
4883 +739
1874 4884 Lin Ming.
1875 4885
1876 4886 Emit a warning if two different FACS or DSDT tables are discovered in the
1877 -FADT. Checks if there are two valid but different addresses for the FACS and
4887 +FADT. Checks if there are two valid but different addresses for the FACS
4888 +and
1878 4889 DSDT within the FADT (mismatch between the 32-bit and 64-bit fields.)
1879 4890
1880 -Consolidated the method argument count validation code. Merged the code that
4891 +Consolidated the method argument count validation code. Merged the code
4892 +that
1881 4893 validates control method argument counts into the predefined validation
1882 -module. Eliminates possible multiple warnings for incorrect argument counts.
4894 +module. Eliminates possible multiple warnings for incorrect argument
4895 +counts.
1883 4896
1884 4897 Implemented ACPICA example code. Includes code for ACPICA initialization,
1885 4898 handler installation, and calling a control method. Available at
1886 4899 source/tools/examples.
1887 4900
1888 -Added a global pointer for FACS table to simplify internal FACS access. Use
1889 -the global pointer instead of using AcpiGetTableByIndex for each FACS access.
4901 +Added a global pointer for FACS table to simplify internal FACS access.
4902 +Use
4903 +the global pointer instead of using AcpiGetTableByIndex for each FACS
4904 +access.
1890 4905 This simplifies the code for the Global Lock and the Firmware Waking
1891 4906 Vector(s).
1892 4907
1893 4908 Example Code and Data Size: These are the sizes for the OS-independent
1894 4909 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1895 -debug version of the code includes the debug output trace mechanism and has a
4910 +debug version of the code includes the debug output trace mechanism and
4911 +has a
1896 4912 much larger code and data size.
1897 4913
1898 4914 Previous Release:
1899 4915 Non-Debug Version: 81.2K Code, 17.0K Data, 98.2K Total
1900 4916 Debug Version: 155.8K Code, 49.1K Data, 204.9K Total
1901 4917 Current Release:
1902 4918 Non-Debug Version: 81.7K Code, 17.3K Data, 99.0K Total
1903 4919 Debug Version: 156.4K Code, 49.4K Data, 205.8K Total
1904 4920
1905 4921 2) iASL Compiler/Disassembler and Tools:
1906 4922
1907 -iASL: Improved disassembly of external method calls. Added the -e option to
1908 -allow the inclusion of additional ACPI tables to help with the disassembly of
4923 +iASL: Improved disassembly of external method calls. Added the -e option
4924 +to
4925 +allow the inclusion of additional ACPI tables to help with the
4926 +disassembly
4927 +of
1909 4928 method invocations and the generation of external declarations during the
1910 4929 disassembly. Certain external method invocations cannot be disassembled
1911 -properly without the actual declaration of the method. Use the -e option to
1912 -include the table where the external method(s) are actually declared. Most
4930 +properly without the actual declaration of the method. Use the -e option
4931 +to
4932 +include the table where the external method(s) are actually declared.
4933 +Most
1913 4934 useful for disassembling SSDTs that make method calls back to the master
1914 -DSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT: iasl -d
4935 +DSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT: iasl
4936 +-d
1915 4937 -e dsdt.aml ssdt1.aml
1916 4938
1917 4939 iASL: Fix to allow references to aliases within ASL namepaths. Fixes a
1918 4940 problem where the use of an alias within a namepath would result in a not
1919 4941 found error or cause the compiler to fault. Also now allows forward
1920 4942 references from the Alias operator itself. ACPICA BZ 738.
1921 4943
1922 4944 ----------------------------------------
1923 4945 26 September 2008. Summary of changes for version 20080926:
1924 4946
1925 4947 1) ACPI CA Core Subsystem:
1926 4948
1927 -Designed and implemented a mechanism to validate predefined ACPI methods and
1928 -objects. This code validates the predefined ACPI objects (objects whose names
4949 +Designed and implemented a mechanism to validate predefined ACPI methods
4950 +and
4951 +objects. This code validates the predefined ACPI objects (objects whose
4952 +names
1929 4953 start with underscore) that appear in the namespace, at the time they are
1930 4954 evaluated. The argument count and the type of the returned object are
1931 -validated against the ACPI specification. The purpose of this validation is
1932 -to detect problems with the BIOS-implemented predefined ACPI objects before
1933 -the results are returned to the ACPI-related drivers. Future enhancements may
4955 +validated against the ACPI specification. The purpose of this validation
4956 +is
4957 +to detect problems with the BIOS-implemented predefined ACPI objects
4958 +before
4959 +the results are returned to the ACPI-related drivers. Future enhancements
4960 +may
1934 4961 include actual repair of incorrect return objects where possible. Two new
1935 4962 files are nspredef.c and acpredef.h.
1936 4963
1937 -Fixed a fault in the AML parser if a memory allocation fails during the Op
4964 +Fixed a fault in the AML parser if a memory allocation fails during the
4965 +Op
1938 4966 completion routine AcpiPsCompleteThisOp. Lin Ming. ACPICA BZ 492.
1939 4967
1940 -Fixed an issue with implicit return compatibility. This change improves the
1941 -implicit return mechanism to be more compatible with the MS interpreter. Lin
4968 +Fixed an issue with implicit return compatibility. This change improves
4969 +the
4970 +implicit return mechanism to be more compatible with the MS interpreter.
4971 +Lin
1942 4972 Ming, ACPICA BZ 349.
1943 4973
1944 -Implemented support for zero-length buffer-to-string conversions. Allow zero
1945 -length strings during interpreter buffer-to-string conversions. For example,
4974 +Implemented support for zero-length buffer-to-string conversions. Allow
4975 +zero
4976 +length strings during interpreter buffer-to-string conversions. For
4977 +example,
1946 4978 during the ToDecimalString and ToHexString operators, as well as implicit
1947 4979 conversions. Fiodor Suietov, ACPICA BZ 585.
1948 4980
1949 4981 Fixed two possible memory leaks in the error exit paths of
1950 -AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions are
4982 +AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions
4983 +are
1951 4984 similar in that they use a stack of state objects in order to eliminate
1952 4985 recursion. The stack must be fully unwound and deallocated if an error
1953 4986 occurs. Lin Ming. ACPICA BZ 383.
1954 4987
1955 -Removed the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the global
4988 +Removed the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the
4989 +global
1956 4990 ACPI register table. This bit does not exist and is unused. Lin Ming, Bob
1957 4991 Moore ACPICA BZ 442.
1958 4992
1959 4993 Removed the obsolete version number in module headers. Removed the
1960 -"$Revision" number that appeared in each module header. This version number
1961 -was useful under SourceSafe and CVS, but has no meaning under git. It is not
4994 +"$Revision" number that appeared in each module header. This version
4995 +number
4996 +was useful under SourceSafe and CVS, but has no meaning under git. It is
4997 +not
1962 4998 only incorrect, it could also be misleading.
1963 4999
1964 5000 Example Code and Data Size: These are the sizes for the OS-independent
1965 5001 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
1966 -debug version of the code includes the debug output trace mechanism and has a
5002 +debug version of the code includes the debug output trace mechanism and
5003 +has a
1967 5004 much larger code and data size.
1968 5005
1969 5006 Previous Release:
1970 5007 Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total
1971 5008 Debug Version: 153.7K Code, 48.2K Data, 201.9K Total
1972 5009 Current Release:
1973 5010 Non-Debug Version: 81.2K Code, 17.0K Data, 98.2K Total
1974 5011 Debug Version: 155.8K Code, 49.1K Data, 204.9K Total
1975 5012
1976 5013 ----------------------------------------
1977 5014 29 August 2008. Summary of changes for version 20080829:
1978 5015
1979 5016 1) ACPI CA Core Subsystem:
1980 5017
1981 5018 Completed a major cleanup of the internal ACPI_OPERAND_OBJECT of type
1982 -Reference. Changes include the elimination of cheating on the Object field
5019 +Reference. Changes include the elimination of cheating on the Object
5020 +field
1983 5021 for the DdbHandle subtype, addition of a reference class field to
1984 -differentiate the various reference types (instead of an AML opcode), and the
5022 +differentiate the various reference types (instead of an AML opcode), and
5023 +the
1985 5024 cleanup of debug output for this object. Lin Ming, Bob Moore. BZ 723
1986 5025
1987 5026 Reduce an error to a warning for an incorrect method argument count.
1988 5027 Previously aborted with an error if too few arguments were passed to a
1989 -control method via the external ACPICA interface. Now issue a warning instead
1990 -and continue. Handles the case where the method inadvertently declares too
1991 -many arguments, but does not actually use the extra ones. Applies mainly to
5028 +control method via the external ACPICA interface. Now issue a warning
5029 +instead
5030 +and continue. Handles the case where the method inadvertently declares
5031 +too
5032 +many arguments, but does not actually use the extra ones. Applies mainly
5033 +to
1992 5034 the predefined methods. Lin Ming. Linux BZ 11032.
1993 5035
1994 -Disallow the evaluation of named object types with no intrinsic value. Return
1995 -AE_TYPE for objects that have no value and therefore evaluation is undefined:
1996 -Device, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation of
1997 -these types were allowed, but an exception would be generated at some point
5036 +Disallow the evaluation of named object types with no intrinsic value.
5037 +Return
5038 +AE_TYPE for objects that have no value and therefore evaluation is
5039 +undefined:
5040 +Device, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation
5041 +of
5042 +these types were allowed, but an exception would be generated at some
5043 +point
1998 5044 during the evaluation. Now, the error is generated up front.
1999 5045
2000 5046 Fixed a possible memory leak in the AcpiNsGetExternalPathname function
2001 5047 (nsnames.c). Fixes a leak in the error exit path.
2002 5048
2003 -Removed the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These debug
2004 -levels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and ACPI_EXCEPTION
5049 +Removed the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These
5050 +debug
5051 +levels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and
5052 +ACPI_EXCEPTION
2005 5053 interfaces. Also added ACPI_DB_EVENTS to correspond with the existing
2006 5054 ACPI_LV_EVENTS.
2007 5055
2008 5056 Removed obsolete and/or unused exception codes from the acexcep.h header.
2009 -There is the possibility that certain device drivers may be affected if they
5057 +There is the possibility that certain device drivers may be affected if
5058 +they
2010 5059 use any of these exceptions.
2011 5060
2012 -The ACPICA documentation has been added to the public git source tree, under
5061 +The ACPICA documentation has been added to the public git source tree,
5062 +under
2013 5063 acpica/documents. Included are the ACPICA programmer reference, the iASL
2014 5064 compiler reference, and the changes.txt release logfile.
2015 5065
2016 5066 Example Code and Data Size: These are the sizes for the OS-independent
2017 5067 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2018 -debug version of the code includes the debug output trace mechanism and has a
5068 +debug version of the code includes the debug output trace mechanism and
5069 +has a
2019 5070 much larger code and data size.
2020 5071
2021 5072 Previous Release:
2022 5073 Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total
2023 5074 Debug Version: 153.9K Code, 48.4K Data, 202.3K Total
2024 5075 Current Release:
2025 5076 Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total
2026 5077 Debug Version: 153.7K Code, 48.2K Data, 201.9K Total
2027 5078
2028 5079 2) iASL Compiler/Disassembler and Tools:
2029 5080
2030 5081 Allow multiple argument counts for the predefined _SCP method. ACPI 3.0
2031 5082 defines _SCP with 3 arguments. Previous versions defined it with only 1
2032 5083 argument. iASL now allows both definitions.
2033 5084
2034 -iASL/disassembler: avoid infinite loop on bad ACPI tables. Check for zero-
5085 +iASL/disassembler: avoid infinite loop on bad ACPI tables. Check for
5086 +zero-
2035 5087 length subtables when disassembling ACPI tables. Also fixed a couple of
2036 -errors where a full 16-bit table type field was not extracted from the input
5088 +errors where a full 16-bit table type field was not extracted from the
5089 +input
2037 5090 properly.
2038 5091
2039 5092 acpisrc: Improve comment counting mechanism for generating source code
2040 -statistics. Count first and last lines of multi-line comments as whitespace,
2041 -not comment lines. Handle Linux legal header in addition to standard acpica
5093 +statistics. Count first and last lines of multi-line comments as
5094 +whitespace,
5095 +not comment lines. Handle Linux legal header in addition to standard
5096 +acpica
2042 5097 header.
2043 5098
2044 5099 ----------------------------------------
2045 5100
2046 5101 29 July 2008. Summary of changes for version 20080729:
2047 5102
2048 5103 1) ACPI CA Core Subsystem:
2049 5104
2050 5105 Fix a possible deadlock in the GPE dispatch. Remove call to
2051 -AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will attempt
2052 -to acquire the GPE lock but can deadlock since the GPE lock is already held
2053 -at dispatch time. This code was introduced in version 20060831 as a response
5106 +AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will
5107 +attempt
5108 +to acquire the GPE lock but can deadlock since the GPE lock is already
5109 +held
5110 +at dispatch time. This code was introduced in version 20060831 as a
5111 +response
2054 5112 to Linux BZ 6881 and has since been removed from Linux.
2055 5113
2056 -Add a function to dereference returned reference objects. Examines the return
2057 -object from a call to AcpiEvaluateObject. Any Index or RefOf references are
2058 -automatically dereferenced in an attempt to return something useful (these
2059 -reference types cannot be converted into an external ACPI_OBJECT.) Provides
5114 +Add a function to dereference returned reference objects. Examines the
5115 +return
5116 +object from a call to AcpiEvaluateObject. Any Index or RefOf references
5117 +are
5118 +automatically dereferenced in an attempt to return something useful
5119 +(these
5120 +reference types cannot be converted into an external ACPI_OBJECT.)
5121 +Provides
2060 5122 MS compatibility. Lin Ming, Bob Moore. Linux BZ 11105
2061 5123
2062 5124 x2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new
2063 5125 subtables for the MADT and one new subtable for the SRAT. Includes
2064 -disassembler and AcpiSrc support. Data from the Intel 64 Architecture x2APIC
5126 +disassembler and AcpiSrc support. Data from the Intel 64 Architecture
5127 +x2APIC
2065 5128 Specification, June 2008.
2066 5129
2067 -Additional error checking for pathname utilities. Add error check after all
5130 +Additional error checking for pathname utilities. Add error check after
5131 +all
2068 5132 calls to AcpiNsGetPathnameLength. Add status return from
2069 -AcpiNsBuildExternalPath and check after all calls. Add parameter validation
5133 +AcpiNsBuildExternalPath and check after all calls. Add parameter
5134 +validation
2070 5135 to AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar.
2071 5136
2072 -Return status from the global init function AcpiUtGlobalInitialize. This is
2073 -used by both the kernel subsystem and the utilities such as iASL compiler.
2074 -The function could possibly fail when the caches are initialized. Yang Yi.
5137 +Return status from the global init function AcpiUtGlobalInitialize. This
5138 +is
5139 +used by both the kernel subsystem and the utilities such as iASL
5140 +compiler.
5141 +The function could possibly fail when the caches are initialized. Yang
5142 +Yi.
2075 5143
2076 5144 Add a function to decode reference object types to strings. Created for
2077 5145 improved error messages.
2078 5146
2079 -Improve object conversion error messages. Better error messages during object
2080 -conversion from internal to the external ACPI_OBJECT. Used for external calls
5147 +Improve object conversion error messages. Better error messages during
5148 +object
5149 +conversion from internal to the external ACPI_OBJECT. Used for external
5150 +calls
2081 5151 to AcpiEvaluateObject.
2082 5152
2083 5153 Example Code and Data Size: These are the sizes for the OS-independent
2084 5154 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2085 -debug version of the code includes the debug output trace mechanism and has a
5155 +debug version of the code includes the debug output trace mechanism and
5156 +has a
2086 5157 much larger code and data size.
2087 5158
2088 5159 Previous Release:
2089 5160 Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total
2090 5161 Debug Version: 153.5K Code, 48.2K Data, 201.7K Total
2091 5162 Current Release:
2092 5163 Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total
2093 5164 Debug Version: 153.9K Code, 48.4K Data, 202.3K Total
2094 5165
2095 5166 2) iASL Compiler/Disassembler and Tools:
2096 5167
2097 -Debugger: fix a possible hang when evaluating non-methods. Fixes a problem
2098 -introduced in version 20080701. If the object being evaluated (via execute
2099 -command) is not a method, the debugger can hang while trying to obtain non-
5168 +Debugger: fix a possible hang when evaluating non-methods. Fixes a
5169 +problem
5170 +introduced in version 20080701. If the object being evaluated (via
5171 +execute
5172 +command) is not a method, the debugger can hang while trying to obtain
5173 +non-
2100 5174 existent parameters.
2101 5175
2102 5176 iASL: relax error for using reserved "_T_x" identifiers. These names can
2103 5177 appear in a disassembled ASL file if they were emitted by the original
2104 5178 compiler. Instead of issuing an error or warning and forcing the user to
2105 5179 manually change these names, issue a remark instead.
2106 5180
2107 -iASL: error if named object created in while loop. Emit an error if any named
2108 -object is created within a While loop. If allowed, this code will generate a
2109 -run-time error on the second iteration of the loop when an attempt is made to
5181 +iASL: error if named object created in while loop. Emit an error if any
5182 +named
5183 +object is created within a While loop. If allowed, this code will
5184 +generate
5185 +a
5186 +run-time error on the second iteration of the loop when an attempt is
5187 +made
5188 +to
2110 5189 create the same named object twice. ACPICA bugzilla 730.
2111 5190
2112 -iASL: Support absolute pathnames for include files. Add support for absolute
2113 -pathnames within the Include operator. previously, only relative pathnames
5191 +iASL: Support absolute pathnames for include files. Add support for
5192 +absolute
5193 +pathnames within the Include operator. previously, only relative
5194 +pathnames
2114 5195 were supported.
2115 5196
2116 -iASL: Enforce minimum 1 interrupt in interrupt macro and Resource Descriptor.
5197 +iASL: Enforce minimum 1 interrupt in interrupt macro and Resource
5198 +Descriptor.
2117 5199 The ACPI spec requires one interrupt minimum. BZ 423
2118 5200
2119 5201 iASL: Handle a missing ResourceSource arg, with a present SourceIndex.
2120 5202 Handles the case for the Interrupt Resource Descriptor where
2121 5203 the ResourceSource argument is omitted but ResourceSourceIndex
2122 5204 is present. Now leave room for the Index. BZ 426
2123 5205
2124 -iASL: Prevent error message if CondRefOf target does not exist. Fixes cases
5206 +iASL: Prevent error message if CondRefOf target does not exist. Fixes
5207 +cases
2125 5208 where an error message is emitted if the target does not exist. BZ 516
2126 5209
2127 5210 iASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option
2128 -(get ACPI tables on Windows). This was apparently broken in version 20070919.
5211 +(get ACPI tables on Windows). This was apparently broken in version
5212 +20070919.
2129 5213
2130 -AcpiXtract: Handle EOF while extracting data. Correctly handle the case where
5214 +AcpiXtract: Handle EOF while extracting data. Correctly handle the case
5215 +where
2131 5216 the EOF happens immediately after the last table in the input file. Print
2132 5217 completion message. Previously, no message was displayed in this case.
2133 5218
2134 5219 ----------------------------------------
2135 5220 01 July 2008. Summary of changes for version 20080701:
2136 5221
2137 5222 0) Git source tree / acpica.org
2138 5223
2139 5224 Fixed a problem where a git-clone from http would not transfer the entire
2140 5225 source tree.
2141 5226
2142 5227 1) ACPI CA Core Subsystem:
2143 5228
2144 5229 Implemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one
2145 -enable bit. Now performs a read-change-write of the enable register instead
2146 -of simply writing out the cached enable mask. This will prevent inadvertent
2147 -enabling of GPEs if a rogue GPE is received during initialization (before GPE
5230 +enable bit. Now performs a read-change-write of the enable register
5231 +instead
5232 +of simply writing out the cached enable mask. This will prevent
5233 +inadvertent
5234 +enabling of GPEs if a rogue GPE is received during initialization (before
5235 +GPE
2148 5236 handlers are installed.)
2149 5237
2150 5238 Implemented a copy for dynamically loaded tables. Previously, dynamically
2151 5239 loaded tables were simply mapped - but on some machines this memory is
2152 5240 corrupted after suspend. Now copy the table to a local buffer. For the
2153 5241 OpRegion case, added checksum verify. Use the table length from the table
2154 5242 header, not the region length. For the Buffer case, use the table length
2155 5243 also. Dennis Noordsij, Bob Moore. BZ 10734
2156 5244
2157 -Fixed a problem where the same ACPI table could not be dynamically loaded and
2158 -unloaded more than once. Without this change, a table cannot be loaded again
5245 +Fixed a problem where the same ACPI table could not be dynamically loaded
5246 +and
5247 +unloaded more than once. Without this change, a table cannot be loaded
5248 +again
2159 5249 once it has been loaded/unloaded one time. The current mechanism does not
2160 -unregister a table upon an unload. During a load, if the same table is found,
5250 +unregister a table upon an unload. During a load, if the same table is
5251 +found,
2161 5252 this no longer returns an exception. BZ 722
2162 5253
2163 5254 Fixed a problem where the wrong descriptor length was calculated for the
2164 -EndTag descriptor in 64-bit mode. The "minimal" descriptors such as EndTag
5255 +EndTag descriptor in 64-bit mode. The "minimal" descriptors such as
5256 +EndTag
2165 5257 are calculated as 12 bytes long, but the actual length in the internal
2166 -descriptor is 16 because of the round-up to 8 on the 64-bit build. Reported
5258 +descriptor is 16 because of the round-up to 8 on the 64-bit build.
5259 +Reported
2167 5260 by Linn Crosetto. BZ 728
2168 5261
2169 -Fixed a possible memory leak in the Unload operator. The DdbHandle returned
2170 -by Load() did not have its reference count decremented during unload, leading
5262 +Fixed a possible memory leak in the Unload operator. The DdbHandle
5263 +returned
5264 +by Load() did not have its reference count decremented during unload,
5265 +leading
2171 5266 to a memory leak. Lin Ming. BZ 727
2172 5267
2173 5268 Fixed a possible memory leak when deleting thermal/processor objects. Any
2174 5269 associated notify handlers (and objects) were not being deleted. Fiodor
2175 5270 Suietov. BZ 506
2176 5271
2177 -Fixed the ordering of the ASCII names in the global mutex table to match the
2178 -actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only.
5272 +Fixed the ordering of the ASCII names in the global mutex table to match
5273 +the
5274 +actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug
5275 +only.
2179 5276 Vegard Nossum. BZ 726
2180 5277
2181 5278 Enhanced the AcpiGetObjectInfo interface to return the number of required
2182 -arguments if the object is a control method. Added this call to the debugger
5279 +arguments if the object is a control method. Added this call to the
5280 +debugger
2183 5281 so the proper number of default arguments are passed to a method. This
2184 5282 prevents a warning when executing methods from AcpiExec.
2185 5283
2186 5284 Added a check for an invalid handle in AcpiGetObjectInfo. Return
2187 5285 AE_BAD_PARAMETER if input handle is invalid. BZ 474
2188 5286
2189 5287 Fixed an extraneous warning from exconfig.c on the 64-bit build.
2190 5288
2191 5289 Example Code and Data Size: These are the sizes for the OS-independent
2192 5290 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2193 -debug version of the code includes the debug output trace mechanism and has a
5291 +debug version of the code includes the debug output trace mechanism and
5292 +has a
2194 5293 much larger code and data size.
2195 5294
2196 5295 Previous Release:
2197 5296 Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total
2198 5297 Debug Version: 153.0K Code, 48.2K Data, 201.2K Total
2199 5298 Current Release:
2200 5299 Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total
2201 5300 Debug Version: 153.5K Code, 48.2K Data, 201.7K Total
2202 5301
2203 5302 2) iASL Compiler/Disassembler and Tools:
2204 5303
2205 5304 iASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both
2206 5305 resource descriptor names.
2207 5306
2208 -iASL: Detect invalid ASCII characters in input (windows version). Removed the
5307 +iASL: Detect invalid ASCII characters in input (windows version). Removed
5308 +the
2209 5309 "-CF" flag from the flex compile, enables correct detection of non-ASCII
2210 5310 characters in the input. BZ 441
2211 5311
2212 -iASL: Eliminate warning when result of LoadTable is not used. Eliminate the
5312 +iASL: Eliminate warning when result of LoadTable is not used. Eliminate
5313 +the
2213 5314 "result of operation not used" warning when the DDB handle returned from
2214 5315 LoadTable is not used. The warning is not needed. BZ 590
2215 5316
2216 -AcpiExec: Add support for dynamic table load/unload. Now calls _CFG method to
2217 -pass address of table to the AML. Added option to disable OpRegion simulation
2218 -to allow creation of an OpRegion with a real address that was passed to _CFG.
2219 -All of this allows testing of the Load and Unload operators from AcpiExec.
5317 +AcpiExec: Add support for dynamic table load/unload. Now calls _CFG
5318 +method
5319 +to
5320 +pass address of table to the AML. Added option to disable OpRegion
5321 +simulation
5322 +to allow creation of an OpRegion with a real address that was passed to
5323 +_CFG.
5324 +All of this allows testing of the Load and Unload operators from
5325 +AcpiExec.
2220 5326
2221 -Debugger: update tables command for unloaded tables. Handle unloaded tables
5327 +Debugger: update tables command for unloaded tables. Handle unloaded
5328 +tables
2222 5329 and use the standard table header output routine.
2223 5330
2224 5331 ----------------------------------------
2225 5332 09 June 2008. Summary of changes for version 20080609:
2226 5333
2227 5334 1) ACPI CA Core Subsystem:
2228 5335
2229 -Implemented a workaround for reversed _PRT entries. A significant number of
5336 +Implemented a workaround for reversed _PRT entries. A significant number
5337 +of
2230 5338 BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This
2231 -change dynamically detects and repairs this problem. Provides compatibility
5339 +change dynamically detects and repairs this problem. Provides
5340 +compatibility
2232 5341 with MS ACPI. BZ 6859
2233 5342
2234 5343 Simplified the internal ACPI hardware interfaces to eliminate the locking
2235 5344 flag parameter from Register Read/Write. Added a new external interface,
2236 5345 AcpiGetRegisterUnlocked.
2237 5346
2238 -Fixed a problem where the invocation of a GPE control method could hang. This
5347 +Fixed a problem where the invocation of a GPE control method could hang.
5348 +This
2239 5349 was a regression introduced in 20080514. The new method argument count
2240 5350 validation mechanism can enter an infinite loop when a GPE method is
2241 -dispatched. Problem fixed by removing the obsolete code that passed GPE block
2242 -information to the notify handler via the control method parameter pointer.
5351 +dispatched. Problem fixed by removing the obsolete code that passed GPE
5352 +block
5353 +information to the notify handler via the control method parameter
5354 +pointer.
2243 5355
2244 -Fixed a problem where the _SST execution status was incorrectly returned to
2245 -the caller of AcpiEnterSleepStatePrep. This was a regression introduced in
5356 +Fixed a problem where the _SST execution status was incorrectly returned
5357 +to
5358 +the caller of AcpiEnterSleepStatePrep. This was a regression introduced
5359 +in
2246 5360 20080514. _SST is optional and a NOT_FOUND exception should never be
2247 5361 returned. BZ 716
2248 5362
2249 -Fixed a problem where a deleted object could be accessed from within the AML
2250 -parser. This was a regression introduced in version 20080123 as a fix for the
5363 +Fixed a problem where a deleted object could be accessed from within the
5364 +AML
5365 +parser. This was a regression introduced in version 20080123 as a fix for
5366 +the
2251 5367 Unload operator. Lin Ming. BZ 10669
2252 5368
2253 -Cleaned up the debug operand dump mechanism. Eliminated unnecessary operands
5369 +Cleaned up the debug operand dump mechanism. Eliminated unnecessary
5370 +operands
2254 5371 and eliminated the use of a negative index in a loop. Operands are now
2255 -displayed in the correct order, not backwards. This also fixes a regression
5372 +displayed in the correct order, not backwards. This also fixes a
5373 +regression
2256 5374 introduced in 20080514 on 64-bit systems where the elimination of
2257 -ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 715
5375 +ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ
5376 +715
2258 5377
2259 -Fixed a possible memory leak in EvPciConfigRegionSetup where the error exit
5378 +Fixed a possible memory leak in EvPciConfigRegionSetup where the error
5379 +exit
2260 5380 path did not delete a locally allocated structure.
2261 5381
2262 5382 Updated definitions for the DMAR and SRAT tables to synchronize with the
2263 5383 current specifications. Includes disassembler support.
2264 5384
2265 5385 Fixed a problem in the mutex debug code (in utmutex.c) where an incorrect
2266 -loop termination value was used. Loop terminated on iteration early, missing
5386 +loop termination value was used. Loop terminated on iteration early,
5387 +missing
2267 5388 one mutex. Linn Crosetto
2268 5389
2269 5390 Example Code and Data Size: These are the sizes for the OS-independent
2270 5391 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2271 -debug version of the code includes the debug output trace mechanism and has a
5392 +debug version of the code includes the debug output trace mechanism and
5393 +has a
2272 5394 much larger code and data size.
2273 5395
2274 5396 Previous Release:
2275 5397 Non-Debug Version: 79.5K Code, 16.2K Data, 95.7K Total
2276 5398 Debug Version: 153.3K Code, 48.3K Data, 201.6K Total
2277 5399 Current Release:
2278 5400 Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total
2279 5401 Debug Version: 153.0K Code, 48.2K Data, 201.2K Total
2280 5402
2281 5403 2) iASL Compiler/Disassembler and Tools:
2282 5404
2283 5405 Disassembler: Implemented support for EisaId() within _CID objects. Now
2284 5406 disassemble integer _CID objects back to EisaId invocations, including
2285 5407 multiple integers within _CID packages. Includes single-step support for
2286 5408 debugger also.
↓ open down ↓ |
5 lines elided |
↑ open up ↑ |
2287 5409
2288 5410 Disassembler: Added support for DMAR and SRAT table definition changes.
2289 5411
2290 5412 ----------------------------------------
2291 5413 14 May 2008. Summary of changes for version 20080514:
2292 5414
2293 5415 1) ACPI CA Core Subsystem:
2294 5416
2295 5417 Fixed a problem where GPEs were enabled too early during the ACPICA
2296 5418 initialization. This could lead to "handler not installed" errors on some
2297 -machines. Moved GPE enable until after _REG/_STA/_INI methods are run. This
2298 -ensures that all operation regions and devices throughout the namespace have
5419 +machines. Moved GPE enable until after _REG/_STA/_INI methods are run.
5420 +This
5421 +ensures that all operation regions and devices throughout the namespace
5422 +have
2299 5423 been initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916.
2300 5424
2301 5425 Implemented a change to the enter sleep code. Moved execution of the _GTS
2302 -method to just before setting sleep enable bit. The execution was moved from
5426 +method to just before setting sleep enable bit. The execution was moved
5427 +from
2303 5428 AcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed
2304 5429 immediately before the SLP_EN bit is set, as per the ACPI specification.
2305 5430 Luming Yu, BZ 1653.
2306 5431
2307 -Implemented a fix to disable unknown GPEs (2nd version). Now always disable
5432 +Implemented a fix to disable unknown GPEs (2nd version). Now always
5433 +disable
2308 5434 the GPE, even if ACPICA thinks that that it is already disabled. It is
2309 -possible that the AML or some other code has enabled the GPE unbeknownst to
5435 +possible that the AML or some other code has enabled the GPE unbeknownst
5436 +to
2310 5437 the ACPICA code.
2311 5438
2312 -Fixed a problem with the Field operator where zero-length fields would return
2313 -an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length ASL
5439 +Fixed a problem with the Field operator where zero-length fields would
5440 +return
5441 +an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length
5442 +ASL
2314 5443 field declarations in Field(), BankField(), and IndexField(). BZ 10606.
2315 5444
2316 -Implemented a fix for the Load operator, now load the table at the namespace
2317 -root. This reverts a change introduced in version 20071019. The table is now
5445 +Implemented a fix for the Load operator, now load the table at the
5446 +namespace
5447 +root. This reverts a change introduced in version 20071019. The table is
5448 +now
2318 5449 loaded at the namespace root even though this goes against the ACPI
2319 -specification. This provides compatibility with other ACPI implementations.
2320 -The ACPI specification will be updated to reflect this in ACPI 4.0. Lin Ming.
5450 +specification. This provides compatibility with other ACPI
5451 +implementations.
5452 +The ACPI specification will be updated to reflect this in ACPI 4.0. Lin
5453 +Ming.
2321 5454
2322 -Fixed a problem where ACPICA would not Load() tables with unusual signatures.
5455 +Fixed a problem where ACPICA would not Load() tables with unusual
5456 +signatures.
2323 5457 Now ignore ACPI table signature for Load() operator. Only "SSDT" is
2324 5458 acceptable to the ACPI spec, but tables are seen with OEMx and null sigs.
2325 -Therefore, signature validation is worthless. Apparently MS ACPI accepts such
5459 +Therefore, signature validation is worthless. Apparently MS ACPI accepts
5460 +such
2326 5461 signatures, ACPICA must be compatible. BZ 10454.
2327 5462
2328 -Fixed a possible negative array index in AcpiUtValidateException. Added NULL
2329 -fields to the exception string arrays to eliminate a -1 subtraction on the
5463 +Fixed a possible negative array index in AcpiUtValidateException. Added
5464 +NULL
5465 +fields to the exception string arrays to eliminate a -1 subtraction on
5466 +the
2330 5467 SubStatus field.
2331 5468
2332 5469 Updated the debug tracking macros to reduce overall code and data size.
2333 5470 Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings
2334 5471 instead of pointers to static strings. Jan Beulich and Bob Moore.
2335 5472
2336 5473 Implemented argument count checking in control method invocation via
2337 -AcpiEvaluateObject. Now emit an error if too few arguments, warning if too
2338 -many. This applies only to extern programmatic control method execution, not
5474 +AcpiEvaluateObject. Now emit an error if too few arguments, warning if
5475 +too
5476 +many. This applies only to extern programmatic control method execution,
5477 +not
2339 5478 method-to-method calls within the AML. Lin Ming.
2340 5479
2341 -Eliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is no
2342 -longer needed, especially with the removal of 16-bit support. It was replaced
2343 -mostly with UINT32, but also ACPI_SIZE where a type that changes 32/64 bit on
5480 +Eliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is
5481 +no
5482 +longer needed, especially with the removal of 16-bit support. It was
5483 +replaced
5484 +mostly with UINT32, but also ACPI_SIZE where a type that changes 32/64
5485 +bit
5486 +on
2344 5487 32/64-bit platforms is required.
2345 5488
2346 5489 Added the C const qualifier for appropriate string constants -- mostly
2347 5490 MODULE_NAME and printf format strings. Jan Beulich.
2348 5491
2349 5492 Example Code and Data Size: These are the sizes for the OS-independent
2350 5493 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2351 -debug version of the code includes the debug output trace mechanism and has a
5494 +debug version of the code includes the debug output trace mechanism and
5495 +has a
2352 5496 much larger code and data size.
2353 5497
2354 5498 Previous Release:
2355 5499 Non-Debug Version: 80.0K Code, 17.4K Data, 97.4K Total
2356 5500 Debug Version: 159.4K Code, 64.4K Data, 223.8K Total
2357 5501 Current Release:
2358 5502 Non-Debug Version: 79.5K Code, 16.2K Data, 95.7K Total
2359 5503 Debug Version: 153.3K Code, 48.3K Data, 201.6K Total
2360 5504
2361 5505 2) iASL Compiler/Disassembler and Tools:
2362 5506
2363 -Implemented ACPI table revision ID validation in the disassembler. Zero is
2364 -always invalid. For DSDTs, the ID controls the interpreter integer width. 1
5507 +Implemented ACPI table revision ID validation in the disassembler. Zero
5508 +is
5509 +always invalid. For DSDTs, the ID controls the interpreter integer width.
5510 +1
2365 5511 means 32-bit and this is unusual. 2 or greater is 64-bit.
2366 5512
2367 5513 ----------------------------------------
2368 5514 21 March 2008. Summary of changes for version 20080321:
2369 5515
2370 5516 1) ACPI CA Core Subsystem:
2371 5517
2372 5518 Implemented an additional change to the GPE support in order to suppress
2373 -spurious or stray GPEs. The AcpiEvDisableGpe function will now permanently
2374 -disable incoming GPEs that are neither enabled nor disabled -- meaning that
2375 -the GPE is unknown to the system. This should prevent future interrupt floods
5519 +spurious or stray GPEs. The AcpiEvDisableGpe function will now
5520 +permanently
5521 +disable incoming GPEs that are neither enabled nor disabled -- meaning
5522 +that
5523 +the GPE is unknown to the system. This should prevent future interrupt
5524 +floods
2376 5525 from that GPE. BZ 6217 (Zhang Rui)
2377 5526
2378 5527 Fixed a problem where NULL package elements were not returned to the
2379 5528 AcpiEvaluateObject interface correctly. The element was simply ignored
2380 -instead of returning a NULL ACPI_OBJECT package element, potentially causing
2381 -a buffer overflow and/or confusing the caller who expected a fixed number of
5529 +instead of returning a NULL ACPI_OBJECT package element, potentially
5530 +causing
5531 +a buffer overflow and/or confusing the caller who expected a fixed number
5532 +of
2382 5533 elements. BZ 10132 (Lin Ming, Bob Moore)
2383 5534
2384 -Fixed a problem with the CreateField, CreateXXXField (Bit, Byte, Word, Dword,
2385 -Qword), Field, BankField, and IndexField operators when invoked from inside
2386 -an executing control method. In this case, these operators created namespace
5535 +Fixed a problem with the CreateField, CreateXXXField (Bit, Byte, Word,
5536 +Dword,
5537 +Qword), Field, BankField, and IndexField operators when invoked from
5538 +inside
5539 +an executing control method. In this case, these operators created
5540 +namespace
2387 5541 nodes that were incorrectly left marked as permanent nodes instead of
2388 5542 temporary nodes. This could cause a problem if there is race condition
2389 -between an exiting control method and a running namespace walk. (Reported by
5543 +between an exiting control method and a running namespace walk. (Reported
5544 +by
2390 5545 Linn Crosetto)
2391 5546
2392 5547 Fixed a problem where the CreateField and CreateXXXField operators would
2393 -incorrectly allow duplicate names (the name of the field) with no exception
5548 +incorrectly allow duplicate names (the name of the field) with no
5549 +exception
2394 5550 generated.
2395 5551
2396 -Implemented several changes for Notify handling. Added support for new Notify
5552 +Implemented several changes for Notify handling. Added support for new
5553 +Notify
2397 5554 values (ACPI 2.0+) and improved the Notify debug output. Notify on
2398 -PowerResource objects is no longer allowed, as per the ACPI specification.
5555 +PowerResource objects is no longer allowed, as per the ACPI
5556 +specification.
2399 5557 (Bob Moore, Zhang Rui)
2400 5558
2401 -All Reference Objects returned via the AcpiEvaluateObject interface are now
2402 -marked as type "REFERENCE" instead of "ANY". The type ANY is now reserved for
2403 -NULL objects - either NULL package elements or unresolved named references.
5559 +All Reference Objects returned via the AcpiEvaluateObject interface are
5560 +now
5561 +marked as type "REFERENCE" instead of "ANY". The type ANY is now reserved
5562 +for
5563 +NULL objects - either NULL package elements or unresolved named
5564 +references.
2404 5565
2405 -Fixed a problem where an extraneous debug message was produced for package
5566 +Fixed a problem where an extraneous debug message was produced for
5567 +package
2406 5568 objects (when debugging enabled). The message "Package List length larger
2407 -than NumElements count" is now produced in the correct case, and is now an
5569 +than NumElements count" is now produced in the correct case, and is now
5570 +an
2408 5571 error message rather than a debug message. Added a debug message for the
2409 -opposite case, where NumElements is larger than the Package List (the package
5572 +opposite case, where NumElements is larger than the Package List (the
5573 +package
2410 5574 will be padded out with NULL elements as per the ACPI spec.)
2411 5575
2412 -Implemented several improvements for the output of the ASL "Debug" object to
5576 +Implemented several improvements for the output of the ASL "Debug" object
5577 +to
2413 5578 clarify and keep all data for a given object on one output line.
2414 5579
2415 -Fixed two size calculation issues with the variable-length Start Dependent
5580 +Fixed two size calculation issues with the variable-length Start
5581 +Dependent
2416 5582 resource descriptor.
2417 5583
2418 5584 Example Code and Data Size: These are the sizes for the OS-independent
2419 5585 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2420 -debug version of the code includes the debug output trace mechanism and has
5586 +debug version of the code includes the debug output trace mechanism and
5587 +has
2421 5588 a much larger code and data size.
2422 5589
2423 5590 Previous Release:
2424 5591 Non-Debug Version: 79.7K Code, 17.3K Data, 97.0K Total
2425 5592 Debug Version: 158.9K Code, 64.0K Data, 222.9K Total
2426 5593 Current Release:
2427 5594 Non-Debug Version: 80.0K Code, 17.4K Data, 97.4K Total
2428 5595 Debug Version: 159.4K Code, 64.4K Data, 223.8K Total
2429 5596
2430 5597 2) iASL Compiler/Disassembler and Tools:
2431 5598
2432 -Fixed a problem with the use of the Switch operator where execution of the
5599 +Fixed a problem with the use of the Switch operator where execution of
5600 +the
2433 5601 containing method by multiple concurrent threads could cause an
2434 5602 AE_ALREADY_EXISTS exception. This is caused by the fact that there is no
2435 5603 actual Switch opcode, it must be simulated with local named temporary
2436 -variables and if/else pairs. The solution chosen was to mark any method that
2437 -uses Switch as Serialized, thus preventing multiple thread entries. BZ 469.
5604 +variables and if/else pairs. The solution chosen was to mark any method
5605 +that
5606 +uses Switch as Serialized, thus preventing multiple thread entries. BZ
5607 +469.
2438 5608
2439 5609 ----------------------------------------
2440 5610 13 February 2008. Summary of changes for version 20080213:
2441 5611
2442 5612 1) ACPI CA Core Subsystem:
2443 5613
2444 -Implemented another MS compatibility design change for GPE/Notify handling.
2445 -GPEs are now cleared/enabled asynchronously to allow all pending notifies to
5614 +Implemented another MS compatibility design change for GPE/Notify
5615 +handling.
5616 +GPEs are now cleared/enabled asynchronously to allow all pending notifies
5617 +to
2446 5618 complete first. It is expected that the OSL will queue the enable request
2447 -behind all pending notify requests (may require changes to the local host OSL
5619 +behind all pending notify requests (may require changes to the local host
5620 +OSL
2448 5621 in AcpiOsExecute). Alexey Starikovskiy.
2449 5622
2450 5623 Fixed a problem where buffer and package objects passed as arguments to a
2451 -control method via the external AcpiEvaluateObject interface could cause an
5624 +control method via the external AcpiEvaluateObject interface could cause
5625 +an
2452 5626 AE_AML_INTERNAL exception depending on the order and type of operators
2453 5627 executed by the target control method.
2454 5628
2455 5629 Fixed a problem where resource descriptor size optimization could cause a
2456 -problem when a _CRS resource template is passed to a _SRS method. The _SRS
5630 +problem when a _CRS resource template is passed to a _SRS method. The
5631 +_SRS
2457 5632 resource template must use the same descriptors (with the same size) as
2458 -returned from _CRS. This change affects the following resource descriptors:
2459 -IRQ / IRQNoFlags and StartDependendentFn / StartDependentFnNoPri. (BZ 9487)
5633 +returned from _CRS. This change affects the following resource
5634 +descriptors:
5635 +IRQ / IRQNoFlags and StartDependendentFn / StartDependentFnNoPri. (BZ
5636 +9487)
2460 5637
2461 -Fixed a problem where a CopyObject to RegionField, BankField, and IndexField
2462 -objects did not perform an implicit conversion as it should. These types must
2463 -retain their initial type permanently as per the ACPI specification. However,
5638 +Fixed a problem where a CopyObject to RegionField, BankField, and
5639 +IndexField
5640 +objects did not perform an implicit conversion as it should. These types
5641 +must
5642 +retain their initial type permanently as per the ACPI specification.
5643 +However,
2464 5644 a CopyObject to all other object types should not perform an implicit
2465 5645 conversion, as per the ACPI specification. (Lin Ming, Bob Moore) BZ 388
2466 5646
2467 5647 Fixed a problem with the AcpiGetDevices interface where the mechanism to
2468 5648 match device CIDs did not examine the entire list of available CIDs, but
2469 5649 instead aborted on the first non-matching CID. Andrew Patterson.
2470 5650
2471 -Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was
5651 +Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro
5652 +was
2472 5653 inadvertently changed to return a 16-bit value instead of a 32-bit value,
2473 5654 truncating the upper dword of a 64-bit value. This macro is only used to
2474 5655 display debug output, so no incorrect calculations were made. Also,
2475 5656 reimplemented the macro so that a 64-bit shift is not performed by
2476 5657 inefficient compilers.
2477 5658
2478 5659 Added missing va_end statements that should correspond with each va_start
2479 5660 statement.
2480 5661
2481 5662 Example Code and Data Size: These are the sizes for the OS-independent
2482 5663 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2483 -debug version of the code includes the debug output trace mechanism and has
5664 +debug version of the code includes the debug output trace mechanism and
5665 +has
2484 5666 a much larger code and data size.
2485 5667
2486 5668 Previous Release:
2487 5669 Non-Debug Version: 79.5K Code, 17.2K Data, 96.7K Total
2488 5670 Debug Version: 159.0K Code, 63.8K Data, 222.8K Total
2489 5671 Current Release:
2490 5672 Non-Debug Version: 79.7K Code, 17.3K Data, 97.0K Total
2491 5673 Debug Version: 158.9K Code, 64.0K Data, 222.9K Total
2492 5674
2493 5675 2) iASL Compiler/Disassembler and Tools:
2494 5676
2495 5677 Implemented full disassembler support for the following new ACPI tables:
2496 5678 BERT, EINJ, and ERST. Implemented partial disassembler support for the
2497 5679 complicated HEST table. These tables support the Windows Hardware Error
2498 5680 Architecture (WHEA).
↓ open down ↓ |
5 lines elided |
↑ open up ↑ |
2499 5681
2500 5682 ----------------------------------------
2501 5683 23 January 2008. Summary of changes for version 20080123:
2502 5684
2503 5685 1) ACPI CA Core Subsystem:
2504 5686
2505 5687 Added the 2008 copyright to all module headers and signons. This affects
2506 5688 virtually every file in the ACPICA core subsystem, the iASL compiler, and
2507 5689 the tools/utilities.
2508 5690
2509 -Fixed a problem with the SizeOf operator when used with Package and Buffer
2510 -objects. These objects have deferred execution for some arguments, and the
2511 -execution is now completed before the SizeOf is executed. This problem caused
2512 -unexpected AE_PACKAGE_LIMIT errors on some systems (Lin Ming, Bob Moore) BZ
5691 +Fixed a problem with the SizeOf operator when used with Package and
5692 +Buffer
5693 +objects. These objects have deferred execution for some arguments, and
5694 +the
5695 +execution is now completed before the SizeOf is executed. This problem
5696 +caused
5697 +unexpected AE_PACKAGE_LIMIT errors on some systems (Lin Ming, Bob Moore)
5698 +BZ
2513 5699 9558
2514 5700
2515 -Implemented an enhancement to the interpreter "slack mode". In the absence of
2516 -an explicit return or an implicitly returned object from the last executed
2517 -opcode, a control method will now implicitly return an integer of value 0 for
5701 +Implemented an enhancement to the interpreter "slack mode". In the
5702 +absence
5703 +of
5704 +an explicit return or an implicitly returned object from the last
5705 +executed
5706 +opcode, a control method will now implicitly return an integer of value 0
5707 +for
2518 5708 Microsoft compatibility. (Lin Ming) BZ 392
2519 5709
2520 -Fixed a problem with the Load operator where an exception was not returned in
5710 +Fixed a problem with the Load operator where an exception was not
5711 +returned
5712 +in
2521 5713 the case where the table is already loaded. (Lin Ming) BZ 463
2522 5714
2523 -Implemented support for the use of DDBHandles as an Indexed Reference, as per
5715 +Implemented support for the use of DDBHandles as an Indexed Reference, as
5716 +per
2524 5717 the ACPI spec. (Lin Ming) BZ 486
2525 5718
2526 -Implemented support for UserTerm (Method invocation) for the Unload operator
5719 +Implemented support for UserTerm (Method invocation) for the Unload
5720 +operator
2527 5721 as per the ACPI spec. (Lin Ming) BZ 580
2528 5722
2529 -Fixed a problem with the LoadTable operator where the OemId and OemTableId
2530 -input strings could cause unexpected failures if they were shorter than the
5723 +Fixed a problem with the LoadTable operator where the OemId and
5724 +OemTableId
5725 +input strings could cause unexpected failures if they were shorter than
5726 +the
2531 5727 maximum lengths allowed. (Lin Ming, Bob Moore) BZ 576
2532 5728
2533 -Implemented support for UserTerm (Method invocation) for the Unload operator
5729 +Implemented support for UserTerm (Method invocation) for the Unload
5730 +operator
2534 5731 as per the ACPI spec. (Lin Ming) BZ 580
2535 5732
2536 -Implemented header file support for new ACPI tables - BERT, ERST, EINJ, HEST,
5733 +Implemented header file support for new ACPI tables - BERT, ERST, EINJ,
5734 +HEST,
2537 5735 IBFT, UEFI, WDAT. Disassembler support is forthcoming.
2538 5736
2539 5737 Example Code and Data Size: These are the sizes for the OS-independent
2540 5738 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2541 -debug version of the code includes the debug output trace mechanism and has
5739 +debug version of the code includes the debug output trace mechanism and
5740 +has
2542 5741 a much larger code and data size.
2543 5742
2544 5743 Previous Release:
2545 5744 Non-Debug Version: 79.3K Code, 17.2K Data, 96.5K Total
2546 5745 Debug Version: 158.6K Code, 63.8K Data, 222.4K Total
2547 5746 Current Release:
2548 5747 Non-Debug Version: 79.5K Code, 17.2K Data, 96.7K Total
2549 5748 Debug Version: 159.0K Code, 63.8K Data, 222.8K Total
2550 5749
2551 5750 2) iASL Compiler/Disassembler and Tools:
2552 5751
2553 -Implemented support in the disassembler for checksum validation on incoming
2554 -binary DSDTs and SSDTs. If incorrect, a message is displayed within the table
5752 +Implemented support in the disassembler for checksum validation on
5753 +incoming
5754 +binary DSDTs and SSDTs. If incorrect, a message is displayed within the
5755 +table
2555 5756 header dump at the start of the disassembly.
2556 5757
2557 -Implemented additional debugging information in the namespace listing file
2558 -created during compilation. In addition to the namespace hierarchy, the full
5758 +Implemented additional debugging information in the namespace listing
5759 +file
5760 +created during compilation. In addition to the namespace hierarchy, the
5761 +full
2559 5762 pathname to each namespace object is displayed.
2560 5763
2561 -Fixed a problem with the disassembler where invalid ACPI tables could cause
5764 +Fixed a problem with the disassembler where invalid ACPI tables could
5765 +cause
2562 5766 faults or infinite loops.
2563 5767
2564 5768 Fixed an unexpected parse error when using the optional "parameter types"
2565 5769 list in a control method declaration. (Lin Ming) BZ 397
2566 5770
2567 -Fixed a problem where two External declarations with the same name did not
5771 +Fixed a problem where two External declarations with the same name did
5772 +not
2568 5773 cause an error (Lin Ming) BZ 509
2569 5774
2570 5775 Implemented support for full TermArgs (adding Argx, Localx and method
2571 -invocation) for the ParameterData parameter to the LoadTable operator. (Lin
5776 +invocation) for the ParameterData parameter to the LoadTable operator.
5777 +(Lin
2572 5778 Ming) BZ 583,587
2573 5779
2574 5780 ----------------------------------------
2575 5781 19 December 2007. Summary of changes for version 20071219:
2576 5782
2577 5783 1) ACPI CA Core Subsystem:
2578 5784
2579 5785 Implemented full support for deferred execution for the TermArg string
2580 5786 arguments for DataTableRegion. This enables forward references and full
2581 -operand resolution for the three string arguments. Similar to OperationRegion
5787 +operand resolution for the three string arguments. Similar to
5788 +OperationRegion
2582 5789 deferred argument execution.) Lin Ming. BZ 430
2583 5790
2584 -Implemented full argument resolution support for the BankValue argument to
2585 -BankField. Previously, only constants were supported, now any TermArg may be
5791 +Implemented full argument resolution support for the BankValue argument
5792 +to
5793 +BankField. Previously, only constants were supported, now any TermArg may
5794 +be
2586 5795 used. Lin Ming BZ 387, 393
2587 5796
2588 5797 Fixed a problem with AcpiGetDevices where the search of a branch of the
2589 5798 device tree could be terminated prematurely. In accordance with the ACPI
2590 -specification, the search down the current branch is terminated if a device
2591 -is both not present and not functional (instead of just not present.) Yakui
5799 +specification, the search down the current branch is terminated if a
5800 +device
5801 +is both not present and not functional (instead of just not present.)
5802 +Yakui
2592 5803 Zhao.
2593 5804
2594 -Fixed a problem where "unknown" GPEs could be allowed to fire repeatedly if
2595 -the underlying AML code changed the GPE enable registers. Now, any unknown
2596 -incoming GPE (no _Lxx/_Exx method and not the EC GPE) is immediately disabled
5805 +Fixed a problem where "unknown" GPEs could be allowed to fire repeatedly
5806 +if
5807 +the underlying AML code changed the GPE enable registers. Now, any
5808 +unknown
5809 +incoming GPE (no _Lxx/_Exx method and not the EC GPE) is immediately
5810 +disabled
2597 5811 instead of simply ignored. Rui Zhang.
2598 5812
2599 -Fixed a problem with Index Fields where the Index register was incorrectly
5813 +Fixed a problem with Index Fields where the Index register was
5814 +incorrectly
2600 5815 limited to a maximum of 32 bits. Now any size may be used.
2601 5816
2602 -Fixed a couple memory leaks associated with "implicit return" objects when
5817 +Fixed a couple memory leaks associated with "implicit return" objects
5818 +when
2603 5819 the AML Interpreter slack mode is enabled. Lin Ming BZ 349
2604 5820
2605 5821 Example Code and Data Size: These are the sizes for the OS-independent
2606 5822 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2607 -debug version of the code includes the debug output trace mechanism and has
5823 +debug version of the code includes the debug output trace mechanism and
5824 +has
2608 5825 a much larger code and data size.
2609 5826
2610 5827 Previous Release:
2611 5828 Non-Debug Version: 79.0K Code, 17.2K Data, 96.2K Total
2612 5829 Debug Version: 157.9K Code, 63.6K Data, 221.5K Total
2613 5830 Current Release:
2614 5831 Non-Debug Version: 79.3K Code, 17.2K Data, 96.5K Total
2615 5832 Debug Version: 158.6K Code, 63.8K Data, 222.4K Total
2616 5833
2617 5834 ----------------------------------------
2618 5835 14 November 2007. Summary of changes for version 20071114:
2619 5836
2620 5837 1) ACPI CA Core Subsystem:
2621 5838
2622 5839 Implemented event counters for each of the Fixed Events, the ACPI SCI
2623 5840 (interrupt) itself, and control methods executed. Named
2624 -AcpiFixedEventCount[], AcpiSciCount, and AcpiMethodCount respectively. These
5841 +AcpiFixedEventCount[], AcpiSciCount, and AcpiMethodCount respectively.
5842 +These
2625 5843 should be useful for debugging and statistics.
2626 5844
2627 5845 Implemented a new external interface, AcpiGetStatistics, to retrieve the
2628 5846 contents of the various event counters. Returns the current values for
2629 5847 AcpiSciCount, AcpiGpeCount, the AcpiFixedEventCount array, and
2630 -AcpiMethodCount. The interface can be expanded in the future if new counters
2631 -are added. Device drivers should use this interface rather than access the
5848 +AcpiMethodCount. The interface can be expanded in the future if new
5849 +counters
5850 +are added. Device drivers should use this interface rather than access
5851 +the
2632 5852 counters directly.
2633 5853
2634 -Fixed a problem with the FromBCD and ToBCD operators. With some compilers,
2635 -the ShortDivide function worked incorrectly, causing problems with the BCD
5854 +Fixed a problem with the FromBCD and ToBCD operators. With some
5855 +compilers,
5856 +the ShortDivide function worked incorrectly, causing problems with the
5857 +BCD
2636 5858 functions with large input values. A truncation from 64-bit to 32-bit
2637 5859 inadvertently occurred. Internal BZ 435. Lin Ming
2638 5860
2639 -Fixed a problem with Index references passed as method arguments. References
2640 -passed as arguments to control methods were dereferenced immediately (before
2641 -control was passed to the called method). The references are now correctly
5861 +Fixed a problem with Index references passed as method arguments.
5862 +References
5863 +passed as arguments to control methods were dereferenced immediately
5864 +(before
5865 +control was passed to the called method). The references are now
5866 +correctly
2642 5867 passed directly to the called method. BZ 5389. Lin Ming
2643 5868
2644 -Fixed a problem with CopyObject used in conjunction with the Index operator.
2645 -The reference was incorrectly dereferenced before the copy. The reference is
5869 +Fixed a problem with CopyObject used in conjunction with the Index
5870 +operator.
5871 +The reference was incorrectly dereferenced before the copy. The reference
5872 +is
2646 5873 now correctly copied. BZ 5391. Lin Ming
2647 5874
2648 -Fixed a problem with Control Method references within Package objects. These
5875 +Fixed a problem with Control Method references within Package objects.
5876 +These
2649 5877 references are now correctly generated. This completes the package
2650 5878 construction overhaul that began in version 20071019.
2651 5879
2652 5880 Example Code and Data Size: These are the sizes for the OS-independent
2653 5881 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2654 -debug version of the code includes the debug output trace mechanism and has
5882 +debug version of the code includes the debug output trace mechanism and
5883 +has
2655 5884 a much larger code and data size.
2656 5885
2657 5886 Previous Release:
2658 5887 Non-Debug Version: 78.8K Code, 17.2K Data, 96.0K Total
2659 5888 Debug Version: 157.2K Code, 63.4K Data, 220.6K Total
2660 5889 Current Release:
2661 5890 Non-Debug Version: 79.0K Code, 17.2K Data, 96.2K Total
2662 5891 Debug Version: 157.9K Code, 63.6K Data, 221.5K Total
2663 5892
2664 5893
2665 5894 2) iASL Compiler/Disassembler and Tools:
2666 5895
2667 5896 The AcpiExec utility now installs handlers for all of the predefined
2668 5897 Operation Region types. New types supported are: PCI_Config, CMOS, and
2669 5898 PCIBARTarget.
2670 5899
2671 -Fixed a problem with the 64-bit version of AcpiExec where the extended (64-
5900 +Fixed a problem with the 64-bit version of AcpiExec where the extended
5901 +(64-
2672 5902 bit) address fields for the DSDT and FACS within the FADT were not being
2673 -used, causing truncation of the upper 32-bits of these addresses. Lin Ming
5903 +used, causing truncation of the upper 32-bits of these addresses. Lin
5904 +Ming
2674 5905 and Bob Moore
2675 5906
2676 5907 ----------------------------------------
2677 5908 19 October 2007. Summary of changes for version 20071019:
2678 5909
2679 5910 1) ACPI CA Core Subsystem:
2680 5911
2681 5912 Fixed a problem with the Alias operator when the target of the alias is a
2682 -named ASL operator that opens a new scope -- Scope, Device, PowerResource,
5913 +named ASL operator that opens a new scope -- Scope, Device,
5914 +PowerResource,
2683 5915 Processor, and ThermalZone. In these cases, any children of the original
2684 -operator could not be accessed via the alias, potentially causing unexpected
5916 +operator could not be accessed via the alias, potentially causing
5917 +unexpected
2685 5918 AE_NOT_FOUND exceptions. (BZ 9067)
2686 5919
2687 5920 Fixed a problem with the Package operator where all named references were
2688 -created as object references and left otherwise unresolved. According to the
2689 -ACPI specification, a Package can only contain Data Objects or references to
5921 +created as object references and left otherwise unresolved. According to
5922 +the
5923 +ACPI specification, a Package can only contain Data Objects or references
5924 +to
2690 5925 control methods. The implication is that named references to Data Objects
2691 5926 (Integer, Buffer, String, Package, BufferField, Field) should be resolved
2692 5927 immediately upon package creation. This is the approach taken with this
2693 5928 change. References to all other named objects (Methods, Devices, Scopes,
2694 5929 etc.) are all now properly created as reference objects. (BZ 5328)
2695 5930
2696 5931 Reverted a change to Notify handling that was introduced in version
2697 5932 20070508. This version changed the Notify handling from asynchronous to
2698 -fully synchronous (Device driver Notify handling with respect to the Notify
5933 +fully synchronous (Device driver Notify handling with respect to the
5934 +Notify
2699 5935 ASL operator). It was found that this change caused more problems than it
2700 5936 solved and was removed by most users.
2701 5937
2702 -Fixed a problem with the Increment and Decrement operators where the type of
5938 +Fixed a problem with the Increment and Decrement operators where the type
5939 +of
2703 5940 the target object could be unexpectedly and incorrectly changed. (BZ 353)
2704 5941 Lin Ming.
2705 5942
2706 5943 Fixed a problem with the Load and LoadTable operators where the table
2707 5944 location within the namespace was ignored. Instead, the table was always
2708 5945 loaded into the root or current scope. Lin Ming.
2709 5946
2710 5947 Fixed a problem with the Load operator when loading a table from a buffer
2711 5948 object. The input buffer was prematurely zeroed and/or deleted. (BZ 577)
2712 5949
2713 -Fixed a problem with the Debug object where a store of a DdbHandle reference
5950 +Fixed a problem with the Debug object where a store of a DdbHandle
5951 +reference
2714 5952 object to the Debug object could cause a fault.
2715 5953
2716 -Added a table checksum verification for the Load operator, in the case where
5954 +Added a table checksum verification for the Load operator, in the case
5955 +where
2717 5956 the load is from a buffer. (BZ 578).
2718 5957
2719 -Implemented additional parameter validation for the LoadTable operator. The
2720 -length of the input strings SignatureString, OemIdString, and OemTableId are
5958 +Implemented additional parameter validation for the LoadTable operator.
5959 +The
5960 +length of the input strings SignatureString, OemIdString, and OemTableId
5961 +are
2721 5962 now checked for maximum lengths. (BZ 582) Lin Ming.
2722 5963
2723 5964 Example Code and Data Size: These are the sizes for the OS-independent
2724 5965 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2725 -debug version of the code includes the debug output trace mechanism and has
5966 +debug version of the code includes the debug output trace mechanism and
5967 +has
2726 5968 a much larger code and data size.
2727 5969
2728 5970 Previous Release:
2729 5971 Non-Debug Version: 78.5K Code, 17.1K Data, 95.6K Total
2730 5972 Debug Version: 156.7K Code, 63.2K Data, 219.9K Total
2731 5973 Current Release:
2732 5974 Non-Debug Version: 78.8K Code, 17.2K Data, 96.0K Total
2733 5975 Debug Version: 157.2K Code, 63.4K Data, 220.6K Total
2734 5976
2735 5977
2736 5978 2) iASL Compiler/Disassembler:
2737 5979
↓ open down ↓ |
2 lines elided |
↑ open up ↑ |
2738 5980 Fixed a problem where if a single file was specified and the file did not
2739 5981 exist, no error message was emitted. (Introduced with wildcard support in
2740 5982 version 20070917.)
2741 5983
2742 5984 ----------------------------------------
2743 5985 19 September 2007. Summary of changes for version 20070919:
2744 5986
2745 5987 1) ACPI CA Core Subsystem:
2746 5988
2747 5989 Designed and implemented new external interfaces to install and remove
2748 -handlers for ACPI table-related events. Current events that are defined are
5990 +handlers for ACPI table-related events. Current events that are defined
5991 +are
2749 5992 LOAD and UNLOAD. These interfaces allow the host to track ACPI tables as
2750 5993 they are dynamically loaded and unloaded. See AcpiInstallTableHandler and
2751 5994 AcpiRemoveTableHandler. (Lin Ming and Bob Moore)
2752 5995
2753 5996 Fixed a problem where the use of the AcpiGbl_AllMethodsSerialized flag
2754 5997 (acpi_serialized option on Linux) could cause some systems to hang during
2755 5998 initialization. (Bob Moore) BZ 8171
2756 5999
2757 6000 Fixed a problem where objects of certain types (Device, ThermalZone,
2758 6001 Processor, PowerResource) can be not found if they are declared and
2759 6002 referenced from within the same control method (Lin Ming) BZ 341
2760 6003
2761 6004 Example Code and Data Size: These are the sizes for the OS-independent
2762 6005 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2763 -debug version of the code includes the debug output trace mechanism and has
6006 +debug version of the code includes the debug output trace mechanism and
6007 +has
2764 6008 a much larger code and data size.
2765 6009
2766 6010 Previous Release:
2767 6011 Non-Debug Version: 78.3K Code, 17.0K Data, 95.3K Total
2768 6012 Debug Version: 156.3K Code, 63.1K Data, 219.4K Total
2769 6013 Current Release:
2770 6014 Non-Debug Version: 78.5K Code, 17.1K Data, 95.6K Total
2771 6015 Debug Version: 156.7K Code, 63.2K Data, 219.9K Total
2772 6016
2773 6017
2774 6018 2) iASL Compiler/Disassembler:
2775 6019
2776 -Implemented support to allow multiple files to be compiled/disassembled in a
2777 -single invocation. This includes command line wildcard support for both the
6020 +Implemented support to allow multiple files to be compiled/disassembled
6021 +in
6022 +a
6023 +single invocation. This includes command line wildcard support for both
6024 +the
2778 6025 Windows and Unix versions of the compiler. This feature simplifies the
2779 -disassembly and compilation of multiple ACPI tables in a single directory.
6026 +disassembly and compilation of multiple ACPI tables in a single
6027 +directory.
2780 6028
2781 6029 ----------------------------------------
2782 6030 08 May 2007. Summary of changes for version 20070508:
2783 6031
2784 6032 1) ACPI CA Core Subsystem:
2785 6033
2786 -Implemented a Microsoft compatibility design change for the handling of the
6034 +Implemented a Microsoft compatibility design change for the handling of
6035 +the
2787 6036 Notify AML operator. Previously, notify handlers were dispatched and
2788 6037 executed completely asynchronously in a deferred thread. The new design
2789 -still executes the notify handlers in a different thread, but the original
2790 -thread that executed the Notify() now waits at a synchronization point for
2791 -the notify handler to complete. Some machines depend on a synchronous Notify
6038 +still executes the notify handlers in a different thread, but the
6039 +original
6040 +thread that executed the Notify() now waits at a synchronization point
6041 +for
6042 +the notify handler to complete. Some machines depend on a synchronous
6043 +Notify
2792 6044 operator in order to operate correctly.
2793 6045
2794 6046 Implemented support to allow Package objects to be passed as method
2795 6047 arguments to the external AcpiEvaluateObject interface. Previously, this
2796 6048 would return the AE_NOT_IMPLEMENTED exception. This feature had not been
2797 6049 implemented since there were no reserved control methods that required it
2798 6050 until recently.
2799 6051
2800 -Fixed a problem with the internal FADT conversion where ACPI 1.0 FADTs that
6052 +Fixed a problem with the internal FADT conversion where ACPI 1.0 FADTs
6053 +that
2801 6054 contained invalid non-zero values in reserved fields could cause later
2802 -failures because these fields have meaning in later revisions of the FADT.
2803 -For incoming ACPI 1.0 FADTs, these fields are now always zeroed. (The fields
6055 +failures because these fields have meaning in later revisions of the
6056 +FADT.
6057 +For incoming ACPI 1.0 FADTs, these fields are now always zeroed. (The
6058 +fields
2804 6059 are: Preferred_PM_Profile, PSTATE_CNT, CST_CNT, and IAPC_BOOT_FLAGS.)
2805 6060
2806 -Fixed a problem where the Global Lock handle was not properly updated if a
2807 -thread that acquired the Global Lock via executing AML code then attempted
2808 -to acquire the lock via the AcpiAcquireGlobalLock interface. Reported by Joe
6061 +Fixed a problem where the Global Lock handle was not properly updated if
6062 +a
6063 +thread that acquired the Global Lock via executing AML code then
6064 +attempted
6065 +to acquire the lock via the AcpiAcquireGlobalLock interface. Reported by
6066 +Joe
2809 6067 Liu.
2810 6068
2811 6069 Fixed a problem in AcpiEvDeleteGpeXrupt where the global interrupt list
2812 6070 could be corrupted if the interrupt being removed was at the head of the
2813 6071 list. Reported by Linn Crosetto.
2814 6072
2815 6073 Example Code and Data Size: These are the sizes for the OS-independent
2816 6074 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2817 -debug version of the code includes the debug output trace mechanism and has
6075 +debug version of the code includes the debug output trace mechanism and
6076 +has
2818 6077 a much larger code and data size.
2819 6078
2820 6079 Previous Release:
2821 6080 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2822 6081 Debug Version: 155.9K Code, 63.1K Data, 219.0K Total
2823 6082 Current Release:
2824 6083 Non-Debug Version: 78.3K Code, 17.0K Data, 95.3K Total
2825 6084 Debug Version: 156.3K Code, 63.1K Data, 219.4K Total
2826 6085
2827 6086 ----------------------------------------
2828 6087 20 March 2007. Summary of changes for version 20070320:
2829 6088
2830 6089 1) ACPI CA Core Subsystem:
2831 6090
2832 6091 Implemented a change to the order of interpretation and evaluation of AML
2833 6092 operand objects within the AML interpreter. The interpreter now evaluates
2834 6093 operands in the order that they appear in the AML stream (and the
2835 -corresponding ASL code), instead of in the reverse order (after the entire
2836 -operand list has been parsed). The previous behavior caused several subtle
6094 +corresponding ASL code), instead of in the reverse order (after the
6095 +entire
6096 +operand list has been parsed). The previous behavior caused several
6097 +subtle
2837 6098 incompatibilities with the Microsoft AML interpreter as well as being
2838 6099 somewhat non-intuitive. BZ 7871, local BZ 263. Valery Podrezov.
2839 6100
2840 -Implemented a change to the ACPI Global Lock support. All interfaces to the
6101 +Implemented a change to the ACPI Global Lock support. All interfaces to
6102 +the
2841 6103 global lock now allow the same thread to acquire the lock multiple times.
2842 -This affects the AcpiAcquireGlobalLock external interface to the global lock
6104 +This affects the AcpiAcquireGlobalLock external interface to the global
6105 +lock
2843 6106 as well as the internal use of the global lock to support AML fields -- a
2844 -control method that is holding the global lock can now simultaneously access
2845 -AML fields that require global lock protection. Previously, in both cases,
2846 -this would have resulted in an AE_ALREADY_ACQUIRED exception. The change to
6107 +control method that is holding the global lock can now simultaneously
6108 +access
6109 +AML fields that require global lock protection. Previously, in both
6110 +cases,
6111 +this would have resulted in an AE_ALREADY_ACQUIRED exception. The change
6112 +to
2847 6113 AcpiAcquireGlobalLock is of special interest to drivers for the Embedded
2848 -Controller. There is no change to the behavior of the AML Acquire operator,
6114 +Controller. There is no change to the behavior of the AML Acquire
6115 +operator,
2849 6116 as this can already be used to acquire a mutex multiple times by the same
2850 6117 thread. BZ 8066. With assistance from Alexey Starikovskiy.
2851 6118
2852 6119 Fixed a problem where invalid objects could be referenced in the AML
2853 -Interpreter after error conditions. During operand evaluation, ensure that
6120 +Interpreter after error conditions. During operand evaluation, ensure
6121 +that
2854 6122 the internal "Return Object" field is cleared on error and only valid
2855 -pointers are stored there. Caused occasional access to deleted objects that
6123 +pointers are stored there. Caused occasional access to deleted objects
6124 +that
2856 6125 resulted in "large reference count" warning messages. Valery Podrezov.
2857 6126
2858 -Fixed a problem where an AE_STACK_OVERFLOW internal exception could occur on
6127 +Fixed a problem where an AE_STACK_OVERFLOW internal exception could occur
6128 +on
2859 6129 deeply nested control method invocations. BZ 7873, local BZ 487. Valery
2860 6130 Podrezov.
2861 6131
2862 6132 Fixed an internal problem with the handling of result objects on the
2863 6133 interpreter result stack. BZ 7872. Valery Podrezov.
2864 6134
2865 -Removed obsolete code that handled the case where AML_NAME_OP is the target
6135 +Removed obsolete code that handled the case where AML_NAME_OP is the
6136 +target
2866 6137 of a reference (Reference.Opcode). This code was no longer necessary. BZ
2867 6138 7874. Valery Podrezov.
2868 6139
2869 -Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files. This was a
6140 +Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files. This
6141 +was
6142 +a
2870 6143 remnant from the previously discontinued 16-bit support.
2871 6144
2872 6145 Example Code and Data Size: These are the sizes for the OS-independent
2873 6146 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2874 -debug version of the code includes the debug output trace mechanism and has
6147 +debug version of the code includes the debug output trace mechanism and
6148 +has
2875 6149 a much larger code and data size.
2876 6150
2877 6151 Previous Release:
2878 6152 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2879 6153 Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
2880 6154 Current Release:
2881 6155 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2882 6156 Debug Version: 155.9K Code, 63.1K Data, 219.0K Total
2883 6157
2884 6158 ----------------------------------------
2885 6159 26 January 2007. Summary of changes for version 20070126:
2886 6160
2887 6161 1) ACPI CA Core Subsystem:
2888 6162
2889 6163 Added the 2007 copyright to all module headers and signons. This affects
2890 6164 virtually every file in the ACPICA core subsystem, the iASL compiler, and
2891 6165 the utilities.
2892 6166
2893 6167 Implemented a fix for an incorrect parameter passed to AcpiTbDeleteTable
2894 -during a table load. A bad pointer was passed in the case where the DSDT is
6168 +during a table load. A bad pointer was passed in the case where the DSDT
6169 +is
2895 6170 overridden, causing a fault in this case.
2896 6171
2897 6172 Example Code and Data Size: These are the sizes for the OS-independent
2898 6173 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2899 -debug version of the code includes the debug output trace mechanism and has
6174 +debug version of the code includes the debug output trace mechanism and
6175 +has
2900 6176 a much larger code and data size.
2901 6177
2902 6178 Previous Release:
2903 6179 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2904 6180 Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
2905 6181 Current Release:
2906 6182 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2907 6183 Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
2908 6184
2909 6185 ----------------------------------------
2910 6186 15 December 2006. Summary of changes for version 20061215:
2911 6187
2912 6188 1) ACPI CA Core Subsystem:
2913 6189
2914 -Support for 16-bit ACPICA has been completely removed since it is no longer
6190 +Support for 16-bit ACPICA has been completely removed since it is no
6191 +longer
2915 6192 necessary and it clutters the code. All 16-bit macros, types, and
2916 -conditional compiles have been removed, cleaning up and simplifying the code
6193 +conditional compiles have been removed, cleaning up and simplifying the
6194 +code
2917 6195 across the entire subsystem. DOS support is no longer needed since the
2918 6196 bootable Linux firmware kit is now available.
2919 6197
2920 6198 The handler for the Global Lock is now removed during AcpiTerminate to
2921 6199 enable a clean subsystem restart, via the implementation of the
2922 6200 AcpiEvRemoveGlobalLockHandler function. (With assistance from Joel Bretz,
2923 6201 HP)
2924 6202
2925 -Implemented enhancements to the multithreading support within the debugger
2926 -to enable improved multithreading debugging and evaluation of the subsystem.
6203 +Implemented enhancements to the multithreading support within the
6204 +debugger
6205 +to enable improved multithreading debugging and evaluation of the
6206 +subsystem.
2927 6207 (Valery Podrezov)
2928 6208
2929 -Debugger: Enhanced the Statistics/Memory command to emit the total (maximum)
2930 -memory used during the execution, as well as the maximum memory consumed by
6209 +Debugger: Enhanced the Statistics/Memory command to emit the total
6210 +(maximum)
6211 +memory used during the execution, as well as the maximum memory consumed
6212 +by
2931 6213 each of the various object types. (Valery Podrezov)
2932 6214
2933 6215 Example Code and Data Size: These are the sizes for the OS-independent
2934 6216 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2935 -debug version of the code includes the debug output trace mechanism and has
6217 +debug version of the code includes the debug output trace mechanism and
6218 +has
2936 6219 a much larger code and data size.
2937 6220
2938 6221 Previous Release:
2939 6222 Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
2940 6223 Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
2941 6224 Current Release:
2942 6225 Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total
2943 6226 Debug Version: 155.8K Code, 63.3K Data, 219.1K Total
2944 6227
2945 6228
2946 6229 2) iASL Compiler/Disassembler and Tools:
2947 6230
2948 6231 AcpiExec: Implemented a new option (-m) to display full memory use
2949 6232 statistics upon subsystem/program termination. (Valery Podrezov)
2950 6233
2951 6234 ----------------------------------------
2952 6235 09 November 2006. Summary of changes for version 20061109:
2953 6236
2954 6237 1) ACPI CA Core Subsystem:
2955 6238
2956 -Optimized the Load ASL operator in the case where the source operand is an
6239 +Optimized the Load ASL operator in the case where the source operand is
6240 +an
2957 6241 operation region. Simply map the operation region memory, instead of
2958 6242 performing a bytewise read. (Region must be of type SystemMemory, see
2959 6243 below.)
2960 6244
2961 6245 Fixed the Load ASL operator for the case where the source operand is a
2962 -region field. A buffer object is also allowed as the source operand. BZ 480
6246 +region field. A buffer object is also allowed as the source operand. BZ
6247 +480
2963 6248
2964 -Fixed a problem where the Load ASL operator allowed the source operand to be
6249 +Fixed a problem where the Load ASL operator allowed the source operand to
6250 +be
2965 6251 an operation region of any type. It is now restricted to regions of type
2966 6252 SystemMemory, as per the ACPI specification. BZ 481
2967 6253
2968 6254 Additional cleanup and optimizations for the new Table Manager code.
2969 6255
2970 -AcpiEnable will now fail if all of the required ACPI tables are not loaded
6256 +AcpiEnable will now fail if all of the required ACPI tables are not
6257 +loaded
2971 6258 (FADT, FACS, DSDT). BZ 477
2972 6259
2973 -Added #pragma pack(8/4) to acobject.h to ensure that the structures in this
6260 +Added #pragma pack(8/4) to acobject.h to ensure that the structures in
6261 +this
2974 6262 header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been
2975 6263 manually optimized to be aligned and will not work if it is byte-packed.
2976 6264
2977 6265 Example Code and Data Size: These are the sizes for the OS-independent
2978 6266 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
2979 -debug version of the code includes the debug output trace mechanism and has
6267 +debug version of the code includes the debug output trace mechanism and
6268 +has
2980 6269 a much larger code and data size.
2981 6270
2982 6271 Previous Release:
2983 6272 Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
2984 6273 Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
2985 6274 Current Release:
2986 6275 Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total
2987 6276 Debug Version: 155.2K Code, 63.1K Data, 218.3K Total
2988 6277
2989 6278
2990 6279 2) iASL Compiler/Disassembler and Tools:
2991 6280
2992 6281 Fixed a problem where the presence of the _OSI predefined control method
2993 6282 within complex expressions could cause an internal compiler error.
2994 6283
2995 6284 AcpiExec: Implemented full region support for multiple address spaces.
2996 6285 SpaceId is now part of the REGION object. BZ 429
2997 6286
2998 6287 ----------------------------------------
2999 6288 11 October 2006. Summary of changes for version 20061011:
↓ open down ↓ |
10 lines elided |
↑ open up ↑ |
3000 6289
3001 6290 1) ACPI CA Core Subsystem:
3002 6291
3003 6292 Completed an AML interpreter performance enhancement for control method
3004 6293 execution. Previously a 2-pass parse/execution, control methods are now
3005 6294 completely parsed and executed in a single pass. This improves overall
3006 6295 interpreter performance by ~25%, reduces code size, and reduces CPU stack
3007 6296 use. (Valery Podrezov + interpreter changes in version 20051202 that
3008 6297 eliminated namespace loading during the pass one parse.)
3009 6298
3010 -Implemented _CID support for PCI Root Bridge detection. If the _HID does not
3011 -match the predefined PCI Root Bridge IDs, the _CID list (if present) is now
6299 +Implemented _CID support for PCI Root Bridge detection. If the _HID does
6300 +not
6301 +match the predefined PCI Root Bridge IDs, the _CID list (if present) is
6302 +now
3012 6303 obtained and also checked for an ID match.
3013 6304
3014 -Implemented additional support for the PCI _ADR execution: upsearch until a
6305 +Implemented additional support for the PCI _ADR execution: upsearch until
6306 +a
3015 6307 device scope is found before executing _ADR. This allows PCI_Config
3016 -operation regions to be declared locally within control methods underneath
6308 +operation regions to be declared locally within control methods
6309 +underneath
3017 6310 PCI device objects.
3018 6311
3019 6312 Fixed a problem with a possible race condition between threads executing
3020 6313 AcpiWalkNamespace and the AML interpreter. This condition was removed by
3021 -modifying AcpiWalkNamespace to (by default) ignore all temporary namespace
6314 +modifying AcpiWalkNamespace to (by default) ignore all temporary
6315 +namespace
3022 6316 entries created during any concurrent control method execution. An
3023 6317 additional namespace race condition is known to exist between
3024 6318 AcpiWalkNamespace and the Load/Unload ASL operators and is still under
3025 6319 investigation.
3026 6320
3027 6321 Restructured the AML ParseLoop function, breaking it into several
3028 -subfunctions in order to reduce CPU stack use and improve maintainability.
6322 +subfunctions in order to reduce CPU stack use and improve
6323 +maintainability.
3029 6324 (Mikhail Kouzmich)
3030 6325
3031 -AcpiGetHandle: Fix for parameter validation to detect invalid combinations
6326 +AcpiGetHandle: Fix for parameter validation to detect invalid
6327 +combinations
3032 6328 of prefix handle and pathname. BZ 478
3033 6329
3034 6330 Example Code and Data Size: These are the sizes for the OS-independent
3035 6331 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3036 -debug version of the code includes the debug output trace mechanism and has
6332 +debug version of the code includes the debug output trace mechanism and
6333 +has
3037 6334 a much larger code and data size.
3038 6335
3039 6336 Previous Release:
3040 6337 Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
3041 6338 Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
3042 6339 Current Release:
3043 6340 Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total
3044 6341 Debug Version: 155.4K Code, 63.1K Data, 218.5K Total
3045 6342
3046 6343 2) iASL Compiler/Disassembler and Tools:
3047 6344
3048 -Ported the -g option (get local ACPI tables) to the new ACPICA Table Manager
6345 +Ported the -g option (get local ACPI tables) to the new ACPICA Table
6346 +Manager
3049 6347 to restore original behavior.
3050 6348
3051 6349 ----------------------------------------
3052 6350 27 September 2006. Summary of changes for version 20060927:
3053 6351
3054 6352 1) ACPI CA Core Subsystem:
3055 6353
3056 6354 Removed the "Flags" parameter from AcpiGetRegister and AcpiSetRegister.
3057 6355 These functions now use a spinlock for mutual exclusion and the interrupt
3058 6356 level indication flag is not needed.
3059 6357
3060 6358 Fixed a problem with the Global Lock where the lock could appear to be
3061 6359 obtained before it is actually obtained. The global lock semaphore was
3062 -inadvertently created with one unit instead of zero units. (BZ 464) Fiodor
6360 +inadvertently created with one unit instead of zero units. (BZ 464)
6361 +Fiodor
3063 6362 Suietov.
3064 6363
3065 -Fixed a possible memory leak and fault in AcpiExResolveObjectToValue during
6364 +Fixed a possible memory leak and fault in AcpiExResolveObjectToValue
6365 +during
3066 6366 a read from a buffer or region field. (BZ 458) Fiodor Suietov.
3067 6367
3068 6368 Example Code and Data Size: These are the sizes for the OS-independent
3069 6369 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3070 -debug version of the code includes the debug output trace mechanism and has
6370 +debug version of the code includes the debug output trace mechanism and
6371 +has
3071 6372 a much larger code and data size.
3072 6373
3073 6374 Previous Release:
3074 6375 Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
3075 6376 Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
3076 6377 Current Release:
3077 6378 Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
3078 6379 Debug Version: 154.6K Code, 63.0K Data, 217.6K Total
3079 6380
3080 6381
3081 6382 2) iASL Compiler/Disassembler and Tools:
3082 6383
3083 -Fixed a compilation problem with the pre-defined Resource Descriptor field
3084 -names where an "object does not exist" error could be incorrectly generated
6384 +Fixed a compilation problem with the pre-defined Resource Descriptor
6385 +field
6386 +names where an "object does not exist" error could be incorrectly
6387 +generated
3085 6388 if the parent ResourceTemplate pathname places the template within a
3086 6389 different namespace scope than the current scope. (BZ 7212)
3087 6390
3088 -Fixed a problem where the compiler could hang after syntax errors detected
6391 +Fixed a problem where the compiler could hang after syntax errors
6392 +detected
3089 6393 in an ElseIf construct. (BZ 453)
3090 6394
3091 6395 Fixed a problem with the AmlFilename parameter to the DefinitionBlock()
3092 -operator. An incorrect output filename was produced when this parameter was
6396 +operator. An incorrect output filename was produced when this parameter
6397 +was
3093 6398 a null string (""). Now, the original input filename is used as the AML
3094 6399 output filename, with an ".aml" extension.
3095 6400
3096 -Implemented a generic batch command mode for the AcpiExec utility (execute
6401 +Implemented a generic batch command mode for the AcpiExec utility
6402 +(execute
3097 6403 any AML debugger command) (Valery Podrezov).
3098 6404
3099 6405 ----------------------------------------
3100 6406 12 September 2006. Summary of changes for version 20060912:
3101 6407
3102 6408 1) ACPI CA Core Subsystem:
3103 6409
3104 6410 Enhanced the implementation of the "serialized mode" of the interpreter
3105 6411 (enabled via the AcpiGbl_AllMethodsSerialized flag.) When this mode is
3106 -specified, instead of creating a serialization semaphore per control method,
6412 +specified, instead of creating a serialization semaphore per control
6413 +method,
3107 6414 the interpreter lock is simply no longer released before a blocking
3108 6415 operation during control method execution. This effectively makes the AML
3109 6416 Interpreter single-threaded. The overhead of a semaphore per-method is
3110 6417 eliminated.
3111 6418
3112 -Fixed a regression where an error was no longer emitted if a control method
6419 +Fixed a regression where an error was no longer emitted if a control
6420 +method
3113 6421 attempts to create 2 objects of the same name. This once again returns
3114 -AE_ALREADY_EXISTS. When this exception occurs, it invokes the mechanism that
6422 +AE_ALREADY_EXISTS. When this exception occurs, it invokes the mechanism
6423 +that
3115 6424 will dynamically serialize the control method to possible prevent future
3116 6425 errors. (BZ 440)
3117 6426
3118 6427 Integrated a fix for a problem with PCI Express HID detection in the PCI
3119 6428 Config Space setup procedure. (BZ 7145)
3120 6429
3121 6430 Moved all FADT-related functions to a new file, tbfadt.c. Eliminated the
3122 6431 AcpiHwInitialize function - the FADT registers are now validated when the
3123 6432 table is loaded.
3124 6433
3125 -Added two new warnings during FADT verification - 1) if the FADT is larger
3126 -than the largest known FADT version, and 2) if there is a mismatch between a
3127 -32-bit block address and the 64-bit X counterpart (when both are non-zero.)
6434 +Added two new warnings during FADT verification - 1) if the FADT is
6435 +larger
6436 +than the largest known FADT version, and 2) if there is a mismatch
6437 +between
6438 +a
6439 +32-bit block address and the 64-bit X counterpart (when both are non-
6440 +zero.)
3128 6441
3129 6442 Example Code and Data Size: These are the sizes for the OS-independent
3130 6443 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3131 -debug version of the code includes the debug output trace mechanism and has
6444 +debug version of the code includes the debug output trace mechanism and
6445 +has
3132 6446 a much larger code and data size.
3133 6447
3134 6448 Previous Release:
3135 6449 Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
3136 6450 Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
3137 6451 Current Release:
3138 6452 Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total
3139 6453 Debug Version: 154.7K Code, 63.0K Data, 217.7K Total
3140 6454
3141 6455
3142 6456 2) iASL Compiler/Disassembler and Tools:
3143 6457
3144 -Fixed a problem with the implementation of the Switch() operator where the
3145 -temporary variable was declared too close to the actual Switch, instead of
6458 +Fixed a problem with the implementation of the Switch() operator where
6459 +the
6460 +temporary variable was declared too close to the actual Switch, instead
6461 +of
3146 6462 at method level. This could cause a problem if the Switch() operator is
3147 6463 within a while loop, causing an error on the second iteration. (BZ 460)
3148 6464
3149 6465 Disassembler - fix for error emitted for unknown type for target of scope
3150 6466 operator. Now, ignore it and continue.
3151 6467
3152 6468 Disassembly of an FADT now verifies the input FADT and reports any errors
3153 6469 found. Fix for proper disassembly of full-sized (ACPI 2.0) FADTs.
3154 6470
3155 -Disassembly of raw data buffers with byte initialization data now prefixes
6471 +Disassembly of raw data buffers with byte initialization data now
6472 +prefixes
3156 6473 each output line with the current buffer offset.
3157 6474
3158 6475 Disassembly of ASF! table now includes all variable-length data fields at
3159 6476 the end of some of the subtables.
3160 6477
3161 6478 The disassembler now emits a comment if a buffer appears to be a
3162 -ResourceTemplate, but cannot be disassembled as such because the EndTag does
6479 +ResourceTemplate, but cannot be disassembled as such because the EndTag
6480 +does
3163 6481 not appear at the very end of the buffer.
3164 6482
3165 -AcpiExec - Added the "-t" command line option to enable the serialized mode
6483 +AcpiExec - Added the "-t" command line option to enable the serialized
6484 +mode
3166 6485 of the AML interpreter.
3167 6486
3168 6487 ----------------------------------------
3169 6488 31 August 2006. Summary of changes for version 20060831:
3170 6489
3171 6490 1) ACPI CA Core Subsystem:
3172 6491
3173 6492 Miscellaneous fixes for the Table Manager:
3174 6493 - Correctly initialize internal common FADT for all 64-bit "X" fields
3175 6494 - Fixed a couple table mapping issues during table load
3176 6495 - Fixed a couple alignment issues for IA64
3177 6496 - Initialize input array to zero in AcpiInitializeTables
3178 6497 - Additional parameter validation for AcpiGetTable, AcpiGetTableHeader,
3179 6498 AcpiGetTableByIndex
3180 6499
3181 -Change for GPE support: when a "wake" GPE is received, all wake GPEs are now
6500 +Change for GPE support: when a "wake" GPE is received, all wake GPEs are
6501 +now
3182 6502 immediately disabled to prevent the waking GPE from firing again and to
3183 6503 prevent other wake GPEs from interrupting the wake process.
3184 6504
3185 -Added the AcpiGpeCount global that tracks the number of processed GPEs, to
6505 +Added the AcpiGpeCount global that tracks the number of processed GPEs,
6506 +to
3186 6507 be used for debugging systems with a large number of ACPI interrupts.
3187 6508
3188 6509 Implemented support for the "DMAR" ACPI table (DMA Redirection Table) in
3189 6510 both the ACPICA headers and the disassembler.
3190 6511
3191 6512 Example Code and Data Size: These are the sizes for the OS-independent
3192 6513 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3193 -debug version of the code includes the debug output trace mechanism and has
6514 +debug version of the code includes the debug output trace mechanism and
6515 +has
3194 6516 a much larger code and data size.
3195 6517
3196 6518 Previous Release:
3197 6519 Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total
3198 6520 Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
3199 6521 Current Release:
3200 6522 Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total
3201 6523 Debug Version: 154.9K Code, 62.6K Data, 217.5K Total
3202 6524
3203 6525
3204 6526 2) iASL Compiler/Disassembler and Tools:
3205 6527
3206 6528 Disassembler support for the DMAR ACPI table.
3207 6529
3208 6530 ----------------------------------------
3209 6531 23 August 2006. Summary of changes for version 20060823:
3210 6532
3211 6533 1) ACPI CA Core Subsystem:
3212 6534
3213 6535 The Table Manager component has been completely redesigned and
3214 -reimplemented. The new design is much simpler, and reduces the overall code
3215 -and data size of the kernel-resident ACPICA by approximately 5%. Also, it is
6536 +reimplemented. The new design is much simpler, and reduces the overall
6537 +code
6538 +and data size of the kernel-resident ACPICA by approximately 5%. Also, it
6539 +is
3216 6540 now possible to obtain the ACPI tables very early during kernel
3217 6541 initialization, even before dynamic memory management is initialized.
3218 6542 (Alexey Starikovskiy, Fiodor Suietov, Bob Moore)
3219 6543
3220 6544 Obsolete ACPICA interfaces:
3221 6545
3222 -- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early kernel init
6546 +- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early kernel
6547 +init
3223 6548 time).
3224 6549 - AcpiLoadTable: Not needed.
3225 6550 - AcpiUnloadTable: Not needed.
3226 6551
3227 6552 New ACPICA interfaces:
3228 6553
3229 -- AcpiInitializeTables: Must be called before the table manager can be used.
6554 +- AcpiInitializeTables: Must be called before the table manager can be
6555 +used.
3230 6556 - AcpiReallocateRootTable: Used to transfer the root table to dynamically
3231 6557 allocated memory after it becomes available.
3232 -- AcpiGetTableByIndex: Allows the host to easily enumerate all ACPI tables
6558 +- AcpiGetTableByIndex: Allows the host to easily enumerate all ACPI
6559 +tables
3233 6560 in the RSDT/XSDT.
3234 6561
3235 6562 Other ACPICA changes:
3236 6563
3237 -- AcpiGetTableHeader returns the actual mapped table header, not a copy. Use
6564 +- AcpiGetTableHeader returns the actual mapped table header, not a copy.
6565 +Use
3238 6566 AcpiOsUnmapMemory to free this mapping.
3239 6567 - AcpiGetTable returns the actual mapped table. The mapping is managed
3240 6568 internally and must not be deleted by the caller. Use of this interface
3241 6569 causes no additional dynamic memory allocation.
3242 -- AcpiFindRootPointer: Support for physical addressing has been eliminated,
6570 +- AcpiFindRootPointer: Support for physical addressing has been
6571 +eliminated,
3243 6572 it appeared to be unused.
3244 6573 - The interface to AcpiOsMapMemory has changed to be consistent with the
3245 6574 other allocation interfaces.
3246 -- The interface to AcpiOsGetRootPointer has changed to eliminate unnecessary
6575 +- The interface to AcpiOsGetRootPointer has changed to eliminate
6576 +unnecessary
3247 6577 parameters.
3248 -- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64 bits on 64-
6578 +- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64 bits on
6579 +64-
3249 6580 bit platforms. Was previously 64 bits on all platforms.
3250 -- The interface to the ACPI Global Lock acquire/release macros have changed
6581 +- The interface to the ACPI Global Lock acquire/release macros have
6582 +changed
3251 6583 slightly since ACPICA no longer keeps a local copy of the FACS with a
3252 6584 constructed pointer to the actual global lock.
3253 6585
3254 6586 Porting to the new table manager:
3255 6587
3256 6588 - AcpiInitializeTables: Must be called once, and can be called anytime
3257 -during the OS initialization process. It allows the host to specify an area
6589 +during the OS initialization process. It allows the host to specify an
6590 +area
3258 6591 of memory to be used to store the internal version of the RSDT/XSDT (root
3259 -table). This allows the host to access ACPI tables before memory management
6592 +table). This allows the host to access ACPI tables before memory
6593 +management
3260 6594 is initialized and running.
3261 -- AcpiReallocateRootTable: Can be called after memory management is running
6595 +- AcpiReallocateRootTable: Can be called after memory management is
6596 +running
3262 6597 to copy the root table to a dynamically allocated array, freeing up the
3263 6598 scratch memory specified in the call to AcpiInitializeTables.
3264 6599 - AcpiSubsystemInitialize: This existing interface is independent of the
3265 -Table Manager, and does not have to be called before the Table Manager can
6600 +Table Manager, and does not have to be called before the Table Manager
6601 +can
3266 6602 be used, it only must be called before the rest of ACPICA can be used.
3267 -- ACPI Tables: Some changes have been made to the names and structure of the
3268 -actbl.h and actbl1.h header files and may require changes to existing code.
3269 -For example, bitfields have been completely removed because of their lack of
6603 +- ACPI Tables: Some changes have been made to the names and structure of
6604 +the
6605 +actbl.h and actbl1.h header files and may require changes to existing
6606 +code.
6607 +For example, bitfields have been completely removed because of their lack
6608 +of
3270 6609 portability across C compilers.
3271 6610 - Update interfaces to the Global Lock acquire/release macros if local
3272 6611 versions are used. (see acwin.h)
3273 6612
3274 6613 Obsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c
3275 6614
3276 6615 New files: tbfind.c
3277 6616
3278 6617 Example Code and Data Size: These are the sizes for the OS-independent
3279 6618 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3280 -debug version of the code includes the debug output trace mechanism and has
6619 +debug version of the code includes the debug output trace mechanism and
6620 +has
3281 6621 a much larger code and data size.
3282 6622
3283 6623 Previous Release:
3284 6624 Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
3285 6625 Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
3286 6626 Current Release:
3287 6627 Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total
3288 6628 Debug Version: 154.6K Code, 62.3K Data, 216.9K Total
3289 6629
3290 6630
3291 6631 2) iASL Compiler/Disassembler and Tools:
↓ open down ↓ |
1 lines elided |
↑ open up ↑ |
3292 6632
3293 6633 No changes for this release.
3294 6634
3295 6635 ----------------------------------------
3296 6636 21 July 2006. Summary of changes for version 20060721:
3297 6637
3298 6638 1) ACPI CA Core Subsystem:
3299 6639
3300 6640 The full source code for the ASL test suite used to validate the iASL
3301 6641 compiler and the ACPICA core subsystem is being released with the ACPICA
3302 -source for the first time. The source is contained in a separate package and
3303 -consists of over 1100 files that exercise all ASL/AML operators. The package
3304 -should appear on the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor
6642 +source for the first time. The source is contained in a separate package
6643 +and
6644 +consists of over 1100 files that exercise all ASL/AML operators. The
6645 +package
6646 +should appear on the Intel/ACPI web site shortly. (Valery Podrezov,
6647 +Fiodor
3305 6648 Suietov)
3306 6649
3307 6650 Completed a new design and implementation for support of the ACPI Global
3308 6651 Lock. On the OS side, the global lock is now treated as a standard AML
3309 6652 mutex. Previously, multiple OS threads could "acquire" the global lock
3310 -simultaneously. However, this could cause the BIOS to be starved out of the
6653 +simultaneously. However, this could cause the BIOS to be starved out of
6654 +the
3311 6655 lock - especially in cases such as the Embedded Controller driver where
3312 6656 there is a tight coupling between the OS and the BIOS.
3313 6657
3314 6658 Implemented an optimization for the ACPI Global Lock interrupt mechanism.
3315 6659 The Global Lock interrupt handler no longer queues the execution of a
3316 -separate thread to signal the global lock semaphore. Instead, the semaphore
6660 +separate thread to signal the global lock semaphore. Instead, the
6661 +semaphore
3317 6662 is signaled directly from the interrupt handler.
3318 6663
3319 6664 Implemented support within the AML interpreter for package objects that
3320 -contain a larger AML length (package list length) than the package element
6665 +contain a larger AML length (package list length) than the package
6666 +element
3321 6667 count. In this case, the length of the package is truncated to match the
3322 -package element count. Some BIOS code apparently modifies the package length
3323 -on the fly, and this change supports this behavior. Provides compatibility
6668 +package element count. Some BIOS code apparently modifies the package
6669 +length
6670 +on the fly, and this change supports this behavior. Provides
6671 +compatibility
3324 6672 with the MS AML interpreter. (With assistance from Fiodor Suietov)
3325 6673
3326 -Implemented a temporary fix for the BankValue parameter of a Bank Field to
6674 +Implemented a temporary fix for the BankValue parameter of a Bank Field
6675 +to
3327 6676 support all constant values, now including the Zero and One opcodes.
3328 -Evaluation of this parameter must eventually be converted to a full TermArg
3329 -evaluation. A not-implemented error is now returned (temporarily) for non-
6677 +Evaluation of this parameter must eventually be converted to a full
6678 +TermArg
6679 +evaluation. A not-implemented error is now returned (temporarily) for
6680 +non-
3330 6681 constant values for this parameter.
3331 6682
3332 6683 Fixed problem reports (Fiodor Suietov) integrated:
3333 -- Fix for premature object deletion after CopyObject on Operation Region (BZ
6684 +- Fix for premature object deletion after CopyObject on Operation Region
6685 +(BZ
3334 6686 350)
3335 6687
3336 6688 Example Code and Data Size: These are the sizes for the OS-independent
3337 6689 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3338 -debug version of the code includes the debug output trace mechanism and has
6690 +debug version of the code includes the debug output trace mechanism and
6691 +has
3339 6692 a much larger code and data size.
3340 6693
3341 6694 Previous Release:
3342 6695 Non-Debug Version: 80.7K Code, 18.0K Data, 98.7K Total
3343 6696 Debug Version: 160.9K Code, 65.1K Data, 226.0K Total
3344 6697 Current Release:
3345 6698 Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
3346 6699 Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
3347 6700
3348 6701
3349 6702 2) iASL Compiler/Disassembler and Tools:
3350 6703
3351 6704 No changes for this release.
3352 6705
3353 6706 ----------------------------------------
↓ open down ↓ |
5 lines elided |
↑ open up ↑ |
3354 6707 07 July 2006. Summary of changes for version 20060707:
3355 6708
3356 6709 1) ACPI CA Core Subsystem:
3357 6710
3358 6711 Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C compilers
3359 6712 that do not allow the initialization of address pointers within packed
3360 6713 structures - even though the hardware itself may support misaligned
3361 6714 transfers. Some of the debug data structures are packed by default to
3362 6715 minimize size.
3363 6716
3364 -Added an error message for the case where AcpiOsGetThreadId() returns zero.
6717 +Added an error message for the case where AcpiOsGetThreadId() returns
6718 +zero.
3365 6719 A non-zero value is required by the core ACPICA code to ensure the proper
3366 6720 operation of AML mutexes and recursive control methods.
3367 6721
3368 6722 The DSDT is now the only ACPI table that determines whether the AML
3369 -interpreter is in 32-bit or 64-bit mode. Not really a functional change, but
3370 -the hooks for per-table 32/64 switching have been removed from the code. A
6723 +interpreter is in 32-bit or 64-bit mode. Not really a functional change,
6724 +but
6725 +the hooks for per-table 32/64 switching have been removed from the code.
6726 +A
3371 6727 clarification to the ACPI specification is forthcoming in ACPI 3.0B.
3372 6728
3373 6729 Fixed a possible leak of an OwnerID in the error path of
3374 6730 AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table OwnerID
3375 -deletion to a single place in AcpiTbUninstallTable to correct possible leaks
6731 +deletion to a single place in AcpiTbUninstallTable to correct possible
6732 +leaks
3376 6733 when using the AcpiTbDeleteTablesByType interface (with assistance from
3377 6734 Lance Ortiz.)
3378 6735
3379 6736 Fixed a problem with Serialized control methods where the semaphore
3380 6737 associated with the method could be over-signaled after multiple method
3381 6738 invocations.
3382 6739
3383 -Fixed two issues with the locking of the internal namespace data structure.
6740 +Fixed two issues with the locking of the internal namespace data
6741 +structure.
3384 6742 Both the Unload() operator and AcpiUnloadTable interface now lock the
3385 6743 namespace during the namespace deletion associated with the table unload
3386 6744 (with assistance from Linn Crosetto.)
3387 6745
3388 6746 Fixed problem reports (Valery Podrezov) integrated:
3389 6747 - Eliminate unnecessary memory allocation for CreateXxxxField (BZ 5426)
3390 6748
3391 6749 Fixed problem reports (Fiodor Suietov) integrated:
3392 6750 - Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
3393 6751 - On Address Space handler deletion, needless deactivation call (BZ 374)
3394 -- AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ 375)
3395 -- Possible memory leak, Notify sub-objects of Processor, Power, ThermalZone
6752 +- AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ
6753 +375)
6754 +- Possible memory leak, Notify sub-objects of Processor, Power,
6755 +ThermalZone
3396 6756 (BZ 376)
3397 6757 - AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ 378)
3398 6758 - Minimum Length of RSDT should be validated (BZ 379)
3399 6759 - AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj has no
3400 6760 Handler (BZ (380)
3401 -- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type loaded
6761 +- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type
6762 +loaded
3402 6763 (BZ 381)
3403 6764
3404 6765 Example Code and Data Size: These are the sizes for the OS-independent
3405 6766 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3406 -debug version of the code includes the debug output trace mechanism and has
6767 +debug version of the code includes the debug output trace mechanism and
6768 +has
3407 6769 a much larger code and data size.
3408 6770
3409 6771 Previous Release:
3410 6772 Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total
3411 6773 Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
3412 6774 Current Release:
3413 6775 Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total
3414 6776 Debug Version: 161.0K Code, 65.1K Data, 226.1K Total
3415 6777
3416 6778
3417 6779 2) iASL Compiler/Disassembler and Tools:
3418 6780
3419 6781 Fixed problem reports:
3420 6782 Compiler segfault when ASL contains a long (>1024) String declaration (BZ
3421 6783 436)
↓ open down ↓ |
5 lines elided |
↑ open up ↑ |
3422 6784
3423 6785 ----------------------------------------
3424 6786 23 June 2006. Summary of changes for version 20060623:
3425 6787
3426 6788 1) ACPI CA Core Subsystem:
3427 6789
3428 6790 Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces. This
3429 6791 allows the type to be customized to the host OS for improved efficiency
3430 6792 (since a spinlock is usually a very small object.)
3431 6793
3432 -Implemented support for "ignored" bits in the ACPI registers. According to
6794 +Implemented support for "ignored" bits in the ACPI registers. According
6795 +to
3433 6796 the ACPI specification, these bits should be preserved when writing the
3434 -registers via a read/modify/write cycle. There are 3 bits preserved in this
6797 +registers via a read/modify/write cycle. There are 3 bits preserved in
6798 +this
3435 6799 manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].
3436 6800
3437 -Implemented the initial deployment of new OSL mutex interfaces. Since some
6801 +Implemented the initial deployment of new OSL mutex interfaces. Since
6802 +some
3438 6803 host operating systems have separate mutex and semaphore objects, this
3439 6804 feature was requested. The base code now uses mutexes (and the new mutex
3440 6805 interfaces) wherever a binary semaphore was used previously. However, for
3441 -the current release, the mutex interfaces are defined as macros to map them
3442 -to the existing semaphore interfaces. Therefore, no OSL changes are required
6806 +the current release, the mutex interfaces are defined as macros to map
6807 +them
6808 +to the existing semaphore interfaces. Therefore, no OSL changes are
6809 +required
3443 6810 at this time. (See acpiosxf.h)
3444 6811
3445 6812 Fixed several problems with the support for the control method SyncLevel
3446 -parameter. The SyncLevel now works according to the ACPI specification and
3447 -in concert with the Mutex SyncLevel parameter, since the current SyncLevel
3448 -is a property of the executing thread. Mutual exclusion for control methods
6813 +parameter. The SyncLevel now works according to the ACPI specification
6814 +and
6815 +in concert with the Mutex SyncLevel parameter, since the current
6816 +SyncLevel
6817 +is a property of the executing thread. Mutual exclusion for control
6818 +methods
3449 6819 is now implemented with a mutex instead of a semaphore.
3450 6820
3451 6821 Fixed three instances of the use of the C shift operator in the bitfield
3452 -support code (exfldio.c) to avoid the use of a shift value larger than the
3453 -target data width. The behavior of C compilers is undefined in this case and
3454 -can cause unpredictable results, and therefore the case must be detected and
6822 +support code (exfldio.c) to avoid the use of a shift value larger than
6823 +the
6824 +target data width. The behavior of C compilers is undefined in this case
6825 +and
6826 +can cause unpredictable results, and therefore the case must be detected
6827 +and
3455 6828 avoided. (Fiodor Suietov)
3456 6829
3457 6830 Added an info message whenever an SSDT or OEM table is loaded dynamically
3458 -via the Load() or LoadTable() ASL operators. This should improve debugging
3459 -capability since it will show exactly what tables have been loaded (beyond
6831 +via the Load() or LoadTable() ASL operators. This should improve
6832 +debugging
6833 +capability since it will show exactly what tables have been loaded
6834 +(beyond
3460 6835 the tables present in the RSDT/XSDT.)
3461 6836
3462 6837 Example Code and Data Size: These are the sizes for the OS-independent
3463 6838 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3464 -debug version of the code includes the debug output trace mechanism and has
6839 +debug version of the code includes the debug output trace mechanism and
6840 +has
3465 6841 a much larger code and data size.
3466 6842
3467 6843 Previous Release:
3468 6844 Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total
3469 6845 Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
3470 6846 Current Release:
3471 6847 Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total
3472 6848 Debug Version: 160.8K Code, 64.8K Data, 225.6K Total
3473 6849
3474 6850
3475 6851 2) iASL Compiler/Disassembler and Tools:
3476 6852
3477 6853 No changes for this release.
3478 6854
3479 6855 ----------------------------------------
3480 6856 08 June 2006. Summary of changes for version 20060608:
3481 6857
3482 6858 1) ACPI CA Core Subsystem:
3483 6859
3484 -Converted the locking mutex used for the ACPI hardware to a spinlock. This
6860 +Converted the locking mutex used for the ACPI hardware to a spinlock.
6861 +This
3485 6862 change should eliminate all problems caused by attempting to acquire a
3486 6863 semaphore at interrupt level, and it means that all ACPICA external
3487 -interfaces that directly access the ACPI hardware can be safely called from
3488 -interrupt level. OSL code that implements the semaphore interfaces should be
6864 +interfaces that directly access the ACPI hardware can be safely called
6865 +from
6866 +interrupt level. OSL code that implements the semaphore interfaces should
6867 +be
3489 6868 able to eliminate any workarounds for being called at interrupt level.
3490 6869
3491 6870 Fixed a regression introduced in 20060526 where the ACPI device
3492 -initialization could be prematurely aborted with an AE_NOT_FOUND if a device
6871 +initialization could be prematurely aborted with an AE_NOT_FOUND if a
6872 +device
3493 6873 did not have an optional _INI method.
3494 6874
3495 6875 Fixed an IndexField issue where a write to the Data Register should be
3496 -limited in size to the AccessSize (width) of the IndexField itself. (BZ 433,
6876 +limited in size to the AccessSize (width) of the IndexField itself. (BZ
6877 +433,
3497 6878 Fiodor Suietov)
3498 6879
3499 6880 Fixed problem reports (Valery Podrezov) integrated:
3500 6881 - Allow store of ThermalZone objects to Debug object (BZ 5369/5370)
3501 6882
3502 6883 Fixed problem reports (Fiodor Suietov) integrated:
3503 6884 - AcpiGetTableHeader doesn't handle multiple instances correctly (BZ 364)
3504 6885
3505 6886 Removed four global mutexes that were obsolete and were no longer being
3506 6887 used.
3507 6888
3508 6889 Example Code and Data Size: These are the sizes for the OS-independent
3509 6890 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3510 -debug version of the code includes the debug output trace mechanism and has
6891 +debug version of the code includes the debug output trace mechanism and
6892 +has
3511 6893 a much larger code and data size.
3512 6894
3513 6895 Previous Release:
3514 6896 Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total
3515 6897 Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
3516 6898 Current Release:
3517 6899 Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total
3518 6900 Debug Version: 160.2K Code, 64.7K Data, 224.9K Total
3519 6901
3520 6902
3521 6903 2) iASL Compiler/Disassembler and Tools:
3522 6904
3523 6905 Fixed a fault when using -g option (get tables from registry) on Windows
3524 6906 machines.
3525 6907
3526 6908 Fixed problem reports integrated:
3527 6909 - Generate error if CreateField NumBits parameter is zero. (BZ 405)
↓ open down ↓ |
7 lines elided |
↑ open up ↑ |
3528 6910 - Fault if Offset/Length in Field unit is very large (BZ 432, Fiodor
3529 6911 Suietov)
3530 6912 - Global table revision override (-r) is ignored (BZ 413)
3531 6913
3532 6914 ----------------------------------------
3533 6915 26 May 2006. Summary of changes for version 20060526:
3534 6916
3535 6917 1) ACPI CA Core Subsystem:
3536 6918
3537 6919 Restructured, flattened, and simplified the internal interfaces for
3538 -namespace object evaluation - resulting in smaller code, less CPU stack use,
6920 +namespace object evaluation - resulting in smaller code, less CPU stack
6921 +use,
3539 6922 and fewer interfaces. (With assistance from Mikhail Kouzmich)
3540 6923
3541 -Fixed a problem with the CopyObject operator where the first parameter was
3542 -not typed correctly for the parser, interpreter, compiler, and disassembler.
6924 +Fixed a problem with the CopyObject operator where the first parameter
6925 +was
6926 +not typed correctly for the parser, interpreter, compiler, and
6927 +disassembler.
3543 6928 Caused various errors and unexpected behavior.
3544 6929
3545 6930 Fixed a problem where a ShiftLeft or ShiftRight of more than 64 bits
3546 6931 produced incorrect results with some C compilers. Since the behavior of C
3547 6932 compilers when the shift value is larger than the datatype width is
3548 -apparently not well defined, the interpreter now detects this condition and
6933 +apparently not well defined, the interpreter now detects this condition
6934 +and
3549 6935 simply returns zero as expected in all such cases. (BZ 395)
3550 6936
3551 6937 Fixed problem reports (Valery Podrezov) integrated:
3552 6938 - Update String-to-Integer conversion to match ACPI 3.0A spec (BZ 5329)
3553 6939 - Allow interpreter to handle nested method declarations (BZ 5361)
3554 6940
3555 6941 Fixed problem reports (Fiodor Suietov) integrated:
3556 -- AcpiTerminate doesn't free debug memory allocation list objects (BZ 355)
3557 -- After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ 356)
6942 +- AcpiTerminate doesn't free debug memory allocation list objects (BZ
6943 +355)
6944 +- After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ
6945 +356)
3558 6946 - AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ 357)
3559 6947 - Resource Manager should return AE_TYPE for non-device objects (BZ 358)
3560 6948 - Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)
3561 6949 - Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData (BZ 360)
3562 6950 - Incomplete cleanup branch in AcpiPsParseAml (BZ 361)
3563 6951 - Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)
3564 -- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ 365)
6952 +- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ
6953 +365)
3565 6954 - Status of the Global Initialization Handler call not used (BZ 366)
3566 6955 - Incorrect object parameter to Global Initialization Handler (BZ 367)
3567 6956
3568 6957 Example Code and Data Size: These are the sizes for the OS-independent
3569 6958 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3570 -debug version of the code includes the debug output trace mechanism and has
6959 +debug version of the code includes the debug output trace mechanism and
6960 +has
3571 6961 a much larger code and data size.
3572 6962
3573 6963 Previous Release:
3574 6964 Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total
3575 6965 Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
3576 6966 Current Release:
3577 6967 Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total
3578 6968 Debug Version: 160.3K Code, 64.9K Data, 225.2K Total
3579 6969
3580 6970
3581 6971 2) iASL Compiler/Disassembler and Tools:
3582 6972
3583 6973 Modified the parser to allow the names IO, DMA, and IRQ to be used as
3584 6974 namespace identifiers with no collision with existing resource descriptor
3585 6975 macro names. This provides compatibility with other ASL compilers and is
3586 -most useful for disassembly/recompilation of existing tables without parse
6976 +most useful for disassembly/recompilation of existing tables without
6977 +parse
3587 6978 errors. (With assistance from Thomas Renninger)
3588 6979
3589 6980 Disassembler: fixed an incorrect disassembly problem with the
3590 6981 DataTableRegion and CopyObject operators. Fixed a possible fault during
3591 6982 disassembly of some Alias operators.
3592 6983
3593 6984 ----------------------------------------
3594 6985 12 May 2006. Summary of changes for version 20060512:
3595 6986
3596 6987 1) ACPI CA Core Subsystem:
3597 6988
3598 6989 Replaced the AcpiOsQueueForExecution interface with a new interface named
3599 -AcpiOsExecute. The major difference is that the new interface does not have
3600 -a Priority parameter, this appeared to be useless and has been replaced by a
6990 +AcpiOsExecute. The major difference is that the new interface does not
6991 +have
6992 +a Priority parameter, this appeared to be useless and has been replaced
6993 +by
6994 +a
3601 6995 Type parameter. The Type tells the host what type of execution is being
3602 6996 requested, such as global lock handler, notify handler, GPE handler, etc.
3603 -This allows the host to queue and execute the request as appropriate for the
3604 -request type, possibly using different work queues and different priorities
6997 +This allows the host to queue and execute the request as appropriate for
6998 +the
6999 +request type, possibly using different work queues and different
7000 +priorities
3605 7001 for the various request types. This enables fixes for multithreading
3606 -deadlock problems such as BZ #5534, and will require changes to all existing
7002 +deadlock problems such as BZ #5534, and will require changes to all
7003 +existing
3607 7004 OS interface layers. (Alexey Starikovskiy and Bob Moore)
3608 7005
3609 -Fixed a possible memory leak associated with the support for the so-called
7006 +Fixed a possible memory leak associated with the support for the so-
7007 +called
3610 7008 "implicit return" ACPI extension. Reported by FreeBSD, BZ #6514. (Fiodor
3611 7009 Suietov)
3612 7010
3613 7011 Fixed a problem with the Load() operator where a table load from an
3614 -operation region could overwrite an internal table buffer by up to 7 bytes
3615 -and cause alignment faults on IPF systems. (With assistance from Luming Yu)
7012 +operation region could overwrite an internal table buffer by up to 7
7013 +bytes
7014 +and cause alignment faults on IPF systems. (With assistance from Luming
7015 +Yu)
3616 7016
3617 7017 Example Code and Data Size: These are the sizes for the OS-independent
3618 7018 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3619 -debug version of the code includes the debug output trace mechanism and has
7019 +debug version of the code includes the debug output trace mechanism and
7020 +has
3620 7021 a much larger code and data size.
3621 7022
3622 7023 Previous Release:
3623 7024 Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total
3624 7025 Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
3625 7026 Current Release:
3626 7027 Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total
3627 7028 Debug Version: 160.5K Code, 65.1K Data, 225.6K Total
3628 7029
3629 7030
3630 7031
3631 7032 2) iASL Compiler/Disassembler and Tools:
3632 7033
3633 -Disassembler: Implemented support to cross reference the internal namespace
3634 -and automatically generate ASL External() statements for symbols not defined
7034 +Disassembler: Implemented support to cross reference the internal
7035 +namespace
7036 +and automatically generate ASL External() statements for symbols not
7037 +defined
3635 7038 within the current table being disassembled. This will simplify the
3636 -disassembly and recompilation of interdependent tables such as SSDTs since
7039 +disassembly and recompilation of interdependent tables such as SSDTs
7040 +since
3637 7041 these statements will no longer have to be added manually.
3638 7042
3639 7043 Disassembler: Implemented experimental support to automatically detect
3640 -invocations of external control methods and generate appropriate External()
3641 -statements. This is problematic because the AML cannot be correctly parsed
3642 -until the number of arguments for each control method is known. Currently,
7044 +invocations of external control methods and generate appropriate
7045 +External()
7046 +statements. This is problematic because the AML cannot be correctly
7047 +parsed
7048 +until the number of arguments for each control method is known.
7049 +Currently,
3643 7050 standalone method invocations and invocations as the source operand of a
3644 7051 Store() statement are supported.
3645 7052
3646 7053 Disassembler: Implemented support for the ASL pseudo-operators LNotEqual,
3647 7054 LLessEqual, and LGreaterEqual. Previously disassembled as LNot(LEqual()),
3648 7055 LNot(LGreater()), and LNot(LLess()), this makes the disassembled ASL code
3649 7056 more readable and likely closer to the original ASL source.
3650 7057
3651 7058 ----------------------------------------
3652 7059 21 April 2006. Summary of changes for version 20060421:
3653 7060
3654 7061 1) ACPI CA Core Subsystem:
3655 7062
3656 7063 Removed a device initialization optimization introduced in 20051216 where
3657 7064 the _STA method was not run unless an _INI was also present for the same
3658 -device. This optimization could cause problems because it could allow _INI
7065 +device. This optimization could cause problems because it could allow
7066 +_INI
3659 7067 methods to be run within a not-present device subtree. (If a not-present
3660 -device had no _INI, _STA would not be run, the not-present status would not
7068 +device had no _INI, _STA would not be run, the not-present status would
7069 +not
3661 7070 be discovered, and the children of the device would be incorrectly
3662 7071 traversed.)
3663 7072
3664 7073 Implemented a new _STA optimization where namespace subtrees that do not
3665 7074 contain _INI are identified and ignored during device initialization.
3666 7075 Selectively running _STA can significantly improve boot time on large
3667 7076 machines (with assistance from Len Brown.)
3668 7077
3669 7078 Implemented support for the device initialization case where the returned
3670 -_STA flags indicate a device not-present but functioning. In this case, _INI
7079 +_STA flags indicate a device not-present but functioning. In this case,
7080 +_INI
3671 7081 is not run, but the device children are examined for presence, as per the
3672 7082 ACPI specification.
3673 7083
3674 7084 Implemented an additional change to the IndexField support in order to
3675 7085 conform to MS behavior. The value written to the Index Register is not
3676 7086 simply a byte offset, it is a byte offset in units of the access width of
3677 7087 the parent Index Field. (Fiodor Suietov)
3678 7088
3679 7089 Defined and deployed a new OSL interface, AcpiOsValidateAddress. This
3680 7090 interface is called during the creation of all AML operation regions, and
3681 7091 allows the host OS to exert control over what addresses it will allow the
3682 7092 AML code to access. Operation Regions whose addresses are disallowed will
3683 -cause a runtime exception when they are actually accessed (will not affect
7093 +cause a runtime exception when they are actually accessed (will not
7094 +affect
3684 7095 or abort table loading.) See oswinxf or osunixxf for an example
3685 7096 implementation.
3686 7097
3687 7098 Defined and deployed a new OSL interface, AcpiOsValidateInterface. This
3688 7099 interface allows the host OS to match the various "optional"
3689 7100 interface/behavior strings for the _OSI predefined control method as
3690 7101 appropriate (with assistance from Bjorn Helgaas.) See oswinxf or osunixxf
3691 7102 for an example implementation.
3692 7103
3693 -Restructured and corrected various problems in the exception handling code
7104 +Restructured and corrected various problems in the exception handling
7105 +code
3694 7106 paths within DsCallControlMethod and DsTerminateControlMethod in dsmethod
3695 7107 (with assistance from Takayoshi Kochi.)
3696 7108
3697 -Modified the Linux source converter to ignore quoted string literals while
3698 -converting identifiers from mixed to lower case. This will correct problems
7109 +Modified the Linux source converter to ignore quoted string literals
7110 +while
7111 +converting identifiers from mixed to lower case. This will correct
7112 +problems
3699 7113 with the disassembler and other areas where such strings must not be
3700 7114 modified.
3701 7115
3702 7116 The ACPI_FUNCTION_* macros no longer require quotes around the function
3703 -name. This allows the Linux source converter to convert the names, now that
7117 +name. This allows the Linux source converter to convert the names, now
7118 +that
3704 7119 the converter ignores quoted strings.
3705 7120
3706 7121 Example Code and Data Size: These are the sizes for the OS-independent
3707 7122 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3708 -debug version of the code includes the debug output trace mechanism and has
7123 +debug version of the code includes the debug output trace mechanism and
7124 +has
3709 7125 a much larger code and data size.
3710 7126
3711 7127 Previous Release:
3712 7128
3713 7129 Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total
3714 7130 Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
3715 7131 Current Release:
3716 7132 Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total
3717 7133 Debug Version: 160.1K Code, 65.2K Data, 225.3K Total
3718 7134
3719 7135
3720 7136 2) iASL Compiler/Disassembler and Tools:
3721 7137
3722 -Implemented 3 new warnings for iASL, and implemented multiple warning levels
7138 +Implemented 3 new warnings for iASL, and implemented multiple warning
7139 +levels
3723 7140 (w2 flag).
3724 7141
3725 -1) Ignored timeouts: If the TimeoutValue parameter to Wait or Acquire is not
7142 +1) Ignored timeouts: If the TimeoutValue parameter to Wait or Acquire is
7143 +not
3726 7144 WAIT_FOREVER (0xFFFF) and the code does not examine the return value to
3727 7145 check for the possible timeout, a warning is issued.
3728 7146
3729 -2) Useless operators: If an ASL operator does not specify an optional target
7147 +2) Useless operators: If an ASL operator does not specify an optional
7148 +target
3730 7149 operand and it also does not use the function return value from the
3731 -operator, a warning is issued since the operator effectively does nothing.
7150 +operator, a warning is issued since the operator effectively does
7151 +nothing.
3732 7152
3733 7153 3) Unreferenced objects: If a namespace object is created, but never
3734 -referenced, a warning is issued. This is a warning level 2 since there are
3735 -cases where this is ok, such as when a secondary table is loaded that uses
3736 -the unreferenced objects. Even so, care is taken to only flag objects that
7154 +referenced, a warning is issued. This is a warning level 2 since there
7155 +are
7156 +cases where this is ok, such as when a secondary table is loaded that
7157 +uses
7158 +the unreferenced objects. Even so, care is taken to only flag objects
7159 +that
3737 7160 don't look like they will ever be used. For example, the reserved methods
3738 7161 (starting with an underscore) are usually not referenced because it is
3739 7162 expected that the OS will invoke them.
3740 7163
3741 7164 ----------------------------------------
3742 7165 31 March 2006. Summary of changes for version 20060331:
3743 7166
3744 7167 1) ACPI CA Core Subsystem:
3745 7168
3746 7169 Implemented header file support for the following additional ACPI tables:
3747 -ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this support,
3748 -all current and known ACPI tables are now defined in the ACPICA headers and
7170 +ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this
7171 +support,
7172 +all current and known ACPI tables are now defined in the ACPICA headers
7173 +and
3749 7174 are available for use by device drivers and other software.
3750 7175
3751 7176 Implemented support to allow tables that contain ACPI names with invalid
3752 7177 characters to be loaded. Previously, this would cause the table load to
3753 7178 fail, but since there are several known cases of such tables on existing
3754 -machines, this change was made to enable ACPI support for them. Also, this
7179 +machines, this change was made to enable ACPI support for them. Also,
7180 +this
3755 7181 matches the behavior of the Microsoft ACPI implementation.
3756 7182
3757 -Fixed a couple regressions introduced during the memory optimization in the
7183 +Fixed a couple regressions introduced during the memory optimization in
7184 +the
3758 7185 20060317 release. The namespace node definition required additional
3759 -reorganization and an internal datatype that had been changed to 8-bit was
7186 +reorganization and an internal datatype that had been changed to 8-bit
7187 +was
3760 7188 restored to 32-bit. (Valery Podrezov)
3761 7189
3762 7190 Fixed a problem where a null pointer passed to AcpiUtDeleteGenericState
3763 7191 could be passed through to AcpiOsReleaseObject which is unexpected. Such
3764 7192 null pointers are now trapped and ignored, matching the behavior of the
3765 7193 previous implementation before the deployment of AcpiOsReleaseObject.
3766 7194 (Valery Podrezov, Fiodor Suietov)
3767 7195
3768 -Fixed a memory mapping leak during the deletion of a SystemMemory operation
7196 +Fixed a memory mapping leak during the deletion of a SystemMemory
7197 +operation
3769 7198 region where a cached memory mapping was not deleted. This became a
3770 -noticeable problem for operation regions that are defined within frequently
7199 +noticeable problem for operation regions that are defined within
7200 +frequently
3771 7201 used control methods. (Dana Meyers)
3772 7202
3773 7203 Reorganized the ACPI table header files into two main files: one for the
3774 -ACPI tables consumed by the ACPICA core, and another for the miscellaneous
3775 -ACPI tables that are consumed by the drivers and other software. The various
7204 +ACPI tables consumed by the ACPICA core, and another for the
7205 +miscellaneous
7206 +ACPI tables that are consumed by the drivers and other software. The
7207 +various
3776 7208 FADT definitions were merged into one common section and three different
3777 7209 tables (ACPI 1.0, 1.0+, and 2.0)
3778 7210
3779 7211 Example Code and Data Size: These are the sizes for the OS-independent
3780 7212 acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The
3781 -debug version of the code includes the debug output trace mechanism and has
7213 +debug version of the code includes the debug output trace mechanism and
7214 +has
3782 7215 a much larger code and data size.
3783 7216
3784 7217 Previous Release:
3785 7218 Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total
3786 7219 Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
3787 7220 Current Release:
3788 7221 Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total
3789 7222 Debug Version: 158.9K Code, 64.9K Data, 223.8K Total
3790 7223
3791 7224
3792 7225 2) iASL Compiler/Disassembler and Tools:
3793 7226
3794 7227 Disassembler: Implemented support to decode and format all non-AML ACPI
3795 7228 tables (tables other than DSDTs and SSDTs.) This includes the new tables
3796 -added to the ACPICA headers, therefore all current and known ACPI tables are
7229 +added to the ACPICA headers, therefore all current and known ACPI tables
7230 +are
3797 7231 supported.
3798 7232
3799 7233 Disassembler: The change to allow ACPI names with invalid characters also
3800 -enables the disassembly of such tables. Invalid characters within names are
7234 +enables the disassembly of such tables. Invalid characters within names
7235 +are
3801 7236 changed to '*' to make the name printable; the iASL compiler will still
3802 7237 generate an error for such names, however, since this is an invalid ACPI
3803 7238 character.
3804 7239
3805 -Implemented an option for AcpiXtract (-a) to extract all tables found in the
7240 +Implemented an option for AcpiXtract (-a) to extract all tables found in
7241 +the
3806 7242 input file. The default invocation extracts only the DSDTs and SSDTs.
3807 7243
3808 7244 Fixed a couple of gcc generation issues for iASL and AcpiExec and added a
3809 7245 makefile for the AcpiXtract utility.
3810 7246
3811 7247 ----------------------------------------
3812 7248 17 March 2006. Summary of changes for version 20060317:
3813 7249
3814 7250 1) ACPI CA Core Subsystem:
3815 7251
3816 7252 Implemented the use of a cache object for all internal namespace nodes.
3817 7253 Since there are about 1000 static nodes in a typical system, this will
3818 -decrease memory use for cache implementations that minimize per-allocation
7254 +decrease memory use for cache implementations that minimize per-
7255 +allocation
3819 7256 overhead (such as a slab allocator.)
3820 7257
3821 -Removed the reference count mechanism for internal namespace nodes, since it
7258 +Removed the reference count mechanism for internal namespace nodes, since
7259 +it
3822 7260 was deemed unnecessary. This reduces the size of each namespace node by
3823 -about 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit case,
7261 +about 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit
7262 +case,
3824 7263 and 32 bytes for the 64-bit case.
3825 7264
3826 -Optimized several internal data structures to reduce object size on 64-bit
7265 +Optimized several internal data structures to reduce object size on 64-
7266 +bit
3827 7267 platforms by packing data within the 64-bit alignment. This includes the
3828 7268 frequently used ACPI_OPERAND_OBJECT, of which there can be ~1000 static
3829 7269 instances corresponding to the namespace objects.
3830 7270
3831 -Added two new strings for the predefined _OSI method: "Windows 2001.1 SP1"
7271 +Added two new strings for the predefined _OSI method: "Windows 2001.1
7272 +SP1"
3832 7273 and "Windows 2006".
3833 7274
3834 7275 Split the allocation tracking mechanism out to a separate file, from
3835 7276 utalloc.c to uttrack.c. This mechanism appears to be only useful for
3836 7277 application-level code. Kernels may wish to not include uttrack.c in
3837 7278 distributions.
3838 7279
3839 -Removed all remnants of the obsolete ACPI_REPORT_* macros and the associated
7280 +Removed all remnants of the obsolete ACPI_REPORT_* macros and the
7281 +associated
3840 7282 code. (These macros have been replaced by the ACPI_ERROR and ACPI_WARNING
3841 7283 macros.)
3842 7284
3843 -Code and Data Size: These are the sizes for the acpica.lib produced by the
3844 -Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI
3845 -driver or OSPM code. The debug version of the code includes the debug output
7285 +Code and Data Size: These are the sizes for the acpica.lib produced by
7286 +the
7287 +Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any
7288 +ACPI
7289 +driver or OSPM code. The debug version of the code includes the debug
7290 +output
3846 7291 trace mechanism and has a much larger code and data size. Note that these
3847 7292 values will vary depending on the efficiency of the compiler and the
3848 7293 compiler options used during generation.
3849 7294
3850 7295 Previous Release:
3851 7296 Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
3852 7297 Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
3853 7298 Current Release:
3854 7299 Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total
3855 7300 Debug Version: 158.7K Code, 64.8K Data, 223.5K Total
3856 7301
3857 7302
3858 7303 2) iASL Compiler/Disassembler and Tools:
3859 7304
3860 -Implemented an ANSI C version of the acpixtract utility. This version will
7305 +Implemented an ANSI C version of the acpixtract utility. This version
7306 +will
3861 7307 automatically extract the DSDT and all SSDTs from the input acpidump text
3862 7308 file and dump the binary output to separate files. It can also display a
3863 7309 summary of the input file including the headers for each table found and
3864 7310 will extract any single ACPI table, with any signature. (See
3865 7311 source/tools/acpixtract)
3866 7312
3867 7313 ----------------------------------------
3868 7314 10 March 2006. Summary of changes for version 20060310:
3869 7315
3870 7316 1) ACPI CA Core Subsystem:
3871 7317
3872 7318 Tagged all external interfaces to the subsystem with the new
3873 -ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to assist
7319 +ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to
7320 +assist
3874 7321 kernel integration. For Linux, the macro resolves to the EXPORT_SYMBOL
3875 7322 macro. The default definition is NULL.
3876 7323
3877 -Added the ACPI_THREAD_ID type for the return value from AcpiOsGetThreadId.
7324 +Added the ACPI_THREAD_ID type for the return value from
7325 +AcpiOsGetThreadId.
3878 7326 This allows the host to define this as necessary to simplify kernel
3879 7327 integration. The default definition is ACPI_NATIVE_UINT.
3880 7328
3881 -Fixed two interpreter problems related to error processing, the deletion of
7329 +Fixed two interpreter problems related to error processing, the deletion
7330 +of
3882 7331 objects, and placing invalid pointers onto the internal operator result
3883 7332 stack. BZ 6028, 6151 (Valery Podrezov)
3884 7333
3885 -Increased the reference count threshold where a warning is emitted for large
3886 -reference counts in order to eliminate unnecessary warnings on systems with
7334 +Increased the reference count threshold where a warning is emitted for
7335 +large
7336 +reference counts in order to eliminate unnecessary warnings on systems
7337 +with
3887 7338 large namespaces (especially 64-bit.) Increased the value from 0x400 to
3888 7339 0x800.
3889 7340
3890 -Due to universal disagreement as to the meaning of the 'c' in the calloc()
7341 +Due to universal disagreement as to the meaning of the 'c' in the
7342 +calloc()
3891 7343 function, the ACPI_MEM_CALLOCATE macro has been renamed to
3892 7344 ACPI_ALLOCATE_ZEROED so that the purpose of the interface is 'clear'.
3893 7345 ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and
3894 7346 ACPI_FREE.
3895 7347
3896 -Code and Data Size: These are the sizes for the acpica.lib produced by the
3897 -Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI
3898 -driver or OSPM code. The debug version of the code includes the debug output
7348 +Code and Data Size: These are the sizes for the acpica.lib produced by
7349 +the
7350 +Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any
7351 +ACPI
7352 +driver or OSPM code. The debug version of the code includes the debug
7353 +output
3899 7354 trace mechanism and has a much larger code and data size. Note that these
3900 7355 values will vary depending on the efficiency of the compiler and the
3901 7356 compiler options used during generation.
3902 7357
3903 7358 Previous Release:
3904 7359 Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
3905 7360 Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
3906 7361 Current Release:
3907 7362 Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
3908 7363 Debug Version: 161.6K Code, 65.7K Data, 227.3K Total
3909 7364
3910 7365
3911 7366 2) iASL Compiler/Disassembler:
3912 7367
3913 7368 Disassembler: implemented support for symbolic resource descriptor
3914 -references. If a CreateXxxxField operator references a fixed offset within a
3915 -resource descriptor, a name is assigned to the descriptor and the offset is
7369 +references. If a CreateXxxxField operator references a fixed offset
7370 +within
7371 +a
7372 +resource descriptor, a name is assigned to the descriptor and the offset
7373 +is
3916 7374 translated to the appropriate resource tag and pathname. The addition of
3917 7375 this support brings the disassembled code very close to the original ASL
3918 -source code and helps eliminate run-time errors when the disassembled code
7376 +source code and helps eliminate run-time errors when the disassembled
7377 +code
3919 7378 is modified (and recompiled) in such a way as to invalidate the original
3920 7379 fixed offsets.
3921 7380
3922 -Implemented support for a Descriptor Name as the last parameter to the ASL
7381 +Implemented support for a Descriptor Name as the last parameter to the
7382 +ASL
3923 7383 Register() macro. This parameter was inadvertently left out of the ACPI
3924 7384 specification, and will be added for ACPI 3.0b.
3925 7385
3926 7386 Fixed a problem where the use of the "_OSI" string (versus the full path
3927 7387 "\_OSI") caused an internal compiler error. ("No back ptr to op")
3928 7388
3929 -Fixed a problem with the error message that occurs when an invalid string is
3930 -used for a _HID object (such as one with an embedded asterisk: "*PNP010A".)
7389 +Fixed a problem with the error message that occurs when an invalid string
7390 +is
7391 +used for a _HID object (such as one with an embedded asterisk:
7392 +"*PNP010A".)
3931 7393 The correct message is now displayed.
3932 7394
3933 7395 ----------------------------------------
3934 7396 17 February 2006. Summary of changes for version 20060217:
3935 7397
3936 7398 1) ACPI CA Core Subsystem:
3937 7399
3938 -Implemented a change to the IndexField support to match the behavior of the
3939 -Microsoft AML interpreter. The value written to the Index register is now a
3940 -byte offset, no longer an index based upon the width of the Data register.
7400 +Implemented a change to the IndexField support to match the behavior of
7401 +the
7402 +Microsoft AML interpreter. The value written to the Index register is now
7403 +a
7404 +byte offset, no longer an index based upon the width of the Data
7405 +register.
3941 7406 This should fix IndexField problems seen on some machines where the Data
3942 7407 register is not exactly one byte wide. The ACPI specification will be
3943 7408 clarified on this point.
3944 7409
3945 7410 Fixed a problem where several resource descriptor types could overrun the
3946 7411 internal descriptor buffer due to size miscalculation: VendorShort,
3947 7412 VendorLong, and Interrupt. This was noticed on IA64 machines, but could
3948 7413 affect all platforms.
3949 7414
3950 -Fixed a problem where individual resource descriptors were misaligned within
7415 +Fixed a problem where individual resource descriptors were misaligned
7416 +within
3951 7417 the internal buffer, causing alignment faults on IA64 platforms.
3952 7418
3953 -Code and Data Size: These are the sizes for the acpica.lib produced by the
3954 -Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI
3955 -driver or OSPM code. The debug version of the code includes the debug output
7419 +Code and Data Size: These are the sizes for the acpica.lib produced by
7420 +the
7421 +Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any
7422 +ACPI
7423 +driver or OSPM code. The debug version of the code includes the debug
7424 +output
3956 7425 trace mechanism and has a much larger code and data size. Note that these
3957 7426 values will vary depending on the efficiency of the compiler and the
3958 7427 compiler options used during generation.
3959 7428
3960 7429 Previous Release:
3961 7430 Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
3962 7431 Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
3963 7432 Current Release:
3964 7433 Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total
3965 7434 Debug Version: 161.4K Code, 65.7K Data, 227.1K Total
3966 7435
3967 7436
3968 7437 2) iASL Compiler/Disassembler:
3969 7438
3970 7439 Implemented support for new reserved names: _WDG and _WED are Microsoft
3971 7440 extensions for Windows Instrumentation Management, _TDL is a new ACPI-
3972 7441 defined method (Throttling Depth Limit.)
3973 7442
3974 7443 Fixed a problem where a zero-length VendorShort or VendorLong resource
3975 7444 descriptor was incorrectly emitted as a descriptor of length one.
↓ open down ↓ |
10 lines elided |
↑ open up ↑ |
3976 7445
3977 7446 ----------------------------------------
3978 7447 10 February 2006. Summary of changes for version 20060210:
3979 7448
3980 7449 1) ACPI CA Core Subsystem:
3981 7450
3982 7451 Removed a couple of extraneous ACPI_ERROR messages that appeared during
3983 7452 normal execution. These became apparent after the conversion from
3984 7453 ACPI_DEBUG_PRINT.
3985 7454
3986 -Fixed a problem where the CreateField operator could hang if the BitIndex or
7455 +Fixed a problem where the CreateField operator could hang if the BitIndex
7456 +or
3987 7457 NumBits parameter referred to a named object. (Valery Podrezov, BZ 5359)
3988 7458
3989 7459 Fixed a problem where a DeRefOf operation on a buffer object incorrectly
3990 7460 failed with an exception. This also fixes a couple of related RefOf and
3991 7461 DeRefOf issues. (Valery Podrezov, BZ 5360/5392/5387)
3992 7462
3993 -Fixed a problem where the AE_BUFFER_LIMIT exception was returned instead of
3994 -AE_STRING_LIMIT on an out-of-bounds Index() operation. (Valery Podrezov, BZ
7463 +Fixed a problem where the AE_BUFFER_LIMIT exception was returned instead
7464 +of
7465 +AE_STRING_LIMIT on an out-of-bounds Index() operation. (Valery Podrezov,
7466 +BZ
3995 7467 5480)
3996 7468
3997 -Implemented a memory cleanup at the end of the execution of each iteration
3998 -of an AML While() loop, preventing the accumulation of outstanding objects.
7469 +Implemented a memory cleanup at the end of the execution of each
7470 +iteration
7471 +of an AML While() loop, preventing the accumulation of outstanding
7472 +objects.
3999 7473 (Valery Podrezov, BZ 5427)
4000 7474
4001 -Eliminated a chunk of duplicate code in the object resolution code. (Valery
7475 +Eliminated a chunk of duplicate code in the object resolution code.
7476 +(Valery
4002 7477 Podrezov, BZ 5336)
4003 7478
4004 7479 Fixed several warnings during the 64-bit code generation.
4005 7480
4006 -The AcpiSrc source code conversion tool now inserts one line of whitespace
4007 -after an if() statement that is followed immediately by a comment, improving
7481 +The AcpiSrc source code conversion tool now inserts one line of
7482 +whitespace
7483 +after an if() statement that is followed immediately by a comment,
7484 +improving
4008 7485 readability of the Linux code.
4009 7486
4010 7487 Code and Data Size: The current and previous library sizes for the core
4011 7488 subsystem are shown below. These are the code and data sizes for the
4012 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4013 -values do not include any ACPI driver or OSPM code. The debug version of the
7489 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7490 +These
7491 +values do not include any ACPI driver or OSPM code. The debug version of
7492 +the
4014 7493 code includes the debug output trace mechanism and has a much larger code
4015 -and data size. Note that these values will vary depending on the efficiency
7494 +and data size. Note that these values will vary depending on the
7495 +efficiency
4016 7496 of the compiler and the compiler options used during generation.
4017 7497
4018 7498 Previous Release:
4019 7499 Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
4020 7500 Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
4021 7501 Current Release:
4022 7502 Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total
4023 7503 Debug Version: 161.3K Code, 65.6K Data, 226.9K Total
4024 7504
4025 7505
4026 7506 2) iASL Compiler/Disassembler:
4027 7507
4028 -Fixed a problem with the disassembly of a BankField operator with a complex
7508 +Fixed a problem with the disassembly of a BankField operator with a
7509 +complex
4029 7510 expression for the BankValue parameter.
4030 7511
4031 7512 ----------------------------------------
4032 7513 27 January 2006. Summary of changes for version 20060127:
4033 7514
4034 7515 1) ACPI CA Core Subsystem:
4035 7516
4036 -Implemented support in the Resource Manager to allow unresolved namestring
4037 -references within resource package objects for the _PRT method. This support
7517 +Implemented support in the Resource Manager to allow unresolved
7518 +namestring
7519 +references within resource package objects for the _PRT method. This
7520 +support
4038 7521 is in addition to the previously implemented unresolved reference support
4039 7522 within the AML parser. If the interpreter slack mode is enabled, these
4040 -unresolved references will be passed through to the caller as a NULL package
7523 +unresolved references will be passed through to the caller as a NULL
7524 +package
4041 7525 entry.
4042 7526
4043 7527 Implemented and deployed new macros and functions for error and warning
4044 7528 messages across the subsystem. These macros are simpler and generate less
4045 7529 code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION,
4046 7530 ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. The older
4047 7531 macros remain defined to allow ACPI drivers time to migrate to the new
4048 7532 macros.
4049 7533
4050 -Implemented the ACPI_CPU_FLAGS type to simplify host OS integration of the
7534 +Implemented the ACPI_CPU_FLAGS type to simplify host OS integration of
7535 +the
4051 7536 Acquire/Release Lock OSL interfaces.
4052 7537
4053 7538 Fixed a problem where Alias ASL operators are sometimes not correctly
4054 7539 resolved, in both the interpreter and the iASL compiler.
4055 7540
4056 -Fixed several problems with the implementation of the ConcatenateResTemplate
7541 +Fixed several problems with the implementation of the
7542 +ConcatenateResTemplate
4057 7543 ASL operator. As per the ACPI specification, zero length buffers are now
4058 7544 treated as a single EndTag. One-length buffers always cause a fatal
4059 -exception. Non-zero length buffers that do not end with a full 2-byte EndTag
7545 +exception. Non-zero length buffers that do not end with a full 2-byte
7546 +EndTag
4060 7547 cause a fatal exception.
4061 7548
4062 7549 Fixed a possible structure overwrite in the AcpiGetObjectInfo external
4063 7550 interface. (With assistance from Thomas Renninger)
4064 7551
4065 7552 Code and Data Size: The current and previous library sizes for the core
4066 7553 subsystem are shown below. These are the code and data sizes for the
4067 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4068 -values do not include any ACPI driver or OSPM code. The debug version of the
7554 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7555 +These
7556 +values do not include any ACPI driver or OSPM code. The debug version of
7557 +the
4069 7558 code includes the debug output trace mechanism and has a much larger code
4070 -and data size. Note that these values will vary depending on the efficiency
7559 +and data size. Note that these values will vary depending on the
7560 +efficiency
4071 7561 of the compiler and the compiler options used during generation.
4072 7562
4073 7563 Previous Release:
4074 7564 Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
4075 7565 Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
4076 7566 Current Release:
4077 7567 Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total
4078 7568 Debug Version: 161.3K Code, 65.7K Data, 227.0K Total
4079 7569
4080 7570
4081 7571 2) iASL Compiler/Disassembler:
4082 7572
4083 -Fixed an internal error that was generated for any forward references to ASL
7573 +Fixed an internal error that was generated for any forward references to
7574 +ASL
4084 7575 Alias objects.
4085 7576
4086 7577 ----------------------------------------
4087 7578 13 January 2006. Summary of changes for version 20060113:
4088 7579
4089 7580 1) ACPI CA Core Subsystem:
4090 7581
4091 7582 Added 2006 copyright to all module headers and signons. This affects
4092 7583 virtually every file in the ACPICA core subsystem, iASL compiler, and the
4093 7584 utilities.
4094 7585
4095 -Enhanced the ACPICA error reporting in order to simplify user migration to
7586 +Enhanced the ACPICA error reporting in order to simplify user migration
7587 +to
4096 7588 the non-debug version of ACPICA. Replaced all instances of the
4097 -ACPI_DEBUG_PRINT macro invoked at the ACPI_DB_ERROR and ACPI_DB_WARN debug
7589 +ACPI_DEBUG_PRINT macro invoked at the ACPI_DB_ERROR and ACPI_DB_WARN
7590 +debug
4098 7591 levels with the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros,
4099 -respectively. This preserves all error and warning messages in the non-debug
7592 +respectively. This preserves all error and warning messages in the non-
7593 +debug
4100 7594 version of the ACPICA code (this has been referred to as the "debug lite"
4101 7595 option.) Over 200 cases were converted to create a total of over 380
4102 -error/warning messages across the ACPICA code. This increases the code and
4103 -data size of the default non-debug version of the code somewhat (about 13K),
7596 +error/warning messages across the ACPICA code. This increases the code
7597 +and
7598 +data size of the default non-debug version of the code somewhat (about
7599 +13K),
4104 7600 but all error/warning reporting may be disabled if desired (and code
4105 7601 eliminated) by specifying the ACPI_NO_ERROR_MESSAGES compile-time
4106 -configuration option. The size of the debug version of ACPICA remains about
7602 +configuration option. The size of the debug version of ACPICA remains
7603 +about
4107 7604 the same.
4108 7605
4109 7606 Fixed a memory leak within the AML Debugger "Set" command. One object was
4110 7607 not properly deleted for every successful invocation of the command.
4111 7608
4112 7609 Code and Data Size: The current and previous library sizes for the core
4113 7610 subsystem are shown below. These are the code and data sizes for the
4114 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4115 -values do not include any ACPI driver or OSPM code. The debug version of the
7611 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7612 +These
7613 +values do not include any ACPI driver or OSPM code. The debug version of
7614 +the
4116 7615 code includes the debug output trace mechanism and has a much larger code
4117 -and data size. Note that these values will vary depending on the efficiency
7616 +and data size. Note that these values will vary depending on the
7617 +efficiency
4118 7618 of the compiler and the compiler options used during generation.
4119 7619
4120 7620 Previous Release:
4121 7621 Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
4122 7622 Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
4123 7623 Current Release:
4124 7624 Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total
4125 7625 Debug Version: 163.2K Code, 66.2K Data, 229.4K Total
4126 7626
4127 7627
4128 7628 2) iASL Compiler/Disassembler:
4129 7629
4130 7630 The compiler now officially supports the ACPI 3.0a specification that was
4131 -released on December 30, 2005. (Specification is available at www.acpi.info)
7631 +released on December 30, 2005. (Specification is available at
7632 +www.acpi.info)
4132 7633
4133 7634 ----------------------------------------
4134 7635 16 December 2005. Summary of changes for version 20051216:
4135 7636
4136 7637 1) ACPI CA Core Subsystem:
4137 7638
4138 7639 Implemented optional support to allow unresolved names within ASL Package
4139 7640 objects. A null object is inserted in the package when a named reference
4140 7641 cannot be located in the current namespace. Enabled via the interpreter
4141 -slack flag, this should eliminate AE_NOT_FOUND exceptions seen on machines
7642 +slack flag, this should eliminate AE_NOT_FOUND exceptions seen on
7643 +machines
4142 7644 that contain such code.
4143 7645
4144 -Implemented an optimization to the initialization sequence that can improve
4145 -boot time. During ACPI device initialization, the _STA method is now run if
4146 -and only if the _INI method exists. The _STA method is used to determine if
4147 -the device is present; An _INI can only be run if _STA returns present, but
7646 +Implemented an optimization to the initialization sequence that can
7647 +improve
7648 +boot time. During ACPI device initialization, the _STA method is now run
7649 +if
7650 +and only if the _INI method exists. The _STA method is used to determine
7651 +if
7652 +the device is present; An _INI can only be run if _STA returns present,
7653 +but
4148 7654 it is a waste of time to run the _STA method if the _INI does not exist.
4149 7655 (Prototype and assistance from Dong Wei)
4150 7656
4151 -Implemented use of the C99 uintptr_t for the pointer casting macros if it is
4152 -available in the current compiler. Otherwise, the default (void *) cast is
7657 +Implemented use of the C99 uintptr_t for the pointer casting macros if it
7658 +is
7659 +available in the current compiler. Otherwise, the default (void *) cast
7660 +is
4153 7661 used as before.
4154 7662
4155 7663 Fixed some possible memory leaks found within the execution path of the
4156 7664 Break, Continue, If, and CreateField operators. (Valery Podrezov)
4157 7665
4158 7666 Fixed a problem introduced in the 20051202 release where an exception is
4159 7667 generated during method execution if a control method attempts to declare
4160 7668 another method.
4161 7669
4162 7670 Moved resource descriptor string constants that are used by both the AML
4163 7671 disassembler and AML debugger to the common utilities directory so that
4164 7672 these components are independent.
4165 7673
4166 -Implemented support in the AcpiExec utility (-e switch) to globally ignore
7674 +Implemented support in the AcpiExec utility (-e switch) to globally
7675 +ignore
4167 7676 exceptions during control method execution (method is not aborted.)
4168 7677
4169 7678 Added the rsinfo.c source file to the AcpiExec makefile for Linux/Unix
4170 7679 generation.
4171 7680
4172 7681 Code and Data Size: The current and previous library sizes for the core
4173 7682 subsystem are shown below. These are the code and data sizes for the
4174 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4175 -values do not include any ACPI driver or OSPM code. The debug version of the
7683 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7684 +These
7685 +values do not include any ACPI driver or OSPM code. The debug version of
7686 +the
4176 7687 code includes the debug output trace mechanism and has a much larger code
4177 -and data size. Note that these values will vary depending on the efficiency
7688 +and data size. Note that these values will vary depending on the
7689 +efficiency
4178 7690 of the compiler and the compiler options used during generation.
4179 7691
4180 7692 Previous Release:
4181 7693 Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
4182 7694 Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
4183 7695 Current Release:
4184 7696 Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total
4185 7697 Debug Version: 163.7K Code, 67.5K Data, 231.2K Total
4186 7698
4187 7699
4188 7700 2) iASL Compiler/Disassembler:
4189 7701
4190 -Fixed a problem where a CPU stack overflow fault could occur if a recursive
7702 +Fixed a problem where a CPU stack overflow fault could occur if a
7703 +recursive
4191 7704 method call was made from within a Return statement.
4192 7705
4193 7706 ----------------------------------------
4194 7707 02 December 2005. Summary of changes for version 20051202:
4195 7708
4196 7709 1) ACPI CA Core Subsystem:
4197 7710
4198 7711 Modified the parsing of control methods to no longer create namespace
4199 7712 objects during the first pass of the parse. Objects are now created only
4200 -during the execute phase, at the moment the namespace creation operator is
4201 -encountered in the AML (Name, OperationRegion, CreateByteField, etc.) This
7713 +during the execute phase, at the moment the namespace creation operator
7714 +is
7715 +encountered in the AML (Name, OperationRegion, CreateByteField, etc.)
7716 +This
4202 7717 should eliminate ALREADY_EXISTS exceptions seen on some machines where
4203 -reentrant control methods are protected by an AML mutex. The mutex will now
4204 -correctly block multiple threads from attempting to create the same object
7718 +reentrant control methods are protected by an AML mutex. The mutex will
7719 +now
7720 +correctly block multiple threads from attempting to create the same
7721 +object
4205 7722 more than once.
4206 7723
4207 7724 Increased the number of available Owner Ids for namespace object tracking
4208 -from 32 to 255. This should eliminate the OWNER_ID_LIMIT exceptions seen on
4209 -some machines with a large number of ACPI tables (either static or dynamic).
7725 +from 32 to 255. This should eliminate the OWNER_ID_LIMIT exceptions seen
7726 +on
7727 +some machines with a large number of ACPI tables (either static or
7728 +dynamic).
4210 7729
4211 -Fixed a problem with the AcpiExec utility where a fault could occur when the
7730 +Fixed a problem with the AcpiExec utility where a fault could occur when
7731 +the
4212 7732 -b switch (batch mode) is used.
4213 7733
4214 7734 Enhanced the namespace dump routine to output the owner ID for each
4215 7735 namespace object.
4216 7736
4217 7737 Code and Data Size: The current and previous library sizes for the core
4218 7738 subsystem are shown below. These are the code and data sizes for the
4219 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4220 -values do not include any ACPI driver or OSPM code. The debug version of the
7739 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7740 +These
7741 +values do not include any ACPI driver or OSPM code. The debug version of
7742 +the
4221 7743 code includes the debug output trace mechanism and has a much larger code
4222 -and data size. Note that these values will vary depending on the efficiency
7744 +and data size. Note that these values will vary depending on the
7745 +efficiency
4223 7746 of the compiler and the compiler options used during generation.
4224 7747
4225 7748 Previous Release:
4226 7749 Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
4227 7750 Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
4228 7751 Current Release:
4229 7752 Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
4230 7753 Debug Version: 163.2K Code, 67.4K Data, 230.6K Total
4231 7754
4232 7755
4233 7756 2) iASL Compiler/Disassembler:
4234 7757
4235 -Fixed a parse error during compilation of certain Switch/Case constructs. To
4236 -simplify the parse, the grammar now allows for multiple Default statements
7758 +Fixed a parse error during compilation of certain Switch/Case constructs.
7759 +To
7760 +simplify the parse, the grammar now allows for multiple Default
7761 +statements
4237 7762 and this error is now detected and flagged during the analysis phase.
4238 7763
4239 7764 Disassembler: The disassembly now includes the contents of the original
4240 7765 table header within a comment at the start of the file. This includes the
4241 7766 name and version of the original ASL compiler.
4242 7767
4243 7768 ----------------------------------------
4244 7769 17 November 2005. Summary of changes for version 20051117:
4245 7770
4246 7771 1) ACPI CA Core Subsystem:
4247 7772
4248 7773 Fixed a problem in the AML parser where the method thread count could be
4249 -decremented below zero if any errors occurred during the method parse phase.
4250 -This should eliminate AE_AML_METHOD_LIMIT exceptions seen on some machines.
7774 +decremented below zero if any errors occurred during the method parse
7775 +phase.
7776 +This should eliminate AE_AML_METHOD_LIMIT exceptions seen on some
7777 +machines.
4251 7778 This also fixed a related regression with the mechanism that detects and
4252 7779 corrects methods that cannot properly handle reentrancy (related to the
4253 7780 deployment of the new OwnerId mechanism.)
4254 7781
4255 7782 Eliminated the pre-parsing of control methods (to detect errors) during
4256 -table load. Related to the problem above, this was causing unwind issues if
4257 -any errors occurred during the parse, and it seemed to be overkill. A table
7783 +table load. Related to the problem above, this was causing unwind issues
7784 +if
7785 +any errors occurred during the parse, and it seemed to be overkill. A
7786 +table
4258 7787 load should not be aborted if there are problems with any single control
4259 7788 method, thus rendering this feature rather pointless.
4260 7789
4261 -Fixed a problem with the new table-driven resource manager where an internal
7790 +Fixed a problem with the new table-driven resource manager where an
7791 +internal
4262 7792 buffer overflow could occur for small resource templates.
4263 7793
4264 -Implemented a new external interface, AcpiGetVendorResource. This interface
4265 -will find and return a vendor-defined resource descriptor within a _CRS or
4266 -_PRS method via an ACPI 3.0 UUID match. With assistance from Bjorn Helgaas.
7794 +Implemented a new external interface, AcpiGetVendorResource. This
7795 +interface
7796 +will find and return a vendor-defined resource descriptor within a _CRS
7797 +or
7798 +_PRS method via an ACPI 3.0 UUID match. With assistance from Bjorn
7799 +Helgaas.
4267 7800
4268 7801 Removed the length limit (200) on string objects as per the upcoming ACPI
4269 -3.0A specification. This affects the following areas of the interpreter: 1)
4270 -any implicit conversion of a Buffer to a String, 2) a String object result
7802 +3.0A specification. This affects the following areas of the interpreter:
7803 +1)
7804 +any implicit conversion of a Buffer to a String, 2) a String object
7805 +result
4271 7806 of the ASL Concatentate operator, 3) the String object result of the ASL
4272 7807 ToString operator.
4273 7808
4274 -Fixed a problem in the Windows OS interface layer (OSL) where a WAIT_FOREVER
7809 +Fixed a problem in the Windows OS interface layer (OSL) where a
7810 +WAIT_FOREVER
4275 7811 on a semaphore object would incorrectly timeout. This allows the
4276 7812 multithreading features of the AcpiExec utility to work properly under
4277 7813 Windows.
4278 7814
4279 7815 Updated the Linux makefiles for the iASL compiler and AcpiExec to include
4280 7816 the recently added file named "utresrc.c".
4281 7817
4282 7818 Code and Data Size: The current and previous library sizes for the core
4283 7819 subsystem are shown below. These are the code and data sizes for the
4284 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4285 -values do not include any ACPI driver or OSPM code. The debug version of the
7820 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7821 +These
7822 +values do not include any ACPI driver or OSPM code. The debug version of
7823 +the
4286 7824 code includes the debug output trace mechanism and has a much larger code
4287 -and data size. Note that these values will vary depending on the efficiency
7825 +and data size. Note that these values will vary depending on the
7826 +efficiency
4288 7827 of the compiler and the compiler options used during generation.
4289 7828
4290 7829 Previous Release:
4291 7830 Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
4292 7831 Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
4293 7832 Current Release:
4294 7833 Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total
4295 7834 Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
4296 7835
4297 7836
4298 7837 2) iASL Compiler/Disassembler:
4299 7838
4300 7839 Removed the limit (200) on string objects as per the upcoming ACPI 3.0A
4301 -specification. For the iASL compiler, this means that string literals within
7840 +specification. For the iASL compiler, this means that string literals
7841 +within
4302 7842 the source ASL can be of any length.
4303 7843
4304 7844 Enhanced the listing output to dump the AML code for resource descriptors
4305 -immediately after the ASL code for each descriptor, instead of in a block at
7845 +immediately after the ASL code for each descriptor, instead of in a block
7846 +at
4306 7847 the end of the entire resource template.
4307 7848
4308 7849 Enhanced the compiler debug output to dump the entire original parse tree
4309 -constructed during the parse phase, before any transforms are applied to the
7850 +constructed during the parse phase, before any transforms are applied to
7851 +the
4310 7852 tree. The transformed tree is dumped also.
4311 7853
4312 7854 ----------------------------------------
4313 7855 02 November 2005. Summary of changes for version 20051102:
4314 7856
4315 7857 1) ACPI CA Core Subsystem:
4316 7858
4317 -Modified the subsystem initialization sequence to improve GPE support. The
4318 -GPE initialization has been split into two parts in order to defer execution
4319 -of the _PRW methods (Power Resources for Wake) until after the hardware is
7859 +Modified the subsystem initialization sequence to improve GPE support.
7860 +The
7861 +GPE initialization has been split into two parts in order to defer
7862 +execution
7863 +of the _PRW methods (Power Resources for Wake) until after the hardware
7864 +is
4320 7865 fully initialized and the SCI handler is installed. This allows the _PRW
4321 -methods to access fields protected by the Global Lock. This will fix systems
7866 +methods to access fields protected by the Global Lock. This will fix
7867 +systems
4322 7868 where a NO_GLOBAL_LOCK exception has been seen during initialization.
4323 7869
4324 -Converted the ACPI internal object disassemble and display code within the
7870 +Converted the ACPI internal object disassemble and display code within
7871 +the
4325 7872 AML debugger to fully table-driven operation, reducing code size and
4326 7873 increasing maintainability.
4327 7874
4328 -Fixed a regression with the ConcatenateResTemplate() ASL operator introduced
7875 +Fixed a regression with the ConcatenateResTemplate() ASL operator
7876 +introduced
4329 7877 in the 20051021 release.
4330 7878
4331 7879 Implemented support for "local" internal ACPI object types within the
4332 7880 debugger "Object" command and the AcpiWalkNamespace external interfaces.
4333 -These local types include RegionFields, BankFields, IndexFields, Alias, and
7881 +These local types include RegionFields, BankFields, IndexFields, Alias,
7882 +and
4334 7883 reference objects.
4335 7884
4336 -Moved common AML resource handling code into a new file, "utresrc.c". This
7885 +Moved common AML resource handling code into a new file, "utresrc.c".
7886 +This
4337 7887 code is shared by both the Resource Manager and the AML Debugger.
4338 7888
4339 7889 Code and Data Size: The current and previous library sizes for the core
4340 7890 subsystem are shown below. These are the code and data sizes for the
4341 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4342 -values do not include any ACPI driver or OSPM code. The debug version of the
7891 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7892 +These
7893 +values do not include any ACPI driver or OSPM code. The debug version of
7894 +the
4343 7895 code includes the debug output trace mechanism and has a much larger code
4344 -and data size. Note that these values will vary depending on the efficiency
7896 +and data size. Note that these values will vary depending on the
7897 +efficiency
4345 7898 of the compiler and the compiler options used during generation.
4346 7899
4347 7900 Previous Release:
4348 7901 Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
4349 7902 Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
4350 7903 Current Release:
4351 7904 Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total
4352 7905 Debug Version: 163.0K Code, 67.4K Data, 230.4K Total
4353 7906
4354 7907
4355 7908 2) iASL Compiler/Disassembler:
4356 7909
4357 -Fixed a problem with very large initializer lists (more than 4000 elements)
7910 +Fixed a problem with very large initializer lists (more than 4000
7911 +elements)
4358 7912 for both Buffer and Package objects where the parse stack could overflow.
4359 7913
4360 -Enhanced the pre-compile source code scan for non-ASCII characters to ignore
4361 -characters within comment fields. The scan is now always performed and is no
7914 +Enhanced the pre-compile source code scan for non-ASCII characters to
7915 +ignore
7916 +characters within comment fields. The scan is now always performed and is
7917 +no
4362 7918 longer optional, detecting invalid characters within a source file
4363 7919 immediately rather than during the parse phase or later.
4364 7920
4365 -Enhanced the ASL grammar definition to force early reductions on all list-
7921 +Enhanced the ASL grammar definition to force early reductions on all
7922 +list-
4366 7923 style grammar elements so that the overall parse stack usage is greatly
4367 -reduced. This should improve performance and reduce the possibility of parse
7924 +reduced. This should improve performance and reduce the possibility of
7925 +parse
4368 7926 stack overflow.
4369 7927
4370 -Eliminated all reduce/reduce conflicts in the iASL parser generation. Also,
7928 +Eliminated all reduce/reduce conflicts in the iASL parser generation.
7929 +Also,
4371 7930 with the addition of a %expected statement, the compiler generates from
4372 7931 source with no warnings.
4373 7932
4374 7933 Fixed a possible segment fault in the disassembler if the input filename
4375 7934 does not contain a "dot" extension (Thomas Renninger).
4376 7935
4377 7936 ----------------------------------------
4378 7937 21 October 2005. Summary of changes for version 20051021:
4379 7938
4380 7939 1) ACPI CA Core Subsystem:
4381 7940
4382 7941 Implemented support for the EM64T and other x86-64 processors. This
4383 7942 essentially entails recognizing that these processors support non-aligned
4384 7943 memory transfers. Previously, all 64-bit processors were assumed to lack
4385 7944 hardware support for non-aligned transfers.
4386 7945
4387 7946 Completed conversion of the Resource Manager to nearly full table-driven
4388 7947 operation. Specifically, the resource conversion code (convert AML to
4389 7948 internal format and the reverse) and the debug code to dump internal
4390 -resource descriptors are fully table-driven, reducing code and data size and
7949 +resource descriptors are fully table-driven, reducing code and data size
7950 +and
4391 7951 improving maintainability.
4392 7952
4393 -The OSL interfaces for Acquire and Release Lock now use a 64-bit flag word
4394 -on 64-bit processors instead of a fixed 32-bit word. (With assistance from
7953 +The OSL interfaces for Acquire and Release Lock now use a 64-bit flag
7954 +word
7955 +on 64-bit processors instead of a fixed 32-bit word. (With assistance
7956 +from
4395 7957 Alexey Starikovskiy)
4396 7958
4397 7959 Implemented support within the resource conversion code for the Type-
4398 7960 Specific byte within the various ACPI 3.0 *WordSpace macros.
4399 7961
4400 -Fixed some issues within the resource conversion code for the type-specific
7962 +Fixed some issues within the resource conversion code for the type-
7963 +specific
4401 7964 flags for both Memory and I/O address resource descriptors. For Memory,
4402 7965 implemented support for the MTP and TTP flags. For I/O, split the TRS and
4403 7966 TTP flags into two separate fields.
4404 7967
4405 7968 Code and Data Size: The current and previous library sizes for the core
4406 7969 subsystem are shown below. These are the code and data sizes for the
4407 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4408 -values do not include any ACPI driver or OSPM code. The debug version of the
7970 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
7971 +These
7972 +values do not include any ACPI driver or OSPM code. The debug version of
7973 +the
4409 7974 code includes the debug output trace mechanism and has a much larger code
4410 -and data size. Note that these values will vary depending on the efficiency
7975 +and data size. Note that these values will vary depending on the
7976 +efficiency
4411 7977 of the compiler and the compiler options used during generation.
4412 7978
4413 7979 Previous Release:
4414 7980 Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
4415 7981 Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
4416 7982 Current Release:
4417 7983 Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total
4418 7984 Debug Version: 163.5K Code, 67.0K Data, 230.5K Total
4419 7985
4420 7986
4421 7987
4422 7988 2) iASL Compiler/Disassembler:
4423 7989
4424 -Relaxed a compiler restriction that disallowed a ResourceIndex byte if the
7990 +Relaxed a compiler restriction that disallowed a ResourceIndex byte if
7991 +the
4425 7992 corresponding ResourceSource string was not also present in a resource
4426 7993 descriptor declaration. This restriction caused problems with existing
4427 -AML/ASL code that includes the Index byte without the string. When such AML
7994 +AML/ASL code that includes the Index byte without the string. When such
7995 +AML
4428 7996 was disassembled, it could not be compiled without modification. Further,
4429 -the modified code created a resource template with a different size than the
4430 -original, breaking code that used fixed offsets into the resource template
7997 +the modified code created a resource template with a different size than
7998 +the
7999 +original, breaking code that used fixed offsets into the resource
8000 +template
4431 8001 buffer.
4432 8002
4433 -Removed a recent feature of the disassembler to ignore a lone ResourceIndex
8003 +Removed a recent feature of the disassembler to ignore a lone
8004 +ResourceIndex
4434 8005 byte. This byte is now emitted if present so that the exact AML can be
4435 8006 reproduced when the disassembled code is recompiled.
4436 8007
4437 8008 Improved comments and text alignment for the resource descriptor code
4438 8009 emitted by the disassembler.
4439 8010
4440 -Implemented disassembler support for the ACPI 3.0 AccessSize field within a
8011 +Implemented disassembler support for the ACPI 3.0 AccessSize field within
8012 +a
4441 8013 Register() resource descriptor.
4442 8014
4443 8015 ----------------------------------------
4444 8016 30 September 2005. Summary of changes for version 20050930:
4445 8017
4446 8018 1) ACPI CA Core Subsystem:
4447 8019
4448 8020 Completed a major overhaul of the Resource Manager code - specifically,
4449 -optimizations in the area of the AML/internal resource conversion code. The
4450 -code has been optimized to simplify and eliminate duplicated code, CPU stack
8021 +optimizations in the area of the AML/internal resource conversion code.
8022 +The
8023 +code has been optimized to simplify and eliminate duplicated code, CPU
8024 +stack
4451 8025 use has been decreased by optimizing function parameters and local
4452 -variables, and naming conventions across the manager have been standardized
8026 +variables, and naming conventions across the manager have been
8027 +standardized
4453 8028 for clarity and ease of maintenance (this includes function, parameter,
4454 8029 variable, and struct/typedef names.) The update may force changes in some
4455 8030 driver code, depending on how resources are handled by the host OS.
4456 8031
4457 8032 All Resource Manager dispatch and information tables have been moved to a
4458 8033 single location for clarity and ease of maintenance. One new file was
4459 8034 created, named "rsinfo.c".
4460 8035
4461 8036 The ACPI return macros (return_ACPI_STATUS, etc.) have been modified to
4462 -guarantee that the argument is not evaluated twice, making them less prone
8037 +guarantee that the argument is not evaluated twice, making them less
8038 +prone
4463 8039 to macro side-effects. However, since there exists the possibility of
4464 -additional stack use if a particular compiler cannot optimize them (such as
4465 -in the debug generation case), the original macros are optionally available.
8040 +additional stack use if a particular compiler cannot optimize them (such
8041 +as
8042 +in the debug generation case), the original macros are optionally
8043 +available.
4466 8044 Note that some invocations of the return_VALUE macro may now cause size
4467 -mismatch warnings; the return_UINT8 and return_UINT32 macros are provided to
8045 +mismatch warnings; the return_UINT8 and return_UINT32 macros are provided
8046 +to
4468 8047 eliminate these. (From Randy Dunlap)
4469 8048
4470 -Implemented a new mechanism to enable debug tracing for individual control
8049 +Implemented a new mechanism to enable debug tracing for individual
8050 +control
4471 8051 methods. A new external interface, AcpiDebugTrace, is provided to enable
4472 8052 this mechanism. The intent is to allow the host OS to easily enable and
4473 8053 disable tracing for problematic control methods. This interface can be
4474 8054 easily exposed to a user or debugger interface if desired. See the file
4475 8055 psxface.c for details.
4476 8056
4477 8057 AcpiUtCallocate will now return a valid pointer if a length of zero is
4478 8058 specified - a length of one is used and a warning is issued. This matches
4479 8059 the behavior of AcpiUtAllocate.
4480 8060
4481 8061 Code and Data Size: The current and previous library sizes for the core
4482 8062 subsystem are shown below. These are the code and data sizes for the
4483 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4484 -values do not include any ACPI driver or OSPM code. The debug version of the
8063 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
8064 +These
8065 +values do not include any ACPI driver or OSPM code. The debug version of
8066 +the
4485 8067 code includes the debug output trace mechanism and has a much larger code
4486 -and data size. Note that these values will vary depending on the efficiency
8068 +and data size. Note that these values will vary depending on the
8069 +efficiency
4487 8070 of the compiler and the compiler options used during generation.
4488 8071
4489 8072 Previous Release:
4490 8073 Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
4491 8074 Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
4492 8075 Current Release:
4493 8076 Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total
4494 8077 Debug Version: 168.0K Code, 68.3K Data, 236.3K Total
4495 8078
4496 8079
4497 8080 2) iASL Compiler/Disassembler:
↓ open down ↓ |
1 lines elided |
↑ open up ↑ |
4498 8081
4499 8082 A remark is issued if the effective compile-time length of a package or
4500 8083 buffer is zero. Previously, this was a warning.
4501 8084
4502 8085 ----------------------------------------
4503 8086 16 September 2005. Summary of changes for version 20050916:
4504 8087
4505 8088 1) ACPI CA Core Subsystem:
4506 8089
4507 8090 Fixed a problem within the Resource Manager where support for the Generic
4508 -Register descriptor was not fully implemented. This descriptor is now fully
8091 +Register descriptor was not fully implemented. This descriptor is now
8092 +fully
4509 8093 recognized, parsed, disassembled, and displayed.
4510 8094
4511 8095 Completely restructured the Resource Manager code to utilize table-driven
4512 -dispatch and lookup, eliminating many of the large switch() statements. This
8096 +dispatch and lookup, eliminating many of the large switch() statements.
8097 +This
4513 8098 reduces overall subsystem code size and code complexity. Affects the
4514 8099 resource parsing and construction, disassembly, and debug dump output.
4515 8100
4516 8101 Cleaned up and restructured the debug dump output for all resource
4517 8102 descriptors. Improved readability of the output and reduced code size.
4518 8103
4519 8104 Fixed a problem where changes to internal data structures caused the
4520 8105 optional ACPI_MUTEX_DEBUG code to fail compilation if specified.
4521 8106
4522 8107 Code and Data Size: The current and previous library sizes for the core
4523 8108 subsystem are shown below. These are the code and data sizes for the
4524 -acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These
4525 -values do not include any ACPI driver or OSPM code. The debug version of the
8109 +acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler.
8110 +These
8111 +values do not include any ACPI driver or OSPM code. The debug version of
8112 +the
4526 8113 code includes the debug output trace mechanism and has a much larger code
4527 -and data size. Note that these values will vary depending on the efficiency
8114 +and data size. Note that these values will vary depending on the
8115 +efficiency
4528 8116 of the compiler and the compiler options used during generation.
4529 8117
4530 8118 Previous Release:
4531 8119 Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
4532 8120 Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
4533 8121 Current Release:
4534 8122 Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total
4535 8123 Debug Version: 168.1K Code, 68.4K Data, 236.5K Total
4536 8124
4537 8125
4538 8126 2) iASL Compiler/Disassembler:
4539 8127
4540 -Updated the disassembler to automatically insert an EndDependentFn() macro
8128 +Updated the disassembler to automatically insert an EndDependentFn()
8129 +macro
4541 8130 into the ASL stream if this macro is missing in the original AML code,
4542 8131 simplifying compilation of the resulting ASL module.
4543 8132
4544 8133 Fixed a problem in the disassembler where a disassembled ResourceSource
4545 -string (within a large resource descriptor) was not surrounded by quotes and
8134 +string (within a large resource descriptor) was not surrounded by quotes
8135 +and
4546 8136 not followed by a comma, causing errors when the resulting ASL module was
4547 8137 compiled. Also, escape sequences within a ResourceSource string are now
4548 8138 handled correctly (especially "\\")
4549 8139
4550 8140 ----------------------------------------
4551 8141 02 September 2005. Summary of changes for version 20050902:
4552 8142
4553 8143 1) ACPI CA Core Subsystem:
4554 8144
4555 8145 Fixed a problem with the internal Owner ID allocation and deallocation
4556 8146 mechanisms for control method execution and recursive method invocation.
4557 8147 This should eliminate the OWNER_ID_LIMIT exceptions and "Invalid OwnerId"
4558 8148 messages seen on some systems. Recursive method invocation depth is
4559 8149 currently limited to 255. (Alexey Starikovskiy)
4560 8150
4561 8151 Completely eliminated all vestiges of support for the "module-level
4562 -executable code" until this support is fully implemented and debugged. This
8152 +executable code" until this support is fully implemented and debugged.
8153 +This
4563 8154 should eliminate the NO_RETURN_VALUE exceptions seen during table load on
4564 8155 some systems that invoke this support.
4565 8156
4566 -Fixed a problem within the resource manager code where the transaction flags
8157 +Fixed a problem within the resource manager code where the transaction
8158 +flags
4567 8159 for a 64-bit address descriptor were handled incorrectly in the type-
4568 8160 specific flag byte.
4569 8161
4570 -Consolidated duplicate code within the address descriptor resource manager
8162 +Consolidated duplicate code within the address descriptor resource
8163 +manager
4571 8164 code, reducing overall subsystem code size.
4572 8165
4573 8166 Fixed a fault when using the AML debugger "disassemble" command to
4574 8167 disassemble individual control methods.
4575 8168
4576 8169 Removed references to the "release_current" directory within the Unix
4577 8170 release package.
4578 8171
4579 8172 Code and Data Size: The current and previous core subsystem library sizes
4580 8173 are shown below. These are the code and data sizes for the acpica.lib
4581 8174 produced by the Microsoft Visual C++ 6.0 compiler. These values do not
4582 -include any ACPI driver or OSPM code. The debug version of the code includes
4583 -the debug output trace mechanism and has a much larger code and data size.
4584 -Note that these values will vary depending on the efficiency of the compiler
8175 +include any ACPI driver or OSPM code. The debug version of the code
8176 +includes
8177 +the debug output trace mechanism and has a much larger code and data
8178 +size.
8179 +Note that these values will vary depending on the efficiency of the
8180 +compiler
4585 8181 and the compiler options used during generation.
4586 8182
4587 8183 Previous Release:
4588 8184 Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
4589 8185 Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
4590 8186 Current Release:
4591 8187 Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total
4592 8188 Debug Version: 169.6K Code, 69.9K Data, 239.5K Total
4593 8189
4594 8190
4595 8191 2) iASL Compiler/Disassembler:
4596 8192
4597 -Implemented an error check for illegal duplicate values in the interrupt and
8193 +Implemented an error check for illegal duplicate values in the interrupt
8194 +and
4598 8195 dma lists for the following ASL macros: Dma(), Irq(), IrqNoFlags(), and
4599 8196 Interrupt().
4600 8197
4601 -Implemented error checking for the Irq() and IrqNoFlags() macros to detect
8198 +Implemented error checking for the Irq() and IrqNoFlags() macros to
8199 +detect
4602 8200 too many values in the interrupt list (16 max) and invalid values in the
4603 8201 list (range 0 - 15)
4604 8202
4605 8203 The maximum length string literal within an ASL file is now restricted to
4606 8204 200 characters as per the ACPI specification.
4607 8205
4608 8206 Fixed a fault when using the -ln option (generate namespace listing).
4609 8207
4610 8208 Implemented an error check to determine if a DescriptorName within a
4611 8209 resource descriptor has already been used within the current scope.
4612 8210
4613 8211 ----------------------------------------
4614 8212 15 August 2005. Summary of changes for version 20050815:
4615 8213
4616 8214 1) ACPI CA Core Subsystem:
4617 8215
4618 -Implemented a full bytewise compare to determine if a table load request is
4619 -attempting to load a duplicate table. The compare is performed if the table
8216 +Implemented a full bytewise compare to determine if a table load request
8217 +is
8218 +attempting to load a duplicate table. The compare is performed if the
8219 +table
4620 8220 signatures and table lengths match. This will allow different tables with
4621 -the same OEM Table ID and revision to be loaded - probably against the ACPI
8221 +the same OEM Table ID and revision to be loaded - probably against the
8222 +ACPI
4622 8223 specification, but discovered in the field nonetheless.
4623 8224
4624 8225 Added the changes.txt logfile to each of the zipped release packages.
4625 8226
4626 8227 Code and Data Size: Current and previous core subsystem library sizes are
4627 -shown below. These are the code and data sizes for the acpica.lib produced
8228 +shown below. These are the code and data sizes for the acpica.lib
8229 +produced
4628 8230 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4629 8231 any ACPI driver or OSPM code. The debug version of the code includes the
4630 -debug output trace mechanism and has a much larger code and data size. Note
4631 -that these values will vary depending on the efficiency of the compiler and
8232 +debug output trace mechanism and has a much larger code and data size.
8233 +Note
8234 +that these values will vary depending on the efficiency of the compiler
8235 +and
4632 8236 the compiler options used during generation.
4633 8237
4634 8238 Previous Release:
4635 8239 Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
4636 8240 Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
4637 8241 Current Release:
4638 8242 Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
4639 8243 Debug Version: 170.0K Code, 69.9K Data, 239.9K Total
4640 8244
4641 8245
4642 8246 2) iASL Compiler/Disassembler:
4643 8247
4644 8248 Fixed a problem where incorrect AML code could be generated for Package
4645 8249 objects if optimization is disabled (via the -oa switch).
4646 8250
4647 8251 Fixed a problem with where incorrect AML code is generated for variable-
4648 -length packages when the package length is not specified and the number of
8252 +length packages when the package length is not specified and the number
8253 +of
4649 8254 initializer values is greater than 255.
4650 8255
4651 8256
4652 8257 ----------------------------------------
4653 8258 29 July 2005. Summary of changes for version 20050729:
4654 8259
4655 8260 1) ACPI CA Core Subsystem:
4656 8261
4657 -Implemented support to ignore an attempt to install/load a particular ACPI
8262 +Implemented support to ignore an attempt to install/load a particular
8263 +ACPI
4658 8264 table more than once. Apparently there exists BIOS code that repeatedly
4659 8265 attempts to load the same SSDT upon certain events. With assistance from
4660 8266 Venkatesh Pallipadi.
4661 8267
4662 8268 Restructured the main interface to the AML parser in order to correctly
4663 -handle all exceptional conditions. This will prevent leakage of the OwnerId
4664 -resource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on some
8269 +handle all exceptional conditions. This will prevent leakage of the
8270 +OwnerId
8271 +resource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on
8272 +some
4665 8273 machines. With assistance from Alexey Starikovskiy.
4666 8274
4667 -Support for "module level code" has been disabled in this version due to a
4668 -number of issues that have appeared on various machines. The support can be
8275 +Support for "module level code" has been disabled in this version due to
8276 +a
8277 +number of issues that have appeared on various machines. The support can
8278 +be
4669 8279 enabled by defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem
4670 -compilation. When the issues are fully resolved, the code will be enabled by
8280 +compilation. When the issues are fully resolved, the code will be enabled
8281 +by
4671 8282 default again.
4672 8283
4673 8284 Modified the internal functions for debug print support to define the
4674 -FunctionName parameter as a (const char *) for compatibility with compiler
8285 +FunctionName parameter as a (const char *) for compatibility with
8286 +compiler
4675 8287 built-in macros such as __FUNCTION__, etc.
4676 8288
4677 8289 Linted the entire ACPICA source tree for both 32-bit and 64-bit.
4678 8290
4679 -Implemented support to display an object count summary for the AML Debugger
8291 +Implemented support to display an object count summary for the AML
8292 +Debugger
4680 8293 commands Object and Methods.
4681 8294
4682 8295 Code and Data Size: Current and previous core subsystem library sizes are
4683 -shown below. These are the code and data sizes for the acpica.lib produced
8296 +shown below. These are the code and data sizes for the acpica.lib
8297 +produced
4684 8298 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4685 8299 any ACPI driver or OSPM code. The debug version of the code includes the
4686 -debug output trace mechanism and has a much larger code and data size. Note
4687 -that these values will vary depending on the efficiency of the compiler and
8300 +debug output trace mechanism and has a much larger code and data size.
8301 +Note
8302 +that these values will vary depending on the efficiency of the compiler
8303 +and
4688 8304 the compiler options used during generation.
4689 8305
4690 8306 Previous Release:
4691 8307 Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
4692 8308 Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
4693 8309 Current Release:
4694 8310 Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total
4695 8311 Debug Version: 167.0K Code, 69.9K Data, 236.9K Total
4696 8312
4697 8313
4698 8314 2) iASL Compiler/Disassembler:
4699 8315
4700 8316 Fixed a regression that appeared in the 20050708 version of the compiler
4701 -where an error message was inadvertently emitted for invocations of the _OSI
8317 +where an error message was inadvertently emitted for invocations of the
8318 +_OSI
4702 8319 reserved control method.
4703 8320
4704 8321 ----------------------------------------
4705 8322 08 July 2005. Summary of changes for version 20050708:
4706 8323
4707 8324 1) ACPI CA Core Subsystem:
4708 8325
4709 8326 The use of the CPU stack in the debug version of the subsystem has been
4710 8327 considerably reduced. Previously, a debug structure was declared in every
4711 8328 function that used the debug macros. This structure has been removed in
4712 8329 favor of declaring the individual elements as parameters to the debug
4713 -functions. This reduces the cumulative stack use during nested execution of
4714 -ACPI function calls at the cost of a small increase in the code size of the
4715 -debug version of the subsystem. With assistance from Alexey Starikovskiy and
8330 +functions. This reduces the cumulative stack use during nested execution
8331 +of
8332 +ACPI function calls at the cost of a small increase in the code size of
8333 +the
8334 +debug version of the subsystem. With assistance from Alexey Starikovskiy
8335 +and
4716 8336 Len Brown.
4717 8337
4718 8338 Added the ACPI_GET_FUNCTION_NAME macro to enable the compiler-dependent
4719 8339 headers to define a macro that will return the current function name at
4720 -runtime (such as __FUNCTION__ or _func_, etc.) The function name is used by
8340 +runtime (such as __FUNCTION__ or _func_, etc.) The function name is used
8341 +by
4721 8342 the debug trace output. If ACPI_GET_FUNCTION_NAME is not defined in the
4722 -compiler-dependent header, the function name is saved on the CPU stack (one
8343 +compiler-dependent header, the function name is saved on the CPU stack
8344 +(one
4723 8345 pointer per function.) This mechanism is used because apparently there
4724 -exists no standard ANSI-C defined macro that that returns the function name.
8346 +exists no standard ANSI-C defined macro that that returns the function
8347 +name.
4725 8348
4726 8349 Redesigned and reimplemented the "Owner ID" mechanism used to track
4727 8350 namespace objects created/deleted by ACPI tables and control method
4728 -execution. A bitmap is now used to allocate and free the IDs, thus solving
4729 -the wraparound problem present in the previous implementation. The size of
8351 +execution. A bitmap is now used to allocate and free the IDs, thus
8352 +solving
8353 +the wraparound problem present in the previous implementation. The size
8354 +of
4730 8355 the namespace node descriptor was reduced by 2 bytes as a result (Alexey
4731 8356 Starikovskiy).
4732 8357
4733 -Removed the UINT32_BIT and UINT16_BIT types that were used for the bitfield
8358 +Removed the UINT32_BIT and UINT16_BIT types that were used for the
8359 +bitfield
4734 8360 flag definitions within the headers for the predefined ACPI tables. These
4735 -have been replaced by UINT8_BIT in order to increase the code portability of
8361 +have been replaced by UINT8_BIT in order to increase the code portability
8362 +of
4736 8363 the subsystem. If the use of UINT8 remains a problem, we may be forced to
4737 8364 eliminate bitfields entirely because of a lack of portability.
4738 8365
4739 -Enhanced the performance of the AcpiUtUpdateObjectReference procedure. This
4740 -is a frequently used function and this improvement increases the performance
8366 +Enhanced the performance of the AcpiUtUpdateObjectReference procedure.
8367 +This
8368 +is a frequently used function and this improvement increases the
8369 +performance
4741 8370 of the entire subsystem (Alexey Starikovskiy).
4742 8371
4743 8372 Fixed several possible memory leaks and the inverse - premature object
4744 8373 deletion (Alexey Starikovskiy).
4745 8374
4746 8375 Code and Data Size: Current and previous core subsystem library sizes are
4747 -shown below. These are the code and data sizes for the acpica.lib produced
8376 +shown below. These are the code and data sizes for the acpica.lib
8377 +produced
4748 8378 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4749 8379 any ACPI driver or OSPM code. The debug version of the code includes the
4750 -debug output trace mechanism and has a much larger code and data size. Note
4751 -that these values will vary depending on the efficiency of the compiler and
8380 +debug output trace mechanism and has a much larger code and data size.
8381 +Note
8382 +that these values will vary depending on the efficiency of the compiler
8383 +and
4752 8384 the compiler options used during generation.
4753 8385
4754 8386 Previous Release:
4755 8387 Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
4756 8388 Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
4757 8389 Current Release:
4758 8390 Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total
4759 8391 Debug Version: 170.0K Code, 69.7K Data, 239.7K Total
4760 8392
4761 8393 ----------------------------------------
4762 8394 24 June 2005. Summary of changes for version 20050624:
4763 8395
4764 8396 1) ACPI CA Core Subsystem:
4765 8397
4766 8398 Modified the new OSL cache interfaces to use ACPI_CACHE_T as the type for
4767 -the host-defined cache object. This allows the OSL implementation to define
8399 +the host-defined cache object. This allows the OSL implementation to
8400 +define
4768 8401 and type this object in any manner desired, simplifying the OSL
4769 8402 implementation. For example, ACPI_CACHE_T is defined as kmem_cache_t for
4770 8403 Linux, and should be defined in the OS-specific header file for other
4771 8404 operating systems as required.
4772 8405
4773 8406 Changed the interface to AcpiOsAcquireObject to directly return the
4774 8407 requested object as the function return (instead of ACPI_STATUS.) This
4775 8408 change was made for performance reasons, since this is the purpose of the
4776 8409 interface in the first place. AcpiOsAcquireObject is now similar to the
4777 8410 AcpiOsAllocate interface.
4778 8411
4779 -Implemented a new AML debugger command named Businfo. This command displays
4780 -information about all devices that have an associate _PRT object. The _ADR,
8412 +Implemented a new AML debugger command named Businfo. This command
8413 +displays
8414 +information about all devices that have an associate _PRT object. The
8415 +_ADR,
4781 8416 _HID, _UID, and _CID are displayed for these devices.
4782 8417
4783 -Modified the initialization sequence in AcpiInitializeSubsystem to call the
4784 -OSL interface AcpiOslInitialize first, before any local initialization. This
8418 +Modified the initialization sequence in AcpiInitializeSubsystem to call
8419 +the
8420 +OSL interface AcpiOslInitialize first, before any local initialization.
8421 +This
4785 8422 change was required because the global initialization now calls OSL
4786 8423 interfaces.
4787 8424
4788 -Enhanced the Dump command to display the entire contents of Package objects
8425 +Enhanced the Dump command to display the entire contents of Package
8426 +objects
4789 8427 (including all sub-objects and their values.)
4790 8428
4791 8429 Restructured the code base to split some files because of size and/or
4792 -because the code logically belonged in a separate file. New files are listed
4793 -below. All makefiles and project files included in the ACPI CA release have
8430 +because the code logically belonged in a separate file. New files are
8431 +listed
8432 +below. All makefiles and project files included in the ACPI CA release
8433 +have
4794 8434 been updated.
4795 8435 utilities/utcache.c /* Local cache interfaces */
4796 8436 utilities/utmutex.c /* Local mutex support */
4797 8437 utilities/utstate.c /* State object support */
4798 8438 interpreter/parser/psloop.c /* Main AML parse loop */
4799 8439
4800 8440 Code and Data Size: Current and previous core subsystem library sizes are
4801 -shown below. These are the code and data sizes for the acpica.lib produced
8441 +shown below. These are the code and data sizes for the acpica.lib
8442 +produced
4802 8443 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4803 8444 any ACPI driver or OSPM code. The debug version of the code includes the
4804 -debug output trace mechanism and has a much larger code and data size. Note
4805 -that these values will vary depending on the efficiency of the compiler and
8445 +debug output trace mechanism and has a much larger code and data size.
8446 +Note
8447 +that these values will vary depending on the efficiency of the compiler
8448 +and
4806 8449 the compiler options used during generation.
4807 8450
4808 8451 Previous Release:
4809 8452 Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
4810 8453 Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
4811 8454 Current Release:
4812 8455 Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total
4813 8456 Debug Version: 165.2K Code, 69.6K Data, 234.8K Total
4814 8457
4815 8458
4816 8459 2) iASL Compiler/Disassembler:
4817 8460
4818 -Fixed a regression introduced in version 20050513 where the use of a Package
8461 +Fixed a regression introduced in version 20050513 where the use of a
8462 +Package
4819 8463 object within a Case() statement caused a compile time exception. The
4820 8464 original behavior has been restored (a Match() operator is emitted.)
4821 8465
4822 8466 ----------------------------------------
4823 8467 17 June 2005. Summary of changes for version 20050617:
4824 8468
4825 8469 1) ACPI CA Core Subsystem:
4826 8470
4827 -Moved the object cache operations into the OS interface layer (OSL) to allow
8471 +Moved the object cache operations into the OS interface layer (OSL) to
8472 +allow
4828 8473 the host OS to handle these operations if desired (for example, the Linux
4829 -OSL will invoke the slab allocator). This support is optional; the compile
4830 -time define ACPI_USE_LOCAL_CACHE may be used to utilize the original cache
8474 +OSL will invoke the slab allocator). This support is optional; the
8475 +compile
8476 +time define ACPI_USE_LOCAL_CACHE may be used to utilize the original
8477 +cache
4831 8478 code in the ACPI CA core. The new OSL interfaces are shown below. See
4832 8479 utalloc.c for an example implementation, and acpiosxf.h for the exact
4833 8480 interface definitions. With assistance from Alexey Starikovskiy.
4834 8481 AcpiOsCreateCache
4835 8482 AcpiOsDeleteCache
4836 8483 AcpiOsPurgeCache
4837 8484 AcpiOsAcquireObject
4838 8485 AcpiOsReleaseObject
4839 8486
4840 -Modified the interfaces to AcpiOsAcquireLock and AcpiOsReleaseLock to return
8487 +Modified the interfaces to AcpiOsAcquireLock and AcpiOsReleaseLock to
8488 +return
4841 8489 and restore a flags parameter. This fits better with many OS lock models.
4842 8490 Note: the current execution state (interrupt handler or not) is no longer
4843 -passed to these interfaces. If necessary, the OSL must determine this state
8491 +passed to these interfaces. If necessary, the OSL must determine this
8492 +state
4844 8493 by itself, a simple and fast operation. With assistance from Alexey
4845 8494 Starikovskiy.
4846 8495
4847 8496 Fixed a problem in the ACPI table handling where a valid XSDT was assumed
4848 -present if the revision of the RSDP was 2 or greater. According to the ACPI
8497 +present if the revision of the RSDP was 2 or greater. According to the
8498 +ACPI
4849 8499 specification, the XSDT is optional in all cases, and the table manager
4850 8500 therefore now checks for both an RSDP >=2 and a valid XSDT pointer.
4851 -Otherwise, the RSDT pointer is used. Some ACPI 2.0 compliant BIOSs contain
8501 +Otherwise, the RSDT pointer is used. Some ACPI 2.0 compliant BIOSs
8502 +contain
4852 8503 only the RSDT.
4853 8504
4854 -Fixed an interpreter problem with the Mid() operator in the case of an input
4855 -string where the resulting output string is of zero length. It now correctly
8505 +Fixed an interpreter problem with the Mid() operator in the case of an
8506 +input
8507 +string where the resulting output string is of zero length. It now
8508 +correctly
4856 8509 returns a valid, null terminated string object instead of a string object
4857 8510 with a null pointer.
4858 8511
4859 -Fixed a problem with the control method argument handling to allow a store
4860 -to an Arg object that already contains an object of type Device. The Device
8512 +Fixed a problem with the control method argument handling to allow a
8513 +store
8514 +to an Arg object that already contains an object of type Device. The
8515 +Device
4861 8516 object is now correctly overwritten. Previously, an error was returned.
4862 8517
4863 8518
4864 -Enhanced the debugger Find command to emit object values in addition to the
4865 -found object pathnames. The output format is the same as the dump namespace
8519 +Enhanced the debugger Find command to emit object values in addition to
8520 +the
8521 +found object pathnames. The output format is the same as the dump
8522 +namespace
4866 8523 command.
4867 8524
4868 -Enhanced the debugger Set command. It now has the ability to set the value
4869 -of any Named integer object in the namespace (Previously, only method locals
8525 +Enhanced the debugger Set command. It now has the ability to set the
8526 +value
8527 +of any Named integer object in the namespace (Previously, only method
8528 +locals
4870 8529 and args could be set.)
4871 8530
4872 8531 Code and Data Size: Current and previous core subsystem library sizes are
4873 -shown below. These are the code and data sizes for the acpica.lib produced
8532 +shown below. These are the code and data sizes for the acpica.lib
8533 +produced
4874 8534 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4875 8535 any ACPI driver or OSPM code. The debug version of the code includes the
4876 -debug output trace mechanism and has a much larger code and data size. Note
4877 -that these values will vary depending on the efficiency of the compiler and
8536 +debug output trace mechanism and has a much larger code and data size.
8537 +Note
8538 +that these values will vary depending on the efficiency of the compiler
8539 +and
4878 8540 the compiler options used during generation.
4879 8541
4880 8542 Previous Release:
4881 8543 Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
4882 8544 Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
4883 8545 Current Release:
4884 8546 Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total
4885 8547 Debug Version: 164.0K Code, 69.1K Data, 233.1K Total
4886 8548
4887 8549
4888 8550 2) iASL Compiler/Disassembler:
4889 8551
4890 -Fixed a regression in the disassembler where if/else/while constructs were
8552 +Fixed a regression in the disassembler where if/else/while constructs
8553 +were
4891 8554 output incorrectly. This problem was introduced in the previous release
4892 8555 (20050526). This problem also affected the single-step disassembly in the
4893 8556 debugger.
4894 8557
4895 -Fixed a problem where compiling the reserved _OSI method would randomly (but
8558 +Fixed a problem where compiling the reserved _OSI method would randomly
8559 +(but
4896 8560 rarely) produce compile errors.
4897 8561
4898 -Enhanced the disassembler to emit compilable code in the face of incorrect
8562 +Enhanced the disassembler to emit compilable code in the face of
8563 +incorrect
4899 8564 AML resource descriptors. If the optional ResourceSourceIndex is present,
4900 8565 but the ResourceSource is not, do not emit the ResourceSourceIndex in the
4901 8566 disassembly. Otherwise, the resulting code cannot be compiled without
4902 8567 errors.
4903 8568
4904 8569 ----------------------------------------
4905 8570 26 May 2005. Summary of changes for version 20050526:
4906 8571
4907 8572 1) ACPI CA Core Subsystem:
4908 8573
4909 8574 Implemented support to execute Type 1 and Type 2 AML opcodes appearing at
4910 -the module level (not within a control method.) These opcodes are executed
4911 -exactly once at the time the table is loaded. This type of code was legal up
4912 -until the release of ACPI 2.0B (2002) and is now supported within ACPI CA in
4913 -order to provide backwards compatibility with earlier BIOS implementations.
8575 +the module level (not within a control method.) These opcodes are
8576 +executed
8577 +exactly once at the time the table is loaded. This type of code was legal
8578 +up
8579 +until the release of ACPI 2.0B (2002) and is now supported within ACPI CA
8580 +in
8581 +order to provide backwards compatibility with earlier BIOS
8582 +implementations.
4914 8583 This eliminates the "Encountered executable code at module level" warning
4915 8584 that was previously generated upon detection of such code.
4916 8585
4917 8586 Fixed a problem in the interpreter where an AE_NOT_FOUND exception could
4918 8587 inadvertently be generated during the lookup of namespace objects in the
4919 -second pass parse of ACPI tables and control methods. It appears that this
4920 -problem could occur during the resolution of forward references to namespace
8588 +second pass parse of ACPI tables and control methods. It appears that
8589 +this
8590 +problem could occur during the resolution of forward references to
8591 +namespace
4921 8592 objects.
4922 8593
4923 8594 Added the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex function,
4924 8595 corresponding to the same #ifdef in the AcpiUtAcquireMutex function. This
4925 8596 allows the deadlock detection debug code to be compiled out in the normal
4926 8597 case, improving mutex performance (and overall subsystem performance)
4927 8598 considerably.
4928 8599
4929 8600 Implemented a handful of miscellaneous fixes for possible memory leaks on
4930 8601 error conditions and error handling control paths. These fixes were
4931 8602 suggested by FreeBSD and the Coverity Prevent source code analysis tool.
4932 8603
4933 -Added a check for a null RSDT pointer in AcpiGetFirmwareTable (tbxfroot.c)
8604 +Added a check for a null RSDT pointer in AcpiGetFirmwareTable
8605 +(tbxfroot.c)
4934 8606 to prevent a fault in this error case.
4935 8607
4936 8608 Code and Data Size: Current and previous core subsystem library sizes are
4937 -shown below. These are the code and data sizes for the acpica.lib produced
8609 +shown below. These are the code and data sizes for the acpica.lib
8610 +produced
4938 8611 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
4939 8612 any ACPI driver or OSPM code. The debug version of the code includes the
4940 -debug output trace mechanism and has a much larger code and data size. Note
4941 -that these values will vary depending on the efficiency of the compiler and
8613 +debug output trace mechanism and has a much larger code and data size.
8614 +Note
8615 +that these values will vary depending on the efficiency of the compiler
8616 +and
4942 8617 the compiler options used during generation.
4943 8618
4944 8619 Previous Release:
4945 8620 Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
4946 8621 Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
4947 8622 Current Release:
4948 8623 Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total
4949 8624 Debug Version: 164.0K Code, 69.3K Data, 233.3K Total
4950 8625
4951 8626
4952 8627 2) iASL Compiler/Disassembler:
4953 8628
4954 8629 Implemented support to allow Type 1 and Type 2 ASL operators to appear at
4955 8630 the module level (not within a control method.) These operators will be
4956 -executed once at the time the table is loaded. This type of code was legal
8631 +executed once at the time the table is loaded. This type of code was
8632 +legal
4957 8633 up until the release of ACPI 2.0B (2002) and is now supported by the iASL
4958 -compiler in order to provide backwards compatibility with earlier BIOS ASL
8634 +compiler in order to provide backwards compatibility with earlier BIOS
8635 +ASL
4959 8636 code.
4960 8637
4961 8638 The ACPI integer width (specified via the table revision ID or the -r
4962 -override, 32 or 64 bits) is now used internally during compile-time constant
8639 +override, 32 or 64 bits) is now used internally during compile-time
8640 +constant
4963 8641 folding to ensure that constants are truncated to 32 bits if necessary.
4964 -Previously, the revision ID value was only emitted in the AML table header.
8642 +Previously, the revision ID value was only emitted in the AML table
8643 +header.
4965 8644
4966 -An error message is now generated for the Mutex and Method operators if the
8645 +An error message is now generated for the Mutex and Method operators if
8646 +the
4967 8647 SyncLevel parameter is outside the legal range of 0 through 15.
4968 8648
4969 -Fixed a problem with the Method operator ParameterTypes list handling (ACPI
4970 -3.0). Previously, more than 2 types or 2 arguments generated a syntax error.
8649 +Fixed a problem with the Method operator ParameterTypes list handling
8650 +(ACPI
8651 +3.0). Previously, more than 2 types or 2 arguments generated a syntax
8652 +error.
4971 8653 The actual underlying implementation of method argument typechecking is
4972 8654 still under development, however.
4973 8655
4974 8656 ----------------------------------------
4975 8657 13 May 2005. Summary of changes for version 20050513:
4976 8658
4977 8659 1) ACPI CA Core Subsystem:
4978 8660
4979 -Implemented support for PCI Express root bridges -- added support for device
8661 +Implemented support for PCI Express root bridges -- added support for
8662 +device
4980 8663 PNP0A08 in the root bridge search within AcpiEvPciConfigRegionSetup.
4981 8664
4982 -The interpreter now automatically truncates incoming 64-bit constants to 32
4983 -bits if currently executing out of a 32-bit ACPI table (Revision < 2). This
8665 +The interpreter now automatically truncates incoming 64-bit constants to
8666 +32
8667 +bits if currently executing out of a 32-bit ACPI table (Revision < 2).
8668 +This
4984 8669 also affects the iASL compiler constant folding. (Note: as per below, the
4985 8670 iASL compiler no longer allows 64-bit constants within 32-bit tables.)
4986 8671
4987 8672 Fixed a problem where string and buffer objects with "static" pointers
4988 8673 (pointers to initialization data within an ACPI table) were not handled
4989 -consistently. The internal object copy operation now always copies the data
8674 +consistently. The internal object copy operation now always copies the
8675 +data
4990 8676 to a newly allocated buffer, regardless of whether the source object is
4991 8677 static or not.
4992 8678
4993 8679 Fixed a problem with the FromBCD operator where an implicit result
4994 -conversion was improperly performed while storing the result to the target
8680 +conversion was improperly performed while storing the result to the
8681 +target
4995 8682 operand. Since this is an "explicit conversion" operator, the implicit
4996 8683 conversion should never be performed on the output.
4997 8684
4998 8685 Fixed a problem with the CopyObject operator where a copy to an existing
4999 -named object did not always completely overwrite the existing object stored
5000 -at name. Specifically, a buffer-to-buffer copy did not delete the existing
8686 +named object did not always completely overwrite the existing object
8687 +stored
8688 +at name. Specifically, a buffer-to-buffer copy did not delete the
8689 +existing
5001 8690 buffer.
5002 8691
5003 -Replaced "InterruptLevel" with "InterruptNumber" in all GPE interfaces and
8692 +Replaced "InterruptLevel" with "InterruptNumber" in all GPE interfaces
8693 +and
5004 8694 structs for consistency.
5005 8695
5006 8696 Code and Data Size: Current and previous core subsystem library sizes are
5007 -shown below. These are the code and data sizes for the acpica.lib produced
8697 +shown below. These are the code and data sizes for the acpica.lib
8698 +produced
5008 8699 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5009 8700 any ACPI driver or OSPM code. The debug version of the code includes the
5010 -debug output trace mechanism and has a much larger code and data size. Note
5011 -that these values will vary depending on the efficiency of the compiler and
8701 +debug output trace mechanism and has a much larger code and data size.
8702 +Note
8703 +that these values will vary depending on the efficiency of the compiler
8704 +and
5012 8705 the compiler options used during generation.
5013 8706
5014 8707 Previous Release:
5015 8708 Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
5016 8709 Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
5017 8710 Current Release: (Same sizes)
5018 8711 Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
5019 8712 Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
5020 8713
5021 8714
5022 8715 2) iASL Compiler/Disassembler:
5023 8716
5024 -The compiler now emits a warning if an attempt is made to generate a 64-bit
5025 -integer constant from within a 32-bit ACPI table (Revision < 2). The integer
8717 +The compiler now emits a warning if an attempt is made to generate a 64-
8718 +bit
8719 +integer constant from within a 32-bit ACPI table (Revision < 2). The
8720 +integer
5026 8721 is truncated to 32 bits.
5027 8722
5028 8723 Fixed a problem with large package objects: if the static length of the
5029 8724 package is greater than 255, the "variable length package" opcode is
5030 8725 emitted. Previously, this caused an error. This requires an update to the
5031 -ACPI spec, since it currently (incorrectly) states that packages larger than
8726 +ACPI spec, since it currently (incorrectly) states that packages larger
8727 +than
5032 8728 255 elements are not allowed.
5033 8729
5034 -The disassembler now correctly handles variable length packages and packages
8730 +The disassembler now correctly handles variable length packages and
8731 +packages
5035 8732 larger than 255 elements.
5036 8733
5037 8734 ----------------------------------------
5038 8735 08 April 2005. Summary of changes for version 20050408:
5039 8736
5040 8737 1) ACPI CA Core Subsystem:
5041 8738
5042 8739 Fixed three cases in the interpreter where an "index" argument to an ASL
5043 8740 function was still (internally) 32 bits instead of the required 64 bits.
5044 8741 This was the Index argument to the Index, Mid, and Match operators.
5045 8742
5046 -The "strupr" function is now permanently local (AcpiUtStrupr), since this is
8743 +The "strupr" function is now permanently local (AcpiUtStrupr), since this
8744 +is
5047 8745 not a POSIX-defined function and not present in most kernel-level C
5048 -libraries. All references to the C library strupr function have been removed
8746 +libraries. All references to the C library strupr function have been
8747 +removed
5049 8748 from the headers.
5050 8749
5051 -Completed the deployment of static functions/prototypes. All prototypes with
5052 -the static attribute have been moved from the headers to the owning C file.
8750 +Completed the deployment of static functions/prototypes. All prototypes
8751 +with
8752 +the static attribute have been moved from the headers to the owning C
8753 +file.
5053 8754
5054 8755 Implemented an extract option (-e) for the AcpiBin utility (AML binary
5055 -utility). This option allows the utility to extract individual ACPI tables
8756 +utility). This option allows the utility to extract individual ACPI
8757 +tables
5056 8758 from the output of AcpiDmp. It provides the same functionality of the
5057 8759 acpixtract.pl perl script without the worry of setting the correct perl
5058 -options. AcpiBin runs on Windows and has not yet been generated/validated in
8760 +options. AcpiBin runs on Windows and has not yet been generated/validated
8761 +in
5059 8762 the Linux/Unix environment (but should be soon).
5060 8763
5061 8764 Updated and fixed the table dump option for AcpiBin (-d). This option
5062 -converts a single ACPI table to a hex/ascii file, similar to the output of
8765 +converts a single ACPI table to a hex/ascii file, similar to the output
8766 +of
5063 8767 AcpiDmp.
5064 8768
5065 8769 Code and Data Size: Current and previous core subsystem library sizes are
5066 -shown below. These are the code and data sizes for the acpica.lib produced
8770 +shown below. These are the code and data sizes for the acpica.lib
8771 +produced
5067 8772 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5068 8773 any ACPI driver or OSPM code. The debug version of the code includes the
5069 -debug output trace mechanism and has a much larger code and data size. Note
5070 -that these values will vary depending on the efficiency of the compiler and
8774 +debug output trace mechanism and has a much larger code and data size.
8775 +Note
8776 +that these values will vary depending on the efficiency of the compiler
8777 +and
5071 8778 the compiler options used during generation.
5072 8779
5073 8780 Previous Release:
5074 8781 Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
5075 8782 Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
5076 8783 Current Release:
5077 8784 Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total
5078 8785 Debug Version: 163.7K Code, 69.3K Data, 233.0K Total
5079 8786
5080 8787
5081 8788 2) iASL Compiler/Disassembler:
5082 8789
5083 -Disassembler fix: Added a check to ensure that the table length found in the
5084 -ACPI table header within the input file is not longer than the actual input
8790 +Disassembler fix: Added a check to ensure that the table length found in
8791 +the
8792 +ACPI table header within the input file is not longer than the actual
8793 +input
5085 8794 file size. This indicates some kind of file or table corruption.
5086 8795
5087 8796 ----------------------------------------
5088 8797 29 March 2005. Summary of changes for version 20050329:
5089 8798
5090 8799 1) ACPI CA Core Subsystem:
5091 8800
5092 -An error is now generated if an attempt is made to create a Buffer Field of
8801 +An error is now generated if an attempt is made to create a Buffer Field
8802 +of
5093 8803 length zero (A CreateField with a length operand of zero.)
5094 8804
5095 -The interpreter now issues a warning whenever executable code at the module
8805 +The interpreter now issues a warning whenever executable code at the
8806 +module
5096 8807 level is detected during ACPI table load. This will give some idea of the
5097 8808 prevalence of this type of code.
5098 8809
5099 8810 Implemented support for references to named objects (other than control
5100 8811 methods) within package objects.
5101 8812
5102 -Enhanced package object output for the debug object. Package objects are now
8813 +Enhanced package object output for the debug object. Package objects are
8814 +now
5103 8815 completely dumped, showing all elements.
5104 8816
5105 8817 Enhanced miscellaneous object output for the debug object. Any object can
5106 8818 now be written to the debug object (for example, a device object can be
5107 8819 written, and the type of the object will be displayed.)
5108 8820
5109 -The "static" qualifier has been added to all local functions across both the
8821 +The "static" qualifier has been added to all local functions across both
8822 +the
5110 8823 core subsystem and the iASL compiler.
5111 8824
5112 8825 The number of "long" lines (> 80 chars) within the source has been
5113 8826 significantly reduced, by about 1/3.
5114 8827
5115 8828 Cleaned up all header files to ensure that all CA/iASL functions are
5116 8829 prototyped (even static functions) and the formatting is consistent.
5117 8830
5118 8831 Two new header files have been added, acopcode.h and acnames.h.
5119 8832
5120 8833 Removed several obsolete functions that were no longer used.
5121 8834
5122 8835 Code and Data Size: Current and previous core subsystem library sizes are
5123 -shown below. These are the code and data sizes for the acpica.lib produced
8836 +shown below. These are the code and data sizes for the acpica.lib
8837 +produced
5124 8838 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5125 8839 any ACPI driver or OSPM code. The debug version of the code includes the
5126 -debug output trace mechanism and has a much larger code and data size. Note
5127 -that these values will vary depending on the efficiency of the compiler and
8840 +debug output trace mechanism and has a much larger code and data size.
8841 +Note
8842 +that these values will vary depending on the efficiency of the compiler
8843 +and
5128 8844 the compiler options used during generation.
5129 8845
5130 8846 Previous Release:
5131 8847 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5132 8848 Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
5133 8849 Current Release:
5134 8850 Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total
5135 8851 Debug Version: 163.5K Code, 69.3K Data, 232.8K Total
5136 8852
5137 8853
5138 8854
5139 8855 2) iASL Compiler/Disassembler:
5140 8856
5141 8857 Fixed a problem with the resource descriptor generation/support. For the
5142 -ResourceSourceIndex and the ResourceSource fields, both must be present, or
8858 +ResourceSourceIndex and the ResourceSource fields, both must be present,
8859 +or
5143 8860 both must be not present - can't have one without the other.
5144 8861
5145 -The compiler now returns non-zero from the main procedure if any errors have
8862 +The compiler now returns non-zero from the main procedure if any errors
8863 +have
5146 8864 occurred during the compilation.
5147 8865
5148 8866
5149 8867 ----------------------------------------
5150 8868 09 March 2005. Summary of changes for version 20050309:
5151 8869
5152 8870 1) ACPI CA Core Subsystem:
5153 8871
5154 -The string-to-buffer implicit conversion code has been modified again after
5155 -a change to the ACPI specification. In order to match the behavior of the
5156 -other major ACPI implementation, the target buffer is no longer truncated if
8872 +The string-to-buffer implicit conversion code has been modified again
8873 +after
8874 +a change to the ACPI specification. In order to match the behavior of
8875 +the
8876 +other major ACPI implementation, the target buffer is no longer truncated
8877 +if
5157 8878 the source string is smaller than an existing target buffer. This change
5158 8879 requires an update to the ACPI spec, and should eliminate the recent
5159 8880 AE_AML_BUFFER_LIMIT issues.
5160 8881
5161 -The "implicit return" support was rewritten to a new algorithm that solves
5162 -the general case. Rather than attempt to determine when a method is about to
5163 -exit, the result of every ASL operator is saved momentarily until the very
8882 +The "implicit return" support was rewritten to a new algorithm that
8883 +solves
8884 +the general case. Rather than attempt to determine when a method is about
8885 +to
8886 +exit, the result of every ASL operator is saved momentarily until the
8887 +very
5164 8888 next ASL operator is executed. Therefore, no matter how the method exits,
5165 8889 there will always be a saved implicit return value. This feature is only
5166 -enabled with the AcpiGbl_EnableInterpreterSlack flag, and should eliminate
8890 +enabled with the AcpiGbl_EnableInterpreterSlack flag, and should
8891 +eliminate
5167 8892 AE_AML_NO_RETURN_VALUE errors when enabled.
5168 8893
5169 -Implemented implicit conversion support for the predicate (operand) of the
5170 -If, Else, and While operators. String and Buffer arguments are automatically
8894 +Implemented implicit conversion support for the predicate (operand) of
8895 +the
8896 +If, Else, and While operators. String and Buffer arguments are
8897 +automatically
5171 8898 converted to Integers.
5172 8899
5173 8900 Changed the string-to-integer conversion behavior to match the new ACPI
5174 8901 errata: "If no integer object exists, a new integer is created. The ASCII
5175 8902 string is interpreted as a hexadecimal constant. Each string character is
5176 8903 interpreted as a hexadecimal value ('0'-'9', 'A'-'F', 'a', 'f'), starting
5177 -with the first character as the most significant digit, and ending with the
5178 -first non-hexadecimal character or end-of-string." This means that the first
8904 +with the first character as the most significant digit, and ending with
8905 +the
8906 +first non-hexadecimal character or end-of-string." This means that the
8907 +first
5179 8908 non-hex character terminates the conversion and this is the code that was
5180 8909 changed.
5181 8910
5182 -Fixed a problem where the ObjectType operator would fail (fault) when used
8911 +Fixed a problem where the ObjectType operator would fail (fault) when
8912 +used
5183 8913 on an Index of a Package which pointed to a null package element. The
5184 8914 operator now properly returns zero (Uninitialized) in this case.
5185 8915
5186 8916 Fixed a problem where the While operator used excessive memory by not
5187 -properly popping the result stack during execution. There was no memory leak
8917 +properly popping the result stack during execution. There was no memory
8918 +leak
5188 8919 after execution, however. (Code provided by Valery Podrezov.)
5189 8920
5190 -Fixed a problem where references to control methods within Package objects
8921 +Fixed a problem where references to control methods within Package
8922 +objects
5191 8923 caused the method to be invoked, instead of producing a reference object
5192 8924 pointing to the method.
5193 8925
5194 -Restructured and simplified the pswalk.c module (AcpiPsDeleteParseTree) to
8926 +Restructured and simplified the pswalk.c module (AcpiPsDeleteParseTree)
8927 +to
5195 8928 improve performance and reduce code size. (Code provided by Alexey
5196 8929 Starikovskiy.)
5197 8930
5198 8931 Code and Data Size: Current and previous core subsystem library sizes are
5199 -shown below. These are the code and data sizes for the acpica.lib produced
8932 +shown below. These are the code and data sizes for the acpica.lib
8933 +produced
5200 8934 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5201 8935 any ACPI driver or OSPM code. The debug version of the code includes the
5202 -debug output trace mechanism and has a much larger code and data size. Note
5203 -that these values will vary depending on the efficiency of the compiler and
8936 +debug output trace mechanism and has a much larger code and data size.
8937 +Note
8938 +that these values will vary depending on the efficiency of the compiler
8939 +and
5204 8940 the compiler options used during generation.
5205 8941
5206 8942 Previous Release:
5207 8943 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5208 8944 Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
5209 8945 Current Release:
5210 8946 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5211 8947 Debug Version: 165.4K Code, 69.7K Data, 236.1K Total
5212 8948
5213 8949
5214 8950 2) iASL Compiler/Disassembler:
5215 8951
5216 8952 Fixed a problem with the Return operator with no arguments. Since the AML
5217 -grammar for the byte encoding requires an operand for the Return opcode, the
8953 +grammar for the byte encoding requires an operand for the Return opcode,
8954 +the
5218 8955 compiler now emits a Return(Zero) for this case. An ACPI specification
5219 8956 update has been written for this case.
5220 8957
5221 8958 For tables other than the DSDT, namepath optimization is automatically
5222 -disabled. This is because SSDTs can be loaded anywhere in the namespace, the
8959 +disabled. This is because SSDTs can be loaded anywhere in the namespace,
8960 +the
5223 8961 compiler has no knowledge of where, and thus cannot optimize namepaths.
5224 8962
5225 8963 Added "ProcessorObj" to the ObjectTypeKeyword list. This object type was
5226 8964 inadvertently omitted from the ACPI specification, and will require an
5227 8965 update to the spec.
5228 8966
5229 -The source file scan for ASCII characters is now optional (-a). This change
8967 +The source file scan for ASCII characters is now optional (-a). This
8968 +change
5230 8969 was made because some vendors place non-ascii characters within comments.
5231 8970 However, the scan is simply a brute-force byte compare to ensure all
5232 8971 characters in the file are in the range 0x00 to 0x7F.
5233 8972
5234 8973 Fixed a problem with the CondRefOf operator where the compiler was
5235 -inappropriately checking for the existence of the target. Since the point of
8974 +inappropriately checking for the existence of the target. Since the point
8975 +of
5236 8976 the operator is to check for the existence of the target at run-time, the
5237 8977 compiler no longer checks for the target existence.
5238 8978
5239 8979 Fixed a problem where errors generated from the internal AML interpreter
5240 8980 during constant folding were not handled properly, causing a fault.
5241 8981
5242 8982 Fixed a problem with overly aggressive range checking for the Stall
5243 -operator. The valid range (max 255) is now only checked if the operand is of
8983 +operator. The valid range (max 255) is now only checked if the operand is
8984 +of
5244 8985 type Integer. All other operand types cannot be statically checked.
5245 8986
5246 -Fixed a problem where control method references within the RefOf, DeRefOf,
5247 -and ObjectType operators were not treated properly. They are now treated as
8987 +Fixed a problem where control method references within the RefOf,
8988 +DeRefOf,
8989 +and ObjectType operators were not treated properly. They are now treated
8990 +as
5248 8991 actual references, not method invocations.
5249 8992
5250 -Fixed and enhanced the "list namespace" option (-ln). This option was broken
8993 +Fixed and enhanced the "list namespace" option (-ln). This option was
8994 +broken
5251 8995 a number of releases ago.
5252 8996
5253 -Improved error handling for the Field, IndexField, and BankField operators.
8997 +Improved error handling for the Field, IndexField, and BankField
8998 +operators.
5254 8999 The compiler now cleanly reports and recovers from errors in the field
5255 9000 component (FieldUnit) list.
5256 9001
5257 9002 Fixed a disassembler problem where the optional ResourceDescriptor fields
5258 9003 TRS and TTP were not always handled correctly.
5259 9004
5260 9005 Disassembler - Comments in output now use "//" instead of "/*"
5261 9006
5262 9007 ----------------------------------------
5263 9008 28 February 2005. Summary of changes for version 20050228:
5264 9009
5265 9010 1) ACPI CA Core Subsystem:
5266 9011
5267 9012 Fixed a problem where the result of an Index() operator (an object
5268 -reference) must increment the reference count on the target object for the
9013 +reference) must increment the reference count on the target object for
9014 +the
5269 9015 life of the object reference.
5270 9016
5271 9017 Implemented AML Interpreter and Debugger support for the new ACPI 3.0
5272 -Extended Address (IO, Memory, Space), QwordSpace, DwordSpace, and WordSpace
9018 +Extended Address (IO, Memory, Space), QwordSpace, DwordSpace, and
9019 +WordSpace
5273 9020 resource descriptors.
5274 9021
5275 9022 Implemented support in the _OSI method for the ACPI 3.0 "Extended Address
5276 -Space Descriptor" string, indicating interpreter support for the descriptors
9023 +Space Descriptor" string, indicating interpreter support for the
9024 +descriptors
5277 9025 above.
5278 9026
5279 9027 Implemented header support for the new ACPI 3.0 FADT flag bits.
5280 9028
5281 -Implemented header support for the new ACPI 3.0 PCI Express bits for the PM1
9029 +Implemented header support for the new ACPI 3.0 PCI Express bits for the
9030 +PM1
5282 9031 status/enable registers.
5283 9032
5284 9033 Updated header support for the MADT processor local Apic struct and MADT
5285 9034 platform interrupt source struct for new ACPI 3.0 fields.
5286 9035
5287 9036 Implemented header support for the SRAT and SLIT ACPI tables.
5288 9037
5289 -Implemented the -s switch in AcpiExec to enable the "InterpreterSlack" flag
9038 +Implemented the -s switch in AcpiExec to enable the "InterpreterSlack"
9039 +flag
5290 9040 at runtime.
5291 9041
5292 9042 Code and Data Size: Current and previous core subsystem library sizes are
5293 -shown below. These are the code and data sizes for the acpica.lib produced
9043 +shown below. These are the code and data sizes for the acpica.lib
9044 +produced
5294 9045 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5295 9046 any ACPI driver or OSPM code. The debug version of the code includes the
5296 -debug output trace mechanism and has a much larger code and data size. Note
5297 -that these values will vary depending on the efficiency of the compiler and
9047 +debug output trace mechanism and has a much larger code and data size.
9048 +Note
9049 +that these values will vary depending on the efficiency of the compiler
9050 +and
5298 9051 the compiler options used during generation.
5299 9052
5300 9053 Previous Release:
5301 9054 Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
5302 9055 Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
5303 9056 Current Release:
5304 9057 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5305 9058 Debug Version: 165.4K Code, 69.6K Data, 236.0K Total
5306 9059
5307 9060
5308 9061 2) iASL Compiler/Disassembler:
5309 9062
5310 -Fixed a problem with the internal 64-bit String-to-integer conversion with
9063 +Fixed a problem with the internal 64-bit String-to-integer conversion
9064 +with
5311 9065 strings less than two characters long.
5312 9066
5313 9067 Fixed a problem with constant folding where the result of the Index()
5314 -operator can not be considered a constant. This means that Index() cannot be
9068 +operator can not be considered a constant. This means that Index() cannot
9069 +be
5315 9070 a type3 opcode and this will require an update to the ACPI specification.
5316 9071
5317 9072 Disassembler: Implemented support for the TTP, MTP, and TRS resource
5318 -descriptor fields. These fields were inadvertently ignored and not output in
9073 +descriptor fields. These fields were inadvertently ignored and not output
9074 +in
5319 9075 the disassembly of the resource descriptor.
5320 9076
5321 9077
5322 9078 ----------------------------------------
5323 9079 11 February 2005. Summary of changes for version 20050211:
5324 9080
5325 9081 1) ACPI CA Core Subsystem:
5326 9082
5327 9083 Implemented ACPI 3.0 support for implicit conversion within the Match()
5328 -operator. MatchObjects can now be of type integer, buffer, or string instead
5329 -of just type integer. Package elements are implicitly converted to the type
9084 +operator. MatchObjects can now be of type integer, buffer, or string
9085 +instead
9086 +of just type integer. Package elements are implicitly converted to the
9087 +type
5330 9088 of the MatchObject. This change aligns the behavior of Match() with the
5331 -behavior of the other logical operators (LLess(), etc.) It also requires an
9089 +behavior of the other logical operators (LLess(), etc.) It also requires
9090 +an
5332 9091 errata change to the ACPI specification as this support was intended for
5333 9092 ACPI 3.0, but was inadvertently omitted.
5334 9093
5335 -Fixed a problem with the internal implicit "to buffer" conversion. Strings
5336 -that are converted to buffers will cause buffer truncation if the string is
5337 -smaller than the target buffer. Integers that are converted to buffers will
9094 +Fixed a problem with the internal implicit "to buffer" conversion.
9095 +Strings
9096 +that are converted to buffers will cause buffer truncation if the string
9097 +is
9098 +smaller than the target buffer. Integers that are converted to buffers
9099 +will
5338 9100 not cause buffer truncation, only zero extension (both as per the ACPI
5339 9101 spec.) The problem was introduced when code was added to truncate the
5340 -buffer, but this should not be performed in all cases, only the string case.
9102 +buffer, but this should not be performed in all cases, only the string
9103 +case.
5341 9104
5342 -Fixed a problem with the Buffer and Package operators where the interpreter
9105 +Fixed a problem with the Buffer and Package operators where the
9106 +interpreter
5343 9107 would get confused if two such operators were used as operands to an ASL
5344 9108 operator (such as LLess(Buffer(1){0},Buffer(1){1}). The internal result
5345 -stack was not being popped after the execution of these operators, resulting
9109 +stack was not being popped after the execution of these operators,
9110 +resulting
5346 9111 in an AE_NO_RETURN_VALUE exception.
5347 9112
5348 9113 Fixed a problem with constructs of the form Store(Index(...),...). The
5349 -reference object returned from Index was inadvertently resolved to an actual
5350 -value. This problem was introduced in version 20050114 when the behavior of
9114 +reference object returned from Index was inadvertently resolved to an
9115 +actual
9116 +value. This problem was introduced in version 20050114 when the behavior
9117 +of
5351 9118 Store() was modified to restrict the object types that can be used as the
5352 9119 source operand (to match the ACPI specification.)
5353 9120
5354 9121 Reduced excessive stack use within the AcpiGetObjectInfo procedure.
5355 9122
5356 9123 Added a fix to aclinux.h to allow generation of AcpiExec on Linux.
5357 9124
5358 9125 Updated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS struct.
5359 9126
5360 9127 Code and Data Size: Current and previous core subsystem library sizes are
5361 -shown below. These are the code and data sizes for the acpica.lib produced
9128 +shown below. These are the code and data sizes for the acpica.lib
9129 +produced
5362 9130 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5363 9131 any ACPI driver or OSPM code. The debug version of the code includes the
5364 -debug output trace mechanism and has a much larger code and data size. Note
5365 -that these values will vary depending on the efficiency of the compiler and
9132 +debug output trace mechanism and has a much larger code and data size.
9133 +Note
9134 +that these values will vary depending on the efficiency of the compiler
9135 +and
5366 9136 the compiler options used during generation.
5367 9137
5368 9138 Previous Release:
5369 9139 Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
5370 9140 Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
5371 9141 Current Release:
5372 9142 Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total
5373 9143 Debug Version: 164.9K Code, 69.2K Data, 234.1K Total
5374 9144
5375 9145
5376 9146 2) iASL Compiler/Disassembler:
5377 9147
5378 9148 Fixed a code generation problem in the constant folding optimization code
5379 9149 where incorrect code was generated if a constant was reduced to a buffer
5380 9150 object (i.e., a reduced type 5 opcode.)
5381 9151
5382 9152 Fixed a typechecking problem for the ToBuffer operator. Caused by an
5383 9153 incorrect return type in the internal opcode information table.
5384 9154
5385 9155 ----------------------------------------
5386 9156 25 January 2005. Summary of changes for version 20050125:
↓ open down ↓ |
11 lines elided |
↑ open up ↑ |
5387 9157
5388 9158 1) ACPI CA Core Subsystem:
5389 9159
5390 9160 Fixed a recently introduced problem with the Global Lock where the
5391 9161 underlying semaphore was not created. This problem was introduced in
5392 9162 version 20050114, and caused an AE_AML_NO_OPERAND exception during an
5393 9163 Acquire() operation on _GL.
5394 9164
5395 9165 The local object cache is now optional, and is disabled by default. Both
5396 9166 AcpiExec and the iASL compiler enable the cache because they run in user
5397 -mode and this enhances their performance. #define ACPI_ENABLE_OBJECT_CACHE
9167 +mode and this enhances their performance. #define
9168 +ACPI_ENABLE_OBJECT_CACHE
5398 9169 to enable the local cache.
5399 9170
5400 -Fixed an issue in the internal function AcpiUtEvaluateObject concerning the
5401 -optional "implicit return" support where an error was returned if no return
5402 -object was expected, but one was implicitly returned. AE_OK is now returned
9171 +Fixed an issue in the internal function AcpiUtEvaluateObject concerning
9172 +the
9173 +optional "implicit return" support where an error was returned if no
9174 +return
9175 +object was expected, but one was implicitly returned. AE_OK is now
9176 +returned
5403 9177 in this case and the implicitly returned object is deleted.
5404 -AcpiUtEvaluateObject is only occasionally used, and only to execute reserved
9178 +AcpiUtEvaluateObject is only occasionally used, and only to execute
9179 +reserved
5405 9180 methods such as _STA and _INI where the return type is known up front.
5406 9181
5407 -Fixed a few issues with the internal convert-to-integer code. It now returns
9182 +Fixed a few issues with the internal convert-to-integer code. It now
9183 +returns
5408 9184 an error if an attempt is made to convert a null string, a string of only
5409 -blanks/tabs, or a zero-length buffer. This affects both implicit conversion
9185 +blanks/tabs, or a zero-length buffer. This affects both implicit
9186 +conversion
5410 9187 and explicit conversion via the ToInteger() operator.
5411 9188
5412 -The internal debug code in AcpiUtAcquireMutex has been commented out. It is
5413 -not needed for normal operation and should increase the performance of the
5414 -entire subsystem. The code remains in case it is needed for debug purposes
9189 +The internal debug code in AcpiUtAcquireMutex has been commented out. It
9190 +is
9191 +not needed for normal operation and should increase the performance of
9192 +the
9193 +entire subsystem. The code remains in case it is needed for debug
9194 +purposes
5415 9195 again.
5416 9196
5417 -The AcpiExec source and makefile are included in the Unix/Linux package for
9197 +The AcpiExec source and makefile are included in the Unix/Linux package
9198 +for
5418 9199 the first time.
5419 9200
5420 9201 Code and Data Size: Current and previous core subsystem library sizes are
5421 -shown below. These are the code and data sizes for the acpica.lib produced
9202 +shown below. These are the code and data sizes for the acpica.lib
9203 +produced
5422 9204 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5423 9205 any ACPI driver or OSPM code. The debug version of the code includes the
5424 -debug output trace mechanism and has a much larger code and data size. Note
5425 -that these values will vary depending on the efficiency of the compiler and
9206 +debug output trace mechanism and has a much larger code and data size.
9207 +Note
9208 +that these values will vary depending on the efficiency of the compiler
9209 +and
5426 9210 the compiler options used during generation.
5427 9211
5428 9212 Previous Release:
5429 9213 Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
5430 9214 Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
5431 9215 Current Release:
5432 9216 Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total
5433 9217 Debug Version: 164.8K Code, 69.2K Data, 234.0K Total
5434 9218
5435 9219 2) iASL Compiler/Disassembler:
5436 9220
5437 -Switch/Case support: A warning is now issued if the type of the Switch value
9221 +Switch/Case support: A warning is now issued if the type of the Switch
9222 +value
5438 9223 cannot be determined at compile time. For example, Switch(Arg0) will
5439 -generate the warning, and the type is assumed to be an integer. As per the
5440 -ACPI spec, use a construct such as Switch(ToInteger(Arg0)) to eliminate the
9224 +generate the warning, and the type is assumed to be an integer. As per
9225 +the
9226 +ACPI spec, use a construct such as Switch(ToInteger(Arg0)) to eliminate
9227 +the
5441 9228 warning.
5442 9229
5443 9230 Switch/Case support: Implemented support for buffer and string objects as
5444 9231 the switch value. This is an ACPI 3.0 feature, now that LEqual supports
5445 9232 buffers and strings.
5446 9233
5447 -Switch/Case support: The emitted code for the LEqual() comparisons now uses
5448 -the switch value as the first operand, not the second. The case value is now
9234 +Switch/Case support: The emitted code for the LEqual() comparisons now
9235 +uses
9236 +the switch value as the first operand, not the second. The case value is
9237 +now
5449 9238 the second operand, and this allows the case value to be implicitly
5450 9239 converted to the type of the switch value, not the other way around.
5451 9240
5452 -Switch/Case support: Temporary variables are now emitted immediately within
5453 -the control method, not at the global level. This means that there are now
5454 -36 temps available per-method, not 36 temps per-module as was the case with
9241 +Switch/Case support: Temporary variables are now emitted immediately
9242 +within
9243 +the control method, not at the global level. This means that there are
9244 +now
9245 +36 temps available per-method, not 36 temps per-module as was the case
9246 +with
5455 9247 the earlier implementation (_T_0 through _T_9 and _T_A through _T_Z.)
5456 9248
5457 9249 ----------------------------------------
5458 9250 14 January 2005. Summary of changes for version 20050114:
5459 9251
5460 9252 Added 2005 copyright to all module headers. This affects every module in
5461 9253 the core subsystem, iASL compiler, and the utilities.
5462 9254
5463 9255 1) ACPI CA Core Subsystem:
5464 9256
5465 9257 Fixed an issue with the String-to-Buffer conversion code where the string
5466 -null terminator was not included in the buffer after conversion, but there
5467 -is existing ASL that assumes the string null terminator is included. This is
9258 +null terminator was not included in the buffer after conversion, but
9259 +there
9260 +is existing ASL that assumes the string null terminator is included. This
9261 +is
5468 9262 the root of the ACPI_AML_BUFFER_LIMIT regression. This problem was
5469 9263 introduced in the previous version when the code was updated to correctly
5470 -set the converted buffer size as per the ACPI specification. The ACPI spec
5471 -is ambiguous and will be updated to specify that the null terminator must be
9264 +set the converted buffer size as per the ACPI specification. The ACPI
9265 +spec
9266 +is ambiguous and will be updated to specify that the null terminator must
9267 +be
5472 9268 included in the converted buffer. This also affects the ToBuffer() ASL
5473 9269 operator.
5474 9270
5475 9271 Fixed a problem with the Mid() ASL/AML operator where it did not work
5476 -correctly on Buffer objects. Newly created sub-buffers were not being marked
9272 +correctly on Buffer objects. Newly created sub-buffers were not being
9273 +marked
5477 9274 as initialized.
5478 9275
5479 9276
5480 9277 Fixed a problem in AcpiTbFindTable where incorrect string compares were
5481 -performed on the OemId and OemTableId table header fields. These fields are
9278 +performed on the OemId and OemTableId table header fields. These fields
9279 +are
5482 9280 not null terminated, so strncmp is now used instead of strcmp.
5483 9281
5484 9282 Implemented a restriction on the Store() ASL/AML operator to align the
5485 -behavior with the ACPI specification. Previously, any object could be used
5486 -as the source operand. Now, the only objects that may be used are Integers,
9283 +behavior with the ACPI specification. Previously, any object could be
9284 +used
9285 +as the source operand. Now, the only objects that may be used are
9286 +Integers,
5487 9287 Buffers, Strings, Packages, Object References, and DDB Handles. If
5488 9288 necessary, the original behavior can be restored by enabling the
5489 9289 EnableInterpreterSlack flag.
5490 9290
5491 -Enhanced the optional "implicit return" support to allow an implicit return
9291 +Enhanced the optional "implicit return" support to allow an implicit
9292 +return
5492 9293 value from methods that are invoked externally via the AcpiEvaluateObject
5493 9294 interface. This enables implicit returns from the _STA and _INI methods,
5494 9295 for example.
5495 9296
5496 -Changed the Revision() ASL/AML operator to return the current version of the
5497 -AML interpreter, in the YYYYMMDD format. Previously, it incorrectly returned
9297 +Changed the Revision() ASL/AML operator to return the current version of
9298 +the
9299 +AML interpreter, in the YYYYMMDD format. Previously, it incorrectly
9300 +returned
5498 9301 the supported ACPI version (This is the function of the _REV method).
5499 9302
5500 -Updated the _REV predefined method to return the currently supported version
9303 +Updated the _REV predefined method to return the currently supported
9304 +version
5501 9305 of ACPI, now 3.
5502 9306
5503 9307 Implemented batch mode option for the AcpiExec utility (-b).
5504 9308
5505 9309 Code and Data Size: Current and previous core subsystem library sizes are
5506 -shown below. These are the code and data sizes for the acpica.lib produced
9310 +shown below. These are the code and data sizes for the acpica.lib
9311 +produced
5507 9312 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5508 9313 any ACPI driver or OSPM code. The debug version of the code includes the
5509 -debug output trace mechanism and has a much larger code and data size. Note
5510 -that these values will vary depending on the efficiency of the compiler and
9314 +debug output trace mechanism and has a much larger code and data size.
9315 +Note
9316 +that these values will vary depending on the efficiency of the compiler
9317 +and
5511 9318 the compiler options used during generation.
5512 9319
5513 9320 Previous Release:
5514 9321 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5515 9322 Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
5516 9323 Current Release:
5517 9324 Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total
5518 9325 Debug Version: 165.4K Code, 69.4K Data, 234.8K Total
5519 9326
5520 9327 ----------------------------------------
5521 9328 10 December 2004. Summary of changes for version 20041210:
5522 9329
5523 9330 ACPI 3.0 support is nearing completion in both the iASL compiler and the
5524 9331 ACPI CA core subsystem.
5525 9332
5526 9333 1) ACPI CA Core Subsystem:
5527 9334
5528 -Fixed a problem in the ToDecimalString operator where the resulting string
9335 +Fixed a problem in the ToDecimalString operator where the resulting
9336 +string
5529 9337 length was incorrectly calculated. The length is now calculated exactly,
5530 9338 eliminating incorrect AE_STRING_LIMIT exceptions.
5531 9339
5532 -Fixed a problem in the ToHexString operator to allow a maximum 200 character
9340 +Fixed a problem in the ToHexString operator to allow a maximum 200
9341 +character
5533 9342 string to be produced.
5534 9343
5535 -Fixed a problem in the internal string-to-buffer and buffer-to-buffer copy
9344 +Fixed a problem in the internal string-to-buffer and buffer-to-buffer
9345 +copy
5536 9346 routine where the length of the resulting buffer was not truncated to the
5537 9347 new size (if the target buffer already existed).
5538 9348
5539 9349 Code and Data Size: Current and previous core subsystem library sizes are
5540 -shown below. These are the code and data sizes for the acpica.lib produced
9350 +shown below. These are the code and data sizes for the acpica.lib
9351 +produced
5541 9352 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5542 9353 any ACPI driver or OSPM code. The debug version of the code includes the
5543 -debug output trace mechanism and has a much larger code and data size. Note
5544 -that these values will vary depending on the efficiency of the compiler and
9354 +debug output trace mechanism and has a much larger code and data size.
9355 +Note
9356 +that these values will vary depending on the efficiency of the compiler
9357 +and
5545 9358 the compiler options used during generation.
5546 9359
5547 9360 Previous Release:
5548 9361 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5549 9362 Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
5550 9363 Current Release:
5551 9364 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5552 9365 Debug Version: 165.3K Code, 69.4K Data, 234.7K Total
5553 9366
5554 9367
5555 9368 2) iASL Compiler/Disassembler:
5556 9369
5557 9370 Implemented the new ACPI 3.0 resource template macros - DWordSpace,
5558 9371 ExtendedIO, ExtendedMemory, ExtendedSpace, QWordSpace, and WordSpace.
5559 9372 Includes support in the disassembler.
5560 9373
5561 -Implemented support for the new (ACPI 3.0) parameter to the Register macro,
9374 +Implemented support for the new (ACPI 3.0) parameter to the Register
9375 +macro,
5562 9376 AccessSize.
5563 9377
5564 9378 Fixed a problem where the _HE resource name for the Interrupt macro was
5565 9379 referencing bit 0 instead of bit 1.
5566 9380
5567 9381 Implemented check for maximum 255 interrupts in the Interrupt macro.
5568 9382
5569 9383 Fixed a problem with the predefined resource descriptor names where
5570 9384 incorrect AML code was generated if the offset within the resource buffer
5571 9385 was 0 or 1. The optimizer shortened the AML code to a single byte opcode
5572 9386 but did not update the surrounding package lengths.
5573 9387
5574 -Changes to the Dma macro: All channels within the channel list must be in
9388 +Changes to the Dma macro: All channels within the channel list must be
9389 +in
5575 9390 the range 0-7. Maximum 8 channels can be specified. BusMaster operand is
5576 9391 optional (default is BusMaster).
5577 9392
5578 9393 Implemented check for maximum 7 data bytes for the VendorShort macro.
5579 9394
5580 -The ReadWrite parameter is now optional for the Memory32 and similar macros.
9395 +The ReadWrite parameter is now optional for the Memory32 and similar
9396 +macros.
5581 9397
5582 9398 ----------------------------------------
5583 9399 03 December 2004. Summary of changes for version 20041203:
5584 9400
5585 9401 1) ACPI CA Core Subsystem:
5586 9402
5587 -The low-level field insertion/extraction code (exfldio) has been completely
9403 +The low-level field insertion/extraction code (exfldio) has been
9404 +completely
5588 9405 rewritten to eliminate unnecessary complexity, bugs, and boundary
5589 9406 conditions.
5590 9407
5591 -Fixed a problem in the ToInteger, ToBuffer, ToHexString, and ToDecimalString
9408 +Fixed a problem in the ToInteger, ToBuffer, ToHexString, and
9409 +ToDecimalString
5592 9410 operators where the input operand could be inadvertently deleted if no
5593 9411 conversion was necessary (e.g., if the input to ToInteger was an Integer
5594 9412 object.)
5595 9413
5596 -Fixed a problem with the ToDecimalString and ToHexString where an incorrect
9414 +Fixed a problem with the ToDecimalString and ToHexString where an
9415 +incorrect
5597 9416 exception code was returned if the resulting string would be > 200 chars.
5598 9417 AE_STRING_LIMIT is now returned.
5599 9418
5600 9419 Fixed a problem with the Concatenate operator where AE_OK was always
5601 9420 returned, even if the operation failed.
5602 9421
5603 9422 Fixed a problem in oswinxf (used by AcpiExec and iASL) to allow > 128
5604 9423 semaphores to be allocated.
5605 9424
5606 9425 Code and Data Size: Current and previous core subsystem library sizes are
5607 -shown below. These are the code and data sizes for the acpica.lib produced
9426 +shown below. These are the code and data sizes for the acpica.lib
9427 +produced
5608 9428 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5609 9429 any ACPI driver or OSPM code. The debug version of the code includes the
5610 -debug output trace mechanism and has a much larger code and data size. Note
5611 -that these values will vary depending on the efficiency of the compiler and
9430 +debug output trace mechanism and has a much larger code and data size.
9431 +Note
9432 +that these values will vary depending on the efficiency of the compiler
9433 +and
5612 9434 the compiler options used during generation.
5613 9435
5614 9436 Previous Release:
5615 9437 Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
5616 9438 Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
5617 9439 Current Release:
5618 9440 Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total
5619 9441 Debug Version: 164.7K Code, 68.5K Data, 233.2K Total
5620 9442
5621 9443
5622 9444 2) iASL Compiler/Disassembler:
5623 9445
5624 9446 Fixed typechecking for the ObjectType and SizeOf operators. Problem was
5625 9447 recently introduced in 20041119.
5626 9448
5627 -Fixed a problem with the ToUUID macro where the upper nybble of each buffer
9449 +Fixed a problem with the ToUUID macro where the upper nybble of each
9450 +buffer
5628 9451 byte was inadvertently set to zero.
5629 9452
5630 9453 ----------------------------------------
5631 9454 19 November 2004. Summary of changes for version 20041119:
5632 9455
5633 9456 1) ACPI CA Core Subsystem:
5634 9457
5635 -Fixed a problem in the internal ConvertToInteger routine where new integers
5636 -were not truncated to 32 bits for 32-bit ACPI tables. This routine converts
9458 +Fixed a problem in the internal ConvertToInteger routine where new
9459 +integers
9460 +were not truncated to 32 bits for 32-bit ACPI tables. This routine
9461 +converts
5637 9462 buffers and strings to integers.
5638 9463
5639 -Implemented support to store a value to an Index() on a String object. This
9464 +Implemented support to store a value to an Index() on a String object.
9465 +This
5640 9466 is an ACPI 2.0 feature that had not yet been implemented.
5641 9467
5642 -Implemented new behavior for storing objects to individual package elements
5643 -(via the Index() operator). The previous behavior was to invoke the implicit
9468 +Implemented new behavior for storing objects to individual package
9469 +elements
9470 +(via the Index() operator). The previous behavior was to invoke the
9471 +implicit
5644 9472 conversion rules if an object was already present at the index. The new
5645 -behavior is to simply delete any existing object and directly store the new
5646 -object. Although the ACPI specification seems unclear on this subject, other
9473 +behavior is to simply delete any existing object and directly store the
9474 +new
9475 +object. Although the ACPI specification seems unclear on this subject,
9476 +other
5647 9477 ACPI implementations behave in this manner. (This is the root of the
5648 9478 AE_BAD_HEX_CONSTANT issue.)
5649 9479
5650 -Modified the RSDP memory scan mechanism to support the extended checksum for
9480 +Modified the RSDP memory scan mechanism to support the extended checksum
9481 +for
5651 9482 ACPI 2.0 (and above) RSDPs. Note that the search continues until a valid
5652 9483 RSDP signature is found with a valid checksum.
5653 9484
5654 9485 Code and Data Size: Current and previous core subsystem library sizes are
5655 -shown below. These are the code and data sizes for the acpica.lib produced
9486 +shown below. These are the code and data sizes for the acpica.lib
9487 +produced
5656 9488 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5657 9489 any ACPI driver or OSPM code. The debug version of the code includes the
5658 -debug output trace mechanism and has a much larger code and data size. Note
5659 -that these values will vary depending on the efficiency of the compiler and
9490 +debug output trace mechanism and has a much larger code and data size.
9491 +Note
9492 +that these values will vary depending on the efficiency of the compiler
9493 +and
5660 9494 the compiler options used during generation.
5661 9495
5662 9496 Previous Release:
5663 9497 Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
5664 9498 Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
5665 9499 Current Release:
5666 9500 Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
5667 9501 Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
5668 9502
5669 9503
5670 9504 2) iASL Compiler/Disassembler:
5671 9505
5672 9506 Fixed a missing semicolon in the aslcompiler.y file.
5673 9507
5674 9508 ----------------------------------------
5675 9509 05 November 2004. Summary of changes for version 20041105:
5676 9510
5677 9511 1) ACPI CA Core Subsystem:
5678 9512
5679 -Implemented support for FADT revision 2. This was an interim table (between
9513 +Implemented support for FADT revision 2. This was an interim table
9514 +(between
5680 9515 ACPI 1.0 and ACPI 2.0) that adds support for the FADT reset register.
5681 9516
5682 9517 Implemented optional support to allow uninitialized LocalX and ArgX
5683 -variables in a control method. The variables are initialized to an Integer
9518 +variables in a control method. The variables are initialized to an
9519 +Integer
5684 9520 object with a value of zero. This support is enabled by setting the
5685 9521 AcpiGbl_EnableInterpreterSlack flag to TRUE.
5686 9522
5687 -Implemented support for Integer objects for the SizeOf operator. Either 4
5688 -or 8 is returned, depending on the current integer size (32-bit or 64-bit,
9523 +Implemented support for Integer objects for the SizeOf operator. Either
9524 +4
9525 +or 8 is returned, depending on the current integer size (32-bit or 64-
9526 +bit,
5689 9527 depending on the parent table revision).
5690 9528
5691 -Fixed a problem in the implementation of the SizeOf and ObjectType operators
9529 +Fixed a problem in the implementation of the SizeOf and ObjectType
9530 +operators
5692 9531 where the operand was resolved to a value too early, causing incorrect
5693 9532 return values for some objects.
5694 9533
5695 9534 Fixed some possible memory leaks during exceptional conditions.
5696 9535
5697 9536 Code and Data Size: Current and previous core subsystem library sizes are
5698 -shown below. These are the code and data sizes for the acpica.lib produced
9537 +shown below. These are the code and data sizes for the acpica.lib
9538 +produced
5699 9539 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5700 9540 any ACPI driver or OSPM code. The debug version of the code includes the
5701 -debug output trace mechanism and has a much larger code and data size. Note
5702 -that these values will vary depending on the efficiency of the compiler and
9541 +debug output trace mechanism and has a much larger code and data size.
9542 +Note
9543 +that these values will vary depending on the efficiency of the compiler
9544 +and
5703 9545 the compiler options used during generation.
5704 9546
5705 9547 Previous Release:
5706 9548 Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
5707 9549 Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
5708 9550 Current Release:
5709 9551 Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total
5710 9552 Debug Version: 165.2K Code, 68.6K Data, 233.8K Total
5711 9553
5712 9554
5713 9555 2) iASL Compiler/Disassembler:
5714 9556
5715 9557 Implemented support for all ACPI 3.0 reserved names and methods.
5716 9558
5717 9559 Implemented all ACPI 3.0 grammar elements in the front-end, including
5718 9560 support for semicolons.
5719 9561
5720 9562 Implemented the ACPI 3.0 Function() and ToUUID() macros
5721 9563
5722 9564 Fixed a problem in the disassembler where a Scope() operator would not be
5723 9565 emitted properly if the target of the scope was in another table.
5724 9566
5725 9567 ----------------------------------------
5726 9568 15 October 2004. Summary of changes for version 20041015:
5727 9569
5728 9570 Note: ACPI CA is currently undergoing an in-depth and complete formal
5729 9571 evaluation to test/verify the following areas. Other suggestions are
5730 9572 welcome. This will result in an increase in the frequency of releases and
5731 9573 the number of bug fixes in the next few months.
5732 9574 - Functional tests for all ASL/AML operators
5733 9575 - All implicit/explicit type conversions
↓ open down ↓ |
21 lines elided |
↑ open up ↑ |
5734 9576 - Bit fields and operation regions
5735 9577 - 64-bit math support and 32-bit-only "truncated" math support
5736 9578 - Exceptional conditions, both compiler and interpreter
5737 9579 - Dynamic object deletion and memory leaks
5738 9580 - ACPI 3.0 support when implemented
5739 9581 - External interfaces to the ACPI subsystem
5740 9582
5741 9583
5742 9584 1) ACPI CA Core Subsystem:
5743 9585
5744 -Fixed two alignment issues on 64-bit platforms - within debug statements in
5745 -AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed references to the Address
9586 +Fixed two alignment issues on 64-bit platforms - within debug statements
9587 +in
9588 +AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed references to the
9589 +Address
5746 9590 field within the non-aligned ACPI generic address structure.
5747 9591
5748 9592 Fixed a problem in the Increment and Decrement operators where incorrect
5749 9593 operand resolution could result in the inadvertent modification of the
5750 9594 original integer when the integer is passed into another method as an
5751 9595 argument and the arg is then incremented/decremented.
5752 9596
5753 -Fixed a problem in the FromBCD operator where the upper 32-bits of a 64-bit
9597 +Fixed a problem in the FromBCD operator where the upper 32-bits of a 64-
9598 +bit
5754 9599 BCD number were truncated during conversion.
5755 9600
5756 -Fixed a problem in the ToDecimal operator where the length of the resulting
5757 -string could be set incorrectly too long if the input operand was a Buffer
9601 +Fixed a problem in the ToDecimal operator where the length of the
9602 +resulting
9603 +string could be set incorrectly too long if the input operand was a
9604 +Buffer
5758 9605 object.
5759 9606
5760 -Fixed a problem in the Logical operators (LLess, etc.) where a NULL byte (0)
9607 +Fixed a problem in the Logical operators (LLess, etc.) where a NULL byte
9608 +(0)
5761 9609 within a buffer would prematurely terminate a compare between buffer
5762 9610 objects.
5763 9611
5764 9612 Added a check for string overflow (>200 characters as per the ACPI
5765 9613 specification) during the Concatenate operator with two string operands.
5766 9614
5767 9615 Code and Data Size: Current and previous core subsystem library sizes are
5768 -shown below. These are the code and data sizes for the acpica.lib produced
9616 +shown below. These are the code and data sizes for the acpica.lib
9617 +produced
5769 9618 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5770 9619 any ACPI driver or OSPM code. The debug version of the code includes the
5771 -debug output trace mechanism and has a much larger code and data size. Note
5772 -that these values will vary depending on the efficiency of the compiler and
9620 +debug output trace mechanism and has a much larger code and data size.
9621 +Note
9622 +that these values will vary depending on the efficiency of the compiler
9623 +and
5773 9624 the compiler options used during generation.
5774 9625
5775 9626 Previous Release:
5776 9627 Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
5777 9628 Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
5778 9629 Current Release:
5779 9630 Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
5780 9631 Debug Version: 164.8K Code, 68.6K Data, 233.4K Total
5781 9632
5782 9633
5783 9634
5784 9635 2) iASL Compiler/Disassembler:
5785 9636
5786 9637 Allow the use of the ObjectType operator on uninitialized Locals and Args
5787 9638 (returns 0 as per the ACPI specification).
5788 9639
5789 -Fixed a problem where the compiler would fault if there was a syntax error
9640 +Fixed a problem where the compiler would fault if there was a syntax
9641 +error
5790 9642 in the FieldName of all of the various CreateXXXField operators.
5791 9643
5792 -Disallow the use of lower case letters within the EISAID macro, as per the
5793 -ACPI specification. All EISAID strings must be of the form "UUUNNNN" Where
9644 +Disallow the use of lower case letters within the EISAID macro, as per
9645 +the
9646 +ACPI specification. All EISAID strings must be of the form "UUUNNNN"
9647 +Where
5794 9648 U is an uppercase letter and N is a hex digit.
5795 9649
5796 9650
5797 9651 ----------------------------------------
5798 9652 06 October 2004. Summary of changes for version 20041006:
5799 9653
5800 9654 1) ACPI CA Core Subsystem:
5801 9655
5802 9656 Implemented support for the ACPI 3.0 Timer operator. This ASL function
5803 9657 implements a 64-bit timer with 100 nanosecond granularity.
5804 9658
5805 9659 Defined a new OSL interface, AcpiOsGetTimer. This interface is used to
5806 -implement the ACPI 3.0 Timer operator. This allows the host OS to implement
5807 -the timer with the best clock available. Also, it keeps the core subsystem
9660 +implement the ACPI 3.0 Timer operator. This allows the host OS to
9661 +implement
9662 +the timer with the best clock available. Also, it keeps the core
9663 +subsystem
5808 9664 out of the clock handling business, since the host OS (usually) performs
5809 9665 this function.
5810 9666
5811 9667 Fixed an alignment issue on 64-bit platforms. The HwLowLevelRead(Write)
5812 9668 functions use a 64-bit address which is part of the packed ACPI Generic
5813 -Address Structure. Since the structure is non-aligned, the alignment macros
9669 +Address Structure. Since the structure is non-aligned, the alignment
9670 +macros
5814 9671 are now used to extract the address to a local variable before use.
5815 9672
5816 -Fixed a problem where the ToInteger operator assumed all input strings were
5817 -hexadecimal. The operator now handles both decimal strings and hex strings
9673 +Fixed a problem where the ToInteger operator assumed all input strings
9674 +were
9675 +hexadecimal. The operator now handles both decimal strings and hex
9676 +strings
5818 9677 (prefixed with "0x").
5819 9678
5820 9679 Fixed a problem where the string length in the string object created as a
5821 9680 result of the internal ConvertToString procedure could be incorrect. This
5822 -potentially affected all implicit conversions and also the ToDecimalString
9681 +potentially affected all implicit conversions and also the
9682 +ToDecimalString
5823 9683 and ToHexString operators.
5824 9684
5825 9685 Fixed two problems in the ToString operator. If the length parameter was
5826 9686 zero, an incorrect string object was created and the value of the input
5827 9687 length parameter was inadvertently changed from zero to Ones.
5828 9688
5829 -Fixed a problem where the optional ResourceSource string in the ExtendedIRQ
9689 +Fixed a problem where the optional ResourceSource string in the
9690 +ExtendedIRQ
5830 9691 resource macro was ignored.
5831 9692
5832 -Simplified the interfaces to the internal division functions, reducing code
9693 +Simplified the interfaces to the internal division functions, reducing
9694 +code
5833 9695 size and complexity.
5834 9696
5835 9697 Code and Data Size: Current and previous core subsystem library sizes are
5836 -shown below. These are the code and data sizes for the acpica.lib produced
9698 +shown below. These are the code and data sizes for the acpica.lib
9699 +produced
5837 9700 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5838 9701 any ACPI driver or OSPM code. The debug version of the code includes the
5839 -debug output trace mechanism and has a much larger code and data size. Note
5840 -that these values will vary depending on the efficiency of the compiler and
9702 +debug output trace mechanism and has a much larger code and data size.
9703 +Note
9704 +that these values will vary depending on the efficiency of the compiler
9705 +and
5841 9706 the compiler options used during generation.
5842 9707
5843 9708 Previous Release:
5844 9709 Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
5845 9710 Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
5846 9711 Current Release:
5847 9712 Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
5848 9713 Debug Version: 164.6K Code, 68.5K Data, 233.1K Total
5849 9714
5850 9715
5851 9716 2) iASL Compiler/Disassembler:
5852 9717
5853 9718 Implemented support for the ACPI 3.0 Timer operator.
5854 9719
5855 -Fixed a problem where the Default() operator was inadvertently ignored in a
9720 +Fixed a problem where the Default() operator was inadvertently ignored in
9721 +a
5856 9722 Switch/Case block. This was a problem in the translation of the Switch
5857 9723 statement to If...Else pairs.
5858 9724
5859 -Added support to allow a standalone Return operator, with no parentheses (or
9725 +Added support to allow a standalone Return operator, with no parentheses
9726 +(or
5860 9727 operands).
5861 9728
5862 9729 Fixed a problem with code generation for the ElseIf operator where the
5863 9730 translated Else...If parse tree was improperly constructed leading to the
5864 9731 loss of some code.
5865 9732
5866 9733 ----------------------------------------
5867 9734 22 September 2004. Summary of changes for version 20040922:
5868 9735
5869 9736 1) ACPI CA Core Subsystem:
5870 9737
5871 -Fixed a problem with the implementation of the LNot() operator where "Ones"
5872 -was not returned for the TRUE case. Changed the code to return Ones instead
5873 -of (!Arg) which was usually 1. This change affects iASL constant folding for
9738 +Fixed a problem with the implementation of the LNot() operator where
9739 +"Ones"
9740 +was not returned for the TRUE case. Changed the code to return Ones
9741 +instead
9742 +of (!Arg) which was usually 1. This change affects iASL constant folding
9743 +for
5874 9744 this operator also.
5875 9745
5876 -Fixed a problem in AcpiUtInitializeBuffer where an existing buffer was not
9746 +Fixed a problem in AcpiUtInitializeBuffer where an existing buffer was
9747 +not
5877 9748 initialized properly -- Now zero the entire buffer in this case where the
5878 9749 buffer already exists.
5879 9750
5880 9751 Changed the interface to AcpiOsSleep from (UINT32 Seconds, UINT32
5881 9752 Milliseconds) to simply (ACPI_INTEGER Milliseconds). This simplifies all
5882 9753 related code considerably. This will require changes/updates to all OS
5883 9754 interface layers (OSLs.)
5884 9755
5885 -Implemented a new external interface, AcpiInstallExceptionHandler, to allow
5886 -a system exception handler to be installed. This handler is invoked upon any
9756 +Implemented a new external interface, AcpiInstallExceptionHandler, to
9757 +allow
9758 +a system exception handler to be installed. This handler is invoked upon
9759 +any
5887 9760 run-time exception that occurs during control method execution.
5888 9761
5889 9762 Added support for the DSDT in AcpiTbFindTable. This allows the
5890 9763 DataTableRegion() operator to access the local copy of the DSDT.
5891 9764
5892 9765 Code and Data Size: Current and previous core subsystem library sizes are
5893 -shown below. These are the code and data sizes for the acpica.lib produced
9766 +shown below. These are the code and data sizes for the acpica.lib
9767 +produced
5894 9768 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5895 9769 any ACPI driver or OSPM code. The debug version of the code includes the
5896 -debug output trace mechanism and has a much larger code and data size. Note
5897 -that these values will vary depending on the efficiency of the compiler and
9770 +debug output trace mechanism and has a much larger code and data size.
9771 +Note
9772 +that these values will vary depending on the efficiency of the compiler
9773 +and
5898 9774 the compiler options used during generation.
5899 9775
5900 9776 Previous Release:
5901 9777 Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
5902 9778 Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
5903 9779 Current Release:
5904 9780 Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total
5905 9781 Debug Version: 164.5K Code, 68.3K Data, 232.8K Total
5906 9782
5907 9783
5908 9784 2) iASL Compiler/Disassembler:
5909 9785
5910 9786 Fixed a problem with constant folding and the LNot operator. LNot was
5911 -returning 1 in the TRUE case, not Ones as per the ACPI specification. This
9787 +returning 1 in the TRUE case, not Ones as per the ACPI specification.
9788 +This
5912 9789 could result in the generation of an incorrect folded/reduced constant.
5913 9790
5914 9791 End-Of-File is now allowed within a "//"-style comment. A parse error no
5915 -longer occurs if such a comment is at the very end of the input ASL source
9792 +longer occurs if such a comment is at the very end of the input ASL
9793 +source
5916 9794 file.
5917 9795
5918 9796 Implemented the "-r" option to override the Revision in the table header.
5919 -The initial use of this option will be to simplify the evaluation of the AML
5920 -interpreter by allowing a single ASL source module to be compiled for either
9797 +The initial use of this option will be to simplify the evaluation of the
9798 +AML
9799 +interpreter by allowing a single ASL source module to be compiled for
9800 +either
5921 9801 32-bit or 64-bit integers.
5922 9802
5923 9803
5924 9804 ----------------------------------------
5925 9805 27 August 2004. Summary of changes for version 20040827:
5926 9806
5927 9807 1) ACPI CA Core Subsystem:
5928 9808
5929 9809 - Implemented support for implicit object conversion in the non-numeric
5930 -logical operators (LEqual, LGreater, LGreaterEqual, LLess, LLessEqual, and
9810 +logical operators (LEqual, LGreater, LGreaterEqual, LLess, LLessEqual,
9811 +and
5931 9812 LNotEqual.) Any combination of Integers/Strings/Buffers may now be used;
5932 -the second operand is implicitly converted on the fly to match the type of
9813 +the second operand is implicitly converted on the fly to match the type
9814 +of
5933 9815 the first operand. For example:
5934 9816
5935 9817 LEqual (Source1, Source2)
5936 9818
5937 -Source1 and Source2 must each evaluate to an integer, a string, or a buffer.
5938 -The data type of Source1 dictates the required type of Source2. Source2 is
9819 +Source1 and Source2 must each evaluate to an integer, a string, or a
9820 +buffer.
9821 +The data type of Source1 dictates the required type of Source2. Source2
9822 +is
5939 9823 implicitly converted if necessary to match the type of Source1.
5940 9824
5941 -- Updated and corrected the behavior of the string conversion support. The
9825 +- Updated and corrected the behavior of the string conversion support.
9826 +The
5942 9827 rules concerning conversion of buffers to strings (according to the ACPI
5943 9828 specification) are as follows:
5944 9829
5945 9830 ToDecimalString - explicit byte-wise conversion of buffer to string of
5946 -decimal values (0-255) separated by commas. ToHexString - explicit byte-wise
9831 +decimal values (0-255) separated by commas. ToHexString - explicit byte-
9832 +wise
5947 9833 conversion of buffer to string of hex values (0-FF) separated by commas.
5948 -ToString - explicit byte-wise conversion of buffer to string. Byte-by-byte
5949 -copy with no transform except NULL terminated. Any other implicit buffer-to-
5950 -string conversion - byte-wise conversion of buffer to string of hex values
9834 +ToString - explicit byte-wise conversion of buffer to string. Byte-by-
9835 +byte
9836 +copy with no transform except NULL terminated. Any other implicit buffer-
9837 +to-
9838 +string conversion - byte-wise conversion of buffer to string of hex
9839 +values
5951 9840 (0-FF) separated by spaces.
5952 9841
5953 9842 - Fixed typo in definition of AcpiGbl_EnableInterpreterSlack.
5954 9843
5955 -- Fixed a problem in AcpiNsGetPathnameLength where the returned length was
9844 +- Fixed a problem in AcpiNsGetPathnameLength where the returned length
9845 +was
5956 9846 one byte too short in the case of a node in the root scope. This could
5957 9847 cause a fault during debug output.
5958 9848
5959 -- Code and Data Size: Current and previous core subsystem library sizes are
5960 -shown below. These are the code and data sizes for the acpica.lib produced
9849 +- Code and Data Size: Current and previous core subsystem library sizes
9850 +are
9851 +shown below. These are the code and data sizes for the acpica.lib
9852 +produced
5961 9853 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
5962 9854 any ACPI driver or OSPM code. The debug version of the code includes the
5963 -debug output trace mechanism and has a much larger code and data size. Note
5964 -that these values will vary depending on the efficiency of the compiler and
9855 +debug output trace mechanism and has a much larger code and data size.
9856 +Note
9857 +that these values will vary depending on the efficiency of the compiler
9858 +and
5965 9859 the compiler options used during generation.
5966 9860
5967 9861 Previous Release:
5968 9862 Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
5969 9863 Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
5970 9864 Current Release:
5971 9865 Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total
5972 9866 Debug Version: 164.2K Code, 68.2K Data, 232.4K Total
5973 9867
5974 9868
5975 9869 2) iASL Compiler/Disassembler:
↓ open down ↓ |
1 lines elided |
↑ open up ↑ |
5976 9870
5977 9871 - Fixed a Linux generation error.
5978 9872
5979 9873
5980 9874 ----------------------------------------
5981 9875 16 August 2004. Summary of changes for version 20040816:
5982 9876
5983 9877 1) ACPI CA Core Subsystem:
5984 9878
5985 9879 Designed and implemented support within the AML interpreter for the so-
5986 -called "implicit return". This support returns the result of the last ASL
9880 +called "implicit return". This support returns the result of the last
9881 +ASL
5987 9882 operation within a control method, in the absence of an explicit Return()
5988 9883 operator. A few machines depend on this behavior, even though it is not
5989 -explicitly supported by the ASL language. It is optional support that can
9884 +explicitly supported by the ASL language. It is optional support that
9885 +can
5990 9886 be enabled at runtime via the AcpiGbl_EnableInterpreterSlack flag.
5991 9887
5992 -Removed support for the PCI_Config address space from the internal low level
9888 +Removed support for the PCI_Config address space from the internal low
9889 +level
5993 9890 hardware interfaces (AcpiHwLowLevelRead and AcpiHwLowLevelWrite). This
5994 -support was not used internally, and would not work correctly anyway because
9891 +support was not used internally, and would not work correctly anyway
9892 +because
5995 9893 the PCI bus number and segment number were not supported. There are
5996 -separate interfaces for PCI configuration space access because of the unique
9894 +separate interfaces for PCI configuration space access because of the
9895 +unique
5997 9896 interface.
5998 9897
5999 9898 Code and Data Size: Current and previous core subsystem library sizes are
6000 -shown below. These are the code and data sizes for the acpica.lib produced
9899 +shown below. These are the code and data sizes for the acpica.lib
9900 +produced
6001 9901 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6002 9902 any ACPI driver or OSPM code. The debug version of the code includes the
6003 -debug output trace mechanism and has a much larger code and data size. Note
6004 -that these values will vary depending on the efficiency of the compiler and
9903 +debug output trace mechanism and has a much larger code and data size.
9904 +Note
9905 +that these values will vary depending on the efficiency of the compiler
9906 +and
6005 9907 the compiler options used during generation.
6006 9908
6007 9909 Previous Release:
6008 9910 Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
6009 9911 Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
6010 9912 Current Release:
6011 9913 Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total
6012 9914 Debug Version: 164.1K Code, 68.3K Data, 232.4K Total
6013 9915
6014 9916
6015 9917 2) iASL Compiler/Disassembler:
6016 9918
↓ open down ↓ |
2 lines elided |
↑ open up ↑ |
6017 9919 Fixed a problem where constants in ASL expressions at the root level (not
6018 9920 within a control method) could be inadvertently truncated during code
6019 9921 generation. This problem was introduced in the 20040715 release.
6020 9922
6021 9923
6022 9924 ----------------------------------------
6023 9925 15 July 2004. Summary of changes for version 20040715:
6024 9926
6025 9927 1) ACPI CA Core Subsystem:
6026 9928
6027 -Restructured the internal HW GPE interfaces to pass/track the current state
9929 +Restructured the internal HW GPE interfaces to pass/track the current
9930 +state
6028 9931 of interrupts (enabled/disabled) in order to avoid possible deadlock and
6029 9932 increase flexibility of the interfaces.
6030 9933
6031 -Implemented a "lexicographical compare" for String and Buffer objects within
6032 -the logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual --
6033 -as per further clarification to the ACPI specification. Behavior is similar
9934 +Implemented a "lexicographical compare" for String and Buffer objects
9935 +within
9936 +the logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual -
9937 +-
9938 +as per further clarification to the ACPI specification. Behavior is
9939 +similar
6034 9940 to C library "strcmp".
6035 9941
6036 9942 Completed a major reduction in CPU stack use for the AcpiGetFirmwareTable
6037 9943 external function. In the 32-bit non-debug case, the stack use has been
6038 9944 reduced from 168 bytes to 32 bytes.
6039 9945
6040 -Deployed a new run-time configuration flag, AcpiGbl_EnableInterpreterSlack,
9946 +Deployed a new run-time configuration flag,
9947 +AcpiGbl_EnableInterpreterSlack,
6041 9948 whose purpose is to allow the AML interpreter to forgive certain bad AML
6042 9949 constructs. Default setting is FALSE.
6043 9950
6044 -Implemented the first use of AcpiGbl_EnableInterpreterSlack in the Field IO
6045 -support code. If enabled, it allows field access to go beyond the end of a
6046 -region definition if the field is within the region length rounded up to the
9951 +Implemented the first use of AcpiGbl_EnableInterpreterSlack in the Field
9952 +IO
9953 +support code. If enabled, it allows field access to go beyond the end of
9954 +a
9955 +region definition if the field is within the region length rounded up to
9956 +the
6047 9957 next access width boundary (a common coding error.)
6048 9958
6049 9959 Renamed OSD_HANDLER to ACPI_OSD_HANDLER, and OSD_EXECUTION_CALLBACK to
6050 -ACPI_OSD_EXEC_CALLBACK for consistency with other ACPI symbols. Also, these
9960 +ACPI_OSD_EXEC_CALLBACK for consistency with other ACPI symbols. Also,
9961 +these
6051 9962 symbols are lowercased by the latest version of the AcpiSrc tool.
6052 9963
6053 9964 The prototypes for the PCI interfaces in acpiosxf.h have been updated to
6054 9965 rename "Register" to simply "Reg" to prevent certain compilers from
6055 9966 complaining.
6056 9967
6057 9968 Code and Data Size: Current and previous core subsystem library sizes are
6058 -shown below. These are the code and data sizes for the acpica.lib produced
9969 +shown below. These are the code and data sizes for the acpica.lib
9970 +produced
6059 9971 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6060 9972 any ACPI driver or OSPM code. The debug version of the code includes the
6061 -debug output trace mechanism and has a much larger code and data size. Note
6062 -that these values will vary depending on the efficiency of the compiler and
9973 +debug output trace mechanism and has a much larger code and data size.
9974 +Note
9975 +that these values will vary depending on the efficiency of the compiler
9976 +and
6063 9977 the compiler options used during generation.
6064 9978
6065 9979 Previous Release:
6066 9980 Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
6067 9981 Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
6068 9982 Current Release:
6069 9983 Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total
6070 9984 Debug Version: 164.1K Code, 68.2K Data, 232.3K Total
6071 9985
6072 9986
6073 9987 2) iASL Compiler/Disassembler:
6074 9988
6075 9989 Implemented full support for Package objects within the Case() operator.
6076 9990 Note: The Break() operator is currently not supported within Case blocks
6077 -(TermLists) as there is some question about backward compatibility with ACPI
9991 +(TermLists) as there is some question about backward compatibility with
9992 +ACPI
6078 9993 1.0 interpreters.
6079 9994
6080 9995
6081 -Fixed a problem where complex terms were not supported properly within the
9996 +Fixed a problem where complex terms were not supported properly within
9997 +the
6082 9998 Switch() operator.
6083 9999
6084 10000 Eliminated extraneous warning for compiler-emitted reserved names of the
6085 10001 form "_T_x". (Used in Switch/Case operators.)
6086 10002
6087 10003 Eliminated optimization messages for "_T_x" objects and small constants
6088 10004 within the DefinitionBlock operator.
6089 10005
6090 10006
6091 10007 ----------------------------------------
6092 10008 15 June 2004. Summary of changes for version 20040615:
6093 10009
6094 10010 1) ACPI CA Core Subsystem:
6095 10011
6096 -Implemented support for Buffer and String objects (as per ACPI 2.0) for the
10012 +Implemented support for Buffer and String objects (as per ACPI 2.0) for
10013 +the
6097 10014 following ASL operators: LEqual, LGreater, LLess, LGreaterEqual, and
6098 10015 LLessEqual.
6099 10016
6100 10017 All directory names in the entire source package are lower case, as they
6101 10018 were in earlier releases.
6102 10019
6103 -Implemented "Disassemble" command in the AML debugger that will disassemble
10020 +Implemented "Disassemble" command in the AML debugger that will
10021 +disassemble
6104 10022 a single control method.
6105 10023
6106 10024 Code and Data Size: Current and previous core subsystem library sizes are
6107 -shown below. These are the code and data sizes for the acpica.lib produced
10025 +shown below. These are the code and data sizes for the acpica.lib
10026 +produced
6108 10027 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6109 10028 any ACPI driver or OSPM code. The debug version of the code includes the
6110 -debug output trace mechanism and has a much larger code and data size. Note
6111 -that these values will vary depending on the efficiency of the compiler and
10029 +debug output trace mechanism and has a much larger code and data size.
10030 +Note
10031 +that these values will vary depending on the efficiency of the compiler
10032 +and
6112 10033 the compiler options used during generation.
6113 10034
6114 10035 Previous Release:
6115 10036 Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
6116 10037 Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
6117 10038
6118 10039 Current Release:
6119 10040 Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total
6120 10041 Debug Version: 163.8K Code, 68.2K Data, 232.0K Total
6121 10042
6122 10043
6123 10044 2) iASL Compiler/Disassembler:
6124 10045
6125 -Implemented support for Buffer and String objects (as per ACPI 2.0) for the
10046 +Implemented support for Buffer and String objects (as per ACPI 2.0) for
10047 +the
6126 10048 following ASL operators: LEqual, LGreater, LLess, LGreaterEqual, and
6127 10049 LLessEqual.
6128 10050
6129 10051 All directory names in the entire source package are lower case, as they
6130 10052 were in earlier releases.
6131 10053
6132 10054 Fixed a fault when using the -g or -d<nofilename> options if the FADT was
6133 10055 not found.
6134 10056
6135 -Fixed an issue with the Windows version of the compiler where later versions
10057 +Fixed an issue with the Windows version of the compiler where later
10058 +versions
6136 10059 of Windows place the FADT in the registry under the name "FADT" and not
6137 10060 "FACP" as earlier versions did. This applies when using the -g or -
6138 10061 d<nofilename> options. The compiler now looks for both strings as
6139 10062 necessary.
6140 10063
6141 -Fixed a problem with compiler namepath optimization where a namepath within
6142 -the Scope() operator could not be optimized if the namepath was a subpath of
10064 +Fixed a problem with compiler namepath optimization where a namepath
10065 +within
10066 +the Scope() operator could not be optimized if the namepath was a subpath
10067 +of
6143 10068 the current scope path.
6144 10069
6145 10070 ----------------------------------------
6146 10071 27 May 2004. Summary of changes for version 20040527:
6147 10072
6148 10073 1) ACPI CA Core Subsystem:
6149 10074
6150 -Completed a new design and implementation for EBDA (Extended BIOS Data Area)
6151 -support in the RSDP scan code. The original code improperly scanned for the
6152 -EBDA by simply scanning from memory location 0 to 0x400. The correct method
10075 +Completed a new design and implementation for EBDA (Extended BIOS Data
10076 +Area)
10077 +support in the RSDP scan code. The original code improperly scanned for
10078 +the
10079 +EBDA by simply scanning from memory location 0 to 0x400. The correct
10080 +method
6153 10081 is to first obtain the EBDA pointer from within the BIOS data area, then
6154 -scan 1K of memory starting at the EBDA pointer. There appear to be few if
10082 +scan 1K of memory starting at the EBDA pointer. There appear to be few
10083 +if
6155 10084 any machines that place the RSDP in the EBDA, however.
6156 10085
6157 10086 Integrated a fix for a possible fault during evaluation of BufferField
6158 10087 arguments. Obsolete code that was causing the problem was removed.
6159 10088
6160 10089 Found and fixed a problem in the Field Support Code where data could be
6161 10090 corrupted on a bit field read that starts on an aligned boundary but does
6162 10091 not end on an aligned boundary. Merged the read/write "datum length"
6163 10092 calculation code into a common procedure.
6164 10093
6165 10094 Rolled in a couple of changes to the FreeBSD-specific header.
6166 10095
6167 10096
6168 10097 Code and Data Size: Current and previous core subsystem library sizes are
6169 -shown below. These are the code and data sizes for the acpica.lib produced
10098 +shown below. These are the code and data sizes for the acpica.lib
10099 +produced
6170 10100 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6171 10101 any ACPI driver or OSPM code. The debug version of the code includes the
6172 -debug output trace mechanism and has a much larger code and data size. Note
6173 -that these values will vary depending on the efficiency of the compiler and
10102 +debug output trace mechanism and has a much larger code and data size.
10103 +Note
10104 +that these values will vary depending on the efficiency of the compiler
10105 +and
6174 10106 the compiler options used during generation.
6175 10107
6176 10108 Previous Release:
6177 10109 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
6178 10110 Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
6179 10111 Current Release:
6180 10112 Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total
6181 10113 Debug Version: 163.3K Code, 67.2K Data, 230.5K Total
6182 10114
6183 10115
6184 10116 2) iASL Compiler/Disassembler:
6185 10117
6186 -Fixed a generation warning produced by some overly-verbose compilers for a
10118 +Fixed a generation warning produced by some overly-verbose compilers for
10119 +a
6187 10120 64-bit constant.
6188 10121
6189 10122 ----------------------------------------
6190 10123 14 May 2004. Summary of changes for version 20040514:
6191 10124
6192 10125 1) ACPI CA Core Subsystem:
6193 10126
6194 10127 Fixed a problem where hardware GPE enable bits sometimes not set properly
6195 10128 during and after GPE method execution. Result of 04/27 changes.
6196 10129
6197 10130 Removed extra "clear all GPEs" when sleeping/waking.
6198 10131
6199 10132 Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the single
6200 -AcpiHwWriteGpeEnableReg. Changed a couple of calls to the functions above to
10133 +AcpiHwWriteGpeEnableReg. Changed a couple of calls to the functions above
10134 +to
6201 10135 the new AcpiEv* calls as appropriate.
6202 10136
6203 -ACPI_OS_NAME was removed from the OS-specific headers. The default name is
6204 -now "Microsoft Windows NT" for maximum compatibility. However this can be
10137 +ACPI_OS_NAME was removed from the OS-specific headers. The default name
10138 +is
10139 +now "Microsoft Windows NT" for maximum compatibility. However this can
10140 +be
6205 10141 changed by modifying the acconfig.h file.
6206 10142
6207 10143 Allow a single invocation of AcpiInstallNotifyHandler for a handler that
6208 10144 traps both types of notifies (System, Device). Use ACPI_ALL_NOTIFY flag.
6209 10145
6210 10146 Run _INI methods on ThermalZone objects. This is against the ACPI
6211 -specification, but there is apparently ASL code in the field that has these
10147 +specification, but there is apparently ASL code in the field that has
10148 +these
6212 10149 _INI methods, and apparently "other" AML interpreters execute them.
6213 10150
6214 10151 Performed a full 16/32/64 bit lint that resulted in some small changes.
6215 10152
6216 10153 Added a sleep simulation command to the AML debugger to test sleep code.
6217 10154
6218 10155 Code and Data Size: Current and previous core subsystem library sizes are
6219 -shown below. These are the code and data sizes for the acpica.lib produced
10156 +shown below. These are the code and data sizes for the acpica.lib
10157 +produced
6220 10158 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6221 10159 any ACPI driver or OSPM code. The debug version of the code includes the
6222 -debug output trace mechanism and has a much larger code and data size. Note
6223 -that these values will vary depending on the efficiency of the compiler and
10160 +debug output trace mechanism and has a much larger code and data size.
10161 +Note
10162 +that these values will vary depending on the efficiency of the compiler
10163 +and
6224 10164 the compiler options used during generation.
6225 10165
6226 10166 Previous Release:
6227 10167 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
6228 10168 Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
6229 10169 Current Release:
6230 10170 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
6231 10171 Debug Version: 163.2K Code, 67.2K Data, 230.4K Total
6232 10172
6233 10173 ----------------------------------------
6234 10174 27 April 2004. Summary of changes for version 20040427:
6235 10175
6236 10176 1) ACPI CA Core Subsystem:
6237 10177
6238 10178 Completed a major overhaul of the GPE handling within ACPI CA. There are
6239 -now three types of GPEs: wake-only, runtime-only, and combination wake/run.
10179 +now three types of GPEs: wake-only, runtime-only, and combination
10180 +wake/run.
6240 10181 The only GPEs allowed to be combination wake/run are for button-style
6241 -devices such as a control-method power button, control-method sleep button,
6242 -or a notebook lid switch. GPEs that have an _Lxx or _Exx method and are not
10182 +devices such as a control-method power button, control-method sleep
10183 +button,
10184 +or a notebook lid switch. GPEs that have an _Lxx or _Exx method and are
10185 +not
6243 10186 referenced by any _PRW methods are marked for "runtime" and hardware
6244 -enabled. Any GPE that is referenced by a _PRW method is marked for "wake"
10187 +enabled. Any GPE that is referenced by a _PRW method is marked for
10188 +"wake"
6245 10189 (and disabled at runtime). However, at sleep time, only those GPEs that
6246 -have been specifically enabled for wake via the AcpiEnableGpe interface will
10190 +have been specifically enabled for wake via the AcpiEnableGpe interface
10191 +will
6247 10192 actually be hardware enabled.
6248 10193
6249 -A new external interface has been added, AcpiSetGpeType(), that is meant to
6250 -be used by device drivers to force a GPE to a particular type. It will be
10194 +A new external interface has been added, AcpiSetGpeType(), that is meant
10195 +to
10196 +be used by device drivers to force a GPE to a particular type. It will
10197 +be
6251 10198 especially useful for the drivers for the button devices mentioned above.
6252 10199
6253 10200 Completed restructuring of the ACPI CA initialization sequence so that
6254 -default operation region handlers are installed before GPEs are initialized
6255 -and the _PRW methods are executed. This will prevent errors when the _PRW
10201 +default operation region handlers are installed before GPEs are
10202 +initialized
10203 +and the _PRW methods are executed. This will prevent errors when the
10204 +_PRW
6256 10205 methods attempt to access system memory or I/O space.
6257 10206
6258 -GPE enable/disable no longer reads the GPE enable register. We now keep the
10207 +GPE enable/disable no longer reads the GPE enable register. We now keep
10208 +the
6259 10209 enable info for runtime and wake separate and in the GPE_EVENT_INFO. We
6260 10210 thus no longer depend on the hardware to maintain these bits.
6261 10211
6262 10212 Always clear the wake status and fixed/GPE status bits before sleep, even
6263 10213 for state S5.
6264 10214
6265 10215 Improved the AML debugger output for displaying the GPE blocks and their
6266 10216 current status.
6267 10217
6268 -Added new strings for the _OSI method, of the form "Windows 2001 SPx" where
10218 +Added new strings for the _OSI method, of the form "Windows 2001 SPx"
10219 +where
6269 10220 x = 0,1,2,3,4.
6270 10221
6271 -Fixed a problem where the physical address was incorrectly calculated when
6272 -the Load() operator was used to directly load from an Operation Region (vs.
6273 -loading from a Field object.) Also added check for minimum table length for
10222 +Fixed a problem where the physical address was incorrectly calculated
10223 +when
10224 +the Load() operator was used to directly load from an Operation Region
10225 +(vs.
10226 +loading from a Field object.) Also added check for minimum table length
10227 +for
6274 10228 this case.
6275 10229
6276 10230 Fix for multiple mutex acquisition. Restore original thread SyncLevel on
6277 10231 mutex release.
6278 10232
6279 10233 Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for
6280 10234 consistency with the other fields returned.
6281 10235
6282 10236 Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one such
6283 10237 structure for each GPE in the system, so the size of this structure is
6284 10238 important.
6285 10239
6286 -CPU stack requirement reduction: Cleaned up the method execution and object
10240 +CPU stack requirement reduction: Cleaned up the method execution and
10241 +object
6287 10242 evaluation paths so that now a parameter structure is passed, instead of
6288 10243 copying the various method parameters over and over again.
6289 10244
6290 10245 In evregion.c: Correctly exit and reenter the interpreter region if and
6291 -only if dispatching an operation region request to a user-installed handler.
10246 +only if dispatching an operation region request to a user-installed
10247 +handler.
6292 10248 Do not exit/reenter when dispatching to a default handler (e.g., default
6293 10249 system memory or I/O handlers)
6294 10250
6295 10251
6296 -Notes for updating drivers for the new GPE support. The following changes
6297 -must be made to ACPI-related device drivers that are attached to one or more
6298 -GPEs: (This information will be added to the ACPI CA Programmer Reference.)
10252 +Notes for updating drivers for the new GPE support. The following
10253 +changes
10254 +must be made to ACPI-related device drivers that are attached to one or
10255 +more
10256 +GPEs: (This information will be added to the ACPI CA Programmer
10257 +Reference.)
6299 10258
6300 -1) AcpiInstallGpeHandler no longer automatically enables the GPE, you must
10259 +1) AcpiInstallGpeHandler no longer automatically enables the GPE, you
10260 +must
6301 10261 explicitly call AcpiEnableGpe.
6302 10262 2) There is a new interface called AcpiSetGpeType. This should be called
6303 10263 before enabling the GPE. Also, this interface will automatically disable
6304 10264 the GPE if it is currently enabled.
6305 10265 3) AcpiEnableGpe no longer supports a GPE type flag.
6306 10266
6307 10267 Specific drivers that must be changed:
6308 10268 1) EC driver:
6309 10269 AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED,
6310 10270 AeGpeHandler, NULL);
6311 10271 AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
6312 10272 AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
6313 10273
6314 10274 2) Button Drivers (Power, Lid, Sleep):
6315 10275 Run _PRW method under parent device
6316 10276 If _PRW exists: /* This is a control-method button */
6317 10277 Extract GPE number and possibly GpeDevice
6318 10278 AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
6319 10279 AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
6320 10280
6321 -For all other devices that have _PRWs, we automatically set the GPE type to
6322 -ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically (wake) enabled. This
6323 -must be done on a selective basis, usually requiring some kind of user app
10281 +For all other devices that have _PRWs, we automatically set the GPE type
10282 +to
10283 +ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically (wake) enabled.
10284 +This
10285 +must be done on a selective basis, usually requiring some kind of user
10286 +app
6324 10287 to allow the user to pick the wake devices.
6325 10288
6326 10289
6327 10290 Code and Data Size: Current and previous core subsystem library sizes are
6328 -shown below. These are the code and data sizes for the acpica.lib produced
10291 +shown below. These are the code and data sizes for the acpica.lib
10292 +produced
6329 10293 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6330 10294 any ACPI driver or OSPM code. The debug version of the code includes the
6331 -debug output trace mechanism and has a much larger code and data size. Note
6332 -that these values will vary depending on the efficiency of the compiler and
10295 +debug output trace mechanism and has a much larger code and data size.
10296 +Note
10297 +that these values will vary depending on the efficiency of the compiler
10298 +and
6333 10299 the compiler options used during generation.
6334 10300
6335 10301 Previous Release:
6336 10302 Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
6337 10303 Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
6338 10304 Current Release:
6339 10305
6340 10306 Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total
6341 10307 Debug Version: 162.9K Code, 67.0K Data, 229.9K Total
6342 10308
6343 10309
6344 10310
6345 10311 ----------------------------------------
6346 10312 02 April 2004. Summary of changes for version 20040402:
6347 10313
6348 10314 1) ACPI CA Core Subsystem:
6349 10315
6350 10316 Fixed an interpreter problem where an indirect store through an ArgX
6351 10317 parameter was incorrectly applying the "implicit conversion rules" during
6352 -the store. From the ACPI specification: "If the target is a method local or
10318 +the store. From the ACPI specification: "If the target is a method local
10319 +or
6353 10320 argument (LocalX or ArgX), no conversion is performed and the result is
6354 10321 stored directly to the target". The new behavior is to disable implicit
6355 10322 conversion during ALL stores to an ArgX.
6356 10323
6357 10324 Changed the behavior of the _PRW method scan to ignore any and all errors
6358 10325 returned by a given _PRW. This prevents the scan from aborting from the
6359 10326 failure of any single _PRW.
6360 10327
6361 -Moved the runtime configuration parameters from the global init procedure to
10328 +Moved the runtime configuration parameters from the global init procedure
10329 +to
6362 10330 static variables in acglobal.h. This will allow the host to override the
6363 10331 default values easily.
6364 10332
6365 10333 Code and Data Size: Current and previous core subsystem library sizes are
6366 -shown below. These are the code and data sizes for the acpica.lib produced
10334 +shown below. These are the code and data sizes for the acpica.lib
10335 +produced
6367 10336 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6368 10337 any ACPI driver or OSPM code. The debug version of the code includes the
6369 -debug output trace mechanism and has a much larger code and data size. Note
6370 -that these values will vary depending on the efficiency of the compiler and
10338 +debug output trace mechanism and has a much larger code and data size.
10339 +Note
10340 +that these values will vary depending on the efficiency of the compiler
10341 +and
6371 10342 the compiler options used during generation.
6372 10343
6373 10344 Previous Release:
6374 10345 Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
6375 10346 Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
6376 10347 Current Release:
6377 10348 Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total
6378 10349 Debug Version: 161.0K Code, 66.3K Data, 227.3K Total
6379 10350
6380 10351
6381 10352 2) iASL Compiler/Disassembler:
6382 10353
6383 -iASL now fully disassembles SSDTs. However, External() statements are not
10354 +iASL now fully disassembles SSDTs. However, External() statements are
10355 +not
6384 10356 generated automatically for unresolved symbols at this time. This is a
6385 10357 planned feature for future implementation.
6386 10358
6387 -Fixed a scoping problem in the disassembler that occurs when the type of the
10359 +Fixed a scoping problem in the disassembler that occurs when the type of
10360 +the
6388 10361 target of a Scope() operator is overridden. This problem caused an
6389 10362 incorrectly nested internal namespace to be constructed.
6390 10363
6391 -Any warnings or errors that are emitted during disassembly are now commented
6392 -out automatically so that the resulting file can be recompiled without any
10364 +Any warnings or errors that are emitted during disassembly are now
10365 +commented
10366 +out automatically so that the resulting file can be recompiled without
10367 +any
6393 10368 hand editing.
6394 10369
6395 10370 ----------------------------------------
6396 10371 26 March 2004. Summary of changes for version 20040326:
6397 10372
6398 10373 1) ACPI CA Core Subsystem:
6399 10374
6400 10375 Implemented support for "wake" GPEs via interaction between GPEs and the
6401 10376 _PRW methods. Every GPE that is pointed to by one or more _PRWs is
6402 10377 identified as a WAKE GPE and by default will no longer be enabled at
6403 -runtime. Previously, we were blindly enabling all GPEs with a corresponding
6404 -_Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway. We
10378 +runtime. Previously, we were blindly enabling all GPEs with a
10379 +corresponding
10380 +_Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway.
10381 +We
6405 10382 believe this has been the cause of thousands of "spurious" GPEs on some
6406 10383 systems.
6407 10384
6408 10385 This new GPE behavior is can be reverted to the original behavior (enable
6409 10386 ALL GPEs at runtime) via a runtime flag.
6410 10387
6411 10388 Fixed a problem where aliased control methods could not access objects
6412 10389 properly. The proper scope within the namespace was not initialized
6413 10390 (transferred to the target of the aliased method) before executing the
6414 10391 target method.
6415 10392
6416 -Fixed a potential race condition on internal object deletion on the return
10393 +Fixed a potential race condition on internal object deletion on the
10394 +return
6417 10395 object in AcpiEvaluateObject.
6418 10396
6419 10397 Integrated a fix for resource descriptors where both _MEM and _MTP were
6420 10398 being extracted instead of just _MEM. (i.e. bitmask was incorrectly too
6421 10399 wide, 0x0F instead of 0x03.)
6422 10400
6423 -Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, preventing a
10401 +Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName,
10402 +preventing
10403 +a
6424 10404 fault in some cases.
6425 10405
6426 10406 Updated Notify() values for debug statements in evmisc.c
6427 10407
6428 10408 Return proper status from AcpiUtMutexInitialize, not just simply AE_OK.
6429 10409
6430 10410 Code and Data Size: Current and previous core subsystem library sizes are
6431 -shown below. These are the code and data sizes for the acpica.lib produced
10411 +shown below. These are the code and data sizes for the acpica.lib
10412 +produced
6432 10413 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6433 10414 any ACPI driver or OSPM code. The debug version of the code includes the
6434 -debug output trace mechanism and has a much larger code and data size. Note
6435 -that these values will vary depending on the efficiency of the compiler and
10415 +debug output trace mechanism and has a much larger code and data size.
10416 +Note
10417 +that these values will vary depending on the efficiency of the compiler
10418 +and
6436 10419 the compiler options used during generation.
6437 10420
6438 10421 Previous Release:
6439 10422
6440 10423 Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
6441 10424 Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
6442 10425 Current Release:
6443 10426 Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total
6444 10427 Debug Version: 160.8K Code, 66.1K Data, 226.9K Total
6445 10428
6446 10429 ----------------------------------------
6447 10430 11 March 2004. Summary of changes for version 20040311:
6448 10431
6449 10432 1) ACPI CA Core Subsystem:
6450 10433
6451 10434 Fixed a problem where errors occurring during the parse phase of control
6452 10435 method execution did not abort cleanly. For example, objects created and
6453 10436 installed in the namespace were not deleted. This caused all subsequent
6454 10437 invocations of the method to return the AE_ALREADY_EXISTS exception.
6455 10438
6456 -Implemented a mechanism to force a control method to "Serialized" execution
10439 +Implemented a mechanism to force a control method to "Serialized"
10440 +execution
6457 10441 if the method attempts to create namespace objects. (The root of the
6458 10442 AE_ALREADY_EXISTS problem.)
6459 10443
6460 10444 Implemented support for the predefined _OSI "internal" control method.
6461 -Initial supported strings are "Linux", "Windows 2000", "Windows 2001", and
6462 -"Windows 2001.1", and can be easily upgraded for new strings as necessary.
10445 +Initial supported strings are "Linux", "Windows 2000", "Windows 2001",
10446 +and
10447 +"Windows 2001.1", and can be easily upgraded for new strings as
10448 +necessary.
6463 10449 This feature will allow "other" operating systems to execute the fully
6464 10450 tested, "Windows" code path through the ASL code
6465 10451
6466 10452 Global Lock Support: Now allows multiple acquires and releases with any
6467 -internal thread. Removed concept of "owning thread" for this special mutex.
10453 +internal thread. Removed concept of "owning thread" for this special
10454 +mutex.
6468 10455
6469 -Fixed two functions that were inappropriately declaring large objects on the
6470 -CPU stack: PsParseLoop, NsEvaluateRelative. Reduces the stack usage during
10456 +Fixed two functions that were inappropriately declaring large objects on
10457 +the
10458 +CPU stack: PsParseLoop, NsEvaluateRelative. Reduces the stack usage
10459 +during
6471 10460 method execution considerably.
6472 10461
6473 10462 Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the
6474 10463 S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT.
6475 10464
6476 10465 Fixed a problem where AcpiEvGpeDetect would fault if there were no GPEs
6477 10466 defined on the machine.
6478 10467
6479 -Implemented two runtime options: One to force all control method execution
6480 -to "Serialized" to mimic Windows behavior, another to disable _OSI support
10468 +Implemented two runtime options: One to force all control method
10469 +execution
10470 +to "Serialized" to mimic Windows behavior, another to disable _OSI
10471 +support
6481 10472 if it causes problems on a given machine.
6482 10473
6483 10474 Code and Data Size: Current and previous core subsystem library sizes are
6484 -shown below. These are the code and data sizes for the acpica.lib produced
10475 +shown below. These are the code and data sizes for the acpica.lib
10476 +produced
6485 10477 by the Microsoft Visual C++ 6.0 compiler, and these values do not include
6486 10478 any ACPI driver or OSPM code. The debug version of the code includes the
6487 -debug output trace mechanism and has a much larger code and data size. Note
6488 -that these values will vary depending on the efficiency of the compiler and
10479 +debug output trace mechanism and has a much larger code and data size.
10480 +Note
10481 +that these values will vary depending on the efficiency of the compiler
10482 +and
6489 10483 the compiler options used during generation.
6490 10484
6491 10485 Previous Release:
6492 10486 Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
6493 10487 Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
6494 10488 Current Release:
6495 10489 Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total
6496 10490 Debug Version: 160.3K Code, 66.0K Data, 226.3K Total
6497 10491
6498 10492 2) iASL Compiler/Disassembler:
6499 10493
6500 10494 Fixed an array size problem for FreeBSD that would cause the compiler to
6501 10495 fault.
6502 10496
6503 10497 ----------------------------------------
6504 10498 20 February 2004. Summary of changes for version 20040220:
6505 10499
6506 10500
6507 10501 1) ACPI CA Core Subsystem:
6508 10502
6509 10503 Implemented execution of _SxD methods for Device objects in the
6510 10504 GetObjectInfo interface.
6511 10505
6512 10506 Fixed calls to _SST method to pass the correct arguments.
↓ open down ↓ |
14 lines elided |
↑ open up ↑ |
6513 10507
6514 10508 Added a call to _SST on wake to restore to "working" state.
6515 10509
6516 10510 Check for End-Of-Buffer failure case in the WalkResources interface.
6517 10511
6518 10512 Integrated fix for 64-bit alignment issue in acglobal.h by moving two
6519 10513 structures to the beginning of the file.
6520 10514
6521 10515 After wake, clear GPE status register(s) before enabling GPEs.
6522 10516
6523 -After wake, clear/enable power button. (Perhaps we should clear/enable all
10517 +After wake, clear/enable power button. (Perhaps we should clear/enable
10518 +all
6524 10519 fixed events upon wake.)
6525 10520
6526 10521 Fixed a couple of possible memory leaks in the Namespace manager.
6527 10522
6528 10523 Integrated latest acnetbsd.h file.
6529 10524
6530 10525 ----------------------------------------
6531 10526 11 February 2004. Summary of changes for version 20040211:
6532 10527
6533 10528
6534 10529 1) ACPI CA Core Subsystem:
6535 10530
6536 10531 Completed investigation and implementation of the call-by-reference
6537 10532 mechanism for control method arguments.
6538 10533
6539 10534 Fixed a problem where a store of an object into an indexed package could
6540 10535 fail if the store occurs within a different method than the method that
6541 10536 created the package.
6542 10537
6543 -Fixed a problem where the ToDecimal operator could return incorrect results.
10538 +Fixed a problem where the ToDecimal operator could return incorrect
10539 +results.
6544 10540
6545 -Fixed a problem where the CopyObject operator could fail on some of the more
10541 +Fixed a problem where the CopyObject operator could fail on some of the
10542 +more
6546 10543 obscure objects (e.g., Reference objects.)
6547 10544
6548 10545 Improved the output of the Debug object to display buffer, package, and
6549 10546 index objects.
6550 10547
6551 -Fixed a problem where constructs of the form "RefOf (ArgX)" did not return
10548 +Fixed a problem where constructs of the form "RefOf (ArgX)" did not
10549 +return
6552 10550 the expected result.
6553 10551
6554 10552 Added permanent ACPI_REPORT_ERROR macros for all instances of the
6555 10553 ACPI_AML_INTERNAL exception.
6556 10554
6557 10555 Integrated latest version of acfreebsd.h
6558 10556
6559 10557 ----------------------------------------
6560 10558 16 January 2004. Summary of changes for version 20040116:
6561 10559
6562 10560 The purpose of this release is primarily to update the copyright years in
6563 10561 each module, thus causing a huge number of diffs. There are a few small
6564 10562 functional changes, however.
6565 10563
6566 10564 1) ACPI CA Core Subsystem:
6567 10565
6568 -Improved error messages when there is a problem finding one or more of the
10566 +Improved error messages when there is a problem finding one or more of
10567 +the
6569 10568 required base ACPI tables
6570 10569
6571 10570 Reintroduced the definition of APIC_HEADER in actbl.h
6572 10571
6573 10572 Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
6574 10573
6575 10574 Removed extraneous reference to NewObj in dsmthdat.c
6576 10575
6577 10576 2) iASL compiler
6578 10577
6579 -Fixed a problem introduced in December that disabled the correct disassembly
10578 +Fixed a problem introduced in December that disabled the correct
10579 +disassembly
6580 10580 of Resource Templates
6581 10581
6582 10582
6583 10583 ----------------------------------------
6584 10584 03 December 2003. Summary of changes for version 20031203:
6585 10585
6586 10586 1) ACPI CA Core Subsystem:
6587 10587
6588 10588 Changed the initialization of Operation Regions during subsystem
6589 10589 init to perform two entire walks of the ACPI namespace; The first
6590 10590 to initialize the regions themselves, the second to execute the
6591 10591 _REG methods. This fixed some interdependencies across _REG
6592 10592 methods found on some machines.
6593 10593
6594 10594 Fixed a problem where a Store(Local0, Local1) could simply update
6595 10595 the object reference count, and not create a new copy of the
6596 10596 object if the Local1 is uninitialized.
6597 10597
6598 10598 Implemented support for the _SST reserved method during sleep
6599 10599 transitions.
6600 10600
6601 10601 Implemented support to clear the SLP_TYP and SLP_EN bits when
6602 10602 waking up, this is apparently required by some machines.
6603 10603
6604 10604 When sleeping, clear the wake status only if SleepState is not S5.
6605 10605
6606 10606 Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect
6607 10607 pointer arithmetic advanced a string pointer too far.
6608 10608
6609 10609 Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer
6610 10610 could be returned if the requested table has not been loaded.
6611 10611
6612 10612 Within the support for IRQ resources, restructured the handling of
6613 10613 the active and edge/level bits.
6614 10614
6615 10615 Fixed a few problems in AcpiPsxExecute() where memory could be
6616 10616 leaked under certain error conditions.
6617 10617
6618 10618 Improved error messages for the cases where the ACPI mode could
6619 10619 not be entered.
6620 10620
6621 10621 Code and Data Size: Current and previous core subsystem library
6622 10622 sizes are shown below. These are the code and data sizes for the
6623 10623 acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
6624 10624 these values do not include any ACPI driver or OSPM code. The
6625 10625 debug version of the code includes the debug output trace
6626 10626 mechanism and has a much larger code and data size. Note that
6627 10627 these values will vary depending on the efficiency of the compiler
6628 10628 and the compiler options used during generation.
6629 10629
6630 10630 Previous Release (20031029):
6631 10631 Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
6632 10632 Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
6633 10633 Current Release:
6634 10634 Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total
6635 10635 Debug Version: 158.7K Code, 65.1K Data, 223.8K Total
6636 10636
6637 10637 2) iASL Compiler/Disassembler:
6638 10638
6639 10639 Implemented a fix for the iASL disassembler where a bad index was
6640 10640 generated. This was most noticeable on 64-bit platforms
6641 10641
6642 10642
6643 10643 ----------------------------------------
6644 10644 29 October 2003. Summary of changes for version 20031029:
6645 10645
6646 10646 1) ACPI CA Core Subsystem:
6647 10647
6648 10648
6649 10649 Fixed a problem where a level-triggered GPE with an associated
6650 10650 _Lxx control method was incorrectly cleared twice.
6651 10651
6652 10652 Fixed a problem with the Field support code where an access can
6653 10653 occur beyond the end-of-region if the field is non-aligned but
6654 10654 extends to the very end of the parent region (resulted in an
6655 10655 AE_AML_REGION_LIMIT exception.)
6656 10656
6657 10657 Fixed a problem with ACPI Fixed Events where an RT Clock handler
6658 10658 would not get invoked on an RTC event. The RTC event bitmasks for
6659 10659 the PM1 registers were not being initialized properly.
6660 10660
6661 10661 Implemented support for executing _STA and _INI methods for
6662 10662 Processor objects. Although this is currently not part of the
6663 10663 ACPI specification, there is existing ASL code that depends on the
6664 10664 init-time execution of these methods.
6665 10665
6666 10666 Implemented and deployed a GetDescriptorName function to decode
6667 10667 the various types of internal descriptors. Guards against null
6668 10668 descriptors during debug output also.
6669 10669
6670 10670 Implemented and deployed a GetNodeName function to extract the 4-
6671 10671 character namespace node name. This function simplifies the debug
6672 10672 and error output, as well as guarding against null pointers during
6673 10673 output.
6674 10674
6675 10675 Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to
6676 10676 simplify the debug and error output of 64-bit integers. This
6677 10677 macro replaces the HIDWORD and LODWORD macros for dumping these
6678 10678 integers.
6679 10679
6680 10680 Updated the implementation of the Stall() operator to only call
6681 10681 AcpiOsStall(), and also return an error if the operand is larger
6682 10682 than 255. This preserves the required behavior of not
6683 10683 relinquishing the processor, as would happen if AcpiOsSleep() was
6684 10684 called for "long stalls".
6685 10685
6686 10686 Constructs of the form "Store(LocalX,LocalX)" where LocalX is not
6687 10687 initialized are now treated as NOOPs.
6688 10688
6689 10689 Cleaned up a handful of warnings during 64-bit generation.
6690 10690
6691 10691 Fixed a reported error where and incorrect GPE number was passed
6692 10692 to the GPE dispatch handler. This value is only used for error
6693 10693 output, however. Used this opportunity to clean up and streamline
6694 10694 the GPE dispatch code.
6695 10695
6696 10696 Code and Data Size: Current and previous core subsystem library
6697 10697 sizes are shown below. These are the code and data sizes for the
6698 10698 acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
6699 10699 these values do not include any ACPI driver or OSPM code. The
6700 10700
6701 10701 debug version of the code includes the debug output trace
6702 10702 mechanism and has a much larger code and data size. Note that
6703 10703 these values will vary depending on the efficiency of the compiler
6704 10704 and the compiler options used during generation.
6705 10705
6706 10706 Previous Release (20031002):
6707 10707 Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
6708 10708 Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
6709 10709 Current Release:
6710 10710 Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total
6711 10711 Debug Version: 158.3K Code, 65.0K Data, 223.3K Total
6712 10712
6713 10713
6714 10714 2) iASL Compiler/Disassembler:
6715 10715
6716 10716 Updated the iASL compiler to return an error if the operand to the
6717 10717 Stall() operator is larger than 255.
6718 10718
6719 10719
6720 10720 ----------------------------------------
6721 10721 02 October 2003. Summary of changes for version 20031002:
6722 10722
6723 10723
6724 10724 1) ACPI CA Core Subsystem:
6725 10725
6726 10726 Fixed a problem with Index Fields where the index was not
6727 10727 incremented for fields that require multiple writes to the
6728 10728 index/data registers (Fields that are wider than the data
6729 10729 register.)
6730 10730
6731 10731 Fixed a problem with all Field objects where a write could go
6732 10732 beyond the end-of-field if the field was larger than the access
6733 10733 granularity and therefore required multiple writes to complete the
6734 10734 request. An extra write beyond the end of the field could happen
6735 10735 inadvertently.
6736 10736
6737 10737 Fixed a problem with Index Fields where a BUFFER_OVERFLOW error
6738 10738 would incorrectly be returned if the width of the Data Register
6739 10739 was larger than the specified field access width.
6740 10740
6741 10741 Completed fixes for LoadTable() and Unload() and verified their
6742 10742 operation. Implemented full support for the "DdbHandle" object
6743 10743 throughout the ACPI CA subsystem.
6744 10744
6745 10745 Implemented full support for the MADT and ECDT tables in the ACPI
6746 10746 CA header files. Even though these tables are not directly
6747 10747 consumed by ACPI CA, the header definitions are useful for ACPI
6748 10748 device drivers.
6749 10749
6750 10750 Integrated resource descriptor fixes posted to the Linux ACPI
6751 10751 list. This included checks for minimum descriptor length, and
6752 10752 support for trailing NULL strings within descriptors that have
6753 10753 optional string elements.
6754 10754
6755 10755 Code and Data Size: Current and previous core subsystem library
6756 10756 sizes are shown below. These are the code and data sizes for the
6757 10757 acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
6758 10758 these values do not include any ACPI driver or OSPM code. The
6759 10759 debug version of the code includes the debug output trace
6760 10760 mechanism and has a much larger code and data size. Note that
6761 10761 these values will vary depending on the efficiency of the compiler
6762 10762 and the compiler options used during generation.
6763 10763
6764 10764 Previous Release (20030918):
6765 10765 Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
6766 10766 Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
6767 10767 Current Release:
6768 10768 Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total
6769 10769 Debug Version: 157.9K Code, 64.8K Data, 222.7K Total
6770 10770
6771 10771
6772 10772 2) iASL Compiler:
6773 10773
6774 10774 Implemented detection of non-ASCII characters within the input
6775 10775 source ASL file. This catches attempts to compile binary (AML)
6776 10776 files early in the compile, with an informative error message.
6777 10777
6778 10778 Fixed a problem where the disassembler would fault if the output
6779 10779 filename could not be generated or if the output file could not be
6780 10780 opened.
6781 10781
6782 10782 ----------------------------------------
6783 10783 18 September 2003. Summary of changes for version 20030918:
6784 10784
6785 10785
6786 10786 1) ACPI CA Core Subsystem:
6787 10787
6788 10788 Found and fixed a longstanding problem with the late execution of
6789 10789 the various deferred AML opcodes (such as Operation Regions,
6790 10790 Buffer Fields, Buffers, and Packages). If the name string
6791 10791 specified for the name of the new object placed the object in a
6792 10792 scope other than the current scope, the initialization/execution
6793 10793 of the opcode failed. The solution to this problem was to
6794 10794 implement a mechanism where the late execution of such opcodes
6795 10795 does not attempt to lookup/create the name a second time in an
6796 10796 incorrect scope. This fixes the "region size computed
6797 10797 incorrectly" problem.
6798 10798
6799 10799 Fixed a call to AcpiHwRegisterWrite in hwregs.c that was causing a
6800 10800 Global Lock AE_BAD_PARAMETER error.
6801 10801
6802 10802 Fixed several 64-bit issues with prototypes, casting and data
6803 10803 types.
6804 10804
6805 10805 Removed duplicate prototype from acdisasm.h
6806 10806
6807 10807 Fixed an issue involving EC Operation Region Detach (Shaohua Li)
6808 10808
6809 10809 Code and Data Size: Current and previous core subsystem library
6810 10810 sizes are shown below. These are the code and data sizes for the
6811 10811 acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
6812 10812 these values do not include any ACPI driver or OSPM code. The
6813 10813 debug version of the code includes the debug output trace
6814 10814 mechanism and has a much larger code and data size. Note that
6815 10815 these values will vary depending on the efficiency of the compiler
6816 10816 and the compiler options used during generation.
6817 10817
6818 10818 Previous Release:
6819 10819
6820 10820 Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
6821 10821 Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
6822 10822 Current Release:
6823 10823 Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total
6824 10824 Debug Version: 157.3K Code, 64.5K Data, 221.8K Total
6825 10825
6826 10826
6827 10827 2) Linux:
6828 10828
6829 10829 Fixed the AcpiOsSleep implementation in osunixxf.c to pass the
6830 10830 correct sleep time in seconds.
6831 10831
6832 10832 ----------------------------------------
6833 10833 14 July 2003. Summary of changes for version 20030619:
6834 10834
6835 10835 1) ACPI CA Core Subsystem:
6836 10836
6837 10837 Parse SSDTs in order discovered, as opposed to reverse order
6838 10838 (Hrvoje Habjanic)
6839 10839
6840 10840 Fixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
6841 10841 Klausner,
6842 10842 Nate Lawson)
6843 10843
6844 10844
6845 10845 2) Linux:
6846 10846
6847 10847 Dynamically allocate SDT list (suggested by Andi Kleen)
6848 10848
6849 10849 proc function return value cleanups (Andi Kleen)
6850 10850
6851 10851 Correctly handle NMI watchdog during long stalls (Andrew Morton)
6852 10852
6853 10853 Make it so acpismp=force works (reported by Andrew Morton)
6854 10854
6855 10855
6856 10856 ----------------------------------------
6857 10857 19 June 2003. Summary of changes for version 20030619:
6858 10858
6859 10859 1) ACPI CA Core Subsystem:
6860 10860
6861 10861 Fix To/FromBCD, eliminating the need for an arch-specific #define.
6862 10862
6863 10863 Do not acquire a semaphore in the S5 shutdown path.
6864 10864
6865 10865 Fix ex_digits_needed for 0. (Takayoshi Kochi)
6866 10866
6867 10867 Fix sleep/stall code reversal. (Andi Kleen)
6868 10868
6869 10869 Revert a change having to do with control method calling
6870 10870 semantics.
6871 10871
6872 10872 2) Linux:
6873 10873
6874 10874 acpiphp update (Takayoshi Kochi)
6875 10875
6876 10876 Export acpi_disabled for sonypi (Stelian Pop)
6877 10877
6878 10878 Mention acpismp=force in config help
6879 10879
6880 10880 Re-add acpitable.c and acpismp=force. This improves backwards
6881 10881
6882 10882 compatibility and also cleans up the code to a significant degree.
6883 10883
6884 10884 Add ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
6885 10885
6886 10886 ----------------------------------------
6887 10887 22 May 2003. Summary of changes for version 20030522:
6888 10888
6889 10889 1) ACPI CA Core Subsystem:
6890 10890
6891 10891 Found and fixed a reported problem where an AE_NOT_FOUND error
6892 10892 occurred occasionally during _BST evaluation. This turned out to
6893 10893 be an Owner ID allocation issue where a called method did not get
6894 10894 a new ID assigned to it. Eventually, (after 64k calls), the Owner
6895 10895 ID UINT16 would wraparound so that the ID would be the same as the
6896 10896 caller's and the called method would delete the caller's
6897 10897 namespace.
6898 10898
6899 10899 Implemented extended error reporting for control methods that are
6900 10900 aborted due to a run-time exception. Output includes the exact
6901 10901 AML instruction that caused the method abort, a dump of the method
6902 10902 locals and arguments at the time of the abort, and a trace of all
6903 10903 nested control method calls.
6904 10904
6905 10905 Modified the interpreter to allow the creation of buffers of zero
6906 10906 length from the AML code. Implemented new code to ensure that no
6907 10907 attempt is made to actually allocate a memory buffer (of length
6908 10908 zero) - instead, a simple buffer object with a NULL buffer pointer
6909 10909 and length zero is created. A warning is no longer issued when
6910 10910 the AML attempts to create a zero-length buffer.
6911 10911
6912 10912 Implemented a workaround for the "leading asterisk issue" in
6913 10913 _HIDs, _UIDs, and _CIDs in the AML interpreter. One leading
6914 10914 asterisk is automatically removed if present in any HID, UID, or
6915 10915 CID strings. The iASL compiler will still flag this asterisk as
6916 10916 an error, however.
6917 10917
6918 10918 Implemented full support for _CID methods that return a package of
6919 10919 multiple CIDs (Compatible IDs). The AcpiGetObjectInfo() interface
6920 10920 now additionally returns a device _CID list if present. This
6921 10921 required a change to the external interface in order to pass an
6922 10922 ACPI_BUFFER object as a parameter since the _CID list is of
6923 10923 variable length.
6924 10924
6925 10925 Fixed a problem with the new AE_SAME_HANDLER exception where
6926 10926 handler initialization code did not know about this exception.
6927 10927
6928 10928 Code and Data Size: Current and previous core subsystem library
6929 10929 sizes are shown below. These are the code and data sizes for the
6930 10930 acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
6931 10931 these values do not include any ACPI driver or OSPM code. The
6932 10932 debug version of the code includes the debug output trace
6933 10933 mechanism and has a much larger code and data size. Note that
6934 10934 these values will vary depending on the efficiency of the compiler
6935 10935 and the compiler options used during generation.
6936 10936
6937 10937 Previous Release (20030509):
6938 10938 Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
6939 10939 Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
6940 10940 Current Release:
6941 10941 Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total
6942 10942 Debug Version: 156.9K Code, 64.2K Data, 221.1K Total
6943 10943
6944 10944
6945 10945 2) Linux:
6946 10946
6947 10947 Fixed a bug in which we would reinitialize the ACPI interrupt
6948 10948 after it was already working, thus disabling all ACPI and the IRQs
6949 10949 for any other device sharing the interrupt. (Thanks to Stian
6950 10950 Jordet)
6951 10951
6952 10952 Toshiba driver update (John Belmonte)
6953 10953
6954 10954 Return only 0 or 1 for our interrupt handler status (Andrew
6955 10955 Morton)
6956 10956
6957 10957
6958 10958 3) iASL Compiler:
6959 10959
6960 10960 Fixed a reported problem where multiple (nested) ElseIf()
6961 10961 statements were not handled correctly by the compiler, resulting
6962 10962 in incorrect warnings and incorrect AML code. This was a problem
6963 10963 in both the ASL parser and the code generator.
6964 10964
6965 10965
6966 10966 4) Documentation:
6967 10967
6968 10968 Added changes to existing interfaces, new exception codes, and new
6969 10969 text concerning reference count object management versus garbage
6970 10970 collection.
6971 10971
6972 10972 ----------------------------------------
6973 10973 09 May 2003. Summary of changes for version 20030509.
6974 10974
6975 10975
6976 10976 1) ACPI CA Core Subsystem:
6977 10977
6978 10978 Changed the subsystem initialization sequence to hold off
6979 10979 installation of address space handlers until the hardware has been
6980 10980 initialized and the system has entered ACPI mode. This is because
6981 10981 the installation of space handlers can cause _REG methods to be
6982 10982 run. Previously, the _REG methods could potentially be run before
6983 10983 ACPI mode was enabled.
6984 10984
6985 10985 Fixed some memory leak issues related to address space handler and
6986 10986 notify handler installation. There were some problems with the
6987 10987 reference count mechanism caused by the fact that the handler
6988 10988 objects are shared across several namespace objects.
6989 10989
6990 10990 Fixed a reported problem where reference counts within the
6991 10991 namespace were not properly updated when named objects created by
6992 10992 method execution were deleted.
6993 10993
6994 10994 Fixed a reported problem where multiple SSDTs caused a deletion
6995 10995 issue during subsystem termination. Restructured the table data
6996 10996 structures to simplify the linked lists and the related code.
6997 10997
6998 10998 Fixed a problem where the table ID associated with secondary
6999 10999 tables (SSDTs) was not being propagated into the namespace objects
7000 11000 created by those tables. This would only present a problem for
7001 11001 tables that are unloaded at run-time, however.
7002 11002
7003 11003 Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
7004 11004 type as the length parameter (instead of UINT32).
7005 11005
7006 11006 Solved a long-standing problem where an ALREADY_EXISTS error
7007 11007 appears on various systems. This problem could happen when there
7008 11008 are multiple PCI_Config operation regions under a single PCI root
7009 11009 bus. This doesn't happen very frequently, but there are some
7010 11010 systems that do this in the ASL.
7011 11011
7012 11012 Fixed a reported problem where the internal DeleteNode function
7013 11013 was incorrectly handling the case where a namespace node was the
7014 11014 first in the parent's child list, and had additional peers (not
7015 11015 the only child, but first in the list of children.)
7016 11016
7017 11017 Code and Data Size: Current core subsystem library sizes are shown
7018 11018 below. These are the code and data sizes for the acpica.lib
7019 11019 produced by the Microsoft Visual C++ 6.0 compiler, and these
7020 11020 values do not include any ACPI driver or OSPM code. The debug
7021 11021 version of the code includes the debug output trace mechanism and
7022 11022 has a much larger code and data size. Note that these values will
7023 11023 vary depending on the efficiency of the compiler and the compiler
7024 11024 options used during generation.
7025 11025
7026 11026 Previous Release
7027 11027 Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
7028 11028 Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
7029 11029 Current Release:
7030 11030 Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total
7031 11031 Debug Version: 156.1K Code, 63.9K Data, 220.0K Total
7032 11032
7033 11033
7034 11034 2) Linux:
7035 11035
7036 11036 Allow ":" in OS override string (Ducrot Bruno)
7037 11037
7038 11038 Kobject fix (Greg KH)
7039 11039
7040 11040
7041 11041 3 iASL Compiler/Disassembler:
7042 11042
7043 11043 Fixed a problem in the generation of the C source code files (AML
7044 11044 is emitted in C source statements for BIOS inclusion) where the
7045 11045 Ascii dump that appears within a C comment at the end of each line
7046 11046 could cause a compile time error if the AML sequence happens to
7047 11047 have an open comment or close comment sequence embedded.
7048 11048
7049 11049
7050 11050 ----------------------------------------
7051 11051 24 April 2003. Summary of changes for version 20030424.
7052 11052
7053 11053
7054 11054 1) ACPI CA Core Subsystem:
7055 11055
7056 11056 Support for big-endian systems has been implemented. Most of the
7057 11057 support has been invisibly added behind big-endian versions of the
7058 11058 ACPI_MOVE_* macros.
7059 11059
7060 11060 Fixed a problem in AcpiHwDisableGpeBlock() and
7061 11061 AcpiHwClearGpeBlock() where an incorrect offset was passed to the
7062 11062 low level hardware write routine. The offset parameter was
7063 11063 actually eliminated from the low level read/write routines because
7064 11064 they had become obsolete.
7065 11065
7066 11066 Fixed a problem where a handler object was deleted twice during
7067 11067 the removal of a fixed event handler.
7068 11068
7069 11069
7070 11070 2) Linux:
7071 11071
7072 11072 A fix for SMP systems with link devices was contributed by
7073 11073
7074 11074 Compaq's Dan Zink.
7075 11075
7076 11076 (2.5) Return whether we handled the interrupt in our IRQ handler.
7077 11077 (Linux ISRs no longer return void, so we can propagate the handler
7078 11078 return value from the ACPI CA core back to the OS.)
7079 11079
7080 11080
7081 11081
7082 11082 3) Documentation:
7083 11083
7084 11084 The ACPI CA Programmer Reference has been updated to reflect new
7085 11085 interfaces and changes to existing interfaces.
7086 11086
7087 11087 ----------------------------------------
7088 11088 28 March 2003. Summary of changes for version 20030328.
7089 11089
7090 11090 1) ACPI CA Core Subsystem:
7091 11091
7092 11092 The GPE Block Device support has been completed. New interfaces
7093 11093 are AcpiInstallGpeBlock and AcpiRemoveGpeBlock. The Event
7094 11094 interfaces (enable, disable, clear, getstatus) have been split
7095 11095 into separate interfaces for Fixed Events and General Purpose
7096 11096 Events (GPEs) in order to support GPE Block Devices properly.
7097 11097
7098 11098 Fixed a problem where the error message "Failed to acquire
7099 11099 semaphore" would appear during operations on the embedded
7100 11100 controller (EC).
7101 11101
7102 11102 Code and Data Size: Current core subsystem library sizes are shown
7103 11103 below. These are the code and data sizes for the acpica.lib
7104 11104 produced by the Microsoft Visual C++ 6.0 compiler, and these
7105 11105 values do not include any ACPI driver or OSPM code. The debug
7106 11106 version of the code includes the debug output trace mechanism and
7107 11107 has a much larger code and data size. Note that these values will
7108 11108 vary depending on the efficiency of the compiler and the compiler
7109 11109 options used during generation.
7110 11110
7111 11111 Previous Release
7112 11112 Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
7113 11113 Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
7114 11114 Current Release:
7115 11115 Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total
7116 11116 Debug Version: 156.1K Code, 63.6K Data, 219.7K Total
7117 11117
7118 11118
7119 11119 ----------------------------------------
7120 11120 28 February 2003. Summary of changes for version 20030228.
7121 11121
7122 11122
7123 11123 1) ACPI CA Core Subsystem:
7124 11124
7125 11125 The GPE handling and dispatch code has been completely overhauled
7126 11126 in preparation for support of GPE Block Devices (ID ACPI0006).
7127 11127 This affects internal data structures and code only; there should
7128 11128 be no differences visible externally. One new file has been
7129 11129 added, evgpeblk.c
7130 11130
7131 11131 The FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
7132 11132 fields that are used to determine the GPE block lengths. The
7133 11133 REGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
7134 11134 structures are ignored. This is per the ACPI specification but it
7135 11135 isn't very clear. The full 256 Block 0/1 GPEs are now supported
7136 11136 (the use of REGISTER_BIT_WIDTH limited the number of GPEs to 128).
7137 11137
7138 11138 In the SCI interrupt handler, removed the read of the PM1_CONTROL
7139 11139 register to look at the SCI_EN bit. On some machines, this read
7140 11140 causes an SMI event and greatly slows down SCI events. (This may
7141 11141 in fact be the cause of slow battery status response on some
7142 11142 systems.)
7143 11143
7144 11144 Fixed a problem where a store of a NULL string to a package object
7145 11145 could cause the premature deletion of the object. This was seen
7146 11146 during execution of the battery _BIF method on some systems,
7147 11147 resulting in no battery data being returned.
7148 11148
7149 11149 Added AcpiWalkResources interface to simplify parsing of resource
7150 11150 lists.
7151 11151
7152 11152 Code and Data Size: Current core subsystem library sizes are shown
7153 11153 below. These are the code and data sizes for the acpica.lib
7154 11154 produced by the Microsoft Visual C++ 6.0 compiler, and these
7155 11155 values do not include any ACPI driver or OSPM code. The debug
7156 11156 version of the code includes the debug output trace mechanism and
7157 11157 has a much larger code and data size. Note that these values will
7158 11158 vary depending on the efficiency of the compiler and the compiler
7159 11159 options used during generation.
7160 11160
7161 11161 Previous Release
7162 11162 Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
7163 11163 Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
7164 11164 Current Release:
7165 11165 Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total
7166 11166 Debug Version: 154.0K Code, 63.4K Data, 217.4K Total
7167 11167
7168 11168
7169 11169 2) Linux
7170 11170
7171 11171 S3 fixes (Ole Rohne)
7172 11172
7173 11173 Update ACPI PHP driver with to use new acpi_walk_resource API
7174 11174 (Bjorn Helgaas)
7175 11175
7176 11176 Add S4BIOS support (Pavel Machek)
7177 11177
7178 11178 Map in entire table before performing checksum (John Stultz)
7179 11179
7180 11180 Expand the mem= cmdline to allow the specification of reserved and
7181 11181 ACPI DATA blocks (Pavel Machek)
7182 11182
7183 11183 Never use ACPI on VISWS
7184 11184
7185 11185 Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
7186 11186
7187 11187 Revert a change that allowed P_BLK lengths to be 4 or 5. This is
7188 11188 causing us to think that some systems support C2 when they really
7189 11189 don't.
7190 11190
7191 11191 Do not count processor objects for non-present CPUs (Thanks to
7192 11192 Dominik Brodowski)
7193 11193
7194 11194
7195 11195 3) iASL Compiler:
7196 11196
7197 11197 Fixed a problem where ASL include files could not be found and
7198 11198 opened.
7199 11199
7200 11200 Added support for the _PDC reserved name.
7201 11201
7202 11202
7203 11203 ----------------------------------------
7204 11204 22 January 2003. Summary of changes for version 20030122.
7205 11205
7206 11206
7207 11207 1) ACPI CA Core Subsystem:
7208 11208
7209 11209 Added a check for constructs of the form: Store (Local0, Local0)
7210 11210 where Local0 is not initialized. Apparently, some BIOS
7211 11211 programmers believe that this is a NOOP. Since this store doesn't
7212 11212 do anything anyway, the new prototype behavior will ignore this
7213 11213 error. This is a case where we can relax the strict checking in
7214 11214 the interpreter in the name of compatibility.
7215 11215
7216 11216
7217 11217 2) Linux
7218 11218
7219 11219 The AcpiSrc Source Conversion Utility has been released with the
7220 11220 Linux package for the first time. This is the utility that is
7221 11221 used to convert the ACPI CA base source code to the Linux version.
7222 11222
7223 11223 (Both) Handle P_BLK lengths shorter than 6 more gracefully
7224 11224
7225 11225 (Both) Move more headers to include/acpi, and delete an unused
7226 11226 header.
7227 11227
7228 11228 (Both) Move drivers/acpi/include directory to include/acpi
7229 11229
7230 11230 (Both) Boot functions don't use cmdline, so don't pass it around
7231 11231
7232 11232 (Both) Remove include of unused header (Adrian Bunk)
7233 11233
7234 11234 (Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
7235 11235 the
7236 11236 former now also includes the latter, acpiphp.h only needs the one,
7237 11237 now.
7238 11238
7239 11239 (2.5) Make it possible to select method of bios restoring after S3
7240 11240 resume. [=> no more ugly ifdefs] (Pavel Machek)
7241 11241
7242 11242 (2.5) Make proc write interfaces work (Pavel Machek)
7243 11243
7244 11244 (2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
7245 11245
7246 11246 (2.5) Break out ACPI Perf code into its own module, under cpufreq
7247 11247 (Dominik Brodowski)
7248 11248
7249 11249 (2.4) S4BIOS support (Ducrot Bruno)
7250 11250
7251 11251 (2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
7252 11252 Visinoni)
7253 11253
7254 11254
7255 11255 3) iASL Compiler:
7256 11256
7257 11257 Added support to disassemble SSDT and PSDTs.
7258 11258
7259 11259 Implemented support to obtain SSDTs from the Windows registry if
7260 11260 available.
7261 11261
7262 11262
7263 11263 ----------------------------------------
7264 11264 09 January 2003. Summary of changes for version 20030109.
7265 11265
7266 11266 1) ACPI CA Core Subsystem:
7267 11267
7268 11268 Changed the behavior of the internal Buffer-to-String conversion
7269 11269 function. The current ACPI specification states that the contents
7270 11270 of the buffer are "converted to a string of two-character
7271 11271 hexadecimal numbers, each separated by a space". Unfortunately,
7272 11272 this definition is not backwards compatible with existing ACPI 1.0
7273 11273 implementations (although the behavior was not defined in the ACPI
7274 11274 1.0 specification). The new behavior simply copies data from the
7275 11275 buffer to the string until a null character is found or the end of
7276 11276 the buffer is reached. The new String object is always null
7277 11277 terminated. This problem was seen during the generation of _BIF
7278 11278 battery data where incorrect strings were returned for battery
7279 11279 type, etc. This will also require an errata to the ACPI
7280 11280 specification.
7281 11281
7282 11282 Renamed all instances of NATIVE_UINT and NATIVE_INT to
7283 11283 ACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
7284 11284
7285 11285 Copyright in all module headers (both Linux and non-Linux) has be
7286 11286 updated to 2003.
7287 11287
7288 11288 Code and Data Size: Current core subsystem library sizes are shown
7289 11289 below. These are the code and data sizes for the acpica.lib
7290 11290 produced by the Microsoft Visual C++ 6.0 compiler, and these
7291 11291 values do not include any ACPI driver or OSPM code. The debug
7292 11292 version of the code includes the debug output trace mechanism and
7293 11293 has a much larger code and data size. Note that these values will
7294 11294 vary depending on the efficiency of the compiler and the compiler
7295 11295 options used during generation.
7296 11296
7297 11297 Previous Release
7298 11298 Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
7299 11299 Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
7300 11300 Current Release:
7301 11301 Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
7302 11302 Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
7303 11303
7304 11304
7305 11305 2) Linux
7306 11306
7307 11307 Fixed an oops on module insertion/removal (Matthew Tippett)
7308 11308
7309 11309 (2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
7310 11310
7311 11311 (2.5) Replace pr_debug (Randy Dunlap)
7312 11312
7313 11313 (2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
7314 11314
7315 11315 (Both) Eliminate spawning of thread from timer callback, in favor
7316 11316 of schedule_work()
7317 11317
7318 11318 (Both) Show Lid status in /proc (Zdenek OGAR Skalak)
7319 11319
7320 11320 (Both) Added define for Fixed Function HW region (Matthew Wilcox)
7321 11321
7322 11322 (Both) Add missing statics to button.c (Pavel Machek)
7323 11323
7324 11324 Several changes have been made to the source code translation
7325 11325 utility that generates the Linux Code in order to make the code
7326 11326 more "Linux-like":
7327 11327
7328 11328 All typedefs on structs and unions have been removed in keeping
7329 11329 with the Linux coding style.
7330 11330
7331 11331 Removed the non-Linux SourceSafe module revision number from each
7332 11332 module header.
7333 11333
7334 11334 Completed major overhaul of symbols to be lowercased for linux.
7335 11335 Doubled the number of symbols that are lowercased.
7336 11336
7337 11337 Fixed a problem where identifiers within procedure headers and
7338 11338 within quotes were not fully lower cased (they were left with a
7339 11339 starting capital.)
7340 11340
7341 11341 Some C macros whose only purpose is to allow the generation of 16-
7342 11342 bit code are now completely removed in the Linux code, increasing
7343 11343 readability and maintainability.
7344 11344
7345 11345 ----------------------------------------
7346 11346
7347 11347 12 December 2002. Summary of changes for version 20021212.
7348 11348
7349 11349
7350 11350 1) ACPI CA Core Subsystem:
7351 11351
7352 11352 Fixed a problem where the creation of a zero-length AML Buffer
7353 11353 would cause a fault.
7354 11354
7355 11355 Fixed a problem where a Buffer object that pointed to a static AML
7356 11356 buffer (in an ACPI table) could inadvertently be deleted, causing
7357 11357 memory corruption.
7358 11358
7359 11359 Fixed a problem where a user buffer (passed in to the external
7360 11360 ACPI CA interfaces) could be overwritten if the buffer was too
7361 11361 small to complete the operation, causing memory corruption.
7362 11362
7363 11363 Fixed a problem in the Buffer-to-String conversion code where a
7364 11364 string of length one was always returned, regardless of the size
7365 11365 of the input Buffer object.
7366 11366
7367 11367 Removed the NATIVE_CHAR data type across the entire source due to
7368 11368 lack of need and lack of consistent use.
7369 11369
7370 11370 Code and Data Size: Current core subsystem library sizes are shown
7371 11371 below. These are the code and data sizes for the acpica.lib
7372 11372 produced by the Microsoft Visual C++ 6.0 compiler, and these
7373 11373 values do not include any ACPI driver or OSPM code. The debug
7374 11374 version of the code includes the debug output trace mechanism and
7375 11375 has a much larger code and data size. Note that these values will
7376 11376 vary depending on the efficiency of the compiler and the compiler
7377 11377 options used during generation.
7378 11378
7379 11379 Previous Release
7380 11380 Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
7381 11381 Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
7382 11382 Current Release:
7383 11383 Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total
7384 11384 Debug Version: 153.0K Code, 62.9K Data, 215.9K Total
7385 11385
7386 11386
7387 11387 ----------------------------------------
7388 11388 05 December 2002. Summary of changes for version 20021205.
7389 11389
7390 11390 1) ACPI CA Core Subsystem:
7391 11391
7392 11392 Fixed a problem where a store to a String or Buffer object could
7393 11393 cause corruption of the DSDT if the object type being stored was
7394 11394 the same as the target object type and the length of the object
7395 11395 being stored was equal to or smaller than the original (existing)
7396 11396 target object. This was seen to cause corruption of battery _BIF
7397 11397 buffers if the _BIF method modified the buffer on the fly.
7398 11398
7399 11399 Fixed a problem where an internal error was generated if a control
7400 11400 method invocation was used in an OperationRegion, Buffer, or
7401 11401 Package declaration. This was caused by the deferred parsing of
7402 11402 the control method and thus the deferred creation of the internal
7403 11403 method object. The solution to this problem was to create the
7404 11404 internal method object at the moment the method is encountered in
7405 11405 the first pass - so that subsequent references to the method will
7406 11406 able to obtain the required parameter count and thus properly
7407 11407 parse the method invocation. This problem presented itself as an
7408 11408 AE_AML_INTERNAL during the pass 1 parse phase during table load.
7409 11409
7410 11410 Fixed a problem where the internal String object copy routine did
7411 11411 not always allocate sufficient memory for the target String object
7412 11412 and caused memory corruption. This problem was seen to cause
7413 11413 "Allocation already present in list!" errors as memory allocation
7414 11414 became corrupted.
7415 11415
7416 11416 Implemented a new function for the evaluation of namespace objects
7417 11417 that allows the specification of the allowable return object
7418 11418 types. This simplifies a lot of code that checks for a return
7419 11419 object of one or more specific objects returned from the
7420 11420 evaluation (such as _STA, etc.) This may become and external
7421 11421 function if it would be useful to ACPI-related drivers.
7422 11422
7423 11423 Completed another round of prefixing #defines with "ACPI_" for
7424 11424 clarity.
7425 11425
7426 11426 Completed additional code restructuring to allow more modular
7427 11427 linking for iASL compiler and AcpiExec. Several files were split
7428 11428 creating new files. New files: nsparse.c dsinit.c evgpe.c
7429 11429
7430 11430 Implemented an abort mechanism to terminate an executing control
7431 11431 method via the AML debugger. This feature is useful for debugging
7432 11432 control methods that depend (wait) for specific hardware
7433 11433 responses.
7434 11434
7435 11435 Code and Data Size: Current core subsystem library sizes are shown
7436 11436 below. These are the code and data sizes for the acpica.lib
7437 11437 produced by the Microsoft Visual C++ 6.0 compiler, and these
7438 11438 values do not include any ACPI driver or OSPM code. The debug
7439 11439 version of the code includes the debug output trace mechanism and
7440 11440 has a much larger code and data size. Note that these values will
7441 11441 vary depending on the efficiency of the compiler and the compiler
7442 11442 options used during generation.
7443 11443
7444 11444 Previous Release
7445 11445 Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
7446 11446 Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
7447 11447 Current Release:
7448 11448 Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total
7449 11449 Debug Version: 152.7K Code, 62.7K Data, 215.4K Total
7450 11450
7451 11451
7452 11452 2) iASL Compiler/Disassembler
7453 11453
7454 11454 Fixed a compiler code generation problem for "Interrupt" Resource
7455 11455 Descriptors. If specified in the ASL, the optional "Resource
7456 11456 Source Index" and "Resource Source" fields were not inserted into
7457 11457 the correct location within the AML resource descriptor, creating
7458 11458 an invalid descriptor.
7459 11459
7460 11460 Fixed a disassembler problem for "Interrupt" resource descriptors.
7461 11461 The optional "Resource Source Index" and "Resource Source" fields
7462 11462 were ignored.
7463 11463
7464 11464
7465 11465 ----------------------------------------
7466 11466 22 November 2002. Summary of changes for version 20021122.
7467 11467
7468 11468
7469 11469 1) ACPI CA Core Subsystem:
7470 11470
7471 11471 Fixed a reported problem where an object stored to a Method Local
7472 11472 or Arg was not copied to a new object during the store - the
7473 11473 object pointer was simply copied to the Local/Arg. This caused
7474 11474 all subsequent operations on the Local/Arg to also affect the
7475 11475 original source of the store operation.
7476 11476
7477 11477 Fixed a problem where a store operation to a Method Local or Arg
7478 11478 was not completed properly if the Local/Arg contained a reference
7479 11479 (from RefOf) to a named field. The general-purpose store-to-
7480 11480 namespace-node code is now used so that this case is handled
7481 11481 automatically.
7482 11482
7483 11483 Fixed a problem where the internal object copy routine would cause
7484 11484 a protection fault if the object being copied was a Package and
7485 11485 contained either 1) a NULL package element or 2) a nested sub-
7486 11486 package.
7487 11487
7488 11488 Fixed a problem with the GPE initialization that resulted from an
7489 11489 ambiguity in the ACPI specification. One section of the
7490 11490 specification states that both the address and length of the GPE
7491 11491 block must be zero if the block is not supported. Another section
7492 11492 implies that only the address need be zero if the block is not
7493 11493 supported. The code has been changed so that both the address and
7494 11494 the length must be non-zero to indicate a valid GPE block (i.e.,
7495 11495 if either the address or the length is zero, the GPE block is
7496 11496 invalid.)
7497 11497
7498 11498 Code and Data Size: Current core subsystem library sizes are shown
7499 11499 below. These are the code and data sizes for the acpica.lib
7500 11500 produced by the Microsoft Visual C++ 6.0 compiler, and these
7501 11501 values do not include any ACPI driver or OSPM code. The debug
7502 11502 version of the code includes the debug output trace mechanism and
7503 11503 has a much larger code and data size. Note that these values will
7504 11504 vary depending on the efficiency of the compiler and the compiler
7505 11505 options used during generation.
7506 11506
7507 11507 Previous Release
7508 11508 Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
7509 11509 Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
7510 11510 Current Release:
7511 11511 Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
7512 11512 Debug Version: 152.9K Code, 63.3K Data, 216.2K Total
7513 11513
7514 11514
7515 11515 2) Linux
7516 11516
7517 11517 Cleaned up EC driver. Exported an external EC read/write
7518 11518 interface. By going through this, other drivers (most notably
7519 11519 sonypi) will be able to serialize access to the EC.
7520 11520
7521 11521
7522 11522 3) iASL Compiler/Disassembler
7523 11523
7524 11524 Implemented support to optionally generate include files for both
7525 11525 ASM and C (the -i switch). This simplifies BIOS development by
7526 11526 automatically creating include files that contain external
7527 11527 declarations for the symbols that are created within the
7528 11528
7529 11529 (optionally generated) ASM and C AML source files.
7530 11530
7531 11531
7532 11532 ----------------------------------------
7533 11533 15 November 2002. Summary of changes for version 20021115.
7534 11534
7535 11535 1) ACPI CA Core Subsystem:
7536 11536
7537 11537 Fixed a memory leak problem where an error during resolution of
7538 11538
7539 11539 method arguments during a method invocation from another method
7540 11540 failed to cleanup properly by deleting all successfully resolved
7541 11541 argument objects.
7542 11542
7543 11543 Fixed a problem where the target of the Index() operator was not
7544 11544 correctly constructed if the source object was a package. This
7545 11545 problem has not been detected because the use of a target operand
7546 11546 with Index() is very rare.
7547 11547
7548 11548 Fixed a problem with the Index() operator where an attempt was
7549 11549 made to delete the operand objects twice.
7550 11550
7551 11551 Fixed a problem where an attempt was made to delete an operand
7552 11552 twice during execution of the CondRefOf() operator if the target
7553 11553 did not exist.
7554 11554
7555 11555 Implemented the first of perhaps several internal create object
7556 11556 functions that create and initialize a specific object type. This
7557 11557 consolidates duplicated code wherever the object is created, thus
7558 11558 shrinking the size of the subsystem.
7559 11559
7560 11560 Implemented improved debug/error messages for errors that occur
7561 11561 during nested method invocations. All executing method pathnames
7562 11562 are displayed (with the error) as the call stack is unwound - thus
7563 11563 simplifying debug.
7564 11564
7565 11565 Fixed a problem introduced in the 10/02 release that caused
7566 11566 premature deletion of a buffer object if a buffer was used as an
7567 11567 ASL operand where an integer operand is required (Thus causing an
7568 11568 implicit object conversion from Buffer to Integer.) The change in
7569 11569 the 10/02 release was attempting to fix a memory leak (albeit
7570 11570 incorrectly.)
7571 11571
7572 11572 Code and Data Size: Current core subsystem library sizes are shown
7573 11573 below. These are the code and data sizes for the acpica.lib
7574 11574 produced by the Microsoft Visual C++ 6.0 compiler, and these
7575 11575 values do not include any ACPI driver or OSPM code. The debug
7576 11576 version of the code includes the debug output trace mechanism and
7577 11577 has a much larger code and data size. Note that these values will
7578 11578 vary depending on the efficiency of the compiler and the compiler
7579 11579 options used during generation.
7580 11580
7581 11581 Previous Release
7582 11582 Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
7583 11583 Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
7584 11584 Current Release:
7585 11585 Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total
7586 11586 Debug Version: 152.7K Code, 63.2K Data, 215.5K Total
7587 11587
7588 11588
7589 11589 2) Linux
7590 11590
7591 11591 Changed the implementation of the ACPI semaphores to use down()
7592 11592 instead of down_interruptable(). It is important that the
7593 11593 execution of ACPI control methods not be interrupted by signals.
7594 11594 Methods must run to completion, or the system may be left in an
7595 11595 unknown/unstable state.
7596 11596
7597 11597 Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not set.
7598 11598 (Shawn Starr)
7599 11599
7600 11600
7601 11601 3) iASL Compiler/Disassembler
7602 11602
7603 11603
7604 11604 Changed the default location of output files. All output files
7605 11605 are now placed in the current directory by default instead of in
7606 11606 the directory of the source file. This change may affect some
7607 11607 existing makefiles, but it brings the behavior of the compiler in
7608 11608 line with other similar tools. The location of the output files
7609 11609 can be overridden with the -p command line switch.
7610 11610
7611 11611
7612 11612 ----------------------------------------
7613 11613 11 November 2002. Summary of changes for version 20021111.
7614 11614
7615 11615
7616 11616 0) ACPI Specification 2.0B is released and is now available at:
7617 11617 http://www.acpi.info/index.html
7618 11618
7619 11619
7620 11620 1) ACPI CA Core Subsystem:
7621 11621
7622 11622 Implemented support for the ACPI 2.0 SMBus Operation Regions.
7623 11623 This includes the early detection and handoff of the request to
7624 11624 the SMBus region handler (avoiding all of the complex field
7625 11625 support code), and support for the bidirectional return packet
7626 11626 from an SMBus write operation. This paves the way for the
7627 11627 development of SMBus drivers in each host operating system.
7628 11628
7629 11629 Fixed a problem where the semaphore WAIT_FOREVER constant was
7630 11630 defined as 32 bits, but must be 16 bits according to the ACPI
7631 11631 specification. This had the side effect of causing ASL
7632 11632 Mutex/Event timeouts even though the ASL code requested a wait
7633 11633 forever. Changed all internal references to the ACPI timeout
7634 11634 parameter to 16 bits to prevent future problems. Changed the name
7635 11635 of WAIT_FOREVER to ACPI_WAIT_FOREVER.
7636 11636
7637 11637 Code and Data Size: Current core subsystem library sizes are shown
7638 11638 below. These are the code and data sizes for the acpica.lib
7639 11639 produced by the Microsoft Visual C++ 6.0 compiler, and these
7640 11640 values do not include any ACPI driver or OSPM code. The debug
7641 11641 version of the code includes the debug output trace mechanism and
7642 11642 has a much larger code and data size. Note that these values will
7643 11643 vary depending on the efficiency of the compiler and the compiler
7644 11644 options used during generation.
7645 11645
7646 11646 Previous Release
7647 11647 Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
7648 11648 Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
7649 11649 Current Release:
7650 11650 Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total
7651 11651 Debug Version: 153.1K Code, 63.3K Data, 216.4K Total
7652 11652
7653 11653
7654 11654 2) Linux
7655 11655
7656 11656 Module loading/unloading fixes (John Cagle)
7657 11657
7658 11658
7659 11659 3) iASL Compiler/Disassembler
7660 11660
7661 11661 Added support for the SMBBlockProcessCall keyword (ACPI 2.0)
7662 11662
7663 11663 Implemented support for the disassembly of all SMBus protocol
7664 11664 keywords (SMBQuick, SMBWord, etc.)
7665 11665
7666 11666 ----------------------------------------
7667 11667 01 November 2002. Summary of changes for version 20021101.
7668 11668
7669 11669
7670 11670 1) ACPI CA Core Subsystem:
7671 11671
7672 11672 Fixed a problem where platforms that have a GPE1 block but no GPE0
7673 11673 block were not handled correctly. This resulted in a "GPE
7674 11674 overlap" error message. GPE0 is no longer required.
7675 11675
7676 11676 Removed code added in the previous release that inserted nodes
7677 11677 into the namespace in alphabetical order. This caused some side-
7678 11678 effects on various machines. The root cause of the problem is
7679 11679 still under investigation since in theory, the internal ordering
7680 11680 of the namespace nodes should not matter.
7681 11681
7682 11682
7683 11683 Enhanced error reporting for the case where a named object is not
7684 11684 found during control method execution. The full ACPI namepath
7685 11685 (name reference) of the object that was not found is displayed in
7686 11686 this case.
7687 11687
7688 11688 Note: as a result of the overhaul of the namespace object types in
7689 11689 the previous release, the namespace nodes for the predefined
7690 11690 scopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
7691 11691 instead of ACPI_TYPE_ANY. This simplifies the namespace
7692 11692 management code but may affect code that walks the namespace tree
7693 11693 looking for specific object types.
7694 11694
7695 11695 Code and Data Size: Current core subsystem library sizes are shown
7696 11696 below. These are the code and data sizes for the acpica.lib
7697 11697 produced by the Microsoft Visual C++ 6.0 compiler, and these
7698 11698 values do not include any ACPI driver or OSPM code. The debug
7699 11699 version of the code includes the debug output trace mechanism and
7700 11700 has a much larger code and data size. Note that these values will
7701 11701 vary depending on the efficiency of the compiler and the compiler
7702 11702 options used during generation.
7703 11703
7704 11704 Previous Release
7705 11705 Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
7706 11706 Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
7707 11707 Current Release:
7708 11708 Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total
7709 11709 Debug Version: 152.3K Code, 63.0K Data, 215.3K Total
7710 11710
7711 11711
7712 11712 2) Linux
7713 11713
7714 11714 Fixed a problem introduced in the previous release where the
7715 11715 Processor and Thermal objects were not recognized and installed in
7716 11716 /proc. This was related to the scope type change described above.
7717 11717
7718 11718
7719 11719 3) iASL Compiler/Disassembler
7720 11720
7721 11721 Implemented the -g option to get all of the required ACPI tables
7722 11722 from the registry and save them to files (Windows version of the
7723 11723 compiler only.) The required tables are the FADT, FACS, and DSDT.
7724 11724
7725 11725 Added ACPI table checksum validation during table disassembly in
7726 11726 order to catch corrupted tables.
7727 11727
7728 11728
7729 11729 ----------------------------------------
7730 11730 22 October 2002. Summary of changes for version 20021022.
7731 11731
7732 11732 1) ACPI CA Core Subsystem:
7733 11733
7734 11734 Implemented a restriction on the Scope operator that the target
7735 11735 must already exist in the namespace at the time the operator is
7736 11736 encountered (during table load or method execution). In other
7737 11737 words, forward references are not allowed and Scope() cannot
7738 11738 create a new object. This changes the previous behavior where the
7739 11739 interpreter would create the name if not found. This new behavior
7740 11740 correctly enables the search-to-root algorithm during namespace
7741 11741 lookup of the target name. Because of this upsearch, this fixes
7742 11742 the known Compaq _SB_.OKEC problem and makes both the AML
7743 11743 interpreter and iASL compiler compatible with other ACPI
7744 11744 implementations.
7745 11745
7746 11746 Completed a major overhaul of the internal ACPI object types for
7747 11747 the ACPI Namespace and the associated operand objects. Many of
7748 11748 these types had become obsolete with the introduction of the two-
7749 11749 pass namespace load. This cleanup simplifies the code and makes
7750 11750 the entire namespace load mechanism much clearer and easier to
7751 11751 understand.
7752 11752
7753 11753 Improved debug output for tracking scope opening/closing to help
7754 11754 diagnose scoping issues. The old scope name as well as the new
7755 11755 scope name are displayed. Also improved error messages for
7756 11756 problems with ASL Mutex objects and error messages for GPE
7757 11757 problems.
7758 11758
7759 11759 Cleaned up the namespace dump code, removed obsolete code.
7760 11760
7761 11761 All string output (for all namespace/object dumps) now uses the
7762 11762 common ACPI string output procedure which handles escapes properly
7763 11763 and does not emit non-printable characters.
7764 11764
7765 11765 Fixed some issues with constants in the 64-bit version of the
7766 11766 local C library (utclib.c)
7767 11767
7768 11768
7769 11769 2) Linux
7770 11770
7771 11771 EC Driver: No longer attempts to acquire the Global Lock at
7772 11772 interrupt level.
7773 11773
7774 11774
7775 11775 3) iASL Compiler/Disassembler
7776 11776
7777 11777 Implemented ACPI 2.0B grammar change that disallows all Type 1 and
7778 11778 2 opcodes outside of a control method. This means that the
7779 11779 "executable" operators (versus the "namespace" operators) cannot
7780 11780 be used at the table level; they can only be used within a control
7781 11781 method.
7782 11782
7783 11783 Implemented the restriction on the Scope() operator where the
7784 11784 target must already exist in the namespace at the time the
7785 11785 operator is encountered (during ASL compilation). In other words,
7786 11786 forward references are not allowed and Scope() cannot create a new
7787 11787 object. This makes the iASL compiler compatible with other ACPI
7788 11788 implementations and makes the Scope() implementation adhere to the
7789 11789 ACPI specification.
7790 11790
7791 11791 Fixed a problem where namepath optimization for the Alias operator
7792 11792 was optimizing the wrong path (of the two namepaths.) This caused
7793 11793 a "Missing alias link" error message.
7794 11794
7795 11795 Fixed a problem where an "unknown reserved name" warning could be
7796 11796 incorrectly generated for names like "_SB" when the trailing
7797 11797 underscore is not used in the original ASL.
7798 11798
7799 11799 Fixed a problem where the reserved name check did not handle
7800 11800 NamePaths with multiple NameSegs correctly. The first nameseg of
7801 11801 the NamePath was examined instead of the last NameSeg.
7802 11802
7803 11803
7804 11804 ----------------------------------------
7805 11805
7806 11806 02 October 2002. Summary of changes for this release.
7807 11807
7808 11808
7809 11809 1) ACPI CA Core Subsystem version 20021002:
7810 11810
7811 11811 Fixed a problem where a store/copy of a string to an existing
7812 11812 string did not always set the string length properly in the String
7813 11813 object.
7814 11814
7815 11815 Fixed a reported problem with the ToString operator where the
7816 11816 behavior was identical to the ToHexString operator instead of just
7817 11817 simply converting a raw buffer to a string data type.
7818 11818
7819 11819 Fixed a problem where CopyObject and the other "explicit"
7820 11820 conversion operators were not updating the internal namespace node
7821 11821 type as part of the store operation.
7822 11822
7823 11823 Fixed a memory leak during implicit source operand conversion
7824 11824 where the original object was not deleted if it was converted to a
7825 11825 new object of a different type.
7826 11826
7827 11827 Enhanced error messages for all problems associated with namespace
7828 11828 lookups. Common procedure generates and prints the lookup name as
7829 11829 well as the formatted status.
7830 11830
7831 11831 Completed implementation of a new design for the Alias support
7832 11832 within the namespace. The existing design did not handle the case
7833 11833 where a new object was assigned to one of the two names due to the
7834 11834 use of an explicit conversion operator, resulting in the two names
7835 11835 pointing to two different objects. The new design simply points
7836 11836 the Alias name to the original name node - not to the object.
7837 11837 This results in a level of indirection that must be handled in the
7838 11838 name resolution mechanism.
7839 11839
7840 11840 Code and Data Size: Current core subsystem library sizes are shown
7841 11841 below. These are the code and data sizes for the acpica.lib
7842 11842 produced by the Microsoft Visual C++ 6.0 compiler, and these
7843 11843 values do not include any ACPI driver or OSPM code. The debug
7844 11844 version of the code includes the debug output trace mechanism and
7845 11845 has a larger code and data size. Note that these values will vary
7846 11846 depending on the efficiency of the compiler and the compiler
7847 11847 options used during generation.
7848 11848
7849 11849 Previous Release
7850 11850 Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
7851 11851 Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
7852 11852 Current Release:
7853 11853 Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total
7854 11854 Debug Version: 151.7K Code, 62.4K Data, 214.1K Total
7855 11855
7856 11856
7857 11857 2) Linux
7858 11858
7859 11859 Initialize thermal driver's timer before it is used. (Knut
7860 11860 Neumann)
7861 11861
7862 11862 Allow handling negative celsius values. (Kochi Takayoshi)
7863 11863
7864 11864 Fix thermal management and make trip points. R/W (Pavel Machek)
7865 11865
7866 11866 Fix /proc/acpi/sleep. (P. Christeas)
7867 11867
7868 11868 IA64 fixes. (David Mosberger)
7869 11869
7870 11870 Fix reversed logic in blacklist code. (Sergio Monteiro Basto)
7871 11871
7872 11872 Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
7873 11873 Brodowski)
7874 11874
7875 11875
7876 11876 3) iASL Compiler/Disassembler
7877 11877
7878 11878 Clarified some warning/error messages.
7879 11879
7880 11880
7881 11881 ----------------------------------------
7882 11882 18 September 2002. Summary of changes for this release.
7883 11883
7884 11884
7885 11885 1) ACPI CA Core Subsystem version 20020918:
7886 11886
7887 11887 Fixed a reported problem with reference chaining (via the Index()
7888 11888 and RefOf() operators) in the ObjectType() and SizeOf() operators.
7889 11889 The definition of these operators includes the dereferencing of
7890 11890 all chained references to return information on the base object.
7891 11891
7892 11892 Fixed a problem with stores to indexed package elements - the
7893 11893 existing code would not complete the store if an "implicit
7894 11894 conversion" was not performed. In other words, if the existing
7895 11895 object (package element) was to be replaced completely, the code
7896 11896 didn't handle this case.
7897 11897
7898 11898 Relaxed typechecking on the ASL "Scope" operator to allow the
7899 11899 target name to refer to an object of type Integer, String, or
7900 11900 Buffer, in addition to the scoping object types (Device,
7901 11901 predefined Scopes, Processor, PowerResource, and ThermalZone.)
7902 11902 This allows existing AML code that has workarounds for a bug in
7903 11903 Windows to function properly. A warning is issued, however. This
7904 11904 affects both the AML interpreter and the iASL compiler. Below is
7905 11905 an example of this type of ASL code:
7906 11906
7907 11907 Name(DEB,0x00)
7908 11908 Scope(DEB)
7909 11909 {
7910 11910
7911 11911 Fixed some reported problems with 64-bit integer support in the
7912 11912 local implementation of C library functions (clib.c)
7913 11913
7914 11914
7915 11915 2) Linux
7916 11916
7917 11917 Use ACPI fix map region instead of IOAPIC region, since it is
7918 11918 undefined in non-SMP.
7919 11919
7920 11920 Ensure that the SCI has the proper polarity and trigger, even on
7921 11921 systems that do not have an interrupt override entry in the MADT.
7922 11922
7923 11923 2.5 big driver reorganization (Pat Mochel)
7924 11924
7925 11925 Use early table mapping code from acpitable.c (Andi Kleen)
7926 11926
7927 11927 New blacklist entries (Andi Kleen)
7928 11928
7929 11929 Blacklist improvements. Split blacklist code out into a separate
7930 11930 file. Move checking the blacklist to very early. Previously, we
7931 11931 would use ACPI tables, and then halfway through init, check the
7932 11932 blacklist -- too late. Now, it's early enough to completely fall-
7933 11933 back to non-ACPI.
7934 11934
7935 11935
7936 11936 3) iASL Compiler/Disassembler version 20020918:
7937 11937
7938 11938 Fixed a problem where the typechecking code didn't know that an
7939 11939 alias could point to a method. In other words, aliases were not
7940 11940 being dereferenced during typechecking.
7941 11941
7942 11942
7943 11943 ----------------------------------------
7944 11944 29 August 2002. Summary of changes for this release.
7945 11945
7946 11946 1) ACPI CA Core Subsystem Version 20020829:
7947 11947
7948 11948 If the target of a Scope() operator already exists, it must be an
7949 11949 object type that actually opens a scope -- such as a Device,
7950 11950 Method, Scope, etc. This is a fatal runtime error. Similar error
7951 11951 check has been added to the iASL compiler also.
7952 11952
7953 11953 Tightened up the namespace load to disallow multiple names in the
7954 11954 same scope. This previously was allowed if both objects were of
7955 11955 the same type. (i.e., a lookup was the same as entering a new
7956 11956 name).
7957 11957
7958 11958
7959 11959 2) Linux
7960 11960
7961 11961 Ensure that the ACPI interrupt has the proper trigger and
7962 11962 polarity.
7963 11963
7964 11964 local_irq_disable is extraneous. (Matthew Wilcox)
7965 11965
7966 11966 Make "acpi=off" actually do what it says, and not use the ACPI
7967 11967 interpreter *or* the tables.
7968 11968
7969 11969 Added arch-neutral support for parsing SLIT and SRAT tables (Kochi
7970 11970 Takayoshi)
7971 11971
7972 11972
7973 11973 3) iASL Compiler/Disassembler Version 20020829:
7974 11974
7975 11975 Implemented namepath optimization for name declarations. For
7976 11976 example, a declaration like "Method (\_SB_.ABCD)" would get
7977 11977 optimized to "Method (ABCD)" if the declaration is within the
7978 11978 \_SB_ scope. This optimization is in addition to the named
7979 11979 reference path optimization first released in the previous
7980 11980 version. This would seem to complete all possible optimizations
7981 11981 for namepaths within the ASL/AML.
7982 11982
7983 11983 If the target of a Scope() operator already exists, it must be an
7984 11984 object type that actually opens a scope -- such as a Device,
7985 11985 Method, Scope, etc.
7986 11986
7987 11987 Implemented a check and warning for unreachable code in the same
7988 11988 block below a Return() statement.
7989 11989
7990 11990 Fixed a problem where the listing file was not generated if the
7991 11991 compiler aborted if the maximum error count was exceeded (200).
7992 11992
7993 11993 Fixed a problem where the typechecking of method return values was
7994 11994 broken. This includes the check for a return value when the
7995 11995 method is invoked as a TermArg (a return value is expected.)
7996 11996
7997 11997 Fixed a reported problem where EOF conditions during a quoted
7998 11998 string or comment caused a fault.
7999 11999
8000 12000
8001 12001 ----------------------------------------
8002 12002 15 August 2002. Summary of changes for this release.
8003 12003
8004 12004 1) ACPI CA Core Subsystem Version 20020815:
8005 12005
8006 12006 Fixed a reported problem where a Store to a method argument that
8007 12007 contains a reference did not perform the indirect store correctly.
8008 12008 This problem was created during the conversion to the new
8009 12009 reference object model - the indirect store to a method argument
8010 12010 code was not updated to reflect the new model.
8011 12011
8012 12012 Reworked the ACPI mode change code to better conform to ACPI 2.0,
8013 12013 handle corner cases, and improve code legibility (Kochi Takayoshi)
8014 12014
8015 12015 Fixed a problem with the pathname parsing for the carat (^)
8016 12016 prefix. The heavy use of the carat operator by the new namepath
8017 12017 optimization in the iASL compiler uncovered a problem with the AML
8018 12018 interpreter handling of this prefix. In the case where one or
8019 12019 more carats precede a single nameseg, the nameseg was treated as
8020 12020 standalone and the search rule (to root) was inadvertently
8021 12021 applied. This could cause both the iASL compiler and the
8022 12022 interpreter to find the wrong object or to miss the error that
8023 12023 should occur if the object does not exist at that exact pathname.
8024 12024
8025 12025 Found and fixed the problem where the HP Pavilion DSDT would not
8026 12026 load. This was a relatively minor tweak to the table loading code
8027 12027 (a problem caused by the unexpected encounter with a method
8028 12028 invocation not within a control method), but it does not solve the
8029 12029 overall issue of the execution of AML code at the table level.
8030 12030 This investigation is still ongoing.
8031 12031
8032 12032 Code and Data Size: Current core subsystem library sizes are shown
8033 12033 below. These are the code and data sizes for the acpica.lib
8034 12034 produced by the Microsoft Visual C++ 6.0 compiler, and these
8035 12035 values do not include any ACPI driver or OSPM code. The debug
8036 12036 version of the code includes the debug output trace mechanism and
8037 12037 has a larger code and data size. Note that these values will vary
8038 12038 depending on the efficiency of the compiler and the compiler
8039 12039 options used during generation.
8040 12040
8041 12041 Previous Release
8042 12042 Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
8043 12043 Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
8044 12044 Current Release:
8045 12045 Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total
8046 12046 Debug Version: 150.0K Code, 61.7K Data, 211.7K Total
8047 12047
8048 12048
8049 12049 2) Linux
8050 12050
8051 12051 Remove redundant slab.h include (Brad Hards)
8052 12052
8053 12053 Fix several bugs in thermal.c (Herbert Nachtnebel)
8054 12054
8055 12055 Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
8056 12056
8057 12057 Change acpi_system_suspend to use updated irq functions (Pavel
8058 12058 Machek)
8059 12059
8060 12060 Export acpi_get_firmware_table (Matthew Wilcox)
8061 12061
8062 12062 Use proper root proc entry for ACPI (Kochi Takayoshi)
8063 12063
8064 12064 Fix early-boot table parsing (Bjorn Helgaas)
8065 12065
8066 12066
8067 12067 3) iASL Compiler/Disassembler
8068 12068
8069 12069 Reworked the compiler options to make them more consistent and to
8070 12070 use two-letter options where appropriate. We were running out of
8071 12071 sensible letters. This may break some makefiles, so check the
8072 12072 current options list by invoking the compiler with no parameters.
8073 12073
8074 12074 Completed the design and implementation of the ASL namepath
8075 12075 optimization option for the compiler. This option optimizes all
8076 12076 references to named objects to the shortest possible path. The
8077 12077 first attempt tries to utilize a single nameseg (4 characters) and
8078 12078 the "search-to-root" algorithm used by the interpreter. If that
8079 12079 cannot be used (because either the name is not in the search path
8080 12080 or there is a conflict with another object with the same name),
8081 12081 the pathname is optimized using the carat prefix (usually a
8082 12082 shorter string than specifying the entire path from the root.)
8083 12083
8084 12084 Implemented support to obtain the DSDT from the Windows registry
8085 12085 (when the disassembly option is specified with no input file).
8086 12086 Added this code as the implementation for AcpiOsTableOverride in
8087 12087 the Windows OSL. Migrated the 16-bit code (used in the AcpiDump
8088 12088 utility) to scan memory for the DSDT to the AcpiOsTableOverride
8089 12089 function in the DOS OSL to make the disassembler truly OS
8090 12090 independent.
8091 12091
8092 12092 Implemented a new option to disassemble and compile in one step.
8093 12093 When used without an input filename, this option will grab the
8094 12094 DSDT from the local machine, disassemble it, and compile it in one
8095 12095 step.
8096 12096
8097 12097 Added a warning message for invalid escapes (a backslash followed
8098 12098 by any character other than the allowable escapes). This catches
8099 12099 the quoted string error "\_SB_" (which should be "\\_SB_" ).
8100 12100
8101 12101 Also, there are numerous instances in the ACPI specification where
8102 12102 this error occurs.
8103 12103
8104 12104 Added a compiler option to disable all optimizations. This is
8105 12105 basically the "compatibility mode" because by using this option,
8106 12106 the AML code will come out exactly the same as other ASL
8107 12107 compilers.
8108 12108
8109 12109 Added error messages for incorrectly ordered dependent resource
8110 12110 functions. This includes: missing EndDependentFn macro at end of
8111 12111 dependent resource list, nested dependent function macros (both
8112 12112 start and end), and missing StartDependentFn macro. These are
8113 12113 common errors that should be caught at compile time.
8114 12114
8115 12115 Implemented _OSI support for the disassembler and compiler. _OSI
8116 12116 must be included in the namespace for proper disassembly (because
8117 12117 the disassembler must know the number of arguments.)
8118 12118
8119 12119 Added an "optimization" message type that is optional (off by
8120 12120 default). This message is used for all optimizations - including
8121 12121 constant folding, integer optimization, and namepath optimization.
8122 12122
8123 12123 ----------------------------------------
8124 12124 25 July 2002. Summary of changes for this release.
8125 12125
8126 12126
8127 12127 1) ACPI CA Core Subsystem Version 20020725:
8128 12128
8129 12129 The AML Disassembler has been enhanced to produce compilable ASL
8130 12130 code and has been integrated into the iASL compiler (see below) as
8131 12131 well as the single-step disassembly for the AML debugger and the
8132 12132 disassembler for the AcpiDump utility. All ACPI 2.0A opcodes,
8133 12133 resource templates and macros are fully supported. The
8134 12134 disassembler has been tested on over 30 different AML files,
8135 12135 producing identical AML when the resulting disassembled ASL file
8136 12136 is recompiled with the same ASL compiler.
8137 12137
8138 12138 Modified the Resource Manager to allow zero interrupts and zero
8139 12139 dma channels during the GetCurrentResources call. This was
8140 12140 causing problems on some platforms.
8141 12141
8142 12142 Added the AcpiOsRedirectOutput interface to the OSL to simplify
8143 12143 output redirection for the AcpiOsPrintf and AcpiOsVprintf
8144 12144 interfaces.
8145 12145
8146 12146 Code and Data Size: Current core subsystem library sizes are shown
8147 12147 below. These are the code and data sizes for the acpica.lib
8148 12148 produced by the Microsoft Visual C++ 6.0 compiler, and these
8149 12149 values do not include any ACPI driver or OSPM code. The debug
8150 12150 version of the code includes the debug output trace mechanism and
8151 12151 has a larger code and data size. Note that these values will vary
8152 12152 depending on the efficiency of the compiler and the compiler
8153 12153 options used during generation.
8154 12154
8155 12155 Previous Release
8156 12156 Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
8157 12157 Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
8158 12158 Current Release:
8159 12159 Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total
8160 12160 Debug Version: 149.4K Code, 61.6K Data, 211.0K Total
8161 12161
8162 12162
8163 12163 2) Linux
8164 12164
8165 12165 Fixed a panic in the EC driver (Dominik Brodowski)
8166 12166
8167 12167 Implemented checksum of the R/XSDT itself during Linux table scan
8168 12168 (Richard Schaal)
8169 12169
8170 12170
8171 12171 3) iASL compiler
8172 12172
8173 12173 The AML disassembler is integrated into the compiler. The "-d"
8174 12174 option invokes the disassembler to completely disassemble an
8175 12175 input AML file, producing as output a text ASL file with the
8176 12176 extension ".dsl" (to avoid name collisions with existing .asl
8177 12177 source files.) A future enhancement will allow the disassembler
8178 12178 to obtain the BIOS DSDT from the registry under Windows.
8179 12179
8180 12180 Fixed a problem with the VendorShort and VendorLong resource
8181 12181 descriptors where an invalid AML sequence was created.
8182 12182
8183 12183 Implemented a fix for BufferData term in the ASL parser. It was
8184 12184 inadvertently defined twice, allowing invalid syntax to pass and
8185 12185 causing reduction conflicts.
8186 12186
8187 12187 Fixed a problem where the Ones opcode could get converted to a
8188 12188 value of zero if "Ones" was used where a byte, word or dword value
8189 12189 was expected. The 64-bit value is now truncated to the correct
8190 12190 size with the correct value.
8191 12191
8192 12192
8193 12193
8194 12194 ----------------------------------------
8195 12195 02 July 2002. Summary of changes for this release.
8196 12196
8197 12197
8198 12198 1) ACPI CA Core Subsystem Version 20020702:
8199 12199
8200 12200 The Table Manager code has been restructured to add several new
8201 12201 features. Tables that are not required by the core subsystem
8202 12202 (other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
8203 12203 validated in any way and are returned from AcpiGetFirmwareTable if
8204 12204 requested. The AcpiOsTableOverride interface is now called for
8205 12205 each table that is loaded by the subsystem in order to allow the
8206 12206 host to override any table it chooses. Previously, only the DSDT
8207 12207 could be overridden. Added one new files, tbrsdt.c and
8208 12208 tbgetall.c.
8209 12209
8210 12210 Fixed a problem with the conversion of internal package objects to
8211 12211 external objects (when a package is returned from a control
8212 12212 method.) The return buffer length was set to zero instead of the
8213 12213 proper length of the package object.
8214 12214
8215 12215 Fixed a reported problem with the use of the RefOf and DeRefOf
8216 12216 operators when passing reference arguments to control methods. A
8217 12217 new type of Reference object is used internally for references
8218 12218 produced by the RefOf operator.
8219 12219
8220 12220 Added additional error messages in the Resource Manager to explain
8221 12221 AE_BAD_DATA errors when they occur during resource parsing.
8222 12222
8223 12223 Split the AcpiEnableSubsystem into two primitives to enable a
8224 12224 finer granularity initialization sequence. These two calls should
8225 12225 be called in this order: AcpiEnableSubsystem (flags),
8226 12226 AcpiInitializeObjects (flags). The flags parameter remains the
8227 12227 same.
8228 12228
8229 12229
8230 12230 2) Linux
8231 12231
8232 12232 Updated the ACPI utilities module to understand the new style of
8233 12233 fully resolved package objects that are now returned from the core
8234 12234 subsystem. This eliminates errors of the form:
8235 12235
8236 12236 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
8237 12237 acpi_utils-0430 [145] acpi_evaluate_reference:
8238 12238 Invalid element in package (not a device reference)
8239 12239
8240 12240 The method evaluation utility uses the new buffer allocation
8241 12241 scheme instead of calling AcpiEvaluate Object twice.
8242 12242
8243 12243 Added support for ECDT. This allows the use of the Embedded
8244 12244
8245 12245 Controller before the namespace has been fully initialized, which
8246 12246 is necessary for ACPI 2.0 support, and for some laptops to
8247 12247 initialize properly. (Laptops using ECDT are still rare, so only
8248 12248 limited testing was performed of the added functionality.)
8249 12249
8250 12250 Fixed memory leaks in the EC driver.
8251 12251
8252 12252 Eliminated a brittle code structure in acpi_bus_init().
8253 12253
8254 12254 Eliminated the acpi_evaluate() helper function in utils.c. It is
8255 12255 no longer needed since acpi_evaluate_object can optionally
8256 12256 allocate memory for the return object.
8257 12257
8258 12258 Implemented fix for keyboard hang when getting battery readings on
8259 12259 some systems (Stephen White)
8260 12260
8261 12261 PCI IRQ routing update (Dominik Brodowski)
8262 12262
8263 12263 Fix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
8264 12264 support
8265 12265
8266 12266 ----------------------------------------
8267 12267 11 June 2002. Summary of changes for this release.
8268 12268
8269 12269
8270 12270 1) ACPI CA Core Subsystem Version 20020611:
8271 12271
8272 12272 Fixed a reported problem where constants such as Zero and One
8273 12273 appearing within _PRT packages were not handled correctly within
8274 12274 the resource manager code. Originally reported against the ASL
8275 12275 compiler because the code generator now optimizes integers to
8276 12276 their minimal AML representation (i.e. AML constants if possible.)
8277 12277 The _PRT code now handles all AML constant opcodes correctly
8278 12278 (Zero, One, Ones, Revision).
8279 12279
8280 12280 Fixed a problem with the Concatenate operator in the AML
8281 12281 interpreter where a buffer result object was incorrectly marked as
8282 12282 not fully evaluated, causing a run-time error of AE_AML_INTERNAL.
8283 12283
8284 12284 All package sub-objects are now fully resolved before they are
8285 12285 returned from the external ACPI interfaces. This means that name
8286 12286 strings are resolved to object handles, and constant operators
8287 12287 (Zero, One, Ones, Revision) are resolved to Integers.
8288 12288
8289 12289 Implemented immediate resolution of the AML Constant opcodes
8290 12290 (Zero, One, Ones, Revision) to Integer objects upon detection
8291 12291 within the AML stream. This has simplified and reduced the
8292 12292 generated code size of the subsystem by eliminating about 10
8293 12293 switch statements for these constants (which previously were
8294 12294 contained in Reference objects.) The complicating issues are that
8295 12295 the Zero opcode is used as a "placeholder" for unspecified
8296 12296 optional target operands and stores to constants are defined to be
8297 12297 no-ops.
8298 12298
8299 12299 Code and Data Size: Current core subsystem library sizes are shown
8300 12300 below. These are the code and data sizes for the acpica.lib
8301 12301 produced by the Microsoft Visual C++ 6.0 compiler, and these
8302 12302 values do not include any ACPI driver or OSPM code. The debug
8303 12303 version of the code includes the debug output trace mechanism and
8304 12304 has a larger code and data size. Note that these values will vary
8305 12305 depending on the efficiency of the compiler and the compiler
8306 12306 options used during generation.
8307 12307
8308 12308 Previous Release
8309 12309 Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
8310 12310 Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
8311 12311 Current Release:
8312 12312 Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total
8313 12313 Debug Version: 142.9K Code, 58.7K Data, 201.6K Total
8314 12314
8315 12315
8316 12316 2) Linux
8317 12317
8318 12318
8319 12319 Added preliminary support for obtaining _TRA data for PCI root
8320 12320 bridges (Bjorn Helgaas).
8321 12321
8322 12322
8323 12323 3) iASL Compiler Version X2046:
8324 12324
8325 12325 Fixed a problem where the "_DDN" reserved name was defined to be a
8326 12326 control method with one argument. There are no arguments, and
8327 12327 _DDN does not have to be a control method.
8328 12328
8329 12329 Fixed a problem with the Linux version of the compiler where the
8330 12330 source lines printed with error messages were the wrong lines.
8331 12331 This turned out to be the "LF versus CR/LF" difference between
8332 12332 Windows and Unix. This appears to be the longstanding issue
8333 12333 concerning listing output and error messages.
8334 12334
8335 12335 Fixed a problem with the Linux version of compiler where opcode
8336 12336 names within error messages were wrong. This was caused by a
8337 12337 slight difference in the output of the Flex tool on Linux versus
8338 12338 Windows.
8339 12339
8340 12340 Fixed a problem with the Linux compiler where the hex output files
8341 12341 contained some garbage data caused by an internal buffer overrun.
8342 12342
8343 12343
8344 12344 ----------------------------------------
8345 12345 17 May 2002. Summary of changes for this release.
8346 12346
8347 12347
8348 12348 1) ACPI CA Core Subsystem Version 20020517:
8349 12349
8350 12350 Implemented a workaround to an BIOS bug discovered on the HP
8351 12351 OmniBook where the FADT revision number and the table size are
8352 12352 inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The new
8353 12353 behavior is to fallback to using only the ACPI 1.0 fields of the
8354 12354 FADT if the table is too small to be a ACPI 2.0 table as claimed
8355 12355 by the revision number. Although this is a BIOS bug, this is a
8356 12356 case where the workaround is simple enough and with no side
8357 12357 effects, so it seemed prudent to add it. A warning message is
8358 12358 issued, however.
8359 12359
8360 12360 Implemented minimum size checks for the fixed-length ACPI tables -
8361 12361 - the FADT and FACS, as well as consistency checks between the
8362 12362 revision number and the table size.
8363 12363
8364 12364 Fixed a reported problem in the table override support where the
8365 12365 new table pointer was incorrectly treated as a physical address
8366 12366 instead of a logical address.
8367 12367
8368 12368 Eliminated the use of the AE_AML_ERROR exception and replaced it
8369 12369 with more descriptive codes.
8370 12370
8371 12371 Fixed a problem where an exception would occur if an ASL Field was
8372 12372 defined with no named Field Units underneath it (used by some
8373 12373 index fields).
8374 12374
8375 12375 Code and Data Size: Current core subsystem library sizes are shown
8376 12376 below. These are the code and data sizes for the acpica.lib
8377 12377 produced by the Microsoft Visual C++ 6.0 compiler, and these
8378 12378 values do not include any ACPI driver or OSPM code. The debug
8379 12379 version of the code includes the debug output trace mechanism and
8380 12380 has a larger code and data size. Note that these values will vary
8381 12381 depending on the efficiency of the compiler and the compiler
8382 12382 options used during generation.
8383 12383
8384 12384 Previous Release
8385 12385 Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
8386 12386 Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
8387 12387 Current Release:
8388 12388 Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total
8389 12389 Debug Version: 143.8K Code, 58.8K Data, 202.6K Total
8390 12390
8391 12391
8392 12392
8393 12393 2) Linux
8394 12394
8395 12395 Much work done on ACPI init (MADT and PCI IRQ routing support).
8396 12396 (Paul D. and Dominik Brodowski)
8397 12397
8398 12398 Fix PCI IRQ-related panic on boot (Sam Revitch)
8399 12399
8400 12400 Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
8401 12401
8402 12402 Fix "MHz" typo (Dominik Brodowski)
8403 12403
8404 12404 Fix RTC year 2000 issue (Dominik Brodowski)
8405 12405
8406 12406 Preclude multiple button proc entries (Eric Brunet)
8407 12407
8408 12408 Moved arch-specific code out of include/platform/aclinux.h
8409 12409
8410 12410 3) iASL Compiler Version X2044:
8411 12411
8412 12412 Implemented error checking for the string used in the EISAID macro
8413 12413 (Usually used in the definition of the _HID object.) The code now
8414 12414 strictly enforces the PnP format - exactly 7 characters, 3
8415 12415 uppercase letters and 4 hex digits.
8416 12416
8417 12417 If a raw string is used in the definition of the _HID object
8418 12418 (instead of the EISAID macro), the string must contain all
8419 12419 alphanumeric characters (e.g., "*PNP0011" is not allowed because
8420 12420 of the asterisk.)
8421 12421
8422 12422 Implemented checking for invalid use of ACPI reserved names for
8423 12423 most of the name creation operators (Name, Device, Event, Mutex,
8424 12424 OperationRegion, PowerResource, Processor, and ThermalZone.)
8425 12425 Previously, this check was only performed for control methods.
8426 12426
8427 12427 Implemented an additional check on the Name operator to emit an
8428 12428 error if a reserved name that must be implemented in ASL as a
8429 12429 control method is used. We know that a reserved name must be a
8430 12430 method if it is defined with input arguments.
8431 12431
8432 12432 The warning emitted when a namespace object reference is not found
8433 12433 during the cross reference phase has been changed into an error.
8434 12434 The "External" directive should be used for names defined in other
8435 12435 modules.
8436 12436
8437 12437
8438 12438 4) Tools and Utilities
8439 12439
8440 12440 The 16-bit tools (adump16 and aexec16) have been regenerated and
8441 12441 tested.
8442 12442
8443 12443 Fixed a problem with the output of both acpidump and adump16 where
8444 12444 the indentation of closing parentheses and brackets was not
8445 12445
8446 12446 aligned properly with the parent block.
8447 12447
8448 12448
8449 12449 ----------------------------------------
8450 12450 03 May 2002. Summary of changes for this release.
8451 12451
8452 12452
8453 12453 1) ACPI CA Core Subsystem Version 20020503:
8454 12454
8455 12455 Added support a new OSL interface that allows the host operating
8456 12456
8457 12457 system software to override the DSDT found in the firmware -
8458 12458 AcpiOsTableOverride. With this interface, the OSL can examine the
8459 12459 version of the firmware DSDT and replace it with a different one
8460 12460 if desired.
8461 12461
8462 12462 Added new external interfaces for accessing ACPI registers from
8463 12463 device drivers and other system software - AcpiGetRegister and
8464 12464 AcpiSetRegister. This was simply an externalization of the
8465 12465 existing AcpiHwBitRegister interfaces.
8466 12466
8467 12467 Fixed a regression introduced in the previous build where the
8468 12468 ASL/AML CreateField operator always returned an error,
8469 12469 "destination must be a NS Node".
8470 12470
8471 12471 Extended the maximum time (before failure) to successfully enable
8472 12472 ACPI mode to 3 seconds.
8473 12473
8474 12474 Code and Data Size: Current core subsystem library sizes are shown
8475 12475 below. These are the code and data sizes for the acpica.lib
8476 12476 produced by the Microsoft Visual C++ 6.0 compiler, and these
8477 12477 values do not include any ACPI driver or OSPM code. The debug
8478 12478 version of the code includes the debug output trace mechanism and
8479 12479 has a larger code and data size. Note that these values will vary
8480 12480 depending on the efficiency of the compiler and the compiler
8481 12481 options used during generation.
8482 12482
8483 12483 Previous Release
8484 12484 Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
8485 12485 Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
8486 12486 Current Release:
8487 12487 Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total
8488 12488 Debug Version: 142.9K Code, 58.4K Data, 201.3K Total
8489 12489
8490 12490
8491 12491 2) Linux
8492 12492
8493 12493 Enhanced ACPI init code for SMP. We are now fully MPS and $PIR-
8494 12494 free. While 3 out of 4 of our in-house systems work fine, the last
8495 12495 one still hangs when testing the LAPIC timer.
8496 12496
8497 12497 Renamed many files in 2.5 kernel release to omit "acpi_" from the
8498 12498 name.
8499 12499
8500 12500 Added warning on boot for Presario 711FR.
8501 12501
8502 12502 Sleep improvements (Pavel Machek)
8503 12503
8504 12504 ACPI can now be built without CONFIG_PCI enabled.
8505 12505
8506 12506 IA64: Fixed memory map functions (JI Lee)
8507 12507
8508 12508
8509 12509 3) iASL Compiler Version X2043:
8510 12510
8511 12511 Added support to allow the compiler to be integrated into the MS
8512 12512 VC++ development environment for one-button compilation of single
8513 12513 files or entire projects -- with error-to-source-line mapping.
8514 12514
8515 12515 Implemented support for compile-time constant folding for the
8516 12516 Type3, Type4, and Type5 opcodes first defined in the ACPI 2.0
8517 12517 specification. This allows the ASL writer to use expressions
8518 12518 instead of Integer/Buffer/String constants in terms that must
8519 12519 evaluate to constants at compile time and will also simplify the
8520 12520 emitted AML in any such sub-expressions that can be folded
8521 12521 (evaluated at compile-time.) This increases the size of the
8522 12522 compiler significantly because a portion of the ACPI CA AML
8523 12523 interpreter is included within the compiler in order to pre-
8524 12524 evaluate constant expressions.
8525 12525
8526 12526
8527 12527 Fixed a problem with the "Unicode" ASL macro that caused the
8528 12528 compiler to fault. (This macro is used in conjunction with the
8529 12529 _STR reserved name.)
8530 12530
8531 12531 Implemented an AML opcode optimization to use the Zero, One, and
8532 12532 Ones opcodes where possible to further reduce the size of integer
8533 12533 constants and thus reduce the overall size of the generated AML
8534 12534 code.
8535 12535
8536 12536 Implemented error checking for new reserved terms for ACPI version
8537 12537 2.0A.
8538 12538
8539 12539 Implemented the -qr option to display the current list of ACPI
8540 12540 reserved names known to the compiler.
8541 12541
8542 12542 Implemented the -qc option to display the current list of ASL
8543 12543 operators that are allowed within constant expressions and can
8544 12544 therefore be folded at compile time if the operands are constants.
8545 12545
8546 12546
8547 12547 4) Documentation
8548 12548
8549 12549 Updated the Programmer's Reference for new interfaces, data types,
8550 12550 and memory allocation model options.
8551 12551
8552 12552 Updated the iASL Compiler User Reference to apply new format and
8553 12553 add information about new features and options.
8554 12554
8555 12555 ----------------------------------------
8556 12556 19 April 2002. Summary of changes for this release.
8557 12557
8558 12558 1) ACPI CA Core Subsystem Version 20020419:
8559 12559
8560 12560 The source code base for the Core Subsystem has been completely
8561 12561 cleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
8562 12562 versions. The Lint option files used are included in the
8563 12563 /acpi/generate/lint directory.
8564 12564
8565 12565 Implemented enhanced status/error checking across the entire
8566 12566 Hardware manager subsystem. Any hardware errors (reported from
8567 12567 the OSL) are now bubbled up and will abort a running control
8568 12568 method.
8569 12569
8570 12570
8571 12571 Fixed a problem where the per-ACPI-table integer width (32 or 64)
8572 12572 was stored only with control method nodes, causing a fault when
8573 12573 non-control method code was executed during table loading. The
8574 12574 solution implemented uses a global variable to indicate table
8575 12575 width across the entire ACPI subsystem. Therefore, ACPI CA does
8576 12576 not support mixed integer widths across different ACPI tables
8577 12577 (DSDT, SSDT).
8578 12578
8579 12579 Fixed a problem where NULL extended fields (X fields) in an ACPI
8580 12580 2.0 ACPI FADT caused the table load to fail. Although the
8581 12581 existing ACPI specification is a bit fuzzy on this topic, the new
8582 12582 behavior is to fall back on a ACPI 1.0 field if the corresponding
8583 12583 ACPI 2.0 X field is zero (even though the table revision indicates
8584 12584 a full ACPI 2.0 table.) The ACPI specification will be updated to
8585 12585 clarify this issue.
8586 12586
8587 12587 Fixed a problem with the SystemMemory operation region handler
8588 12588 where memory was always accessed byte-wise even if the AML-
8589 12589 specified access width was larger than a byte. This caused
8590 12590 problems on systems with memory-mapped I/O. Memory is now
8591 12591 accessed with the width specified. On systems that do not support
8592 12592 non-aligned transfers, a check is made to guarantee proper address
8593 12593 alignment before proceeding in order to avoid an AML-caused
8594 12594 alignment fault within the kernel.
8595 12595
8596 12596
8597 12597 Fixed a problem with the ExtendedIrq resource where only one byte
8598 12598 of the 4-byte Irq field was extracted.
8599 12599
8600 12600 Fixed the AcpiExDigitsNeeded() procedure to support _UID. This
8601 12601 function was out of date and required a rewrite.
8602 12602
8603 12603 Code and Data Size: Current core subsystem library sizes are shown
8604 12604 below. These are the code and data sizes for the acpica.lib
8605 12605 produced by the Microsoft Visual C++ 6.0 compiler, and these
8606 12606 values do not include any ACPI driver or OSPM code. The debug
8607 12607 version of the code includes the debug output trace mechanism and
8608 12608 has a larger code and data size. Note that these values will vary
8609 12609 depending on the efficiency of the compiler and the compiler
8610 12610 options used during generation.
8611 12611
8612 12612 Previous Release
8613 12613 Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
8614 12614 Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
8615 12615 Current Release:
8616 12616 Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total
8617 12617 Debug Version: 142.4K Code, 58.3K Data, 200.7K Total
8618 12618
8619 12619
8620 12620 2) Linux
8621 12621
8622 12622 PCI IRQ routing fixes (Dominik Brodowski)
8623 12623
8624 12624
8625 12625 3) iASL Compiler Version X2042:
8626 12626
8627 12627 Implemented an additional compile-time error check for a field
8628 12628 unit whose size + minimum access width would cause a run-time
8629 12629 access beyond the end-of-region. Previously, only the field size
8630 12630 itself was checked.
8631 12631
8632 12632 The Core subsystem and iASL compiler now share a common parse
8633 12633 object in preparation for compile-time evaluation of the type
8634 12634 3/4/5 ASL operators.
8635 12635
8636 12636
8637 12637 ----------------------------------------
8638 12638 Summary of changes for this release: 03_29_02
8639 12639
8640 12640 1) ACPI CA Core Subsystem Version 20020329:
8641 12641
8642 12642 Implemented support for late evaluation of TermArg operands to
8643 12643 Buffer and Package objects. This allows complex expressions to be
8644 12644 used in the declarations of these object types.
8645 12645
8646 12646 Fixed an ACPI 1.0 compatibility issue when reading Fields. In ACPI
8647 12647 1.0, if the field was larger than 32 bits, it was returned as a
8648 12648 buffer - otherwise it was returned as an integer. In ACPI 2.0,
8649 12649 the field is returned as a buffer only if the field is larger than
8650 12650 64 bits. The TableRevision is now considered when making this
8651 12651 conversion to avoid incompatibility with existing ASL code.
8652 12652
8653 12653 Implemented logical addressing for AcpiOsGetRootPointer. This
8654 12654 allows an RSDP with either a logical or physical address. With
8655 12655 this support, the host OS can now override all ACPI tables with
8656 12656 one logical RSDP. Includes implementation of "typed" pointer
8657 12657 support to allow a common data type for both physical and logical
8658 12658 pointers internally. This required a change to the
8659 12659 AcpiOsGetRootPointer interface.
8660 12660
8661 12661 Implemented the use of ACPI 2.0 Generic Address Structures for all
8662 12662 GPE, Fixed Event, and PM Timer I/O. This allows the use of memory
8663 12663 mapped I/O for these ACPI features.
8664 12664
8665 12665 Initialization now ignores not only non-required tables (All
8666 12666 tables other than the FADT, FACS, DSDT, and SSDTs), but also does
8667 12667 not validate the table headers of unrecognized tables.
8668 12668
8669 12669 Fixed a problem where a notify handler could only be
8670 12670 installed/removed on an object of type Device. All "notify"
8671 12671
8672 12672 objects are now supported -- Devices, Processor, Power, and
8673 12673 Thermal.
8674 12674
8675 12675 Removed most verbosity from the ACPI_DB_INFO debug level. Only
8676 12676 critical information is returned when this debug level is enabled.
8677 12677
8678 12678 Code and Data Size: Current core subsystem library sizes are shown
8679 12679 below. These are the code and data sizes for the acpica.lib
8680 12680 produced by the Microsoft Visual C++ 6.0 compiler, and these
8681 12681 values do not include any ACPI driver or OSPM code. The debug
8682 12682 version of the code includes the debug output trace mechanism and
8683 12683 has a larger code and data size. Note that these values will vary
8684 12684 depending on the efficiency of the compiler and the compiler
8685 12685 options used during generation.
8686 12686
8687 12687 Previous Release
8688 12688 Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
8689 12689 Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
8690 12690 Current Release:
8691 12691 Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total
8692 12692 Debug Version: 139.8K Code, 57.4K Data, 197.2K Total
8693 12693
8694 12694
8695 12695 2) Linux:
8696 12696
8697 12697 The processor driver (acpi_processor.c) now fully supports ACPI
8698 12698 2.0-based processor performance control (e.g. Intel(R)
8699 12699 SpeedStep(TM) technology) Note that older laptops that only have
8700 12700 the Intel "applet" interface are not supported through this. The
8701 12701 'limit' and 'performance' interface (/proc) are fully functional.
8702 12702 [Note that basic policy for controlling performance state
8703 12703 transitions will be included in the next version of ospmd.] The
8704 12704 idle handler was modified to more aggressively use C2, and PIIX4
8705 12705 errata handling underwent a complete overhaul (big thanks to
8706 12706 Dominik Brodowski).
8707 12707
8708 12708 Added support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
8709 12709 based devices in the ACPI namespace are now dynamically bound
8710 12710 (associated) with their PCI counterparts (e.g. PCI1->01:00.0).
8711 12711 This allows, among other things, ACPI to resolve bus numbers for
8712 12712 subordinate PCI bridges.
8713 12713
8714 12714 Enhanced PCI IRQ routing to get the proper bus number for _PRT
8715 12715 entries defined underneath PCI bridges.
8716 12716
8717 12717 Added IBM 600E to bad bios list due to invalid _ADR value for
8718 12718 PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
8719 12719
8720 12720 In the process of adding full MADT support (e.g. IOAPIC) for IA32
8721 12721 (acpi.c, mpparse.c) -- stay tuned.
8722 12722
8723 12723 Added back visual differentiation between fixed-feature and
8724 12724 control-method buttons in dmesg. Buttons are also subtyped (e.g.
8725 12725 button/power/PWRF) to simplify button identification.
8726 12726
8727 12727 We no longer use -Wno-unused when compiling debug. Please ignore
8728 12728 any "_THIS_MODULE defined but not used" messages.
8729 12729
8730 12730 Can now shut down the system using "magic sysrq" key.
8731 12731
8732 12732
8733 12733 3) iASL Compiler version 2041:
8734 12734
8735 12735 Fixed a problem where conversion errors for hex/octal/decimal
8736 12736 constants were not reported.
8737 12737
8738 12738 Implemented a fix for the General Register template Address field.
8739 12739 This field was 8 bits when it should be 64.
8740 12740
8741 12741 Fixed a problem where errors/warnings were no longer being emitted
8742 12742 within the listing output file.
8743 12743
8744 12744 Implemented the ACPI 2.0A restriction on ACPI Table Signatures to
8745 12745 exactly 4 characters, alphanumeric only.
8746 12746
8747 12747
8748 12748
8749 12749
8750 12750 ----------------------------------------
8751 12751 Summary of changes for this release: 03_08_02
8752 12752
8753 12753
8754 12754 1) ACPI CA Core Subsystem Version 20020308:
8755 12755
8756 12756 Fixed a problem with AML Fields where the use of the "AccessAny"
8757 12757 keyword could cause an interpreter error due to attempting to read
8758 12758 or write beyond the end of the parent Operation Region.
8759 12759
8760 12760 Fixed a problem in the SystemMemory Operation Region handler where
8761 12761 an attempt was made to map memory beyond the end of the region.
8762 12762 This was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
8763 12763 errors on some Linux systems.
8764 12764
8765 12765 Fixed a problem where the interpreter/namespace "search to root"
8766 12766 algorithm was not functioning for some object types. Relaxed the
8767 12767 internal restriction on the search to allow upsearches for all
8768 12768 external object types as well as most internal types.
8769 12769
8770 12770
8771 12771 2) Linux:
8772 12772
8773 12773 We now use safe_halt() macro versus individual calls to sti | hlt.
8774 12774
8775 12775 Writing to the processor limit interface should now work. "echo 1"
8776 12776 will increase the limit, 2 will decrease, and 0 will reset to the
8777 12777
8778 12778 default.
8779 12779
8780 12780
8781 12781 3) ASL compiler:
8782 12782
8783 12783 Fixed segfault on Linux version.
8784 12784
8785 12785
8786 12786 ----------------------------------------
8787 12787 Summary of changes for this release: 02_25_02
8788 12788
8789 12789 1) ACPI CA Core Subsystem:
8790 12790
8791 12791
8792 12792 Fixed a problem where the GPE bit masks were not initialized
8793 12793 properly, causing erratic GPE behavior.
8794 12794
8795 12795 Implemented limited support for multiple calling conventions. The
8796 12796 code can be generated with either the VPL (variable parameter
8797 12797 list, or "C") convention, or the FPL (fixed parameter list, or
8798 12798 "Pascal") convention. The core subsystem is about 3.4% smaller
8799 12799 when generated with FPL.
8800 12800
8801 12801
8802 12802 2) Linux
8803 12803
8804 12804 Re-add some /proc/acpi/event functionality that was lost during
8805 12805 the rewrite
8806 12806
8807 12807 Resolved issue with /proc events for fixed-feature buttons showing
8808 12808 up as the system device.
8809 12809
8810 12810 Fixed checks on C2/C3 latencies to be inclusive of maximum values.
8811 12811
8812 12812 Replaced AE_ERRORs in acpi_osl.c with more specific error codes.
8813 12813
8814 12814 Changed ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
8815 12815
8816 12816 Fixed limit interface & usage to fix bugs with passive cooling
8817 12817 hysterisis.
8818 12818
8819 12819 Restructured PRT support.
8820 12820
8821 12821
8822 12822 ----------------------------------------
8823 12823 Summary of changes for this label: 02_14_02
8824 12824
8825 12825
8826 12826 1) ACPI CA Core Subsystem:
8827 12827
8828 12828 Implemented support in AcpiLoadTable to allow loading of FACS and
8829 12829 FADT tables.
8830 12830
8831 12831 Suport for the now-obsolete interim 0.71 64-bit ACPI tables has
8832 12832 been removed. All 64-bit platforms should be migrated to the ACPI
8833 12833 2.0 tables. The actbl71.h header has been removed from the source
8834 12834 tree.
8835 12835
8836 12836 All C macros defined within the subsystem have been prefixed with
8837 12837 "ACPI_" to avoid collision with other system include files.
8838 12838
8839 12839 Removed the return value for the two AcpiOsPrint interfaces, since
8840 12840 it is never used and causes lint warnings for ignoring the return
8841 12841 value.
8842 12842
8843 12843 Added error checking to all internal mutex acquire and release
8844 12844 calls. Although a failure from one of these interfaces is
8845 12845 probably a fatal system error, these checks will cause the
8846 12846 immediate abort of the currently executing method or interface.
8847 12847
8848 12848 Fixed a problem where the AcpiSetCurrentResources interface could
8849 12849 fault. This was a side effect of the deployment of the new memory
8850 12850 allocation model.
8851 12851
8852 12852 Fixed a couple of problems with the Global Lock support introduced
8853 12853 in the last major build. The "common" (1.0/2.0) internal FACS was
8854 12854 being overwritten with the FACS signature and clobbering the
8855 12855 Global Lock pointer. Also, the actual firmware FACS was being
8856 12856 unmapped after construction of the "common" FACS, preventing
8857 12857 access to the actual Global Lock field within it. The "common"
8858 12858 internal FACS is no longer installed as an actual ACPI table; it
8859 12859 is used simply as a global.
8860 12860
8861 12861 Code and Data Size: Current core subsystem library sizes are shown
8862 12862 below. These are the code and data sizes for the acpica.lib
8863 12863 produced by the Microsoft Visual C++ 6.0 compiler, and these
8864 12864 values do not include any ACPI driver or OSPM code. The debug
8865 12865 version of the code includes the debug output trace mechanism and
8866 12866 has a larger code and data size. Note that these values will vary
8867 12867 depending on the efficiency of the compiler and the compiler
8868 12868 options used during generation.
8869 12869
8870 12870 Previous Release (02_07_01)
8871 12871 Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total
8872 12872 Debug Version: 136.9K Code, 56.4K Data, 193.3K Total
8873 12873 Current Release:
8874 12874 Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total
8875 12875 Debug Version: 138.0K Code, 56.6K Data, 194.6K Total
8876 12876
8877 12877
8878 12878 2) Linux
8879 12879
8880 12880 Updated Linux-specific code for core macro and OSL interface
8881 12881 changes described above.
8882 12882
8883 12883 Improved /proc/acpi/event. It now can be opened only once and has
8884 12884 proper poll functionality.
8885 12885
8886 12886 Fixed and restructured power management (acpi_bus).
8887 12887
8888 12888 Only create /proc "view by type" when devices of that class exist.
8889 12889
8890 12890 Fixed "charging/discharging" bug (and others) in acpi_battery.
8891 12891
8892 12892 Improved thermal zone code.
8893 12893
8894 12894
8895 12895 3) ASL Compiler, version X2039:
8896 12896
8897 12897
8898 12898 Implemented the new compiler restriction on ASL String hex/octal
8899 12899 escapes to non-null, ASCII values. An error results if an invalid
8900 12900 value is used. (This will require an ACPI 2.0 specification
8901 12901 change.)
8902 12902
8903 12903 AML object labels that are output to the optional C and ASM source
8904 12904 are now prefixed with both the ACPI table signature and table ID
8905 12905 to help guarantee uniqueness within a large BIOS project.
8906 12906
8907 12907
8908 12908 ----------------------------------------
8909 12909 Summary of changes for this label: 02_01_02
8910 12910
8911 12911 1) ACPI CA Core Subsystem:
8912 12912
8913 12913 ACPI 2.0 support is complete in the entire Core Subsystem and the
8914 12914 ASL compiler. All new ACPI 2.0 operators are implemented and all
8915 12915 other changes for ACPI 2.0 support are complete. With
8916 12916 simultaneous code and data optimizations throughout the subsystem,
8917 12917 ACPI 2.0 support has been implemented with almost no additional
8918 12918 cost in terms of code and data size.
8919 12919
8920 12920 Implemented a new mechanism for allocation of return buffers. If
8921 12921 the buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
8922 12922 be allocated on behalf of the caller. Consolidated all return
8923 12923 buffer validation and allocation to a common procedure. Return
8924 12924 buffers will be allocated via the primary OSL allocation interface
8925 12925 since it appears that a separate pool is not needed by most users.
8926 12926 If a separate pool is required for these buffers, the caller can
8927 12927 still use the original mechanism and pre-allocate the buffer(s).
8928 12928
8929 12929 Implemented support for string operands within the DerefOf
8930 12930 operator.
8931 12931
8932 12932 Restructured the Hardware and Event managers to be table driven,
8933 12933 simplifying the source code and reducing the amount of generated
8934 12934 code.
8935 12935
8936 12936 Split the common read/write low-level ACPI register bitfield
8937 12937 procedure into a separate read and write, simplifying the code
8938 12938 considerably.
8939 12939
8940 12940 Obsoleted the AcpiOsCallocate OSL interface. This interface was
8941 12941 used only a handful of times and didn't have enough critical mass
8942 12942 for a separate interface. Replaced with a common calloc procedure
8943 12943 in the core.
8944 12944
8945 12945 Fixed a reported problem with the GPE number mapping mechanism
8946 12946 that allows GPE1 numbers to be non-contiguous with GPE0.
8947 12947 Reorganized the GPE information and shrunk a large array that was
8948 12948 originally large enough to hold info for all possible GPEs (256)
8949 12949 to simply large enough to hold all GPEs up to the largest GPE
8950 12950 number on the machine.
8951 12951
8952 12952 Fixed a reported problem with resource structure alignment on 64-
8953 12953 bit platforms.
8954 12954
8955 12955 Changed the AcpiEnableEvent and AcpiDisableEvent external
8956 12956 interfaces to not require any flags for the common case of
8957 12957 enabling/disabling a GPE.
8958 12958
8959 12959 Implemented support to allow a "Notify" on a Processor object.
8960 12960
8961 12961 Most TBDs in comments within the source code have been resolved
8962 12962 and eliminated.
8963 12963
8964 12964
8965 12965 Fixed a problem in the interpreter where a standalone parent
8966 12966 prefix (^) was not handled correctly in the interpreter and
8967 12967 debugger.
8968 12968
8969 12969 Removed obsolete and unnecessary GPE save/restore code.
8970 12970
8971 12971 Implemented Field support in the ASL Load operator. This allows a
8972 12972 table to be loaded from a named field, in addition to loading a
8973 12973 table directly from an Operation Region.
8974 12974
8975 12975 Implemented timeout and handle support in the external Global Lock
8976 12976 interfaces.
8977 12977
8978 12978 Fixed a problem in the AcpiDump utility where pathnames were no
8979 12979 longer being generated correctly during the dump of named objects.
8980 12980
8981 12981 Modified the AML debugger to give a full display of if/while
8982 12982 predicates instead of just one AML opcode at a time. (The
8983 12983 predicate can have several nested ASL statements.) The old method
8984 12984 was confusing during single stepping.
8985 12985
8986 12986 Code and Data Size: Current core subsystem library sizes are shown
8987 12987 below. These are the code and data sizes for the acpica.lib
8988 12988 produced by the Microsoft Visual C++ 6.0 compiler, and these
8989 12989 values do not include any ACPI driver or OSPM code. The debug
8990 12990 version of the code includes the debug output trace mechanism and
8991 12991 has a larger code and data size. Note that these values will vary
8992 12992 depending on the efficiency of the compiler and the compiler
8993 12993 options used during generation.
8994 12994
8995 12995 Previous Release (12_18_01)
8996 12996 Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total
8997 12997 Debug Version: 138.3K Code, 55.9K Data, 194.2K Total
8998 12998 Current Release:
8999 12999 Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total
9000 13000 Debug Version: 136.9K Code, 56.4K Data, 193.3K Total
9001 13001
9002 13002 2) Linux
9003 13003
9004 13004 Implemented fix for PIIX reverse throttling errata (Processor
9005 13005 driver)
9006 13006
9007 13007 Added new Limit interface (Processor and Thermal drivers)
9008 13008
9009 13009 New thermal policy (Thermal driver)
9010 13010
9011 13011 Many updates to /proc
9012 13012
9013 13013 Battery "low" event support (Battery driver)
9014 13014
9015 13015 Supports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
9016 13016
9017 13017 IA32 - IA64 initialization unification, no longer experimental
9018 13018
9019 13019 Menuconfig options redesigned
9020 13020
9021 13021 3) ASL Compiler, version X2037:
9022 13022
9023 13023 Implemented several new output features to simplify integration of
9024 13024 AML code into firmware: 1) Output the AML in C source code with
9025 13025 labels for each named ASL object. The original ASL source code
9026 13026 is interleaved as C comments. 2) Output the AML in ASM source code
9027 13027 with labels and interleaved ASL source. 3) Output the AML in
9028 13028 raw hex table form, in either C or ASM.
9029 13029
9030 13030 Implemented support for optional string parameters to the
9031 13031 LoadTable operator.
9032 13032
9033 13033 Completed support for embedded escape sequences within string
9034 13034 literals. The compiler now supports all single character escapes
9035 13035 as well as the Octal and Hex escapes. Note: the insertion of a
9036 13036 null byte into a string literal (via the hex/octal escape) causes
9037 13037 the string to be immediately terminated. A warning is issued.
9038 13038
9039 13039 Fixed a problem where incorrect AML was generated for the case
9040 13040 where an ASL namepath consists of a single parent prefix (
9041 13041
9042 13042 ) with no trailing name segments.
9043 13043
9044 13044 The compiler has been successfully generated with a 64-bit C
9045 13045 compiler.
9046 13046
9047 13047
9048 13048
9049 13049
9050 13050 ----------------------------------------
9051 13051 Summary of changes for this label: 12_18_01
9052 13052
9053 13053 1) Linux
9054 13054
9055 13055 Enhanced blacklist with reason and severity fields. Any table's
9056 13056 signature may now be used to identify a blacklisted system.
9057 13057
9058 13058 Call _PIC control method to inform the firmware which interrupt
9059 13059 model the OS is using. Turn on any disabled link devices.
9060 13060
9061 13061 Cleaned up busmgr /proc error handling (Andreas Dilger)
9062 13062
9063 13063 2) ACPI CA Core Subsystem:
9064 13064
9065 13065 Implemented ACPI 2.0 semantics for the "Break" operator (Exit from
9066 13066 while loop)
9067 13067
9068 13068 Completed implementation of the ACPI 2.0 "Continue",
9069 13069 "ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
9070 13070 operators. All new ACPI 2.0 operators are now implemented in both
9071 13071 the ASL compiler and the AML interpreter. The only remaining ACPI
9072 13072 2.0 task is support for the String data type in the DerefOf
9073 13073 operator. Fixed a problem with AcquireMutex where the status code
9074 13074 was lost if the caller had to actually wait for the mutex.
9075 13075
9076 13076 Increased the maximum ASL Field size from 64K bits to 4G bits.
9077 13077
9078 13078 Completed implementation of the external Global Lock interfaces --
9079 13079 AcpiAcquireGlobalLock and AcpiReleaseGlobalLock. The Timeout and
9080 13080 Handler parameters were added.
9081 13081
9082 13082 Completed another pass at removing warnings and issues when
9083 13083 compiling with 64-bit compilers. The code now compiles cleanly
9084 13084 with the Intel 64-bit C/C++ compiler. Most notably, the pointer
9085 13085 add and subtract (diff) macros have changed considerably.
9086 13086
9087 13087
9088 13088 Created and deployed a new ACPI_SIZE type that is 64-bits wide on
9089 13089 64-bit platforms, 32-bits on all others. This type is used
9090 13090 wherever memory allocation and/or the C sizeof() operator is used,
9091 13091 and affects the OSL memory allocation interfaces AcpiOsAllocate
9092 13092 and AcpiOsCallocate.
9093 13093
9094 13094 Implemented sticky user breakpoints in the AML debugger.
9095 13095
9096 13096 Code and Data Size: Current core subsystem library sizes are shown
9097 13097 below. These are the code and data sizes for the acpica.lib
9098 13098 produced by the Microsoft Visual C++ 6.0 compiler, and these
9099 13099 values do not include any ACPI driver or OSPM code. The debug
9100 13100 version of the code includes the debug output trace mechanism and
9101 13101 has a larger code and data size. Note that these values will vary
9102 13102 depending on the efficiency of the compiler and the compiler
9103 13103 options used during generation.
9104 13104
9105 13105 Previous Release (12_05_01)
9106 13106 Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total
9107 13107 Debug Version: 136.2K Code, 55.6K Data, 191.8K Total
9108 13108 Current Release:
9109 13109 Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total
9110 13110 Debug Version: 138.3K Code, 55.9K Data, 194.2K Total
9111 13111
9112 13112 3) ASL Compiler, version X2034:
9113 13113
9114 13114 Now checks for (and generates an error if detected) the use of a
9115 13115 Break or Continue statement without an enclosing While statement.
9116 13116
9117 13117
9118 13118 Successfully generated the compiler with the Intel 64-bit C
9119 13119 compiler.
9120 13120
9121 13121 ----------------------------------------
9122 13122 Summary of changes for this label: 12_05_01
9123 13123
9124 13124 1) ACPI CA Core Subsystem:
9125 13125
9126 13126 The ACPI 2.0 CopyObject operator is fully implemented. This
9127 13127 operator creates a new copy of an object (and is also used to
9128 13128 bypass the "implicit conversion" mechanism of the Store operator.)
9129 13129
9130 13130 The ACPI 2.0 semantics for the SizeOf operator are fully
9131 13131 implemented. The change is that performing a SizeOf on a
9132 13132 reference object causes an automatic dereference of the object to
9133 13133 tha actual value before the size is evaluated. This behavior was
9134 13134 undefined in ACPI 1.0.
9135 13135
9136 13136 The ACPI 2.0 semantics for the Extended IRQ resource descriptor
9137 13137 have been implemented. The interrupt polarity and mode are now
9138 13138 independently set.
9139 13139
9140 13140 Fixed a problem where ASL Constants (Zero, One, Ones, Revision)
9141 13141 appearing in Package objects were not properly converted to
9142 13142 integers when the internal Package was converted to an external
9143 13143 object (via the AcpiEvaluateObject interface.)
9144 13144
9145 13145 Fixed a problem with the namespace object deletion mechanism for
9146 13146 objects created by control methods. There were two parts to this
9147 13147 problem: 1) Objects created during the initialization phase method
9148 13148 parse were not being deleted, and 2) The object owner ID mechanism
9149 13149 to track objects was broken.
9150 13150
9151 13151 Fixed a problem where the use of the ASL Scope operator within a
9152 13152 control method would result in an invalid opcode exception.
9153 13153
9154 13154 Fixed a problem introduced in the previous label where the buffer
9155 13155 length required for the _PRT structure was not being returned
9156 13156 correctly.
9157 13157
9158 13158 Code and Data Size: Current core subsystem library sizes are shown
9159 13159 below. These are the code and data sizes for the acpica.lib
9160 13160 produced by the Microsoft Visual C++ 6.0 compiler, and these
9161 13161 values do not include any ACPI driver or OSPM code. The debug
9162 13162 version of the code includes the debug output trace mechanism and
9163 13163 has a larger code and data size. Note that these values will vary
9164 13164 depending on the efficiency of the compiler and the compiler
9165 13165 options used during generation.
9166 13166
9167 13167 Previous Release (11_20_01)
9168 13168 Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total
9169 13169 Debug Version: 135.1K Code, 55.4K Data, 190.5K Total
9170 13170
9171 13171 Current Release:
9172 13172 Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total
9173 13173 Debug Version: 136.2K Code, 55.6K Data, 191.8K Total
9174 13174
9175 13175 2) Linux:
9176 13176
9177 13177 Updated all files to apply cleanly against 2.4.16.
9178 13178
9179 13179 Added basic PCI Interrupt Routing Table (PRT) support for IA32
9180 13180 (acpi_pci.c), and unified the PRT code for IA32 and IA64. This
9181 13181 version supports both static and dyanmic PRT entries, but dynamic
9182 13182 entries are treated as if they were static (not yet
9183 13183 reconfigurable). Architecture- specific code to use this data is
9184 13184 absent on IA32 but should be available shortly.
9185 13185
9186 13186 Changed the initialization sequence to start the ACPI interpreter
9187 13187 (acpi_init) prior to initialization of the PCI driver (pci_init)
9188 13188 in init/main.c. This ordering is required to support PRT and
9189 13189 facilitate other (future) enhancement. A side effect is that the
9190 13190 ACPI bus driver and certain device drivers can no longer be loaded
9191 13191 as modules.
9192 13192
9193 13193 Modified the 'make menuconfig' options to allow PCI Interrupt
9194 13194 Routing support to be included without the ACPI Bus and other
9195 13195 device drivers.
9196 13196
9197 13197 3) ASL Compiler, version X2033:
9198 13198
9199 13199 Fixed some issues with the use of the new CopyObject and
9200 13200 DataTableRegion operators. Both are fully functional.
9201 13201
9202 13202 ----------------------------------------
9203 13203 Summary of changes for this label: 11_20_01
9204 13204
9205 13205 20 November 2001. Summary of changes for this release.
9206 13206
9207 13207 1) ACPI CA Core Subsystem:
9208 13208
9209 13209 Updated Index support to match ACPI 2.0 semantics. Storing a
9210 13210 Integer, String, or Buffer to an Index of a Buffer will store only
9211 13211 the least-significant byte of the source to the Indexed buffer
9212 13212 byte. Multiple writes are not performed.
9213 13213
9214 13214 Fixed a problem where the access type used in an AccessAs ASL
9215 13215 operator was not recorded correctly into the field object.
9216 13216
9217 13217 Fixed a problem where ASL Event objects were created in a
9218 13218 signalled state. Events are now created in an unsignalled state.
9219 13219
9220 13220 The internal object cache is now purged after table loading and
9221 13221 initialization to reduce the use of dynamic kernel memory -- on
9222 13222 the assumption that object use is greatest during the parse phase
9223 13223 of the entire table (versus the run-time use of individual control
9224 13224 methods.)
9225 13225
9226 13226 ACPI 2.0 variable-length packages are now fully operational.
9227 13227
9228 13228 Code and Data Size: Code and Data optimizations have permitted new
9229 13229 feature development with an actual reduction in the library size.
9230 13230 Current core subsystem library sizes are shown below. These are
9231 13231 the code and data sizes for the acpica.lib produced by the
9232 13232 Microsoft Visual C++ 6.0 compiler, and these values do not include
9233 13233 any ACPI driver or OSPM code. The debug version of the code
9234 13234 includes the debug output trace mechanism and has a larger code
9235 13235 and data size. Note that these values will vary depending on the
9236 13236 efficiency of the compiler and the compiler options used during
9237 13237 generation.
9238 13238
9239 13239 Previous Release (11_09_01):
9240 13240 Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total
9241 13241 Debug Version: 134.5K Code, 55.4K Data, 189.9K Total
9242 13242
9243 13243 Current Release:
9244 13244 Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total
9245 13245 Debug Version: 135.1K Code, 55.4K Data, 190.5K Total
9246 13246
9247 13247 2) Linux:
9248 13248
9249 13249 Enhanced the ACPI boot-time initialization code to allow the use
9250 13250 of Local APIC tables for processor enumeration on IA-32, and to
9251 13251 pave the way for a fully MPS-free boot (on SMP systems) in the
9252 13252 near future. This functionality replaces
9253 13253 arch/i386/kernel/acpitables.c, which was introduced in an earlier
9254 13254 2.4.15-preX release. To enable this feature you must add
9255 13255 "acpi_boot=on" to the kernel command line -- see the help entry
9256 13256 for CONFIG_ACPI_BOOT for more information. An IA-64 release is in
9257 13257 the works...
9258 13258
9259 13259 Restructured the configuration options to allow boot-time table
9260 13260 parsing support without inclusion of the ACPI Interpreter (and
9261 13261 other) code.
9262 13262
9263 13263 NOTE: This release does not include fixes for the reported events,
9264 13264 power-down, and thermal passive cooling issues (coming soon).
9265 13265
9266 13266 3) ASL Compiler:
9267 13267
9268 13268 Added additional typechecking for Fields within restricted access
9269 13269 Operation Regions. All fields within EC and CMOS regions must be
9270 13270 declared with ByteAcc. All fields withing SMBus regions must be
9271 13271 declared with the BufferAcc access type.
9272 13272
9273 13273 Fixed a problem where the listing file output of control methods
9274 13274 no longer interleaved the actual AML code with the ASL source
9275 13275 code.
9276 13276
9277 13277
9278 13278
9279 13279
9280 13280 ----------------------------------------
9281 13281 Summary of changes for this label: 11_09_01
9282 13282
9283 13283 1) ACPI CA Core Subsystem:
9284 13284
9285 13285 Implemented ACPI 2.0-defined support for writes to fields with a
9286 13286 Buffer, String, or Integer source operand that is smaller than the
9287 13287 target field. In these cases, the source operand is zero-extended
9288 13288 to fill the target field.
9289 13289
9290 13290 Fixed a problem where a Field starting bit offset (within the
9291 13291 parent operation region) was calculated incorrectly if the
9292 13292
9293 13293 alignment of the field differed from the access width. This
9294 13294 affected CreateWordField, CreateDwordField, CreateQwordField, and
9295 13295 possibly other fields that use the "AccessAny" keyword.
9296 13296
9297 13297 Fixed a problem introduced in the 11_02_01 release where indirect
9298 13298 stores through method arguments did not operate correctly.
9299 13299
9300 13300 2) Linux:
9301 13301
9302 13302 Implemented boot-time ACPI table parsing support
9303 13303 (CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This code
9304 13304 facilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
9305 13305 legacy BIOS interfaces (e.g. MPS) for the configuration of system
9306 13306 processors, memory, and interrupts during setup_arch(). Note that
9307 13307 this patch does not include the required architecture-specific
9308 13308 changes required to apply this information -- subsequent patches
9309 13309 will be posted for both IA32 and IA64 to achieve this.
9310 13310
9311 13311 Added low-level sleep support for IA32 platforms, courtesy of Pat
9312 13312 Mochel. This allows IA32 systems to transition to/from various
9313 13313 sleeping states (e.g. S1, S3), although the lack of a centralized
9314 13314 driver model and power-manageable drivers will prevent its
9315 13315 (successful) use on most systems.
9316 13316
9317 13317 Revamped the ACPI 'menuconfig' layout: created new "ACPI Support"
9318 13318 submenu, unified IA32 and IA64 options, added new "Boot using ACPI
9319 13319 tables" option, etc.
9320 13320
9321 13321 Increased the default timeout for the EC driver from 1ms to 10ms
9322 13322 (1000 cycles of 10us) to try to address AE_TIME errors during EC
9323 13323 transactions.
9324 13324
9325 13325 ----------------------------------------
9326 13326 Summary of changes for this label: 11_02_01
9327 13327
9328 13328 1) ACPI CA Core Subsystem:
9329 13329
9330 13330 ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
9331 13331 (QWordAcc keyword). All ACPI 2.0 64-bit support is now
9332 13332 implemented.
9333 13333
9334 13334 OSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
9335 13335 changes to support ACPI 2.0 Qword field access. Read/Write
9336 13336 PciConfiguration(), Read/Write Memory(), and Read/Write Port() now
9337 13337 accept an ACPI_INTEGER (64 bits) as the value parameter. Also,
9338 13338 the value parameter for the address space handler interface is now
9339 13339 an ACPI_INTEGER. OSL implementations of these interfaces must now
9340 13340 handle the case where the Width parameter is 64.
9341 13341
9342 13342 Index Fields: Fixed a problem where unaligned bit assembly and
9343 13343 disassembly for IndexFields was not supported correctly.
9344 13344
9345 13345 Index and Bank Fields: Nested Index and Bank Fields are now
9346 13346 supported. During field access, a check is performed to ensure
9347 13347 that the value written to an Index or Bank register is not out of
9348 13348 the range of the register. The Index (or Bank) register is
9349 13349 written before each access to the field data. Future support will
9350 13350 include allowing individual IndexFields to be wider than the
9351 13351 DataRegister width.
9352 13352
9353 13353 Fields: Fixed a problem where the AML interpreter was incorrectly
9354 13354 attempting to write beyond the end of a Field/OpRegion. This was
9355 13355 a boundary case that occurred when a DWORD field was written to a
9356 13356 BYTE access OpRegion, forcing multiple writes and causing the
9357 13357 interpreter to write one datum too many.
9358 13358
9359 13359 Fields: Fixed a problem with Field/OpRegion access where the
9360 13360 starting bit address of a field was incorrectly calculated if the
9361 13361 current access type was wider than a byte (WordAcc, DwordAcc, or
9362 13362 QwordAcc).
9363 13363
9364 13364 Fields: Fixed a problem where forward references to individual
9365 13365 FieldUnits (individual Field names within a Field definition) were
9366 13366 not resolved during the AML table load.
9367 13367
9368 13368 Fields: Fixed a problem where forward references from a Field
9369 13369 definition to the parent Operation Region definition were not
9370 13370 resolved during the AML table load.
9371 13371
9372 13372 Fields: Duplicate FieldUnit names within a scope are now detected
9373 13373 during AML table load.
9374 13374
9375 13375 Acpi Interfaces: Fixed a problem where the AcpiGetName() interface
9376 13376 returned an incorrect name for the root node.
9377 13377
9378 13378 Code and Data Size: Code and Data optimizations have permitted new
9379 13379 feature development with an actual reduction in the library size.
9380 13380 Current core subsystem library sizes are shown below. These are
9381 13381 the code and data sizes for the acpica.lib produced by the
9382 13382 Microsoft Visual C++ 6.0 compiler, and these values do not include
9383 13383 any ACPI driver or OSPM code. The debug version of the code
9384 13384 includes the debug output trace mechanism and has a larger code
9385 13385 and data size. Note that these values will vary depending on the
9386 13386 efficiency of the compiler and the compiler options used during
9387 13387 generation.
9388 13388
9389 13389 Previous Release (10_18_01):
9390 13390 Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total
9391 13391 Debug Version: 136.7K Code, 57.4K Data, 194.2K Total
9392 13392
9393 13393 Current Release:
9394 13394 Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total
9395 13395 Debug Version: 134.5K Code, 55.4K Data, 189.9K Total
9396 13396
9397 13397 2) Linux:
9398 13398
9399 13399 Improved /proc processor output (Pavel Machek) Re-added
9400 13400 MODULE_LICENSE("GPL") to all modules.
9401 13401
9402 13402 3) ASL Compiler version X2030:
9403 13403
9404 13404 Duplicate FieldUnit names within a scope are now detected and
9405 13405 flagged as errors.
9406 13406
9407 13407 4) Documentation:
9408 13408
9409 13409 Programmer Reference updated to reflect OSL and address space
9410 13410 handler interface changes described above.
9411 13411
9412 13412 ----------------------------------------
9413 13413 Summary of changes for this label: 10_18_01
9414 13414
9415 13415 ACPI CA Core Subsystem:
9416 13416
9417 13417 Fixed a problem with the internal object reference count mechanism
9418 13418 that occasionally caused premature object deletion. This resolves
9419 13419 all of the outstanding problem reports where an object is deleted
9420 13420 in the middle of an interpreter evaluation. Although this problem
9421 13421 only showed up in rather obscure cases, the solution to the
9422 13422 problem involved an adjustment of all reference counts involving
9423 13423 objects attached to namespace nodes.
9424 13424
9425 13425 Fixed a problem with Field support in the interpreter where
9426 13426 writing to an aligned field whose length is an exact multiple (2
9427 13427 or greater) of the field access granularity would cause an attempt
9428 13428 to write beyond the end of the field.
9429 13429
9430 13430 The top level AML opcode execution functions within the
9431 13431 interpreter have been renamed with a more meaningful and
9432 13432 consistent naming convention. The modules exmonad.c and
9433 13433 exdyadic.c were eliminated. New modules are exoparg1.c,
9434 13434 exoparg2.c, exoparg3.c, and exoparg6.c.
9435 13435
9436 13436 Support for the ACPI 2.0 "Mid" ASL operator has been implemented.
9437 13437
9438 13438 Fixed a problem where the AML debugger was causing some internal
9439 13439 objects to not be deleted during subsystem termination.
9440 13440
9441 13441 Fixed a problem with the external AcpiEvaluateObject interface
9442 13442 where the subsystem would fault if the named object to be
9443 13443 evaluated refered to a constant such as Zero, Ones, etc.
9444 13444
9445 13445 Fixed a problem with IndexFields and BankFields where the
9446 13446 subsystem would fault if the index, data, or bank registers were
9447 13447 not defined in the same scope as the field itself.
9448 13448
9449 13449 Added printf format string checking for compilers that support
9450 13450 this feature. Corrected more than 50 instances of issues with
9451 13451 format specifiers within invocations of ACPI_DEBUG_PRINT
9452 13452 throughout the core subsystem code.
9453 13453
9454 13454 The ASL "Revision" operator now returns the ACPI support level
9455 13455 implemented in the core - the value "2" since the ACPI 2.0 support
9456 13456 is more than 50% implemented.
9457 13457
9458 13458 Enhanced the output of the AML debugger "dump namespace" command
9459 13459 to output in a more human-readable form.
9460 13460
9461 13461 Current core subsystem library code sizes are shown below. These
9462 13462
9463 13463 are the code and data sizes for the acpica.lib produced by the
9464 13464 Microsoft Visual C++ 6.0 compiler, and these values do not include
9465 13465 any ACPI driver or OSPM code. The debug version of the code
9466 13466 includes the full debug trace mechanism -- leading to a much
9467 13467
9468 13468 larger code and data size. Note that these values will vary
9469 13469 depending on the efficiency of the compiler and the compiler
9470 13470 options used during generation.
9471 13471
9472 13472 Previous Label (09_20_01):
9473 13473 Non-Debug Version: 65K Code, 5K Data, 70K Total
9474 13474 Debug Version: 138K Code, 58K Data, 196K Total
9475 13475
9476 13476 This Label:
9477 13477
9478 13478 Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total
9479 13479 Debug Version: 136.7K Code, 57.4K Data, 194.2K Total
9480 13480
9481 13481 Linux:
9482 13482
9483 13483 Implemented a "Bad BIOS Blacklist" to track machines that have
9484 13484 known ASL/AML problems.
9485 13485
9486 13486 Enhanced the /proc interface for the thermal zone driver and added
9487 13487 support for _HOT (the critical suspend trip point). The 'info'
9488 13488 file now includes threshold/policy information, and allows setting
9489 13489 of _SCP (cooling preference) and _TZP (polling frequency) values
9490 13490 to the 'info' file. Examples: "echo tzp=5 > info" sets the polling
9491 13491 frequency to 5 seconds, and "echo scp=1 > info" sets the cooling
9492 13492 preference to the passive/quiet mode (if supported by the ASL).
9493 13493
9494 13494 Implemented a workaround for a gcc bug that resuted in an OOPs
9495 13495 when loading the control method battery driver.
9496 13496
9497 13497 ----------------------------------------
9498 13498 Summary of changes for this label: 09_20_01
9499 13499
9500 13500 ACPI CA Core Subsystem:
9501 13501
9502 13502 The AcpiEnableEvent and AcpiDisableEvent interfaces have been
9503 13503 modified to allow individual GPE levels to be flagged as wake-
9504 13504 enabled (i.e., these GPEs are to remain enabled when the platform
9505 13505 sleeps.)
9506 13506
9507 13507 The AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
9508 13508 support wake-enabled GPEs. This means that upon entering the
9509 13509 sleep state, all GPEs that are not wake-enabled are disabled.
9510 13510 When leaving the sleep state, these GPEs are reenabled.
9511 13511
9512 13512 A local double-precision divide/modulo module has been added to
9513 13513 enhance portability to OS kernels where a 64-bit math library is
9514 13514 not available. The new module is "utmath.c".
9515 13515
9516 13516 Several optimizations have been made to reduce the use of CPU
9517 13517 stack. Originally over 2K, the maximum stack usage is now below
9518 13518 2K at 1860 bytes (1.82k)
9519 13519
9520 13520 Fixed a problem with the AcpiGetFirmwareTable interface where the
9521 13521 root table pointer was not mapped into a logical address properly.
9522 13522
9523 13523 Fixed a problem where a NULL pointer was being dereferenced in the
9524 13524 interpreter code for the ASL Notify operator.
9525 13525
9526 13526 Fixed a problem where the use of the ASL Revision operator
9527 13527 returned an error. This operator now returns the current version
9528 13528 of the ACPI CA core subsystem.
9529 13529
9530 13530 Fixed a problem where objects passed as control method parameters
9531 13531 to AcpiEvaluateObject were always deleted at method termination.
9532 13532 However, these objects may end up being stored into the namespace
9533 13533 by the called method. The object reference count mechanism was
9534 13534 applied to these objects instead of a force delete.
9535 13535
9536 13536 Fixed a problem where static strings or buffers (contained in the
9537 13537 AML code) that are declared as package elements within the ASL
9538 13538 code could cause a fault because the interpreter would attempt to
9539 13539 delete them. These objects are now marked with the "static
9540 13540 object" flag to prevent any attempt to delete them.
9541 13541
9542 13542 Implemented an interpreter optimization to use operands directly
9543 13543 from the state object instead of extracting the operands to local
9544 13544 variables. This reduces stack use and code size, and improves
9545 13545 performance.
9546 13546
9547 13547 The module exxface.c was eliminated as it was an unnecessary extra
9548 13548 layer of code.
9549 13549
9550 13550 Current core subsystem library code sizes are shown below. These
9551 13551 are the code and data sizes for the acpica.lib produced by the
9552 13552 Microsoft Visual C++ 6.0 compiler, and these values do not include
9553 13553 any ACPI driver or OSPM code. The debug version of the code
9554 13554 includes the full debug trace mechanism -- leading to a much
9555 13555 larger code and data size. Note that these values will vary
9556 13556 depending on the efficiency of the compiler and the compiler
9557 13557 options used during generation.
9558 13558
9559 13559 Non-Debug Version: 65K Code, 5K Data, 70K Total
9560 13560 (Previously 69K) Debug Version: 138K Code, 58K Data, 196K
9561 13561 Total (Previously 195K)
9562 13562
9563 13563 Linux:
9564 13564
9565 13565 Support for ACPI 2.0 64-bit integers has been added. All ACPI
9566 13566 Integer objects are now 64 bits wide
9567 13567
9568 13568 All Acpi data types and structures are now in lower case. Only
9569 13569 Acpi macros are upper case for differentiation.
9570 13570
9571 13571 Documentation:
9572 13572
9573 13573 Changes to the external interfaces as described above.
9574 13574
9575 13575 ----------------------------------------
9576 13576 Summary of changes for this label: 08_31_01
9577 13577
9578 13578 ACPI CA Core Subsystem:
9579 13579
9580 13580 A bug with interpreter implementation of the ASL Divide operator
9581 13581 was found and fixed. The implicit function return value (not the
9582 13582 explicit store operands) was returning the remainder instead of
9583 13583 the quotient. This was a longstanding bug and it fixes several
9584 13584 known outstanding issues on various platforms.
9585 13585
9586 13586 The ACPI_DEBUG_PRINT and function trace entry/exit macros have
9587 13587 been further optimized for size. There are 700 invocations of the
9588 13588 DEBUG_PRINT macro alone, so each optimization reduces the size of
9589 13589 the debug version of the subsystem significantly.
9590 13590
9591 13591 A stack trace mechanism has been implemented. The maximum stack
9592 13592 usage is about 2K on 32-bit platforms. The debugger command "stat
9593 13593 stack" will display the current maximum stack usage.
9594 13594
9595 13595 All public symbols and global variables within the subsystem are
9596 13596 now prefixed with the string "Acpi". This keeps all of the
9597 13597 symbols grouped together in a kernel map, and avoids conflicts
9598 13598 with other kernel subsystems.
9599 13599
9600 13600 Most of the internal fixed lookup tables have been moved into the
9601 13601 code segment via the const operator.
9602 13602
9603 13603 Several enhancements have been made to the interpreter to both
9604 13604 reduce the code size and improve performance.
9605 13605
9606 13606 Current core subsystem library code sizes are shown below. These
9607 13607 are the code and data sizes for the acpica.lib produced by the
9608 13608 Microsoft Visual C++ 6.0 compiler, and these values do not include
9609 13609 any ACPI driver or OSPM code. The debug version of the code
9610 13610 includes the full debug trace mechanism which contains over 700
9611 13611 invocations of the DEBUG_PRINT macro, 500 function entry macro
9612 13612 invocations, and over 900 function exit macro invocations --
9613 13613 leading to a much larger code and data size. Note that these
9614 13614 values will vary depending on the efficiency of the compiler and
9615 13615 the compiler options used during generation.
9616 13616
9617 13617 Non-Debug Version: 64K Code, 5K Data, 69K Total
9618 13618 Debug Version: 137K Code, 58K Data, 195K Total
9619 13619
9620 13620 Linux:
9621 13621
9622 13622 Implemented wbinvd() macro, pending a kernel-wide definition.
9623 13623
9624 13624 Fixed /proc/acpi/event to handle poll() and short reads.
9625 13625
9626 13626 ASL Compiler, version X2026:
9627 13627
9628 13628 Fixed a problem introduced in the previous label where the AML
9629 13629
9630 13630 code emitted for package objects produced packages with zero
9631 13631 length.
9632 13632
9633 13633 ----------------------------------------
9634 13634 Summary of changes for this label: 08_16_01
9635 13635
9636 13636 ACPI CA Core Subsystem:
9637 13637
9638 13638 The following ACPI 2.0 ASL operators have been implemented in the
9639 13639 AML interpreter (These are already supported by the Intel ASL
9640 13640 compiler): ToDecimalString, ToHexString, ToString, ToInteger, and
9641 13641 ToBuffer. Support for 64-bit AML constants is implemented in the
9642 13642 AML parser, debugger, and disassembler.
9643 13643
9644 13644 The internal memory tracking mechanism (leak detection code) has
9645 13645 been upgraded to reduce the memory overhead (a separate tracking
9646 13646 block is no longer allocated for each memory allocation), and now
9647 13647 supports all of the internal object caches.
9648 13648
9649 13649 The data structures and code for the internal object caches have
9650 13650 been coelesced and optimized so that there is a single cache and
9651 13651 memory list data structure and a single group of functions that
9652 13652 implement generic cache management. This has reduced the code
9653 13653 size in both the debug and release versions of the subsystem.
9654 13654
9655 13655 The DEBUG_PRINT macro(s) have been optimized for size and replaced
9656 13656 by ACPI_DEBUG_PRINT. The syntax for this macro is slightly
9657 13657 different, because it generates a single call to an internal
9658 13658 function. This results in a savings of about 90 bytes per
9659 13659 invocation, resulting in an overall code and data savings of about
9660 13660 16% in the debug version of the subsystem.
9661 13661
9662 13662 Linux:
9663 13663
9664 13664 Fixed C3 disk corruption problems and re-enabled C3 on supporting
9665 13665 machines.
9666 13666
9667 13667 Integrated low-level sleep code by Patrick Mochel.
9668 13668
9669 13669 Further tweaked source code Linuxization.
9670 13670
9671 13671 Other minor fixes.
9672 13672
9673 13673 ASL Compiler:
9674 13674
9675 13675 Support for ACPI 2.0 variable length packages is fixed/completed.
9676 13676
9677 13677 Fixed a problem where the optional length parameter for the ACPI
9678 13678 2.0 ToString operator.
9679 13679
9680 13680 Fixed multiple extraneous error messages when a syntax error is
9681 13681 detected within the declaration line of a control method.
9682 13682
9683 13683 ----------------------------------------
9684 13684 Summary of changes for this label: 07_17_01
9685 13685
9686 13686 ACPI CA Core Subsystem:
9687 13687
9688 13688 Added a new interface named AcpiGetFirmwareTable to obtain any
9689 13689 ACPI table via the ACPI signature. The interface can be called at
9690 13690 any time during kernel initialization, even before the kernel
9691 13691 virtual memory manager is initialized and paging is enabled. This
9692 13692 allows kernel subsystems to obtain ACPI tables very early, even
9693 13693 before the ACPI CA subsystem is initialized.
9694 13694
9695 13695 Fixed a problem where Fields defined with the AnyAcc attribute
9696 13696 could be resolved to the incorrect address under the following
9697 13697 conditions: 1) the field width is larger than 8 bits and 2) the
9698 13698 parent operation region is not defined on a DWORD boundary.
9699 13699
9700 13700 Fixed a problem where the interpreter is not being locked during
9701 13701 namespace initialization (during execution of the _INI control
9702 13702 methods), causing an error when an attempt is made to release it
9703 13703 later.
9704 13704
9705 13705 ACPI 2.0 support in the AML Interpreter has begun and will be
9706 13706 ongoing throughout the rest of this year. In this label, The Mod
9707 13707 operator is implemented.
9708 13708
9709 13709 Added a new data type to contain full PCI addresses named
9710 13710 ACPI_PCI_ID. This structure contains the PCI Segment, Bus, Device,
9711 13711 and Function values.
9712 13712
9713 13713 Linux:
9714 13714
9715 13715 Enhanced the Linux version of the source code to change most
9716 13716 capitalized ACPI type names to lowercase. For example, all
9717 13717 instances of ACPI_STATUS are changed to acpi_status. This will
9718 13718 result in a large diff, but the change is strictly cosmetic and
9719 13719 aligns the CA code closer to the Linux coding standard.
9720 13720
9721 13721 OSL Interfaces:
9722 13722
9723 13723 The interfaces to the PCI configuration space have been changed to
9724 13724 add the PCI Segment number and to split the single 32-bit combined
9725 13725 DeviceFunction field into two 16-bit fields. This was
9726 13726 accomplished by moving the four values that define an address in
9727 13727 PCI configuration space (segment, bus, device, and function) to
9728 13728 the new ACPI_PCI_ID structure.
9729 13729
9730 13730 The changes to the PCI configuration space interfaces led to a
9731 13731 reexamination of the complete set of address space access
9732 13732 interfaces for PCI, I/O, and Memory. The previously existing 18
9733 13733 interfaces have proven difficult to maintain (any small change
9734 13734 must be propagated across at least 6 interfaces) and do not easily
9735 13735 allow for future expansion to 64 bits if necessary. Also, on some
9736 13736 systems, it would not be appropriate to demultiplex the access
9737 13737 width (8, 16, 32,or 64) before calling the OSL if the
9738 13738 corresponding native OS interfaces contain a similar access width
9739 13739 parameter. For these reasons, the 18 address space interfaces
9740 13740 have been replaced by these 6 new ones:
9741 13741
9742 13742 AcpiOsReadPciConfiguration
9743 13743 AcpiOsWritePciConfiguration
9744 13744 AcpiOsReadMemory
9745 13745 AcpiOsWriteMemory
9746 13746 AcpiOsReadPort
9747 13747 AcpiOsWritePort
9748 13748
9749 13749 Added a new interface named AcpiOsGetRootPointer to allow the OSL
9750 13750 to perform the platform and/or OS-specific actions necessary to
9751 13751 obtain the ACPI RSDP table pointer. On IA-32 platforms, this
9752 13752 interface will simply call down to the CA core to perform the low-
9753 13753 memory search for the table. On IA-64, the RSDP is obtained from
9754 13754 EFI. Migrating this interface to the OSL allows the CA core to
9755 13755
9756 13756 remain OS and platform independent.
9757 13757
9758 13758 Added a new interface named AcpiOsSignal to provide a generic
9759 13759 "function code and pointer" interface for various miscellaneous
9760 13760 signals and notifications that must be made to the host OS. The
9761 13761 first such signals are intended to support the ASL Fatal and
9762 13762 Breakpoint operators. In the latter case, the AcpiOsBreakpoint
9763 13763 interface has been obsoleted.
9764 13764
9765 13765 The definition of the AcpiFormatException interface has been
9766 13766 changed to simplify its use. The caller no longer must supply a
9767 13767 buffer to the call; A pointer to a const string is now returned
9768 13768 directly. This allows the call to be easily used in printf
9769 13769 statements, etc. since the caller does not have to manage a local
9770 13770 buffer.
9771 13771
9772 13772
9773 13773 ASL Compiler, Version X2025:
9774 13774
9775 13775 The ACPI 2.0 Switch/Case/Default operators have been implemented
9776 13776 and are fully functional. They will work with all ACPI 1.0
9777 13777 interpreters, since the operators are simply translated to If/Else
9778 13778 pairs.
9779 13779
9780 13780 The ACPI 2.0 ElseIf operator is implemented and will also work
9781 13781 with 1.0 interpreters, for the same reason.
9782 13782
9783 13783 Implemented support for ACPI 2.0 variable-length packages. These
9784 13784 packages have a separate opcode, and their size is determined by
9785 13785 the interpreter at run-time.
9786 13786
9787 13787 Documentation The ACPI CA Programmer Reference has been updated to
9788 13788 reflect the new interfaces and changes to existing interfaces.
9789 13789
9790 13790 ------------------------------------------
9791 13791 Summary of changes for this label: 06_15_01
9792 13792
9793 13793 ACPI CA Core Subsystem:
9794 13794
9795 13795 Fixed a problem where a DWORD-accessed field within a Buffer
9796 13796 object would get its byte address inadvertently rounded down to
9797 13797 the nearest DWORD. Buffers are always Byte-accessible.
9798 13798
9799 13799 ASL Compiler, version X2024:
9800 13800
9801 13801 Fixed a problem where the Switch() operator would either fault or
9802 13802 hang the compiler. Note however, that the AML code for this ACPI
9803 13803 2.0 operator is not yet implemented.
9804 13804
9805 13805 Compiler uses the new AcpiOsGetTimer interface to obtain compile
9806 13806 timings.
9807 13807
9808 13808 Implementation of the CreateField operator automatically converts
9809 13809 a reference to a named field within a resource descriptor from a
9810 13810 byte offset to a bit offset if required.
9811 13811
9812 13812 Added some missing named fields from the resource descriptor
9813 13813 support. These are the names that are automatically created by the
9814 13814 compiler to reference fields within a descriptor. They are only
9815 13815 valid at compile time and are not passed through to the AML
9816 13816 interpreter.
9817 13817
9818 13818 Resource descriptor named fields are now typed as Integers and
9819 13819 subject to compile-time typechecking when used in expressions.
9820 13820
9821 13821 ------------------------------------------
9822 13822 Summary of changes for this label: 05_18_01
9823 13823
9824 13824 ACPI CA Core Subsystem:
9825 13825
9826 13826 Fixed a couple of problems in the Field support code where bits
9827 13827 from adjacent fields could be returned along with the proper field
9828 13828 bits. Restructured the field support code to improve performance,
9829 13829 readability and maintainability.
9830 13830
9831 13831 New DEBUG_PRINTP macro automatically inserts the procedure name
9832 13832 into the output, saving hundreds of copies of procedure name
9833 13833 strings within the source, shrinking the memory footprint of the
9834 13834 debug version of the core subsystem.
9835 13835
9836 13836 Source Code Structure:
9837 13837
9838 13838 The source code directory tree was restructured to reflect the
9839 13839 current organization of the component architecture. Some files
9840 13840 and directories have been moved and/or renamed.
9841 13841
9842 13842 Linux:
9843 13843
9844 13844 Fixed leaking kacpidpc processes.
9845 13845
9846 13846 Fixed queueing event data even when /proc/acpi/event is not
9847 13847 opened.
9848 13848
9849 13849 ASL Compiler, version X2020:
9850 13850
9851 13851 Memory allocation performance enhancement - over 24X compile time
9852 13852 improvement on large ASL files. Parse nodes and namestring
9853 13853 buffers are now allocated from a large internal compiler buffer.
9854 13854
9855 13855 The temporary .SRC file is deleted unless the "-s" option is
9856 13856 specified
9857 13857
9858 13858 The "-d" debug output option now sends all output to the .DBG file
9859 13859 instead of the console.
9860 13860
9861 13861 "External" second parameter is now optional
9862 13862
9863 13863 "ElseIf" syntax now properly allows the predicate
9864 13864
9865 13865 Last operand to "Load" now recognized as a Target operand
9866 13866
9867 13867 Debug object can now be used anywhere as a normal object.
9868 13868
9869 13869 ResourceTemplate now returns an object of type BUFFER
9870 13870
9871 13871 EISAID now returns an object of type INTEGER
9872 13872
9873 13873 "Index" now works with a STRING operand
9874 13874
9875 13875 "LoadTable" now accepts optional parameters
9876 13876
9877 13877 "ToString" length parameter is now optional
9878 13878
9879 13879 "Interrupt (ResourceType," parse error fixed.
9880 13880
9881 13881 "Register" with a user-defined region space parse error fixed
9882 13882
9883 13883 Escaped backslash at the end of a string ("\\") scan/parse error
9884 13884 fixed
9885 13885
9886 13886 "Revision" is now an object of type INTEGER.
9887 13887
9888 13888
9889 13889
9890 13890 ------------------------------------------
9891 13891 Summary of changes for this label: 05_02_01
9892 13892
9893 13893 Linux:
9894 13894
9895 13895 /proc/acpi/event now blocks properly.
9896 13896
9897 13897 Removed /proc/sys/acpi. You can still dump your DSDT from
9898 13898 /proc/acpi/dsdt.
9899 13899
9900 13900 ACPI CA Core Subsystem:
9901 13901
9902 13902 Fixed a problem introduced in the previous label where some of the
9903 13903 "small" resource descriptor types were not recognized.
9904 13904
9905 13905 Improved error messages for the case where an ASL Field is outside
9906 13906 the range of the parent operation region.
9907 13907
9908 13908 ASL Compiler, version X2018:
9909 13909
9910 13910
9911 13911 Added error detection for ASL Fields that extend beyond the length
9912 13912 of the parent operation region (only if the length of the region
9913 13913 is known at compile time.) This includes fields that have a
9914 13914 minimum access width that is smaller than the parent region, and
9915 13915 individual field units that are partially or entirely beyond the
9916 13916 extent of the parent.
9917 13917
9918 13918
9919 13919
9920 13920 ------------------------------------------
9921 13921 Summary of changes for this label: 04_27_01
9922 13922
9923 13923 ACPI CA Core Subsystem:
9924 13924
9925 13925 Fixed a problem where the namespace mutex could be released at the
9926 13926 wrong time during execution of AcpiRemoveAddressSpaceHandler.
9927 13927
9928 13928 Added optional thread ID output for debug traces, to simplify
9929 13929 debugging of multiple threads. Added context switch notification
9930 13930 when the debug code realizes that a different thread is now
9931 13931 executing ACPI code.
9932 13932
9933 13933 Some additional external data types have been prefixed with the
9934 13934 string "ACPI_" for consistency. This may effect existing code.
9935 13935 The data types affected are the external callback typedefs - e.g.,
9936 13936
9937 13937 WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
9938 13938
9939 13939 Linux:
9940 13940
9941 13941 Fixed an issue with the OSL semaphore implementation where a
9942 13942 thread was waking up with an error from receiving a SIGCHLD
9943 13943 signal.
9944 13944
9945 13945 Linux version of ACPI CA now uses the system C library for string
9946 13946 manipulation routines instead of a local implementation.
9947 13947
9948 13948 Cleaned up comments and removed TBDs.
9949 13949
9950 13950 ASL Compiler, version X2017:
9951 13951
9952 13952 Enhanced error detection and reporting for all file I/O
9953 13953 operations.
9954 13954
9955 13955 Documentation:
9956 13956
9957 13957 Programmer Reference updated to version 1.06.
9958 13958
9959 13959
9960 13960
9961 13961 ------------------------------------------
9962 13962 Summary of changes for this label: 04_13_01
9963 13963
9964 13964 ACPI CA Core Subsystem:
9965 13965
9966 13966 Restructured support for BufferFields and RegionFields.
9967 13967 BankFields support is now fully operational. All known 32-bit
9968 13968 limitations on field sizes have been removed. Both BufferFields
9969 13969 and (Operation) RegionFields are now supported by the same field
9970 13970 management code.
9971 13971
9972 13972 Resource support now supports QWORD address and IO resources. The
9973 13973 16/32/64 bit address structures and the Extended IRQ structure
9974 13974 have been changed to properly handle Source Resource strings.
9975 13975
9976 13976 A ThreadId of -1 is now used to indicate a "mutex not acquired"
9977 13977 condition internally and must never be returned by AcpiOsThreadId.
9978 13978 This reserved value was changed from 0 since Unix systems allow a
9979 13979 thread ID of 0.
9980 13980
9981 13981 Linux:
9982 13982
9983 13983 Driver code reorganized to enhance portability
9984 13984
9985 13985 Added a kernel configuration option to control ACPI_DEBUG
9986 13986
9987 13987 Fixed the EC driver to honor _GLK.
9988 13988
9989 13989 ASL Compiler, version X2016:
9990 13990
9991 13991 Fixed support for the "FixedHw" keyword. Previously, the FixedHw
9992 13992 address space was set to 0, not 0x7f as it should be.
9993 13993
9994 13994 ------------------------------------------
9995 13995 Summary of changes for this label: 03_13_01
9996 13996
9997 13997 ACPI CA Core Subsystem:
9998 13998
9999 13999 During ACPI initialization, the _SB_._INI method is now run if
10000 14000 present.
10001 14001
10002 14002 Notify handler fix - notifies are deferred until the parent method
10003 14003 completes execution. This fixes the "mutex already acquired"
10004 14004 issue seen occasionally.
10005 14005
10006 14006 Part of the "implicit conversion" rules in ACPI 2.0 have been
10007 14007 found to cause compatibility problems with existing ASL/AML. The
10008 14008 convert "result-to-target-type" implementation has been removed
10009 14009 for stores to method Args and Locals. Source operand conversion
10010 14010 is still fully implemented. Possible changes to ACPI 2.0
10011 14011 specification pending.
10012 14012
10013 14013 Fix to AcpiRsCalculatePciRoutingTableLength to return correct
10014 14014 length.
10015 14015
10016 14016 Fix for compiler warnings for 64-bit compiles.
10017 14017
10018 14018 Linux:
10019 14019
10020 14020 /proc output aligned for easier parsing.
10021 14021
10022 14022 Release-version compile problem fixed.
10023 14023
10024 14024 New kernel configuration options documented in Configure.help.
10025 14025
10026 14026 IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
10027 14027 context" message.
10028 14028
10029 14029 OSPM:
10030 14030
10031 14031 Power resource driver integrated with bus manager.
10032 14032
10033 14033 Fixed kernel fault during active cooling for thermal zones.
10034 14034
10035 14035 Source Code:
10036 14036
10037 14037 The source code tree has been restructured.
10038 14038
10039 14039
10040 14040
10041 14041 ------------------------------------------
10042 14042 Summary of changes for this label: 03_02_01
10043 14043
10044 14044 Linux OS Services Layer (OSL):
10045 14045
10046 14046 Major revision of all Linux-specific code.
10047 14047
10048 14048 Modularized all ACPI-specific drivers.
10049 14049
10050 14050 Added new thermal zone and power resource drivers.
10051 14051
10052 14052 Revamped /proc interface (new functionality is under /proc/acpi).
10053 14053
10054 14054 New kernel configuration options.
10055 14055
10056 14056 Linux known issues:
10057 14057
10058 14058 New kernel configuration options not documented in Configure.help
10059 14059 yet.
10060 14060
10061 14061
10062 14062 Module dependencies not currently implemented. If used, they
10063 14063 should be loaded in this order: busmgr, power, ec, system,
10064 14064 processor, battery, ac_adapter, button, thermal.
10065 14065
10066 14066 Modules will not load if CONFIG_MODVERSION is set.
10067 14067
10068 14068 IBM 600E - entering S5 may reboot instead of shutting down.
10069 14069
10070 14070 IBM 600E - Sleep button may generate "Invalid <NULL> context"
10071 14071 message.
10072 14072
10073 14073 Some systems may fail with "execution mutex already acquired"
10074 14074 message.
10075 14075
10076 14076 ACPI CA Core Subsystem:
10077 14077
10078 14078 Added a new OSL Interface, AcpiOsGetThreadId. This was required
10079 14079 for the deadlock detection code. Defined to return a non-zero, 32-
10080 14080 bit thread ID for the currently executing thread. May be a non-
10081 14081 zero constant integer on single-thread systems.
10082 14082
10083 14083 Implemented deadlock detection for internal subsystem mutexes. We
10084 14084 may add conditional compilation for this code (debug only) later.
10085 14085
10086 14086 ASL/AML Mutex object semantics are now fully supported. This
10087 14087 includes multiple acquires/releases by owner and support for the
10088 14088
10089 14089 Mutex SyncLevel parameter.
10090 14090
10091 14091 A new "Force Release" mechanism automatically frees all ASL
10092 14092 Mutexes that have been acquired but not released when a thread
10093 14093 exits the interpreter. This forces conformance to the ACPI spec
10094 14094 ("All mutexes must be released when an invocation exits") and
10095 14095 prevents deadlocked ASL threads. This mechanism can be expanded
10096 14096 (later) to monitor other resource acquisitions if OEM ASL code
10097 14097 continues to misbehave (which it will).
10098 14098
10099 14099 Several new ACPI exception codes have been added for the Mutex
10100 14100 support.
10101 14101
10102 14102 Recursive method calls are now allowed and supported (the ACPI
10103 14103 spec does in fact allow recursive method calls.) The number of
10104 14104 recursive calls is subject to the restrictions imposed by the
10105 14105 SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
10106 14106 parameter.
10107 14107
10108 14108 Implemented support for the SyncLevel parameter for control
10109 14109 methods (ACPI 2.0 feature)
10110 14110
10111 14111 Fixed a deadlock problem when multiple threads attempted to use
10112 14112 the interpreter.
10113 14113
10114 14114 Fixed a problem where the string length of a String package
10115 14115 element was not always set in a package returned from
10116 14116 AcpiEvaluateObject.
10117 14117
10118 14118 Fixed a problem where the length of a String package element was
10119 14119 not always included in the length of the overall package returned
10120 14120 from AcpiEvaluateObject.
10121 14121
10122 14122 Added external interfaces (Acpi*) to the ACPI debug memory
10123 14123 manager. This manager keeps a list of all outstanding
10124 14124 allocations, and can therefore detect memory leaks and attempts to
10125 14125 free memory blocks more than once. Useful for code such as the
10126 14126 power manager, etc. May not be appropriate for device drivers.
10127 14127 Performance with the debug code enabled is slow.
10128 14128
10129 14129 The ACPI Global Lock is now an optional hardware element.
10130 14130
10131 14131 ASL Compiler Version X2015:
10132 14132
10133 14133 Integrated changes to allow the compiler to be generated on
10134 14134 multiple platforms.
10135 14135
10136 14136 Linux makefile added to generate the compiler on Linux
10137 14137
10138 14138 Source Code:
10139 14139
10140 14140 All platform-specific headers have been moved to their own
10141 14141 subdirectory, Include/Platform.
10142 14142
10143 14143 New source file added, Interpreter/ammutex.c
10144 14144
10145 14145 New header file, Include/acstruct.h
10146 14146
10147 14147 Documentation:
10148 14148
10149 14149 The programmer reference has been updated for the following new
10150 14150 interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
10151 14151
10152 14152 ------------------------------------------
10153 14153 Summary of changes for this label: 02_08_01
10154 14154
10155 14155 Core ACPI CA Subsystem: Fixed a problem where an error was
10156 14156 incorrectly returned if the return resource buffer was larger than
10157 14157 the actual data (in the resource interfaces).
10158 14158
10159 14159 References to named objects within packages are resolved to the
10160 14160
10161 14161 full pathname string before packages are returned directly (via
10162 14162 the AcpiEvaluateObject interface) or indirectly via the resource
10163 14163 interfaces.
10164 14164
10165 14165 Linux OS Services Layer (OSL):
10166 14166
10167 14167 Improved /proc battery interface.
10168 14168
10169 14169
10170 14170 Added C-state debugging output and other miscellaneous fixes.
10171 14171
10172 14172 ASL Compiler Version X2014:
10173 14173
10174 14174 All defined method arguments can now be used as local variables,
10175 14175 including the ones that are not actually passed in as parameters.
10176 14176 The compiler tracks initialization of the arguments and issues an
10177 14177 exception if they are used without prior assignment (just like
10178 14178 locals).
10179 14179
10180 14180 The -o option now specifies a filename prefix that is used for all
10181 14181 output files, including the AML output file. Otherwise, the
10182 14182 default behavior is as follows: 1) the AML goes to the file
10183 14183 specified in the DSDT. 2) all other output files use the input
10184 14184 source filename as the base.
10185 14185
10186 14186 ------------------------------------------
10187 14187 Summary of changes for this label: 01_25_01
10188 14188
10189 14189 Core ACPI CA Subsystem: Restructured the implementation of object
10190 14190 store support within the interpreter. This includes support for
10191 14191 the Store operator as well as any ASL operators that include a
10192 14192 target operand.
10193 14193
10194 14194 Partially implemented support for Implicit Result-to-Target
10195 14195 conversion. This is when a result object is converted on the fly
10196 14196 to the type of an existing target object. Completion of this
10197 14197 support is pending further analysis of the ACPI specification
10198 14198 concerning this matter.
10199 14199
10200 14200 CPU-specific code has been removed from the subsystem (hardware
10201 14201 directory).
10202 14202
10203 14203 New Power Management Timer functions added
10204 14204
10205 14205 Linux OS Services Layer (OSL): Moved system state transition code
10206 14206 to the core, fixed it, and modified Linux OSL accordingly.
10207 14207
10208 14208 Fixed C2 and C3 latency calculations.
10209 14209
10210 14210
10211 14211 We no longer use the compilation date for the version message on
10212 14212 initialization, but retrieve the version from AcpiGetSystemInfo().
10213 14213
10214 14214 Incorporated for fix Sony VAIO machines.
10215 14215
10216 14216 Documentation: The Programmer Reference has been updated and
10217 14217 reformatted.
10218 14218
10219 14219
10220 14220 ASL Compiler: Version X2013: Fixed a problem where the line
10221 14221 numbering and error reporting could get out of sync in the
10222 14222 presence of multiple include files.
10223 14223
10224 14224 ------------------------------------------
10225 14225 Summary of changes for this label: 01_15_01
10226 14226
10227 14227 Core ACPI CA Subsystem:
10228 14228
10229 14229 Implemented support for type conversions in the execution of the
10230 14230 ASL Concatenate operator (The second operand is converted to
10231 14231 match the type of the first operand before concatenation.)
10232 14232
10233 14233 Support for implicit source operand conversion is partially
10234 14234 implemented. The ASL source operand types Integer, Buffer, and
10235 14235 String are freely interchangeable for most ASL operators and are
10236 14236 converted by the interpreter on the fly as required. Implicit
10237 14237 Target operand conversion (where the result is converted to the
10238 14238 target type before storing) is not yet implemented.
10239 14239
10240 14240 Support for 32-bit and 64-bit BCD integers is implemented.
10241 14241
10242 14242 Problem fixed where a field read on an aligned field could cause a
10243 14243 read past the end of the field.
10244 14244
10245 14245 New exception, AE_AML_NO_RETURN_VALUE, is returned when a method
10246 14246 does not return a value, but the caller expects one. (The ASL
10247 14247 compiler flags this as a warning.)
10248 14248
10249 14249 ASL Compiler:
10250 14250
10251 14251 Version X2011:
10252 14252 1. Static typechecking of all operands is implemented. This
10253 14253 prevents the use of invalid objects (such as using a Package where
10254 14254 an Integer is required) at compile time instead of at interpreter
10255 14255 run-time.
10256 14256 2. The ASL source line is printed with ALL errors and warnings.
10257 14257 3. Bug fix for source EOF without final linefeed.
10258 14258 4. Debug option is split into a parse trace and a namespace trace.
10259 14259 5. Namespace output option (-n) includes initial values for
10260 14260 integers and strings.
10261 14261 6. Parse-only option added for quick syntax checking.
10262 14262 7. Compiler checks for duplicate ACPI name declarations
10263 14263
10264 14264 Version X2012:
10265 14265 1. Relaxed typechecking to allow interchangeability between
10266 14266 strings, integers, and buffers. These types are now converted by
10267 14267 the interpreter at runtime.
10268 14268 2. Compiler reports time taken by each internal subsystem in the
10269 14269 debug output file.
10270 14270
10271 14271
10272 14272 ------------------------------------------
10273 14273 Summary of changes for this label: 12_14_00
10274 14274
10275 14275 ASL Compiler:
10276 14276
10277 14277 This is the first official release of the compiler. Since the
10278 14278 compiler requires elements of the Core Subsystem, this label
10279 14279 synchronizes everything.
10280 14280
10281 14281 ------------------------------------------
10282 14282 Summary of changes for this label: 12_08_00
10283 14283
10284 14284
10285 14285 Fixed a problem where named references within the ASL definition
10286 14286 of both OperationRegions and CreateXXXFields did not work
10287 14287 properly. The symptom was an AE_AML_OPERAND_TYPE during
10288 14288 initialization of the region/field. This is similar (but not
10289 14289 related internally) to the problem that was fixed in the last
10290 14290 label.
10291 14291
10292 14292 Implemented both 32-bit and 64-bit support for the BCD ASL
10293 14293 functions ToBCD and FromBCD.
10294 14294
10295 14295 Updated all legal headers to include "2000" in the copyright
10296 14296 years.
10297 14297
10298 14298 ------------------------------------------
10299 14299 Summary of changes for this label: 12_01_00
10300 14300
10301 14301 Fixed a problem where method invocations within the ASL definition
10302 14302 of both OperationRegions and CreateXXXFields did not work
10303 14303 properly. The symptom was an AE_AML_OPERAND_TYPE during
10304 14304 initialization of the region/field:
10305 14305
10306 14306 nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
10307 14307 [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
10308 14308 (0x3005)
10309 14309
10310 14310 Fixed a problem where operators with more than one nested
10311 14311 subexpression would fail. The symptoms were varied, by mostly
10312 14312 AE_AML_OPERAND_TYPE errors. This was actually a rather serious
10313 14313 problem that has gone unnoticed until now.
10314 14314
10315 14315 Subtract (Add (1,2), Multiply (3,4))
10316 14316
10317 14317 Fixed a problem where AcpiGetHandle didn't quite get fixed in the
10318 14318 previous build (The prefix part of a relative path was handled
10319 14319 incorrectly).
10320 14320
10321 14321 Fixed a problem where Operation Region initialization failed if
10322 14322 the operation region name was a "namepath" instead of a simple
10323 14323 "nameseg". Symptom was an AE_NO_OPERAND error.
10324 14324
10325 14325 Fixed a problem where an assignment to a local variable via the
10326 14326 indirect RefOf mechanism only worked for the first such
10327 14327 assignment. Subsequent assignments were ignored.
10328 14328
10329 14329 ------------------------------------------
10330 14330 Summary of changes for this label: 11_15_00
10331 14331
10332 14332 ACPI 2.0 table support with backwards support for ACPI 1.0 and the
10333 14333 0.71 extensions. Note: although we can read ACPI 2.0 BIOS tables,
10334 14334 the AML interpreter does NOT have support for the new 2.0 ASL
10335 14335 grammar terms at this time.
10336 14336
10337 14337 All ACPI hardware access is via the GAS structures in the ACPI 2.0
10338 14338 FADT.
10339 14339
10340 14340 All physical memory addresses across all platforms are now 64 bits
10341 14341 wide. Logical address width remains dependent on the platform
10342 14342 (i.e., "void *").
10343 14343
10344 14344 AcpiOsMapMemory interface changed to a 64-bit physical address.
10345 14345
10346 14346 The AML interpreter integer size is now 64 bits, as per the ACPI
10347 14347 2.0 specification.
10348 14348
10349 14349 For backwards compatibility with ACPI 1.0, ACPI tables with a
10350 14350 revision number less than 2 use 32-bit integers only.
10351 14351
10352 14352 Fixed a problem where the evaluation of OpRegion operands did not
10353 14353 always resolve them to numbers properly.
10354 14354
10355 14355 ------------------------------------------
10356 14356 Summary of changes for this label: 10_20_00
10357 14357
10358 14358 Fix for CBN_._STA issue. This fix will allow correct access to
10359 14359 CBN_ OpRegions when the _STA returns 0x8.
10360 14360
10361 14361 Support to convert ACPI constants (Ones, Zeros, One) to actual
10362 14362 values before a package object is returned
10363 14363
10364 14364 Fix for method call as predicate to if/while construct causing
10365 14365 incorrect if/while behavior
10366 14366
10367 14367 Fix for Else block package lengths sometimes calculated wrong (if
10368 14368 block > 63 bytes)
10369 14369
10370 14370 Fix for Processor object length field, was always zero
10371 14371
10372 14372 Table load abort if FACP sanity check fails
10373 14373
10374 14374 Fix for problem with Scope(name) if name already exists
10375 14375
10376 14376 Warning emitted if a named object referenced cannot be found
10377 14377 (resolved) during method execution.
10378 14378
10379 14379
10380 14380
10381 14381
10382 14382
10383 14383 ------------------------------------------
10384 14384 Summary of changes for this label: 9_29_00
10385 14385
10386 14386 New table initialization interfaces: AcpiInitializeSubsystem no
10387 14387 longer has any parameters AcpiFindRootPointer - Find the RSDP (if
10388 14388 necessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
10389 14389 >RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
10390 14390 AcpiLoadTables
10391 14391
10392 14392 Note: These interface changes require changes to all existing OSDs
10393 14393
10394 14394 The PCI_Config default address space handler is always installed
10395 14395 at the root namespace object.
10396 14396
10397 14397 -------------------------------------------
10398 14398 Summary of changes for this label: 09_15_00
10399 14399
10400 14400 The new initialization architecture is implemented. New
10401 14401 interfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
10402 14402 AcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
10403 14403
10404 14404 (Namespace is automatically loaded when a table is loaded)
10405 14405
10406 14406 The ACPI_OPERAND_OBJECT has been optimized to shrink its size from
10407 14407 52 bytes to 32 bytes. There is usually one of these for every
10408 14408 namespace object, so the memory savings is significant.
10409 14409
10410 14410 Implemented just-in-time evaluation of the CreateField operators.
10411 14411
10412 14412 Bug fixes for IA-64 support have been integrated.
10413 14413
10414 14414 Additional code review comments have been implemented
10415 14415
10416 14416 The so-called "third pass parse" has been replaced by a final walk
10417 14417 through the namespace to initialize all operation regions (address
10418 14418 spaces) and fields that have not yet been initialized during the
10419 14419 execution of the various _INI and REG methods.
10420 14420
10421 14421 New file - namespace/nsinit.c
10422 14422
10423 14423 -------------------------------------------
10424 14424 Summary of changes for this label: 09_01_00
10425 14425
10426 14426 Namespace manager data structures have been reworked to change the
10427 14427 primary object from a table to a single object. This has
10428 14428 resulted in dynamic memory savings of 3X within the namespace and
10429 14429 2X overall in the ACPI CA subsystem.
10430 14430
10431 14431 Fixed problem where the call to AcpiEvFindPciRootBuses was
10432 14432 inadvertently left commented out.
10433 14433
10434 14434 Reduced the warning count when generating the source with the GCC
10435 14435 compiler.
10436 14436
10437 14437 Revision numbers added to each module header showing the
10438 14438 SourceSafe version of the file. Please refer to this version
10439 14439 number when giving us feedback or comments on individual modules.
10440 14440
10441 14441 The main object types within the subsystem have been renamed to
10442 14442 clarify their purpose:
10443 14443
10444 14444 ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
10445 14445 ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
10446 14446 ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
10447 14447
10448 14448 NOTE: no changes to the initialization sequence are included in
10449 14449 this label.
10450 14450
10451 14451 -------------------------------------------
10452 14452 Summary of changes for this label: 08_23_00
10453 14453
10454 14454 Fixed problem where TerminateControlMethod was being called
10455 14455 multiple times per method
10456 14456
10457 14457 Fixed debugger problem where single stepping caused a semaphore to
10458 14458 be oversignalled
10459 14459
10460 14460 Improved performance through additional parse object caching -
10461 14461 added ACPI_EXTENDED_OP type
10462 14462
10463 14463 -------------------------------------------
10464 14464 Summary of changes for this label: 08_10_00
10465 14465
10466 14466 Parser/Interpreter integration: Eliminated the creation of
10467 14467 complete parse trees for ACPI tables and control methods.
10468 14468 Instead, parse subtrees are created and then deleted as soon as
10469 14469 they are processed (Either entered into the namespace or executed
10470 14470 by the interpreter). This reduces the use of dynamic kernel
10471 14471 memory significantly. (about 10X)
10472 14472
10473 14473 Exception codes broken into classes and renumbered. Be sure to
10474 14474 recompile all code that includes acexcep.h. Hopefully we won't
10475 14475 have to renumber the codes again now that they are split into
10476 14476 classes (environment, programmer, AML code, ACPI table, and
10477 14477 internal).
10478 14478
10479 14479 Fixed some additional alignment issues in the Resource Manager
10480 14480 subcomponent
10481 14481
10482 14482 Implemented semaphore tracking in the AcpiExec utility, and fixed
10483 14483 several places where mutexes/semaphores were being unlocked
10484 14484 without a corresponding lock operation. There are no known
10485 14485 semaphore or mutex "leaks" at this time.
10486 14486
10487 14487 Fixed the case where an ASL Return operator is used to return an
10488 14488 unnamed package.
10489 14489
10490 14490 -------------------------------------------
10491 14491 Summary of changes for this label: 07_28_00
10492 14492
10493 14493 Fixed a problem with the way addresses were calculated in
10494 14494 AcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This problem
10495 14495 manifested itself when a Field was created with WordAccess or
10496 14496 DwordAccess, but the field unit defined within the Field was less
10497 14497
10498 14498 than a Word or Dword.
10499 14499
10500 14500 Fixed a problem in AmlDumpOperands() module's loop to pull
10501 14501 operands off of the operand stack to display information. The
10502 14502 problem manifested itself as a TLB error on 64-bit systems when
10503 14503 accessing an operand stack with two or more operands.
10504 14504
10505 14505 Fixed a problem with the PCI configuration space handlers where
10506 14506 context was getting confused between accesses. This required a
10507 14507 change to the generic address space handler and address space
10508 14508 setup definitions. Handlers now get both a global handler context
10509 14509 (this is the one passed in by the user when executing
10510 14510 AcpiInstallAddressSpaceHandler() and a specific region context
10511 14511 that is unique to each region (For example, the _ADR, _SEG and
10512 14512 _BBN values associated with a specific region). The generic
10513 14513 function definitions have changed to the following:
10514 14514
10515 14515 typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
10516 14516 UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
10517 14517 *HandlerContext, // This used to be void *Context void
10518 14518 *RegionContext); // This is an additional parameter
10519 14519
10520 14520 typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
10521 14521 RegionHandle, UINT32 Function, void *HandlerContext, void
10522 14522 **RegionContext); // This used to be **ReturnContext
10523 14523
10524 14524 -------------------------------------------
10525 14525 Summary of changes for this label: 07_21_00
10526 14526
10527 14527 Major file consolidation and rename. All files within the
10528 14528 interpreter have been renamed as well as most header files. This
10529 14529 was done to prevent collisions with existing files in the host
10530 14530 OSs -- filenames such as "config.h" and "global.h" seem to be
10531 14531 quite common. The VC project files have been updated. All
10532 14532 makefiles will require modification.
10533 14533
10534 14534 The parser/interpreter integration continues in Phase 5 with the
10535 14535 implementation of a complete 2-pass parse (the AML is parsed
10536 14536 twice) for each table; This avoids the construction of a huge
10537 14537 parse tree and therefore reduces the amount of dynamic memory
10538 14538 required by the subsystem. Greater use of the parse object cache
10539 14539 means that performance is unaffected.
10540 14540
10541 14541 Many comments from the two code reviews have been rolled in.
10542 14542
10543 14543 The 64-bit alignment support is complete.
10544 14544
10545 14545 -------------------------------------------
10546 14546 Summary of changes for this label: 06_30_00
10547 14547
10548 14548 With a nod and a tip of the hat to the technology of yesteryear,
10549 14549 we've added support in the source code for 80 column output
10550 14550 devices. The code is now mostly constrained to 80 columns or
10551 14551 less to support environments and editors that 1) cannot display
10552 14552 or print more than 80 characters on a single line, and 2) cannot
10553 14553 disable line wrapping.
10554 14554
10555 14555 A major restructuring of the namespace data structure has been
10556 14556 completed. The result is 1) cleaner and more
10557 14557 understandable/maintainable code, and 2) a significant reduction
10558 14558 in the dynamic memory requirement for each named ACPI object
10559 14559 (almost half).
10560 14560
10561 14561 -------------------------------------------
10562 14562 Summary of changes for this label: 06_23_00
10563 14563
10564 14564 Linux support has been added. In order to obtain approval to get
10565 14565 the ACPI CA subsystem into the Linux kernel, we've had to make
10566 14566 quite a few changes to the base subsystem that will affect all
10567 14567 users (all the changes are generic and OS- independent). The
10568 14568 effects of these global changes have been somewhat far reaching.
10569 14569 Files have been merged and/or renamed and interfaces have been
10570 14570 renamed. The major changes are described below.
10571 14571
10572 14572 Osd* interfaces renamed to AcpiOs* to eliminate namespace
10573 14573 pollution/confusion within our target kernels. All OSD
10574 14574 interfaces must be modified to match the new naming convention.
10575 14575
10576 14576 Files merged across the subsystem. A number of the smaller source
10577 14577 and header files have been merged to reduce the file count and
10578 14578 increase the density of the existing files. There are too many
10579 14579 to list here. In general, makefiles that call out individual
10580 14580 files will require rebuilding.
10581 14581
10582 14582 Interpreter files renamed. All interpreter files now have the
10583 14583 prefix am* instead of ie* and is*.
10584 14584
10585 14585 Header files renamed: The acapi.h file is now acpixf.h. The
10586 14586 acpiosd.h file is now acpiosxf.h. We are removing references to
10587 14587 the acronym "API" since it is somewhat windowsy. The new name is
10588 14588 "external interface" or xface or xf in the filenames.j
10589 14589
10590 14590
10591 14591 All manifest constants have been forced to upper case (some were
10592 14592 mixed case.) Also, the string "ACPI_" has been prepended to many
10593 14593 (not all) of the constants, typedefs, and structs.
10594 14594
10595 14595 The globals "DebugLevel" and "DebugLayer" have been renamed
10596 14596 "AcpiDbgLevel" and "AcpiDbgLayer" respectively.
10597 14597
10598 14598 All other globals within the subsystem are now prefixed with
10599 14599 "AcpiGbl_" Internal procedures within the subsystem are now
10600 14600 prefixed with "Acpi" (with only a few exceptions). The original
10601 14601 two-letter abbreviation for the subcomponent remains after "Acpi"
10602 14602 - for example, CmCallocate became AcpiCmCallocate.
10603 14603
10604 14604 Added a source code translation/conversion utility. Used to
10605 14605 generate the Linux source code, it can be modified to generate
10606 14606 other types of source as well. Can also be used to cleanup
10607 14607 existing source by removing extraneous spaces and blank lines.
10608 14608 Found in tools/acpisrc/*
10609 14609
10610 14610 OsdUnMapMemory was renamed to OsdUnmapMemory and then
10611 14611 AcpiOsUnmapMemory. (UnMap became Unmap).
10612 14612
10613 14613 A "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
10614 14614 When set to one, this indicates that the caller wants to use the
10615 14615
10616 14616 semaphore as a mutex, not a counting semaphore. ACPI CA uses
10617 14617 both types. However, implementers of this call may want to use
10618 14618 different OS primitives depending on the type of semaphore
10619 14619 requested. For example, some operating systems provide separate
10620 14620
10621 14621 "mutex" and "semaphore" interfaces - where the mutex interface is
10622 14622 much faster because it doesn't have all the overhead of a full
10623 14623 semaphore implementation.
10624 14624
10625 14625 Fixed a deadlock problem where a method that accesses the PCI
10626 14626 address space can block forever if it is the first access to the
10627 14627 space.
10628 14628
10629 14629 -------------------------------------------
10630 14630 Summary of changes for this label: 06_02_00
10631 14631
10632 14632 Support for environments that cannot handle unaligned data
10633 14633 accesses (e.g. firmware and OS environments devoid of alignment
10634 14634 handler technology namely SAL/EFI and the IA-64 Linux kernel) has
10635 14635 been added (via configurable macros) in these three areas: -
10636 14636 Transfer of data from the raw AML byte stream is done via byte
10637 14637 moves instead of word/dword/qword moves. - External objects are
10638 14638 aligned within the user buffer, including package elements (sub-
10639 14639 objects). - Conversion of name strings to UINT32 Acpi Names is now
10640 14640 done byte-wise.
10641 14641
10642 14642 The Store operator was modified to mimic Microsoft's
10643 14643 implementation when storing to a Buffer Field.
10644 14644
10645 14645 Added a check of the BM_STS bit before entering C3.
10646 14646
10647 14647 The methods subdirectory has been obsoleted and removed. A new
10648 14648 file, cmeval.c subsumes the functionality.
10649 14649
10650 14650 A 16-bit (DOS) version of AcpiExec has been developed. The
10651 14651 makefile is under the acpiexec directory.
↓ open down ↓ |
4062 lines elided |
↑ open up ↑ |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX