1117521Snjl----------------------------------------
2284460Sjkim08 April 2015. Summary of changes for version 20150515:
3284460Sjkim
4284460SjkimThis release implements most of ACPI 6.0 as described below.
5284460Sjkim
6284460Sjkim1) ACPICA kernel-resident subsystem:
7284460Sjkim
8284460SjkimImplemented runtime argument checking and return value checking for all 
9284460Sjkimnew ACPI 6.0 predefined names. This includes: _BTH, _CR3, _DSD, _LPI, 
10284460Sjkim_MTL, _PRR, _RDI, _RST, _TFP, _TSN.
11284460Sjkim
12284460SjkimExample Code and Data Size: These are the sizes for the OS-independent 
13284460Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
14284460Sjkimdebug version of the code includes the debug output trace mechanism and 
15284460Sjkimhas a much larger code and data size.
16284460Sjkim
17284460Sjkim  Current Release:
18284460Sjkim    Non-Debug Version:  99.9K Code, 27.5K Data, 127.4K Total
19284460Sjkim    Debug Version:     195.2K Code, 80.8K Data, 276.0K Total
20284460Sjkim  Previous Release:
21284460Sjkim    Non-Debug Version:  99.1K Code, 27.3K Data, 126.4K Total
22284460Sjkim    Debug Version:     192.8K Code, 79.9K Data, 272.7K Total
23284460Sjkim
24284460Sjkim
25284460Sjkim2) iASL Compiler/Disassembler and Tools:
26284460Sjkim
27284460SjkimiASL compiler: Added compile-time support for all new ACPI 6.0 predefined 
28284460Sjkimnames (argument count validation and return value typechecking.)
29284460Sjkim
30284460SjkimiASL disassembler and table compiler: implemented support for all new 
31284460SjkimACPI 6.0 tables. This includes: DRTM, IORT, LPIT, NFIT, STAO, WPBT, XENV. 
32284460Sjkim
33284460SjkimiASL disassembler and table compiler: Added ACPI 6.0 changes to existing 
34284460Sjkimtables: FADT, MADT.
35284460Sjkim
36284460SjkimiASL preprocessor: Added a new directive to enable inclusion of binary 
37284460Sjkimblobs into ASL code. The new directive is #includebinary. It takes a 
38284460Sjkimbinary file as input and emits a named ascii buffer object into the ASL 
39284460Sjkimcode.
40284460Sjkim
41284460SjkimAcpiHelp: Added support for all new ACPI 6.0 predefined names.
42284460Sjkim
43284460SjkimAcpiHelp: Added a new option, -d, to display all iASL preprocessor 
44284460Sjkimdirectives.
45284460Sjkim
46284460SjkimAcpiHelp: Added a new option, -t, to display all known/supported ACPI 
47284460Sjkimtables.
48284460Sjkim
49284460Sjkim----------------------------------------
50281687Sjkim10 April 2015. Summary of changes for version 20150410:
51281687Sjkim
52281687SjkimReverted a change introduced in version 20150408 that caused
53281687Sjkima regression in the disassembler where incorrect operator
54281687Sjkimsymbols could be emitted.
55281687Sjkim
56281687Sjkim----------------------------------------
57281687Sjkim08 April 2015. Summary of changes for version 20150408:
58281687Sjkim
59281687Sjkim
60281687Sjkim1) ACPICA kernel-resident subsystem:
61281687Sjkim
62281687SjkimPermanently set the return value for the _REV predefined name. It now 
63281687Sjkimreturns 2 (was 5). This matches other ACPI implementations. _REV will be 
64281687Sjkimdeprecated in the future, and is now defined to be 1 for ACPI 1.0, and 2 
65281687Sjkimfor ACPI 2.0 and later. It should never be used to differentiate or 
66281687Sjkimidentify operating systems.
67281687Sjkim
68281687SjkimAdded the "Windows 2015" string to the _OSI support. ACPICA will now 
69281687Sjkimreturn TRUE to a query with this string.
70281687Sjkim
71281687SjkimFixed several issues with the local version of the printf function.
72281687Sjkim
73281687SjkimAdded the C99 compiler option (-std=c99) to the Unix makefiles.
74281687Sjkim
75281687Sjkim  Current Release:
76281687Sjkim    Non-Debug Version:  99.9K Code, 27.4K Data, 127.3K Total
77281687Sjkim    Debug Version:     195.2K Code, 80.7K Data, 275.9K Total
78281687Sjkim  Previous Release:
79281687Sjkim    Non-Debug Version:  98.8K Code, 27.3K Data, 126.1K Total
80281687Sjkim    Debug Version:     192.1K Code, 79.8K Data, 271.9K Total
81281687Sjkim
82281687Sjkim
83281687Sjkim2) iASL Compiler/Disassembler and Tools:
84281687Sjkim
85281687SjkimiASL: Implemented an enhancement to the constant folding feature to 
86281687Sjkimtransform the parse tree to a simple Store operation whenever possible:
87281687Sjkim    Add (2, 3, X) ==> is converted to: Store (5, X)
88281687Sjkim    X = 2 + 3     ==> is converted to: Store (5, X)
89281687Sjkim
90281687SjkimUpdated support for the SLIC table (Software Licensing Description Table) 
91281687Sjkimin both the Data Table compiler and the disassembler. The SLIC table 
92281687Sjkimsupport now conforms to "Microsoft Software Licensing Tables (SLIC and 
93281687SjkimMSDM). November 29, 2011. Copyright 2011 Microsoft". Note: Any SLIC data 
94281687Sjkimfollowing the ACPI header is now defined to be "Proprietary Data", and as 
95281687Sjkimsuch, can only be entered or displayed as a hex data block.
96281687Sjkim
97281687SjkimImplemented full support for the MSDM table as described in the document 
98281687Sjkimabove. Note: The format of MSDM is similar to SLIC. Any MSDM data 
99281687Sjkimfollowing the ACPI header is defined to be "Proprietary Data", and can 
100281687Sjkimonly be entered or displayed as a hex data block.
101281687Sjkim
102281687SjkimImplemented the -Pn option for the iASL Table Compiler (was only 
103281687Sjkimimplemented for the ASL compiler). This option disables the iASL 
104281687Sjkimpreprocessor.
105281687Sjkim
106281687SjkimDisassembler: For disassembly of Data Tables, added a comment field 
107281687Sjkimaround the Ascii equivalent data that is emitted as part of the "Raw 
108281687SjkimTable Data" block. This prevents the iASL Preprocessor from possible 
109281687Sjkimconfusion if/when the table is compiled.
110281687Sjkim
111281687SjkimDisassembler: Added an option (-df) to force the disassembler to assume 
112281687Sjkimthat the table being disassembled contains valid AML. This feature is 
113281687Sjkimuseful for disassembling AML files that contain ACPI signatures other 
114281687Sjkimthan DSDT or SSDT (such as OEMx or other signatures).
115281687Sjkim
116281687SjkimChanges for the EFI version of the tools:
117281687Sjkim1) Fixed a build error/issue
118281687Sjkim2) Fixed a cast warning
119281687Sjkim
120281687SjkimiASL: Fixed a path issue with the __FILE__ operator by making the 
121281687Sjkimdirectory prefix optional within the internal SplitInputFilename 
122281687Sjkimfunction.
123281687Sjkim
124281687SjkimDebugger: Removed some unused global variables.
125281687Sjkim
126281687SjkimTests: Updated the makefile for proper generation of the AAPITS suite.
127281687Sjkim
128281687Sjkim----------------------------------------
129281075Sdim04 February 2015. Summary of changes for version 20150204:
130281075Sdim
131281075SdimACPICA kernel-resident subsystem:
132281075Sdim
133281075SdimUpdated all ACPICA copyrights and signons to 2014. Added the 2014 
134281075Sdimcopyright to all module headers and signons, including the standard Linux 
135281075Sdimheader. This affects virtually every file in the ACPICA core subsystem, 
136281075SdimiASL compiler, all ACPICA utilities, and the test suites.
137281075Sdim
138281075SdimEvents: Introduce ACPI_GPE_DISPATCH_RAW_HANDLER to fix GPE storm issues.
139281075SdimA raw gpe handling mechanism was created to allow better handling of GPE
140281075Sdimstorms that aren't easily managed by the normal handler. The raw handler
141281075Sdimallows disabling/renabling of the the GPE so that interrupt storms can be
142281687Sjkimavoided in cases where events cannot be timely serviced. In this 
143281687Sjkimscenario, handlers should use the AcpiSetGpe() API to disable/enable the 
144281687SjkimGPE. This API will leave the reference counts undisturbed, thereby 
145281687Sjkimpreventing unintentional clearing of the GPE when the intent in only to 
146281687Sjkimtemporarily disable it. Raw handlers allow enabling and disabling of a 
147281687SjkimGPE by removing GPE register locking. As such, raw handlers much provide 
148281687Sjkimtheir own locks while using GPE API's to protect access to GPE data 
149281687Sjkimstructures.
150281075SdimLv Zheng
151281075Sdim
152281075SdimEvents: Always modify GPE registers under the GPE lock.
153281075SdimApplies GPE lock around AcpiFinishGpe() to protect access to GPE register
154281075Sdimvalues. Reported as bug by joe.liu@apple.com.
155281075Sdim
156281687SjkimUnix makefiles: Separate option to disable optimizations and 
157281687Sjkim_FORTIFY_SOURCE. This change removes the _FORTIFY_SOURCE flag from the 
158281687SjkimNOOPT disable option and creates a separate flag (NOFORTIFY) for this 
159281687Sjkimpurpose. Some toolchains may define _FORTIFY_SOURCE which leads redefined 
160281687Sjkimerrors when building ACPICA. This allows disabling the option without 
161281687Sjkimalso having to disable optimazations.
162281075SdimDavid Box
163281075Sdim
164281075Sdim  Current Release:
165281075Sdim    Non-Debug Version: 101.7K Code, 27.9K Data, 129.6K Total
166281075Sdim    Debug Version:     199.2K Code, 82.4K Data, 281.6K Total
167281075Sdim
168281075Sdim----------------------------------------
169281075Sdim07 November 2014. Summary of changes for version 20141107:
170281075Sdim
171281075SdimThis release is available at https://acpica.org/downloads
172281075Sdim
173281075SdimThis release introduces and implements language extensions to ASL that 
174281075Sdimprovide support for symbolic ("C-style") operators and expressions. These 
175281075Sdimlanguage extensions are known collectively as ASL+.
176281075Sdim
177281075Sdim
178281075Sdim1) iASL Compiler/Disassembler and Tools:
179281075Sdim
180281075SdimDisassembler: Fixed a problem with disassembly of the UartSerialBus 
181281075Sdimmacro. Changed "StopBitsNone" to the correct "StopBitsZero". David E. 
182281075SdimBox.
183281075Sdim
184281075SdimDisassembler: Fixed the Unicode macro support to add escape sequences. 
185281075SdimAll non-printable ASCII values are emitted as escape sequences, as well 
186281075Sdimas the standard escapes for quote and backslash. Ensures that the 
187281075Sdimdisassembled macro can be correctly recompiled.
188281075Sdim
189281075SdimiASL: Added Printf/Fprintf macros for formatted output. These macros are 
190281075Sdimtranslated to existing AML Concatenate and Store operations. Printf 
191281075Sdimwrites to the ASL Debug object. Fprintf allows the specification of an 
192281075SdimASL name as the target. Only a single format specifier is required, %o, 
193281075Sdimsince the AML interpreter dynamically converts objects to the required 
194281075Sdimtype. David E. Box.
195281075Sdim
196281075Sdim    (old)    Store (Concatenate (Concatenate (Concatenate (Concatenate
197281075Sdim                 (Concatenate (Concatenate (Concatenate ("", Arg0),
198281075Sdim                 ": Unexpected value for "), Arg1), ", "), Arg2),
199281075Sdim                 " at line "), Arg3), Debug)
200281075Sdim
201281075Sdim    (new)    Printf ("%o: Unexpected value for %o, %o at line %o",
202281075Sdim                 Arg0, Arg1, Arg2, Arg3)
203281075Sdim
204281075Sdim    (old)    Store (Concatenate (Concatenate (Concatenate (Concatenate
205281075Sdim                 ("", Arg1), ": "), Arg0), " Successful"), STR1)
206281075Sdim
207281075Sdim    (new)    Fprintf (STR1, "%o: %o Successful", Arg1, Arg0)
208281075Sdim
209281075SdimiASL: Added debug options (-bp, -bt) to dynamically prune levels of the 
210281075SdimASL parse tree before the AML code is generated. This allows blocks of 
211281075SdimASL code to be removed in order to help locate and identify problem 
212281075Sdimdevices and/or code. David E. Box.
213281075Sdim
214281075SdimAcpiExec: Added support (-fi) for an optional namespace object 
215281075Sdiminitialization file. This file specifies initial values for namespace 
216281075Sdimobjects as necessary for debugging and testing different ASL code paths 
217281075Sdimthat may be taken as a result of BIOS options.
218281075Sdim
219281075Sdim
220281075Sdim2) Overview of symbolic operator support for ASL (ASL+)
221281075Sdim-------------------------------------------------------
222281075Sdim
223281075SdimAs an extension to the ASL language, iASL implements support for symbolic 
224281075Sdim(C-style) operators for math and logical expressions. This can greatly 
225281075Sdimsimplify ASL code as well as improve both readability and 
226281075Sdimmaintainability. These language extensions can exist concurrently with 
227281075Sdimall legacy ASL code and expressions.
228281075Sdim
229281075SdimThe symbolic extensions are 100% compatible with existing AML 
230281075Sdiminterpreters, since no new AML opcodes are created. To implement the 
231281075Sdimextensions, the iASL compiler transforms the symbolic expressions into 
232281075Sdimthe legacy ASL/AML equivalents at compile time.
233281075Sdim
234281075SdimFull symbolic expressions are supported, along with the standard C 
235281075Sdimprecedence and associativity rules.
236281075Sdim
237281075SdimFull disassembler support for the symbolic expressions is provided, and 
238281075Sdimcreates an automatic migration path for existing ASL code to ASL+ code 
239281075Sdimvia the disassembly process. By default, the disassembler now emits ASL+ 
240281075Sdimcode with symbolic expressions. An option (-dl) is provided to force the 
241281075Sdimdisassembler to emit legacy ASL code if desired.
242281075Sdim
243281075SdimBelow is the complete list of the currently supported symbolic operators 
244281075Sdimwith examples. See the iASL User Guide for additional information.
245281075Sdim
246281075Sdim
247281075SdimASL+ Syntax      Legacy ASL Equivalent
248281075Sdim-----------      ---------------------
249281075Sdim
250281075Sdim    // Math operators
251281075Sdim
252281075SdimZ = X + Y        Add (X, Y, Z)
253281075SdimZ = X - Y        Subtract (X, Y, Z)
254281075SdimZ = X * Y        Multiply (X, Y, Z)
255281075SdimZ = X / Y        Divide (X, Y, , Z)
256281075SdimZ = X % Y        Mod (X, Y, Z)
257281075SdimZ = X << Y       ShiftLeft (X, Y, Z)
258281075SdimZ = X >> Y       ShiftRight (X, Y, Z)
259281075SdimZ = X & Y        And (X, Y, Z)
260281075SdimZ = X | Y        Or (X, Y, Z)
261281075SdimZ = X ^ Y        Xor (X, Y, Z)
262281075SdimZ = ~X           Not (X, Z)
263281075SdimX++              Increment (X)
264281075SdimX--              Decrement (X)
265281075Sdim
266281075Sdim    // Logical operators
267281075Sdim
268281075Sdim(X == Y)         LEqual (X, Y)
269281075Sdim(X != Y)         LNotEqual (X, Y)
270281075Sdim(X < Y)          LLess (X, Y)
271281075Sdim(X > Y)          LGreater (X, Y)
272281075Sdim(X <= Y)         LLessEqual (X, Y)
273281075Sdim(X >= Y)         LGreaterEqual (X, Y)
274281075Sdim(X && Y)         LAnd (X, Y)
275281075Sdim(X || Y)         LOr (X, Y)
276281075Sdim(!X)             LNot (X)
277281075Sdim
278281075Sdim    // Assignment and compound assignment operations
279281075Sdim
280281075SdimX = Y           Store (Y, X)
281281075SdimX += Y          Add (X, Y, X)
282281075SdimX -= Y          Subtract (X, Y, X)
283281075SdimX *= Y          Multiply (X, Y, X)
284281075SdimX /= Y          Divide (X, Y, , X)
285281075SdimX %= Y          Mod (X, Y, X)
286281075SdimX <<= Y         ShiftLeft (X, Y, X)
287281075SdimX >>= Y         ShiftRight (X, Y, X)
288281075SdimX &= Y          And (X, Y, X)
289281075SdimX |= Y          Or (X, Y, X)
290281075SdimX ^= Y          Xor (X, Y, X)
291281075Sdim
292281075Sdim
293281075Sdim3) ASL+ Examples:
294281075Sdim-----------------
295281075Sdim
296281075SdimLegacy ASL:
297281075Sdim        If (LOr (LOr (LEqual (And (R510, 0x03FB), 0x02E0), LEqual (
298281075Sdim            And (R520, 0x03FB), 0x02E0)), LOr (LEqual (And (R530, 
299281075Sdim0x03FB), 
300281075Sdim            0x02E0), LEqual (And (R540, 0x03FB), 0x02E0))))
301281075Sdim        {
302281075Sdim            And (MEMB, 0xFFFFFFF0, SRMB)
303281075Sdim            Store (MEMB, Local2)
304281075Sdim            Store (PDBM, Local1)
305281075Sdim            And (PDBM, 0xFFFFFFFFFFFFFFF9, PDBM)
306281075Sdim            Store (SRMB, MEMB)
307281075Sdim            Or (PDBM, 0x02, PDBM)
308281075Sdim        }
309281075Sdim
310281075SdimASL+ version:
311281075Sdim        If (((R510 & 0x03FB) == 0x02E0) ||
312281075Sdim            ((R520 & 0x03FB) == 0x02E0) ||
313281075Sdim            ((R530 & 0x03FB) == 0x02E0) || 
314281075Sdim            ((R540 & 0x03FB) == 0x02E0))
315281075Sdim        {
316281075Sdim            SRMB = (MEMB & 0xFFFFFFF0)
317281075Sdim            Local2 = MEMB
318281075Sdim            Local1 = PDBM
319281075Sdim            PDBM &= 0xFFFFFFFFFFFFFFF9
320281075Sdim            MEMB = SRMB
321281075Sdim            PDBM |= 0x02
322281075Sdim        }
323281075Sdim
324281075SdimLegacy ASL:
325281075Sdim        Store (0x1234, Local1)
326281075Sdim        Multiply (Add (Add (Local1, TEST), 0x20), Local2, Local3)
327281075Sdim        Multiply (Local2, Add (Add (Local1, TEST), 0x20), Local3)
328281075Sdim        Add (Local1, Add (TEST, Multiply (0x20, Local2)), Local3)
329281075Sdim        Store (Index (PKG1, 0x03), Local6)
330281075Sdim        Store (Add (Local3, Local2), Debug)
331281075Sdim        Add (Local1, 0x0F, Local2)
332281075Sdim        Add (Local1, Multiply (Local2, Local3), Local2)
333281075Sdim        Multiply (Add (Add (Local1, TEST), 0x20), ToBCD (Local1), Local3)
334281075Sdim
335281075SdimASL+ version:
336281075Sdim        Local1 = 0x1234
337281075Sdim        Local3 = (((Local1 + TEST) + 0x20) * Local2)
338281075Sdim        Local3 = (Local2 * ((Local1 + TEST) + 0x20))
339281075Sdim        Local3 = (Local1 + (TEST + (0x20 * Local2)))
340281075Sdim        Local6 = Index (PKG1, 0x03)
341281075Sdim        Debug = (Local3 + Local2)
342281075Sdim        Local2 = (Local1 + 0x0F)
343281075Sdim        Local2 = (Local1 + (Local2 * Local3))
344281075Sdim        Local3 = (((Local1 + TEST) + 0x20) * ToBCD (Local1))
345281075Sdim
346281075Sdim
347281075Sdim----------------------------------------
348281075Sdim26 September 2014. Summary of changes for version 20140926:
349281075Sdim
350281075Sdim1) ACPICA kernel-resident subsystem:
351281075Sdim
352281075SdimUpdated the GPIO operation region handler interface (GeneralPurposeIo). 
353281075SdimIn order to support GPIO Connection objects with multiple pins, along 
354281075Sdimwith the related Field objects, the following changes to the interface 
355281075Sdimhave been made: The Address is now defined to be the offset in bits of 
356281075Sdimthe field unit from the previous invocation of a Connection. It can be 
357281075Sdimviewed as a "Pin Number Index" into the connection resource descriptor. 
358281075SdimThe BitWidth is the exact bit width of the field. It is usually one bit, 
359281075Sdimbut not always. See the ACPICA reference guide (section 8.8.6.2.1) for 
360281075Sdimadditional information and examples.
361281075Sdim
362281075SdimGPE support: During ACPICA/GPE initialization, ensure that all GPEs with 
363281075Sdimcorresponding _Lxx/_Exx methods are disabled (they may have been enabled 
364281075Sdimby the firmware), so that they cannot fire until they are enabled via 
365281075SdimAcpiUpdateAllGpes. Rafael J. Wysocki.
366281075Sdim
367281075SdimAdded a new return flag for the Event/GPE status interfaces -- 
368281075SdimAcpiGetEventStatus and AcpiGetGpeStatus. The new 
369281075SdimACPI_EVENT_FLAGS_HAS_HANDLER flag is used to indicate that the event or 
370281075SdimGPE currently has a handler associated with it, and can thus actually 
371281075Sdimaffect the system. Lv Zheng.
372281075Sdim
373281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
374281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
375281075Sdimdebug version of the code includes the debug output trace mechanism and 
376281075Sdimhas a much larger code and data size.
377281075Sdim
378281075Sdim  Current Release:
379281075Sdim    Non-Debug Version:  99.1K Code, 27.3K Data, 126.4K Total
380281075Sdim    Debug Version:     192.8K Code, 79.9K Data, 272.7K Total
381281075Sdim  Previous Release:
382281075Sdim    Non-Debug Version:  98.8K Code, 27.3K Data, 126.1K Total
383281075Sdim    Debug Version:     192.1K Code, 79.8K Data, 271.9K Total
384281075Sdim
385281075Sdim2) iASL Compiler/Disassembler and Tools:
386281075Sdim
387281075SdimiASL: Fixed a memory allocation/free regression introduced in 20140828 
388281075Sdimthat could cause the compiler to crash. This was introduced inadvertently 
389281075Sdimduring the effort to eliminate compiler memory leaks. ACPICA BZ 1111, 
390281075Sdim1113.
391281075Sdim
392281075SdimiASL: Removed two error messages that have been found to create false 
393281075Sdimpositives, until they can be fixed and fully validated (ACPICA BZ 1112):
394281075Sdim1) Illegal forward reference within a method
395281075Sdim2) Illegal reference across two methods
396281075Sdim
397281075SdimiASL: Implemented a new option (-lm) to create a hardware mapping file 
398281075Sdimthat summarizes all GPIO, I2C, SPI, and UART connections. This option 
399281075Sdimworks for both the compiler and disassembler. See the iASL compiler user 
400281075Sdimguide for additional information and examples (section 6.4.6).
401281075Sdim
402281075SdimAcpiDump: Added support for the version 1 (ACPI 1.0) RSDP in addition to 
403281075Sdimversion 2. This corrects the AE_BAD_HEADER exception seen on systems with 
404281075Sdima version 1 RSDP. Lv Zheng ACPICA BZ 1097.
405281075Sdim
406281075SdimAcpiExec: For Unix versions, don't attempt to put STDIN into raw mode 
407281075Sdimunless STDIN is actually a terminal. Assists with batch-mode processing. 
408281075SdimACPICA BZ 1114.
409281075Sdim
410281075SdimDisassembler/AcpiHelp: Added another large group of recognized _HID 
411281075Sdimvalues.
412281075Sdim
413281075Sdim
414281075Sdim----------------------------------------
415281075Sdim28 August 2014. Summary of changes for version 20140828:
416281075Sdim
417281075Sdim1) ACPICA kernel-resident subsystem:
418281075Sdim
419281075SdimFixed a problem related to the internal use of the Timer() operator where 
420281075Sdima 64-bit divide could cause an attempted link to a double-precision math 
421281075Sdimlibrary. This divide is not actually necessary, so the code was 
422281075Sdimrestructured to eliminate it. Lv Zheng.
423281075Sdim
424281075SdimACPI 5.1: Added support for the runtime validation of the _DSD package 
425281075Sdim(similar to the iASL support).
426281075Sdim
427281075SdimACPI 5.1/Headers: Added support for the GICC affinity subtable to the 
428281075SdimSRAT table. Hanjun Guo <hanjun.guo@linaro.org>.
429281075Sdim
430281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
431281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
432281075Sdimdebug version of the code includes the debug output trace mechanism and 
433281075Sdimhas a much larger code and data size.
434281075Sdim
435281075Sdim  Current Release:
436281075Sdim    Non-Debug Version:  98.8K Code, 27.3K Data, 126.1K Total
437281075Sdim    Debug Version:     192.1K Code, 79.8K Data, 271.9K Total
438281075Sdim  Previous Release:
439281075Sdim    Non-Debug Version:  98.7K Code, 27.3K Data, 126.0K Total1
440281075Sdim    Debug Version:     192.0K Code, 79.7K Data, 271.7K Total
441281075Sdim
442281075Sdim2) iASL Compiler/Disassembler and Tools:
443281075Sdim
444281075SdimAcpiExec: Fixed a problem on unix systems where the original terminal 
445281075Sdimstate was not always properly restored upon exit. Seen when using the -v 
446281075Sdimoption. ACPICA BZ 1104.
447281075Sdim
448281075SdimiASL: Fixed a problem with the validation of the ranges/length within the 
449281075SdimMemory24 resource descriptor. There was a boundary condition when the 
450281075Sdimrange was equal to the (length -1) caused by the fact that these values 
451281075Sdimare defined in 256-byte blocks, not bytes. ACPICA BZ 1098
452281075Sdim
453281075SdimDisassembler: Fixed a problem with the GpioInt descriptor interrupt 
454281075Sdimpolarity 
455281075Sdimflags. The flags are actually 2 bits, not 1, and the "ActiveBoth" keyword 
456281075Sdimis 
457281075Sdimnow supported properly.
458281075Sdim
459281075SdimACPI 5.1: Added the GICC affinity subtable to the SRAT table. Supported 
460281075Sdimin the disassembler, data table compiler, and table template generator.
461281075Sdim
462281075SdimiASL: Added a requirement for Device() objects that one of either a _HID 
463281075Sdimor _ADR must exist within the scope of a Device, as per the ACPI 
464281075Sdimspecification. Remove a similar requirement that was incorrectly in place 
465281075Sdimfor the _DSD object.
466281075Sdim
467281075SdimiASL: Added error detection for illegal named references within control 
468281075Sdimmethods that would cause runtime failures. Now trapped as errors are: 1) 
469281075SdimReferences to objects within a non-parent control method. 2) Forward 
470281075Sdimreferences (within a method) -- for control methods, AML interpreters use 
471281075Sdima one-pass parse of control methods. ACPICA BZ 1008.
472281075Sdim
473281075SdimiASL: Added error checking for dependencies related to the _PSx power 
474281075Sdimmethods. ACPICA BZ 1029.
475281075Sdim1) For _PS0, one of these must exist within the same scope: _PS1, _PS2, 
476281075Sdim_PS3.
477281075Sdim2) For _PS1, _PS2, and PS3: A _PS0 object must exist within the same 
478281075Sdimscope.
479281075Sdim
480281075SdimiASL and table compiler: Cleanup miscellaneous memory leaks by fully 
481281075Sdimdeploying the existing object and string caches and adding new caches for 
482281075Sdimthe table compiler.
483281075Sdim
484281075SdimiASL: Split the huge parser source file into multiple subfiles to improve 
485281075Sdimmanageability. Generation now requires the M4 macro preprocessor, which 
486281075Sdimis part of the Bison distribution on both unix and windows platforms.
487281075Sdim
488281075SdimAcpiSrc: Fixed and removed all extraneous warnings generated during 
489281075Sdimentire ACPICA source code scan and/or conversion.
490281075Sdim
491281075Sdim
492281075Sdim----------------------------------------
493281075Sdim
494281075Sdim24 July 2014. Summary of changes for version 20140724: 
495281075Sdim
496281075SdimThe ACPI 5.1 specification has been released and is available at: 
497281075Sdimhttp://uefi.org/specs/access
498281075Sdim
499281075Sdim
500281075Sdim0) ACPI 5.1 support in ACPICA:
501281075Sdim
502281075SdimACPI 5.1 is fully supported in ACPICA as of this release.
503281075Sdim
504281075SdimNew predefined names. Support includes iASL and runtime ACPICA 
505281075Sdimvalidation.
506281075Sdim    _CCA (Cache Coherency Attribute).
507281075Sdim    _DSD (Device-Specific Data). David Box.
508281075Sdim
509281075SdimModifications to existing ACPI tables. Support includes headers, iASL 
510281075SdimData Table compiler, disassembler, and the template generator.
511281075Sdim    FADT - New fields and flags. Graeme Gregory.
512281075Sdim    GTDT - One new subtable and new fields. Tomasz Nowicki.
513281075Sdim    MADT - Two new subtables. Tomasz Nowicki.
514281075Sdim    PCCT - One new subtable.
515281075Sdim
516281075SdimMiscellaneous.
517281075Sdim    New notification type for System Resource Affinity change events.
518281075Sdim
519281075Sdim
520281075Sdim1) ACPICA kernel-resident subsystem:
521281075Sdim
522281075SdimFixed a regression introduced in 20140627 where a fault can happen during 
523281075Sdimthe deletion of Alias AML namespace objects. The problem affected both 
524281075Sdimthe core ACPICA and the ACPICA tools including iASL and AcpiExec.
525281075Sdim
526281075SdimImplemented a new GPE public interface, AcpiMarkGpeForWake. Provides a 
527281075Sdimsimple mechanism to enable wake GPEs that have no associated handler or 
528281075Sdimcontrol method. Rafael Wysocki.
529281075Sdim
530281075SdimUpdated the AcpiEnableGpe interface to disallow the enable if there is no 
531281075Sdimhandler or control method associated with the particular GPE. This will 
532281075Sdimhelp avoid meaningless GPEs and even GPE floods. Rafael Wysocki.
533281075Sdim
534281075SdimUpdated GPE handling and dispatch by disabling the GPE before clearing 
535281075Sdimthe status bit for edge-triggered GPEs. Lv Zheng.
536281075Sdim
537281075SdimAdded Timer() support to the AML Debug object. The current timer value is 
538281075Sdimnow displayed with each invocation of (Store to) the debug object to 
539281075Sdimenable simple generation of execution times for AML code (method 
540281075Sdimexecution for example.) ACPICA BZ 1093.
541281075Sdim
542281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
543281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
544281075Sdimdebug version of the code includes the debug output trace mechanism and 
545281075Sdimhas a much larger code and data size.
546281075Sdim
547281075Sdim  Current Release:
548281075Sdim    Non-Debug Version:  98.7K Code, 27.3K Data, 126.0K Total
549281075Sdim    Debug Version:     192.0K Code, 79.7K Data, 271.7K Total
550281075Sdim  Previous Release:
551281075Sdim    Non-Debug Version:  98.7K Code, 27.2K Data, 125.9K Total
552281075Sdim    Debug Version:     191.7K Code, 79.6K Data, 271.3K Total
553281075Sdim
554281075Sdim
555281075Sdim2) iASL Compiler/Disassembler and Tools:
556281075Sdim
557281075SdimFixed an issue with the recently added local printf implementation, 
558281075Sdimconcerning width/precision specifiers that could cause incorrect output. 
559281075SdimLv Zheng. ACPICA BZ 1094.
560281075Sdim
561281075SdimDisassembler: Added support to detect buffers that contain UUIDs and 
562281075Sdimdisassemble them to an invocation of the ToUUID operator. Also emit 
563281075Sdimcommented descriptions of known ACPI-related UUIDs.
564281075Sdim
565281075SdimAcpiHelp: Added support to display known ACPI-related UUIDs. New option, 
566281075Sdim-u. Adds three new files. 
567281075Sdim
568281075SdimiASL: Update table compiler and disassembler for DMAR table changes that 
569281075Sdimwere introduced in September 2013. With assistance by David Woodhouse.
570281075Sdim
571281075Sdim----------------------------------------
572281075Sdim27 June 2014. Summary of changes for version 20140627:
573281075Sdim
574281075Sdim1) ACPICA kernel-resident subsystem:
575281075Sdim
576281075SdimFormatted Output: Implemented local versions of standard formatted output 
577281075Sdimutilities such as printf, etc. Over time, it has been discovered that 
578281075Sdimthere are in fact many portability issues with printf, and the addition 
579281075Sdimof this feature will fix/prevent these issues once and for all. Some 
580281075Sdimknown issues are summarized below:
581281075Sdim
582281075Sdim1) Output of 64-bit values is not portable. For example, UINT64 is %ull 
583281075Sdimfor the Linux kernel and is %uI64 for some MSVC versions.
584281075Sdim2) Invoking printf consistently in a manner that is portable across both 
585281075Sdim32-bit and 64-bit platforms is difficult at best in many situations.
586281075Sdim3) The output format for pointers varies from system to system (leading 
587281075Sdimzeros especially), and leads to inconsistent output from ACPICA across 
588281075Sdimplatforms.
589281075Sdim4) Certain platform-specific printf formats may conflict with ACPICA use.
590281075Sdim5) If there is no local C library available, ACPICA now has local support 
591281075Sdimfor printf.
592281075Sdim
593281075Sdim-- To address these printf issues in a complete manner, ACPICA now 
594281075Sdimdirectly implements a small subset of printf format specifiers, only 
595281075Sdimthose that it requires. Adds a new file, utilities/utprint.c. Lv Zheng.
596281075Sdim
597281075SdimImplemented support for ACPICA generation within the EFI environment. 
598281075SdimInitially, the AcpiDump utility is supported in the UEFI shell 
599281075Sdimenvironment. Lv Zheng.
600281075Sdim
601281075SdimAdded a new external interface, AcpiLogError, to improve ACPICA 
602281075Sdimportability. This allows the host to redirect error messages from the 
603281075SdimACPICA utilities. Lv Zheng.
604281075Sdim
605281075SdimAdded and deployed new OSL file I/O interfaces to improve ACPICA 
606281075Sdimportability:
607281075Sdim  AcpiOsOpenFile
608281075Sdim  AcpiOsCloseFile
609281075Sdim  AcpiOsReadFile
610281075Sdim  AcpiOsWriteFile
611281075Sdim  AcpiOsGetFileOffset
612281075Sdim  AcpiOsSetFileOffset
613281075SdimThere are C library implementations of these functions in the new file 
614281075Sdimservice_layers/oslibcfs.c -- however, the functions can be implemented by 
615281075Sdimthe local host in any way necessary. Lv Zheng.
616281075Sdim
617281075SdimImplemented a mechanism to disable/enable ACPI table checksum validation 
618281075Sdimat runtime. This can be useful when loading tables very early during OS 
619281075Sdiminitialization when it may not be possible to map the entire table in 
620281075Sdimorder to compute the checksum. Lv Zheng.
621281075Sdim
622281075SdimFixed a buffer allocation issue for the Generic Serial Bus support. 
623281075SdimOriginally, a fixed buffer length was used. This change allows for 
624281075Sdimvariable-length buffers based upon the protocol indicated by the field 
625281075Sdimaccess attributes. Reported by Lan Tianyu. Lv Zheng.
626281075Sdim
627281075SdimFixed a problem where an object detached from a namespace node was not 
628281075Sdimproperly terminated/cleared and could cause a circular list problem if 
629281075Sdimreattached. ACPICA BZ 1063. David Box.
630281075Sdim
631281075SdimFixed a possible recursive lock acquisition in hwregs.c. Rakib Mullick.
632281075Sdim
633281075SdimFixed a possible memory leak in an error return path within the function 
634281075SdimAcpiUtCopyIobjectToIobject. ACPICA BZ 1087. Colin Ian King.
635281075Sdim
636281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
637281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
638281075Sdimdebug version of the code includes the debug output trace mechanism and 
639281075Sdimhas a much larger code and data size.
640281075Sdim
641281075Sdim  Current Release:
642281075Sdim    Non-Debug Version:  98.7K Code, 27.2K Data, 125.9K Total
643281075Sdim    Debug Version:     191.7K Code, 79.6K Data, 271.3K Total
644281075Sdim  Previous Release:
645281075Sdim    Non-Debug Version:  96.8K Code, 27.2K Data, 124.0K Total
646281075Sdim    Debug Version:     189.5K Code, 79.7K Data, 269.2K Total
647281075Sdim
648281075Sdim
649281075Sdim2) iASL Compiler/Disassembler and Tools:
650281075Sdim
651281075SdimDisassembler: Add dump of ASCII equivalent text within a comment at the 
652281075Sdimend of each line of the output for the Buffer() ASL operator.
653281075Sdim
654281075SdimAcpiDump: Miscellaneous changes:
655281075Sdim  Fixed repetitive table dump in -n mode.
656281075Sdim  For older EFI platforms, use the ACPI 1.0 GUID during RSDP search if 
657281075Sdimthe ACPI 2.0 GUID fails.
658281075Sdim
659281075SdimiASL: Fixed a problem where the compiler could fault if incorrectly given 
660281075Sdiman acpidump output file as input. ACPICA BZ 1088. David Box.
661281075Sdim
662281075SdimAcpiExec/AcpiNames: Fixed a problem where these utilities could fault if 
663281075Sdimthey are invoked without any arguments.
664281075Sdim
665281075SdimDebugger: Fixed a possible memory leak in an error return path. ACPICA BZ 
666281075Sdim1086. Colin Ian King.
667281075Sdim
668281075SdimDisassembler: Cleaned up a block of code that extracts a parent Op 
669281075Sdimobject. Added a comment that explains that the parent is guaranteed to be 
670281075Sdimvalid in this case. ACPICA BZ 1069.
671281075Sdim
672281075Sdim----------------------------------------
673281075Sdim24 April 2014. Summary of changes for version 20140424:
674281075Sdim
675281075Sdim1) ACPICA kernel-resident subsystem:
676281075Sdim
677281075SdimImplemented support to skip/ignore NULL address entries in the RSDT/XSDT. 
678281075SdimSome of these tables are known to contain a trailing NULL entry. Lv 
679281075SdimZheng.
680281075Sdim
681281075SdimRemoved an extraneous error message for the case where there are a large 
682281075Sdimnumber of system GPEs (> 124). This was the "32-bit FADT register is too 
683281075Sdimlong to convert to GAS struct" message, which is irrelevant for GPEs 
684281075Sdimsince the GPEx_BLK_LEN fields of the FADT are always used instead of the 
685281075Sdim(limited capacity) GAS bit length. Also, several changes to ensure proper 
686281075Sdimsupport for GPE numbers > 255, where some "GPE number" fields were 8-bits 
687281075Sdiminternally.
688281075Sdim
689281075SdimImplemented and deployed additional configuration support for the public 
690281075SdimACPICA external interfaces. Entire classes of interfaces can now be 
691281075Sdimeasily modified or configured out, replaced by stubbed inline functions 
692281075Sdimby default. Lv Zheng.
693281075Sdim
694281075SdimMoved all public ACPICA runtime configuration globals to the public 
695281075SdimACPICA external interface file for convenience. Also, removed some 
696281075Sdimobsolete/unused globals. See the file acpixf.h. Lv Zheng.
697281075Sdim
698281075SdimDocumentation: Added a new section to the ACPICA reference describing the 
699281075Sdimmaximum number of GPEs that can be supported by the FADT-defined GPEs in 
700281075Sdimblock zero and one. About 1200 total. See section 4.4.1 of the ACPICA 
701281075Sdimreference.
702281075Sdim
703281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
704281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
705281075Sdimdebug version of the code includes the debug output trace mechanism and 
706281075Sdimhas a much larger code and data size.
707281075Sdim
708281075Sdim  Current Release:
709281075Sdim    Non-Debug Version:  96.8K Code, 27.2K Data, 124.0K Total
710281075Sdim    Debug Version:     189.5K Code, 79.7K Data, 269.2K Total
711281075Sdim  Previous Release:
712281075Sdim    Non-Debug Version:  97.0K Code, 27.2K Data, 124.2K Total
713281075Sdim    Debug Version:     189.7K Code, 79.5K Data, 269.2K Total
714281075Sdim
715281075Sdim
716281075Sdim2) iASL Compiler/Disassembler and Tools:
717281075Sdim
718281075SdimiASL and disassembler: Add full support for the LPIT table (Low Power 
719281075SdimIdle Table). Includes support in the disassembler, data table compiler, 
720281075Sdimand template generator.
721281075Sdim
722281075SdimAcpiDump utility:
723281075Sdim1) Add option to force the use of the RSDT (over the XSDT).
724281075Sdim2) Improve validation of the RSDP signature (use 8 chars instead of 4).
725281075Sdim
726281075SdimiASL: Add check for predefined packages that are too large.  For 
727281075Sdimpredefined names that contain subpackages, check if each subpackage is 
728281075Sdimtoo large. (Check for too small already exists.)
729281075Sdim
730281075SdimDebugger: Updated the GPE command (which simulates a GPE by executing the 
731281075SdimGPE code paths in ACPICA). The GPE device is now optional, and defaults 
732281075Sdimto the GPE 0/1 FADT-defined blocks.
733281075Sdim
734281075SdimUnix application OSL: Update line-editing support. Add additional error 
735281075Sdimchecking and take care not to reset terminal attributes on exit if they 
736281075Sdimwere never set. This should help guarantee that the terminal is always 
737281075Sdimleft in the previous state on program exit.
738281075Sdim
739281075Sdim----------------------------------------
740281075Sdim25 March 2014. Summary of changes for version 20140325:
741281075Sdim
742281075Sdim1) ACPICA kernel-resident subsystem:
743281075Sdim
744281075SdimUpdated the auto-serialize feature for control methods. This feature 
745281075Sdimautomatically serializes all methods that create named objects in order 
746281075Sdimto prevent runtime errors. The update adds support to ignore the 
747281075Sdimcurrently executing AML SyncLevel when invoking such a method, in order 
748281075Sdimto prevent disruption of any existing SyncLevel priorities that may exist 
749281075Sdimin the AML code. Although the use of SyncLevels is relatively rare, this 
750281075Sdimchange fixes a regression where an AE_AML_MUTEX_ORDER exception can 
751281075Sdimappear on some machines starting with the 20140214 release.
752281075Sdim
753281075SdimAdded a new external interface to allow the host to install ACPI tables 
754281075Sdimvery early, before the namespace is even created. AcpiInstallTable gives 
755281075Sdimthe host additional flexibility for ACPI table management. Tables can be 
756281075Sdiminstalled directly by the host as if they had originally appeared in the 
757281075SdimXSDT/RSDT. Installed tables can be SSDTs or other ACPI data tables 
758281075Sdim(anything except the DSDT and FACS). Adds a new file, tbdata.c, along 
759281075Sdimwith additional internal restructuring and cleanup. See the ACPICA 
760281075SdimReference for interface details. Lv Zheng.
761281075Sdim
762281075SdimAdded validation of the checksum for all incoming dynamically loaded 
763281075Sdimtables (via external interfaces or via AML Load/LoadTable operators). Lv 
764281075SdimZheng.
765281075Sdim
766281075SdimUpdated the use of the AcpiOsWaitEventsComplete interface during Notify 
767281075Sdimand GPE handler removal. Restructured calls to eliminate possible race 
768281075Sdimconditions. Lv Zheng.
769281075Sdim
770281075SdimAdded a warning for the use/execution of the ASL/AML Unload (table) 
771281075Sdimoperator. This will help detect and identify machines that use this 
772281075Sdimoperator if and when it is ever used. This operator has never been seen 
773281075Sdimin the field and the usage model and possible side-effects of the drastic 
774281075Sdimruntime action of a full table removal are unknown.
775281075Sdim
776281075SdimReverted the use of #pragma push/pop which was introduced in the 20140214 
777281075Sdimrelease. It appears that push and pop are not implemented by enough 
778281075Sdimcompilers to make the use of this feature feasible for ACPICA at this 
779281075Sdimtime. However, these operators may be deployed in a future ACPICA 
780281075Sdimrelease.
781281075Sdim
782281075SdimAdded the missing EXPORT_SYMBOL macros for the install and remove SCI 
783281075Sdimhandler interfaces.
784281075Sdim
785281075SdimSource code generation:
786281075Sdim1) Disabled the use of the "strchr" macro for the gcc-specific 
787281075Sdimgeneration. For some versions of gcc, this macro can periodically expose 
788281075Sdima compiler bug which in turn causes compile-time error(s).
789281075Sdim2) Added support for PPC64 compilation. Colin Ian King.
790281075Sdim
791281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
792281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
793281075Sdimdebug version of the code includes the debug output trace mechanism and 
794281075Sdimhas a much larger code and data size.
795281075Sdim
796281075Sdim  Current Release:
797281075Sdim    Non-Debug Version:  97.0K Code, 27.2K Data, 124.2K Total
798281075Sdim    Debug Version:     189.7K Code, 79.5K Data, 269.2K Total
799281075Sdim  Previous Release:
800281075Sdim    Non-Debug Version:  96.5K Code, 27.2K Data, 123.7K Total
801281075Sdim    Debug Version:     188.6K Code, 79.0K Data, 267.6K Total
802281075Sdim
803281075Sdim
804281075Sdim2) iASL Compiler/Disassembler and Tools:
805281075Sdim
806281075SdimDisassembler: Added several new features to improve the readability of 
807281075Sdimthe resulting ASL code. Extra information is emitted within comment 
808281075Sdimfields in the ASL code:
809281075Sdim1) Known _HID/_CID values are decoded to descriptive text.
810281075Sdim2) Standard values for the Notify() operator are decoded to descriptive 
811281075Sdimtext.
812281075Sdim3) Target operands are expanded to full pathnames (in a comment) when 
813281075Sdimpossible.
814281075Sdim
815281075SdimDisassembler: Miscellaneous updates for extern() handling:
816281075Sdim1) Abort compiler if file specified by -fe option does not exist.
817281075Sdim2) Silence unnecessary warnings about argument count mismatches.
818281075Sdim3) Update warning messages concerning unresolved method externals.
819281075Sdim4) Emit "UnknownObj" keyword for externals whose type cannot be 
820281075Sdimdetermined.
821281075Sdim
822281075SdimAcpiHelp utility:
823281075Sdim1) Added the -a option to display both the ASL syntax and the AML 
824281075Sdimencoding for an input ASL operator. This effectively displays all known 
825281075Sdiminformation about an ASL operator with one AcpiHelp invocation.
826281075Sdim2) Added substring match support (similar to a wildcard) for the -i 
827281075Sdim(_HID/PNP IDs) option.
828281075Sdim
829281075SdimiASL/Disassembler: Since this tool does not yet support execution on big-
830281075Sdimendian machines, added detection of endianness and an error message if 
831281075Sdimexecution is attempted on big-endian. Support for big-endian within iASL 
832281075Sdimis a feature that is on the ACPICA to-be-done list.
833281075Sdim
834281075SdimAcpiBin utility:
835281075Sdim1) Remove option to extract binary files from an acpidump; this function 
836281075Sdimis made obsolete by the AcpiXtract utility.
837281075Sdim2) General cleanup of open files and allocated buffers.
838281075Sdim
839281075Sdim----------------------------------------
840281075Sdim14 February 2014. Summary of changes for version 20140214:
841281075Sdim
842281075Sdim1) ACPICA kernel-resident subsystem:
843281075Sdim
844281075SdimImplemented a new mechanism to proactively prevent problems with ill-
845281075Sdimbehaved reentrant control methods that create named ACPI objects. This 
846281075Sdimbehavior is illegal as per the ACPI specification, but is nonetheless 
847281075Sdimfrequently seen in the field. Previously, this could lead to an 
848281075SdimAE_ALREADY_EXISTS exception if the method was actually entered by more 
849281075Sdimthan one thread. This new mechanism detects such methods at table load 
850281075Sdimtime and marks them "serialized" to prevent reentrancy. A new global 
851281075Sdimoption, AcpiGbl_AutoSerializeMethods, has been added to disable this 
852281075Sdimfeature if desired. This mechanism and global option obsoletes and 
853281075Sdimsupersedes the previous AcpiGbl_SerializeAllMethods option.
854281075Sdim
855281075SdimAdded the "Windows 2013" string to the _OSI support. ACPICA will now 
856281075Sdimrespond TRUE to _OSI queries with this string. It is the stated policy of 
857281075SdimACPICA to add new strings to the _OSI support as soon as possible after 
858281075Sdimthey are defined. See the full ACPICA _OSI policy which has been added to 
859281075Sdimthe utilities/utosi.c file.
860281075Sdim
861281075SdimHardened/updated the _PRT return value auto-repair code:
862281075Sdim1) Do not abort the repair on a single subpackage failure, continue to 
863281075Sdimcheck all subpackages.
864281075Sdim2) Add check for the minimum subpackage length (4).
865281075Sdim3) Properly handle extraneous NULL package elements.
866281075Sdim
867281075SdimAdded support to avoid the possibility of infinite loops when traversing 
868281075Sdimobject linked lists. Never allow an infinite loop, even in the face of 
869281075Sdimcorrupted object lists.
870281075Sdim
871281075SdimACPICA headers: Deployed the use of #pragma pack(push) and #pragma 
872281075Sdimpack(pop) directives to ensure that the ACPICA headers are independent of 
873281075Sdimcompiler settings or other host headers.
874281075Sdim
875281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
876281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
877281075Sdimdebug version of the code includes the debug output trace mechanism and 
878281075Sdimhas a much larger code and data size.
879281075Sdim
880281075Sdim  Current Release:
881281075Sdim    Non-Debug Version:  96.5K Code, 27.2K Data, 123.7K Total
882281075Sdim    Debug Version:     188.6K Code, 79.0K Data, 267.6K Total
883281075Sdim  Previous Release:
884281075Sdim    Non-Debug Version:  96.2K Code, 27.0K Data, 123.2K Total
885281075Sdim    Debug Version:     187.5K Code, 78.3K Data, 265.8K Total
886281075Sdim
887281075Sdim
888281075Sdim2) iASL Compiler/Disassembler and Tools:
889281075Sdim
890281075SdimiASL/Table-compiler: Fixed a problem with support for the SPMI table. The 
891281075Sdimfirst reserved field was incorrectly forced to have a value of zero. This 
892281075Sdimchange correctly forces the field to have a value of one. ACPICA BZ 1081.
893281075Sdim
894281075SdimDebugger: Added missing support for the "Extra" and "Data" subobjects 
895281075Sdimwhen displaying object data.
896281075Sdim
897281075SdimDebugger: Added support to display entire object linked lists when 
898281075Sdimdisplaying object data.
899281075Sdim
900281075SdimiASL: Removed the obsolete -g option to obtain ACPI tables from the 
901281075SdimWindows registry. This feature has been superseded by the acpidump 
902281075Sdimutility. 
903281075Sdim
904281075Sdim----------------------------------------
905281075Sdim14 January 2014. Summary of changes for version 20140114:
906281075Sdim
907281075Sdim1) ACPICA kernel-resident subsystem:
908281075Sdim
909281075SdimUpdated all ACPICA copyrights and signons to 2014. Added the 2014 
910281075Sdimcopyright to all module headers and signons, including the standard Linux 
911281075Sdimheader. This affects virtually every file in the ACPICA core subsystem, 
912281075SdimiASL compiler, all ACPICA utilities, and the test suites.
913281075Sdim
914281075SdimImproved parameter validation for AcpiInstallGpeBlock. Added the 
915281075Sdimfollowing checks:
916281075Sdim1) The incoming device handle refers to type ACPI_TYPE_DEVICE.
917281075Sdim2) There is not already a GPE block attached to the device.
918281075SdimLikewise, with AcpiRemoveGpeBlock, ensure that the incoming object is a 
919281075Sdimdevice.
920281075Sdim
921281075SdimCorrectly support "references" in the ACPI_OBJECT. This change fixes the 
922281075Sdimsupport to allow references (namespace nodes) to be passed as arguments 
923281075Sdimto control methods via the evaluate object interface. This is probably 
924281075Sdimmost useful for testing purposes, however.
925281075Sdim
926281075SdimImproved support for 32/64 bit physical addresses in printf()-like 
927281075Sdimoutput. This change improves the support for physical addresses in printf 
928281075Sdimdebug statements and other output on both 32-bit and 64-bit hosts. It 
929281075Sdimconsistently outputs the appropriate number of bytes for each host. The 
930281075Sdim%p specifier is unsatisfactory since it does not emit uniform output on 
931281075Sdimall hosts/clib implementations (on some, leading zeros are not supported, 
932281075Sdimleading to difficult-to-read output).
933281075Sdim
934281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
935281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
936281075Sdimdebug version of the code includes the debug output trace mechanism and 
937281075Sdimhas a much larger code and data size.
938281075Sdim
939281075Sdim  Current Release:
940281075Sdim    Non-Debug Version:  96.2K Code, 27.0K Data, 123.2K Total
941281075Sdim    Debug Version:     187.5K Code, 78.3K Data, 265.8K Total
942281075Sdim  Previous Release:
943281075Sdim    Non-Debug Version:  96.1K Code, 27.0K Data, 123.1K Total
944281075Sdim    Debug Version:     185.6K Code, 77.3K Data, 262.9K Total
945281075Sdim
946281075Sdim
947281075Sdim2) iASL Compiler/Disassembler and Tools:
948281075Sdim
949281075SdimiASL: Fix a possible fault when using the Connection() operator. Fixes a 
950281075Sdimproblem if the parent Field definition for the Connection operator refers 
951281075Sdimto an operation region that does not exist. ACPICA BZ 1064.
952281075Sdim
953281075SdimAcpiExec: Load of local test tables is now optional. The utility has the 
954281075Sdimcapability to load some various tables to test features of ACPICA. 
955281075SdimHowever, there are enough of them that the output of the utility became 
956281075Sdimconfusing. With this change, only the required local tables are displayed 
957281075Sdim(RSDP, XSDT, etc.) along with the actual tables loaded via the command 
958281075Sdimline specification. This makes the default output simler and easier to 
959281075Sdimunderstand. The -el command line option restores the original behavior 
960281075Sdimfor testing purposes.
961281075Sdim
962281075SdimAcpiExec: Added support for overlapping operation regions. This change 
963281075Sdimexpands the simulation of operation regions by supporting regions that 
964281075Sdimoverlap within the given address space. Supports SystemMemory and 
965281075SdimSystemIO. ASLTS test suite updated also. David Box. ACPICA BZ 1031.
966281075Sdim
967281075SdimAcpiExec: Added region handler support for PCI_Config and EC spaces. This 
968281075Sdimallows AcpiExec to simulate these address spaces, similar to the current 
969281075Sdimsupport for SystemMemory and SystemIO.
970281075Sdim
971281075SdimDebugger: Added new command to read/write/compare all namespace objects. 
972281075SdimThe command "test objects" will exercise the entire namespace by writing 
973281075Sdimnew values to each data object, and ensuring that the write was 
974281075Sdimsuccessful. The original value is then restored and verified.
975281075Sdim
976281075SdimDebugger: Added the "test predefined" command. This change makes this 
977281075Sdimtest public and puts it under the new "test" command. The test executes 
978281075Sdimeach and every predefined name within the current namespace.
979281075Sdim
980281075Sdim----------------------------------------
981281075Sdim18 December 2013. Summary of changes for version 20131218:
982281075Sdim
983281075SdimGlobal note: The ACPI 5.0A specification was released this month. There 
984281075Sdimare no changes needed for ACPICA since this release of ACPI is an 
985281075Sdimerrata/clarification release. The specification is available at 
986281075Sdimacpi.info. 
987281075Sdim
988281075Sdim
989281075Sdim1) ACPICA kernel-resident subsystem:
990281075Sdim
991281075SdimAdded validation of the XSDT root table if it is present. Some older 
992281075Sdimplatforms contain an XSDT that is ill-formed or otherwise invalid (such 
993281075Sdimas containing some or all entries that are NULL pointers). This change 
994281075Sdimadds a new function to validate the XSDT before actually using it. If the 
995281075SdimXSDT is found to be invalid, ACPICA will now automatically fall back to 
996281075Sdimusing the RSDT instead. Original implementation by Zhao Yakui. Ported to 
997281075SdimACPICA and enhanced by Lv Zheng and Bob Moore.
998281075Sdim
999281075SdimAdded a runtime option to ignore the XSDT and force the use of the RSDT. 
1000281075SdimThis change adds a runtime option that will force ACPICA to use the RSDT 
1001281075Sdiminstead of the XSDT (AcpiGbl_DoNotUseXsdt). Although the ACPI spec 
1002281075Sdimrequires that an XSDT be used instead of the RSDT, the XSDT has been 
1003281075Sdimfound to be corrupt or ill-formed on some machines. Lv Zheng.
1004281075Sdim
1005281075SdimAdded a runtime option to favor 32-bit FADT register addresses over the 
1006281075Sdim64-bit addresses. This change adds an option to favor 32-bit FADT 
1007281075Sdimaddresses when there is a conflict between the 32-bit and 64-bit versions 
1008281075Sdimof the same register. The default behavior is to use the 64-bit version 
1009281075Sdimin accordance with the ACPI specification. This can now be overridden via 
1010281075Sdimthe AcpiGbl_Use32BitFadtAddresses flag. ACPICA BZ 885. Lv Zheng.
1011281075Sdim
1012281075SdimDuring the change above, the internal "Convert FADT" and "Verify FADT" 
1013281075Sdimfunctions have been merged to simplify the code, making it easier to 
1014281075Sdimunderstand and maintain. ACPICA BZ 933.
1015281075Sdim
1016281075SdimImprove exception reporting and handling for GPE block installation. 
1017281075SdimReturn an actual status from AcpiEvGetGpeXruptBlock and don't clobber the 
1018281075Sdimstatus when exiting AcpiEvInstallGpeBlock. ACPICA BZ 1019.
1019281075Sdim
1020281075SdimAdded helper macros to extract bus/segment numbers from the HEST table. 
1021281075SdimThis change adds two macros to extract the encoded bus and segment 
1022281075Sdimnumbers from the HEST Bus field - ACPI_HEST_BUS and ACPI_HEST_SEGMENT. 
1023281075SdimBetty Dall <betty.dall@hp.com>
1024281075Sdim
1025281075SdimRemoved the unused ACPI_FREE_BUFFER macro. This macro is no longer used 
1026281075Sdimby ACPICA. It is not a public macro, so it should have no effect on 
1027281075Sdimexisting OSV code. Lv Zheng.
1028281075Sdim
1029281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
1030281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1031281075Sdimdebug version of the code includes the debug output trace mechanism and 
1032281075Sdimhas a much larger code and data size.
1033281075Sdim
1034281075Sdim  Current Release:
1035281075Sdim    Non-Debug Version:  96.1K Code, 27.0K Data, 123.1K Total
1036281075Sdim    Debug Version:     185.6K Code, 77.3K Data, 262.9K Total
1037281075Sdim  Previous Release:
1038281075Sdim    Non-Debug Version:  95.9K Code, 27.0K Data, 122.9K Total
1039281075Sdim    Debug Version:     185.1K Code, 77.2K Data, 262.3K Total
1040281075Sdim
1041281075Sdim
1042281075Sdim2) iASL Compiler/Disassembler and Tools:
1043281075Sdim
1044281075SdimDisassembler: Improved pathname support for emitted External() 
1045281075Sdimstatements. This change adds full pathname support for external names 
1046281075Sdimthat have been resolved internally by the inclusion of additional ACPI 
1047281075Sdimtables (via the iASL -e option). Without this change, the disassembler 
1048281075Sdimcan emit multiple externals for the same object, or it become confused 
1049281075Sdimwhen the Scope() operator is used on an external object. Overall, greatly 
1050281075Sdimimproves the ability to actually recompile the emitted ASL code when 
1051281075Sdimobjects a referenced across multiple ACPI tables. Reported by Michael 
1052281075SdimTsirkin (mst@redhat.com).
1053281075Sdim
1054281075SdimTests/ASLTS: Updated functional control suite to execute with no errors. 
1055281075SdimDavid Box. Fixed several errors related to the testing of the interpreter 
1056281075Sdimslack mode. Lv Zheng.
1057281075Sdim
1058281075SdimiASL: Added support to detect names that are declared within a control 
1059281075Sdimmethod, but are unused (these are temporary names that are only valid 
1060281075Sdimduring the time the method is executing). A remark is issued for these 
1061281075Sdimcases. ACPICA BZ 1022.
1062281075Sdim
1063281075SdimiASL: Added full support for the DBG2 table. Adds full disassembler, 
1064281075Sdimtable compiler, and template generator support for the DBG2 table (Debug 
1065281075SdimPort 2 table).
1066281075Sdim
1067281075SdimiASL: Added full support for the PCCT table, update the table definition. 
1068281075SdimUpdates the PCCT table definition in the actbl3.h header and adds table 
1069281075Sdimcompiler and template generator support.
1070281075Sdim
1071281075SdimiASL: Added an option to emit only error messages (no warnings/remarks). 
1072281075SdimThe -ve option will enable only error messages, warnings and remarks are 
1073281075Sdimsuppressed. This can simplify debugging when only the errors are 
1074281075Sdimimportant, such as when an ACPI table is disassembled and there are many 
1075281075Sdimwarnings and remarks -- but only the actual errors are of real interest.
1076281075Sdim
1077281075SdimExample ACPICA code (source/tools/examples): Updated the example code so 
1078281075Sdimthat it builds to an actual working program, not just example code. Added 
1079281075SdimACPI tables and execution of an example control method in the DSDT. Added 
1080281075Sdimmakefile support for Unix generation.
1081281075Sdim
1082281075Sdim----------------------------------------
1083281075Sdim15 November 2013. Summary of changes for version 20131115:
1084281075Sdim
1085281075SdimThis release is available at https://acpica.org/downloads
1086281075Sdim
1087281075Sdim
1088281075Sdim1) ACPICA kernel-resident subsystem:
1089281075Sdim
1090281075SdimResource Manager: Fixed loop termination for the "get AML length" 
1091281075Sdimfunction. The loop previously had an error termination on a NULL resource 
1092281075Sdimpointer, which can never happen since the loop simply increments a valid 
1093281075Sdimresource pointer. This fix changes the loop to terminate with an error on 
1094281075Sdiman invalid end-of-buffer condition. The problem can be seen as an 
1095281075Sdiminfinite loop by callers to AcpiSetCurrentResources with an invalid or 
1096281075Sdimcorrupted resource descriptor, or a resource descriptor that is missing 
1097281075Sdiman END_TAG descriptor. Reported by Dan Carpenter 
1098281075Sdim<dan.carpenter@oracle.com>. Lv Zheng, Bob Moore.
1099281075Sdim
1100281075SdimTable unload and ACPICA termination: Delete all attached data objects 
1101281075Sdimduring namespace node deletion. This fix updates namespace node deletion 
1102281075Sdimto delete the entire list of attached objects (attached via 
1103281075SdimAcpiAttachObject) instead of just one of the attached items. ACPICA BZ 
1104281075Sdim1024. Tomasz Nowicki (tomasz.nowicki@linaro.org).
1105281075Sdim
1106281075SdimACPICA termination: Added support to delete all objects attached to the 
1107281075Sdimroot namespace node. This fix deletes any and all objects that have been 
1108281075Sdimattached to the root node via AcpiAttachData. Previously, none of these 
1109281075Sdimobjects were deleted. Reported by Tomasz Nowicki. ACPICA BZ 1026.
1110281075Sdim
1111281075SdimDebug output: Do not emit the function nesting level for the in-kernel 
1112281075Sdimbuild. The nesting level is really only useful during a single-thread 
1113281075Sdimexecution. Therefore, only enable this output for the AcpiExec utility. 
1114281075SdimAlso, only emit the thread ID when executing under AcpiExec (Context 
1115281075Sdimswitches are still always detected and a message is emitted). ACPICA BZ 
1116281075Sdim972.
1117281075Sdim
1118281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
1119281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1120281075Sdimdebug version of the code includes the debug output trace mechanism and 
1121281075Sdimhas a much larger code and data size.
1122281075Sdim
1123281075Sdim  Current Release:
1124281075Sdim    Non-Debug Version:  95.9K Code, 27.0K Data, 122.9K Total
1125281075Sdim    Debug Version:     185.1K Code, 77.2K Data, 262.3K Total
1126281075Sdim  Previous Release:
1127281075Sdim    Non-Debug Version:  95.8K Code, 27.0K Data, 122.8K Total
1128281075Sdim    Debug Version:     185.2K Code, 77.2K Data, 262.4K Total
1129281075Sdim
1130281075Sdim
1131281075Sdim2) iASL Compiler/Disassembler and Tools:
1132281075Sdim
1133281075SdimAcpiExec/Unix-OSL: Use <termios.h> instead of <termio.h>. This is the 
1134281075Sdimcorrect portable POSIX header for terminal control functions.
1135281075Sdim
1136281075SdimDisassembler: Fixed control method invocation issues related to the use 
1137281075Sdimof the CondRefOf() operator. The problem is seen in the disassembly where 
1138281075Sdimcontrol method invocations may not be disassembled properly if the 
1139281075Sdimcontrol method name has been used previously as an argument to CondRefOf. 
1140281075SdimThe solution is to not attempt to emit an external declaration for the 
1141281075SdimCondRefOf target (it is not necessary in the first place). This prevents 
1142281075Sdimdisassembler object type confusion. ACPICA BZ 988.
1143281075Sdim
1144281075SdimUnix Makefiles: Added an option to disable compiler optimizations and the 
1145281075Sdim_FORTIFY_SOURCE flag. Some older compilers have problems compiling ACPICA 
1146281075Sdimwith optimizations (reportedly, gcc 4.4 for example). This change adds a 
1147281075Sdimcommand line option for make (NOOPT) that disables all compiler 
1148281075Sdimoptimizations and the _FORTIFY_SOURCE compiler flag. The default 
1149281075Sdimoptimization is -O2 with the _FORTIFY_SOURCE flag specified. ACPICA BZ 
1150281075Sdim1034. Lv Zheng, Bob Moore.
1151281075Sdim
1152281075SdimTests/ASLTS: Added options to specify individual test cases and modes. 
1153281075SdimThis allows testers running aslts.sh to optionally specify individual 
1154281075Sdimtest modes and test cases. Also added an option to disable the forced 
1155281075Sdimgeneration of the ACPICA tools from source if desired. Lv Zheng.
1156281075Sdim
1157281075Sdim----------------------------------------
1158281075Sdim27 September 2013. Summary of changes for version 20130927:
1159281075Sdim
1160281075SdimThis release is available at https://acpica.org/downloads
1161281075Sdim
1162281075Sdim
1163281075Sdim1) ACPICA kernel-resident subsystem:
1164281075Sdim
1165281075SdimFixed a problem with store operations to reference objects. This change 
1166281075Sdimfixes a problem where a Store operation to an ArgX object that contained 
1167281075Sdima 
1168281075Sdimreference to a field object did not complete the automatic dereference 
1169281075Sdimand 
1170281075Sdimthen write to the actual field object. Instead, the object type of the 
1171281075Sdimfield object was inadvertently changed to match the type of the source 
1172281075Sdimoperand. The new behavior will actually write to the field object (buffer 
1173281075Sdimfield or field unit), thus matching the correct ACPI-defined behavior.
1174281075Sdim
1175281075SdimImplemented support to allow the host to redefine individual OSL 
1176281075Sdimprototypes. This change enables the host to redefine OSL prototypes found 
1177281075Sdimin the acpiosxf.h file. This allows the host to implement OSL interfaces 
1178281075Sdimwith a macro or inlined function. Further, it allows the host to add any 
1179281075Sdimadditional required modifiers such as __iomem, __init, __exit, etc., as 
1180281075Sdimnecessary on a per-interface basis. Enables maximum flexibility for the 
1181281075SdimOSL interfaces. Lv Zheng.
1182281075Sdim
1183281075SdimHardcoded the access width for the FADT-defined reset register. The ACPI 
1184281075Sdimspecification requires the reset register width to be 8 bits. ACPICA now 
1185281075Sdimhardcodes the width to 8 and ignores the FADT width value. This provides 
1186281075Sdimcompatibility with other ACPI implementations that have allowed BIOS code 
1187281075Sdimwith bad register width values to go unnoticed. Matthew Garett, Bob 
1188281075SdimMoore, 
1189281075SdimLv Zheng.
1190281075Sdim
1191281075SdimChanged the position/use of the ACPI_PRINTF_LIKE macro. This macro is 
1192281075Sdimused 
1193281075Sdimin the OSL header (acpiosxf). The change modifies the position of this 
1194281075Sdimmacro in each instance where it is used (AcpiDebugPrint, etc.) to avoid 
1195281075Sdimbuild issues if the OSL defines the implementation of the interface to be 
1196281075Sdiman inline stub function. Lv Zheng.
1197281075Sdim
1198281075SdimDeployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA 
1199281075Sdiminitialization interfaces. This change adds a new macro for the main init 
1200281075Sdimand terminate external interfaces in order to support hosts that require 
1201281075Sdimadditional or different processing for these functions. Changed from 
1202281075SdimACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv 
1203281075SdimZheng, Bob Moore.
1204281075Sdim
1205281075SdimCleaned up the memory allocation macros for configurability. In the 
1206281075Sdimcommon 
1207281075Sdimcase, the ACPI_ALLOCATE and related macros now resolve directly to their 
1208281075Sdimrespective AcpiOs* OSL interfaces. Two options:
1209281075Sdim1) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by 
1210281075Sdimdefault, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define.
1211281075Sdim2) For AcpiExec (and for debugging), the macros can optionally be 
1212281075Sdimresolved 
1213281075Sdimto the local ACPICA interfaces that track each allocation (local tracking 
1214281075Sdimis used to immediately detect memory leaks).
1215281075SdimLv Zheng.
1216281075Sdim
1217281075SdimSimplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel 
1218281075Sdimto predefine this macro to either TRUE or FALSE during the system build.
1219281075Sdim
1220281075SdimReplaced __FUNCTION_ with __func__ in the gcc-specific header.
1221281075Sdim
1222281075SdimExample Code and Data Size: These are the sizes for the OS-independent 
1223281075Sdimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1224281075Sdimdebug version of the code includes the debug output trace mechanism and 
1225281075Sdimhas a much larger code and data size.
1226281075Sdim
1227281075Sdim  Current Release:
1228281075Sdim    Non-Debug Version:  95.8K Code, 27.0K Data, 122.8K Total
1229281075Sdim    Debug Version:     185.2K Code, 77.2K Data, 262.4K Total
1230281075Sdim  Previous Release:
1231281075Sdim    Non-Debug Version:  96.7K Code, 27.1K Data, 123.9K Total
1232281075Sdim    Debug Version:     184.4K Code, 76.8K Data, 261.2K Total
1233281075Sdim
1234281075Sdim
1235281075Sdim2) iASL Compiler/Disassembler and Tools:
1236281075Sdim
1237281075SdimiASL: Implemented wildcard support for the -e option. This simplifies use 
1238281075Sdimwhen there are many SSDTs that must be included to resolve external 
1239281075Sdimmethod 
1240281075Sdimdeclarations. ACPICA BZ 1041. Example:
1241281075Sdim    iasl -e ssdt*.dat -d dsdt.dat
1242281075Sdim
1243281075SdimAcpiExec: Add history/line-editing for Unix/Linux systems. This change 
1244281075Sdimadds a portable module that implements full history and limited line 
1245281075Sdimediting for Unix and Linux systems. It does not use readline() due to 
1246281075Sdimportability issues. Instead it uses the POSIX termio interface to put the 
1247281075Sdimterminal in raw input mode so that the various special keys can be 
1248281075Sdimtrapped 
1249281075Sdim(such as up/down-arrow for history support and left/right-arrow for line 
1250281075Sdimediting). Uses the existing debugger history mechanism. ACPICA BZ 1036.
1251281075Sdim
1252281075SdimAcpiXtract: Add support to handle (ignore) "empty" lines containing only 
1253281075Sdimone or more spaces. This provides compatible with early or different 
1254281075Sdimversions of the AcpiDump utility. ACPICA BZ 1044.
1255281075Sdim
1256281075SdimAcpiDump: Do not ignore tables that contain only an ACPI table header. 
1257281075SdimApparently, some BIOSs create SSDTs that contain an ACPI table header but 
1258281075Sdimno other data. This change adds support to dump these tables. Any tables 
1259281075Sdimshorter than the length of an ACPI table header remain in error (an error 
1260281075Sdimmessage is emitted). Reported by Yi Li.
1261281075Sdim
1262281075SdimDebugger: Echo actual command along with the "unknown command" message.
1263281075Sdim
1264281075Sdim----------------------------------------
1265254745Sjkim23 August 2013. Summary of changes for version 20130823:
1266254745Sjkim
1267254745Sjkim1) ACPICA kernel-resident subsystem:
1268254745Sjkim
1269254745SjkimImplemented support for host-installed System Control Interrupt (SCI) 
1270254745Sjkimhandlers. Certain ACPI functionality requires the host to handle raw 
1271254745SjkimSCIs. For example, the "SCI Doorbell" that is defined for memory power 
1272254745Sjkimstate support requires the host device driver to handle SCIs to examine 
1273254745Sjkimif the doorbell has been activated. Multiple SCI handlers can be 
1274254745Sjkiminstalled to allow for future expansion. New external interfaces are 
1275254745SjkimAcpiInstallSciHandler, AcpiRemoveSciHandler; see the ACPICA reference for 
1276254745Sjkimdetails. Lv Zheng, Bob Moore. ACPICA BZ 1032.
1277254745Sjkim
1278254745SjkimOperation region support: Never locally free the handler "context" 
1279254745Sjkimpointer. This change removes some dangerous code that attempts to free 
1280254745Sjkimthe handler context pointer in some (rare) circumstances. The owner of 
1281254745Sjkimthe handler owns this pointer and the ACPICA code should never touch it. 
1282254745SjkimAlthough not seen to be an issue in any kernel, it did show up as a 
1283254745Sjkimproblem (fault) under AcpiExec. Also, set the internal storage field for 
1284254745Sjkimthe context pointer to zero when the region is deactivated, simply for 
1285254745Sjkimsanity. David Box. ACPICA BZ 1039.
1286254745Sjkim
1287254745SjkimAcpiRead: On error, do not modify the return value target location. If an 
1288254745Sjkimerror happens in the middle of a split 32/32 64-bit I/O operation, do not 
1289254745Sjkimmodify the target of the return value pointer. Makes the code consistent 
1290254745Sjkimwith the rest of ACPICA. Bjorn Helgaas.
1291254745Sjkim
1292254745SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1293254745Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1294254745Sjkimdebug version of the code includes the debug output trace mechanism and 
1295254745Sjkimhas a much larger code and data size.
1296254745Sjkim
1297254745Sjkim  Current Release:
1298254745Sjkim    Non-Debug Version:  96.7K Code, 27.1K Data, 123.9K Total
1299254745Sjkim    Debug Version:     184.4K Code, 76.8K Data, 261.2K Total
1300254745Sjkim  Previous Release:
1301254745Sjkim    Non-Debug Version:  96.2K Code, 27.1K Data, 123.3K Total
1302254745Sjkim    Debug Version:     185.4K Code, 77.1K Data, 262.5K Total
1303254745Sjkim
1304254745Sjkim
1305254745Sjkim2) iASL Compiler/Disassembler and Tools:
1306254745Sjkim
1307254745SjkimAcpiDump: Implemented several new features and fixed some problems:
1308254745Sjkim1) Added support to dump the RSDP, RSDT, and XSDT tables.
1309254745Sjkim2) Added support for multiple table instances (SSDT, UEFI).
1310254745Sjkim3) Added option to dump "customized" (overridden) tables (-c).
1311254745Sjkim4) Fixed a problem where some table filenames were improperly 
1312254745Sjkimconstructed.
1313254745Sjkim5) Improved some error messages, removed some unnecessary messages.
1314254745Sjkim
1315254745SjkimiASL: Implemented additional support for disassembly of ACPI tables that 
1316254745Sjkimcontain invocations of external control methods. The -fe<file> option 
1317254745Sjkimallows the import of a file that specifies the external methods along 
1318254745Sjkimwith the required number of arguments for each -- allowing for the 
1319254745Sjkimcorrect disassembly of the table. This is a workaround for a limitation 
1320254745Sjkimof AML code where the disassembler often cannot determine the number of 
1321254745Sjkimarguments required for an external control method and generates incorrect 
1322254745SjkimASL code. See the iASL reference for details. ACPICA BZ 1030.
1323254745Sjkim
1324254745SjkimDebugger: Implemented a new command (paths) that displays the full 
1325254745Sjkimpathnames (namepaths) and object types of all objects in the namespace. 
1326254745SjkimThis is an alternative to the namespace command.
1327254745Sjkim
1328254745SjkimDebugger: Implemented a new command (sci) that invokes the SCI dispatch 
1329254745Sjkimmechanism and any installed handlers.
1330254745Sjkim
1331254745SjkimiASL: Fixed a possible segfault for "too many parent prefixes" condition. 
1332254745SjkimThis can occur if there are too many parent prefixes in a namepath (for 
1333254745Sjkimexample, ^^^^^^PCI0.ECRD). ACPICA BZ 1035.
1334254745Sjkim
1335254745SjkimApplication OSLs: Set the return value for the PCI read functions. These 
1336254745Sjkimfunctions simply return AE_OK, but should set the return value to zero 
1337254745Sjkimalso. This change implements this. ACPICA BZ 1038.
1338254745Sjkim
1339254745SjkimDebugger: Prevent possible command line buffer overflow. Increase the 
1340254745Sjkimsize of a couple of the debugger line buffers, and ensure that overflow 
1341254745Sjkimcannot happen. ACPICA BZ 1037.
1342254745Sjkim
1343254745SjkimiASL: Changed to abort immediately on serious errors during the parsing 
1344254745Sjkimphase. Due to the nature of ASL, there is no point in attempting to 
1345254745Sjkimcompile these types of errors, and they typically end up causing a 
1346254745Sjkimcascade of hundreds of errors which obscure the original problem.
1347254745Sjkim
1348254745Sjkim----------------------------------------
1349253690Sjkim25 July 2013. Summary of changes for version 20130725:
1350253690Sjkim
1351253690Sjkim1) ACPICA kernel-resident subsystem:
1352253690Sjkim
1353253690SjkimFixed a problem with the DerefOf operator where references to FieldUnits 
1354253690Sjkimand BufferFields incorrectly returned the parent object, not the actual 
1355253690Sjkimvalue of the object. After this change, a dereference of a FieldUnit 
1356253690Sjkimreference results in a read operation on the field to get the value, and 
1357253690Sjkimlikewise, the appropriate BufferField value is extracted from the target 
1358253690Sjkimbuffer.
1359253690Sjkim
1360253690SjkimFixed a problem where the _WAK method could cause a fault under these 
1361253690Sjkimcircumstances: 1) Interpreter slack mode was not enabled, and 2) the _WAK 
1362253690Sjkimmethod returned no value. The problem is rarely seen because most kernels 
1363253690Sjkimrun ACPICA in slack mode.
1364253690Sjkim
1365253690SjkimFor the DerefOf operator, a fatal error now results if an attempt is made 
1366253690Sjkimto dereference a reference (created by the Index operator) to a NULL 
1367253690Sjkimpackage element. Provides compatibility with other ACPI implementations, 
1368253690Sjkimand this behavior will be added to a future version of the ACPI 
1369253690Sjkimspecification.
1370253690Sjkim
1371253690SjkimThe ACPI Power Management Timer (defined in the FADT) is now optional. 
1372253690SjkimThis provides compatibility with other ACPI implementations and will 
1373253690Sjkimappear in the next version of the ACPI specification. If there is no PM 
1374253690SjkimTimer on the platform, AcpiGetTimer returns AE_SUPPORT. An address of 
1375253690Sjkimzero in the FADT indicates no PM timer.
1376253690Sjkim
1377253690SjkimImplemented a new interface for _OSI support, AcpiUpdateInterfaces. This 
1378253690Sjkimallows the host to globally enable/disable all vendor strings, all 
1379253690Sjkimfeature strings, or both. Intended to be primarily used for debugging 
1380253690Sjkimpurposes only. Lv Zheng.
1381253690Sjkim
1382253690SjkimExpose the collected _OSI data to the host via a global variable. This 
1383253690Sjkimdata tracks the highest level vendor ID that has been invoked by the BIOS 
1384253690Sjkimso that the host (and potentially ACPICA itself) can change behaviors 
1385253690Sjkimbased upon the age of the BIOS.
1386253690Sjkim
1387253690SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1388253690Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1389253690Sjkimdebug version of the code includes the debug output trace mechanism and 
1390253690Sjkimhas a much larger code and data size.
1391253690Sjkim
1392253690Sjkim  Current Release:
1393253690Sjkim    Non-Debug Version:  96.2K Code, 27.1K Data, 123.3K Total
1394253690Sjkim    Debug Version:     184.4K Code, 76.8K Data, 261.2K Total
1395253690Sjkim  Previous Release:
1396253690Sjkim    Non-Debug Version:  95.9K Code, 26.9K Data, 122.8K Total
1397253690Sjkim    Debug Version:     184.1K Code, 76.7K Data, 260.8K Total
1398253690Sjkim
1399253690Sjkim
1400253690Sjkim2) iASL Compiler/Disassembler and Tools:
1401253690Sjkim
1402253690SjkimiASL: Created the following enhancements for the -so option (create 
1403253690Sjkimoffset table):
1404253690Sjkim1)Add offsets for the last nameseg in each namepath for every supported 
1405253690Sjkimobject type
1406253690Sjkim2)Add support for Processor, Device, Thermal Zone, and Scope objects
1407253690Sjkim3)Add the actual AML opcode for the parent object of every supported 
1408253690Sjkimobject type
1409253690Sjkim4)Add support for the ZERO/ONE/ONES AML opcodes for integer objects
1410253690Sjkim
1411253690SjkimDisassembler: Emit all unresolved external symbols in a single block. 
1412253690SjkimThese are external references to control methods that could not be 
1413253690Sjkimresolved, and thus, the disassembler had to make a guess at the number of 
1414253690Sjkimarguments to parse.
1415253690Sjkim
1416253690SjkimiASL: The argument to the -T option (create table template) is now 
1417253690Sjkimoptional. If not specified, the default table is a DSDT, typically the 
1418253690Sjkimmost common case.
1419253690Sjkim
1420253690Sjkim----------------------------------------
1421252279Sjkim26 June 2013. Summary of changes for version 20130626:
1422252279Sjkim
1423252279Sjkim1) ACPICA kernel-resident subsystem:
1424252279Sjkim
1425252279SjkimFixed an issue with runtime repair of the _CST object. Null or invalid 
1426252279Sjkimelements were not always removed properly. Lv Zheng. 
1427252279Sjkim
1428252279SjkimRemoved an arbitrary restriction of 256 GPEs per GPE block (such as the 
1429252279SjkimFADT-defined GPE0 and GPE1). For GPE0, GPE1, and each GPE Block Device, 
1430252279Sjkimthe maximum number of GPEs is 1016. Use of multiple GPE block devices 
1431252279Sjkimmakes the system-wide number of GPEs essentially unlimited.
1432252279Sjkim
1433252279SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1434252279Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1435252279Sjkimdebug version of the code includes the debug output trace mechanism and 
1436252279Sjkimhas a much larger code and data size.
1437252279Sjkim
1438252279Sjkim  Current Release:
1439252279Sjkim    Non-Debug Version:  95.9K Code, 26.9K Data, 122.8K Total
1440252279Sjkim    Debug Version:     184.1K Code, 76.7K Data, 260.8K Total
1441252279Sjkim  Previous Release:
1442252279Sjkim    Non-Debug Version:  96.0K Code, 27.0K Data, 123.0K Total
1443252279Sjkim    Debug Version:     184.1K Code, 76.8K Data, 260.9K Total
1444252279Sjkim
1445252279Sjkim
1446252279Sjkim2) iASL Compiler/Disassembler and Tools:
1447252279Sjkim
1448252279SjkimPortable AcpiDump: Implemented full support for the Linux and FreeBSD 
1449252279Sjkimhosts. Now supports Linux, FreeBSD, and Windows.
1450252279Sjkim
1451252279SjkimDisassembler: Added some missing types for the HEST and EINJ tables: "Set 
1452252279SjkimError Type With Address", "CMCI", "MCE", and "Flush Cacheline".
1453252279Sjkim
1454252279SjkimiASL/Preprocessor: Implemented full support for nested 
1455252279Sjkim#if/#else/#elif/#endif blocks. Allows arbitrary depth of nested blocks.
1456252279Sjkim
1457252279SjkimDisassembler: Expanded maximum output string length to 64K. Was 256 bytes 
1458252279Sjkimmax. The original purpose of this constraint was to limit the amount of 
1459252279Sjkimdebug output. However, the string function in question (UtPrintString) is 
1460252279Sjkimnow used for the disassembler also, where 256 bytes is insufficient. 
1461252279SjkimReported by RehabMan@GitHub.
1462252279Sjkim
1463252279SjkimiASL/DataTables: Fixed some problems and issues with compilation of DMAR 
1464252279Sjkimtables. ACPICA BZ 999. Lv Zheng.
1465252279Sjkim
1466252279SjkimiASL: Fixed a couple of error exit issues that could result in a "Could 
1467252279Sjkimnot delete <file>" message during ASL compilation.
1468252279Sjkim
1469252279SjkimAcpiDump: Allow "FADT" and "MADT" as valid table signatures, even though 
1470252279Sjkimthe actual signatures for these tables are "FACP" and "APIC", 
1471252279Sjkimrespectively.
1472252279Sjkim
1473252279SjkimAcpiDump: Added support for multiple UEFI tables. Only SSDT and UEFI 
1474252279Sjkimtables are allowed to have multiple instances.
1475252279Sjkim
1476252279Sjkim----------------------------------------
1477250838Sjkim17 May 2013. Summary of changes for version 20130517:
1478249663Sjkim
1479250838Sjkim1) ACPICA kernel-resident subsystem:
1480249663Sjkim
1481250838SjkimFixed a regression introduced in version 20130328 for _INI methods. This 
1482250838Sjkimchange fixes a problem introduced in 20130328 where _INI methods are no 
1483250838Sjkimlonger executed properly because of a memory block that was not 
1484250838Sjkiminitialized correctly. ACPICA BZ 1016. Tomasz Nowicki 
1485250838Sjkim<tomasz.nowicki@linaro.org>.
1486249663Sjkim
1487253690SjkimFixed a possible problem with the new extended sleep registers in the 
1488253690SjkimACPI 
1489250838Sjkim5.0 FADT. Do not use these registers (even if populated) unless the HW-
1490250838Sjkimreduced bit is set in the FADT (as per the ACPI specification). ACPICA BZ 
1491250838Sjkim1020. Lv Zheng.
1492250838Sjkim
1493253690SjkimImplemented return value repair code for _CST predefined objects: Sort 
1494253690Sjkimthe 
1495250838Sjkimlist and detect/remove invalid entries. ACPICA BZ 890. Lv Zheng.
1496250838Sjkim
1497250838SjkimImplemented a debug-only option to disable loading of SSDTs from the 
1498250838SjkimRSDT/XSDT during ACPICA initialization. This can be useful for debugging 
1499250838SjkimACPI problems on some machines. Set AcpiGbl_DisableSsdtTableLoad in 
1500250838Sjkimacglobal.h - ACPICA BZ 1005. Lv Zheng.
1501250838Sjkim
1502250838SjkimFixed some issues in the ACPICA initialization and termination code: 
1503250838SjkimTomasz Nowicki <tomasz.nowicki@linaro.org>
1504250838Sjkim1) Clear events initialized flag upon event component termination. ACPICA 
1505250838SjkimBZ 1013.
1506250838Sjkim2) Fixed a possible memory leak in GPE init error path. ACPICA BZ 1018. 
1507250838Sjkim3) Delete global lock pending lock during termination. ACPICA BZ 1012.
1508250838Sjkim4) Clear debug buffer global on termination to prevent possible multiple 
1509250838Sjkimdelete. ACPICA BZ 1010.
1510250838Sjkim
1511253690SjkimStandardized all switch() blocks across the entire source base. After 
1512253690Sjkimmany 
1513250838Sjkimyears, different formatting for switch() had crept in. This change makes 
1514250838Sjkimthe formatting of every switch block identical. ACPICA BZ 997. Chao Guan.
1515250838Sjkim
1516250838SjkimSplit some files to enhance ACPICA modularity and configurability:
1517250838Sjkim1) Split buffer dump routines into utilities/utbuffer.c
1518250838Sjkim2) Split internal error message routines into utilities/uterror.c
1519250838Sjkim3) Split table print utilities into tables/tbprint.c
1520250838Sjkim4) Split iASL command-line option processing into asloptions.c
1521250838Sjkim
1522250838SjkimMakefile enhancements:
1523250838Sjkim1) Support for all new files above.
1524250838Sjkim2) Abort make on errors from any subcomponent. Chao Guan.
1525250838Sjkim3) Add build support for Apple Mac OS X. Liang Qi.
1526250838Sjkim
1527250838SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1528250838Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1529250838Sjkimdebug version of the code includes the debug output trace mechanism and 
1530250838Sjkimhas a much larger code and data size.
1531250838Sjkim
1532250838Sjkim  Current Release:
1533250838Sjkim    Non-Debug Version:  96.0K Code, 27.0K Data, 123.0K Total
1534250838Sjkim    Debug Version:     184.1K Code, 76.8K Data, 260.9K Total
1535250838Sjkim  Previous Release:
1536250838Sjkim    Non-Debug Version:  95.6K Code, 26.8K Data, 122.4K Total
1537250838Sjkim    Debug Version:     183.5K Code, 76.6K Data, 260.1K Total
1538250838Sjkim
1539250838Sjkim
1540250838Sjkim2) iASL Compiler/Disassembler and Tools:
1541250838Sjkim
1542250838SjkimNew utility: Implemented an easily portable version of the acpidump 
1543253690Sjkimutility to extract ACPI tables from the system (or a file) in an ASCII 
1544253690Sjkimhex 
1545250838Sjkimdump format. The top-level code implements the various command line 
1546250838Sjkimoptions, file I/O, and table dump routines. To port to a new host, only 
1547250838Sjkimthree functions need to be implemented to get tables -- since this 
1548250838Sjkimfunctionality is OS-dependent. See the tools/acpidump/apmain.c module and 
1549250838Sjkimthe ACPICA reference for porting instructions. ACPICA BZ 859. Notes:
1550250838Sjkim1) The Windows version obtains the ACPI tables from the Registry.
1551250838Sjkim2) The Linux version is under development.
1552250838Sjkim3) Other hosts - If an OS-dependent module is submitted, it will be 
1553250838Sjkimdistributed with ACPICA.
1554250838Sjkim
1555250838SjkimiASL: Fixed a regression for -D preprocessor option (define symbol). A 
1556250838Sjkimrestructuring/change to the initialization sequence caused this option to 
1557250838Sjkimno longer work properly.
1558250838Sjkim
1559250838SjkimiASL: Implemented a mechanism to disable specific warnings and remarks. 
1560250838SjkimAdds a new command line option, "-vw <messageid> as well as "#pragma 
1561250838Sjkimdisable <messageid>". ACPICA BZ 989. Chao Guan, Bob Moore.
1562250838Sjkim
1563250838SjkimiASL: Fix for too-strict package object validation. The package object 
1564250838Sjkimvalidation for return values from the predefined names is a bit too 
1565250838Sjkimstrict, it does not allow names references within the package (which will 
1566250838Sjkimbe resolved at runtime.) These types of references cannot be validated at 
1567250838Sjkimcompile time. This change ignores named references within package objects 
1568250838Sjkimfor names that return or define static packages.
1569250838Sjkim
1570250838SjkimDebugger: Fixed the 80-character command line limitation for the History 
1571250838Sjkimcommand. Now allows lines of arbitrary length. ACPICA BZ 1000. Chao Guan.
1572250838Sjkim
1573250838SjkimiASL: Added control method and package support for the -so option 
1574250838Sjkim(generates AML offset table for BIOS support.)
1575250838Sjkim
1576250838SjkimiASL: issue a remark if a non-serialized method creates named objects. If 
1577250838Sjkima thread blocks within the method for any reason, and another thread 
1578253690Sjkimenters the method, the method will fail because an attempt will be made 
1579253690Sjkimto 
1580250838Sjkimcreate the same (named) object twice. In this case, issue a remark that 
1581250838Sjkimthe method should be marked serialized. NOTE: may become a warning later. 
1582250838SjkimACPICA BZ 909.
1583250838Sjkim
1584250838Sjkim----------------------------------------
1585250838Sjkim18 April 2013. Summary of changes for version 20130418:
1586250838Sjkim
1587249663Sjkim1) ACPICA kernel-resident subsystem:
1588249663Sjkim
1589249663SjkimFixed a possible buffer overrun during some rare but specific field unit 
1590249663Sjkimread operations. This overrun can only happen if the DSDT version is 1 -- 
1591249663Sjkimmeaning that all AML integers are 32 bits -- and the field length is 
1592253690Sjkimbetween 33 and 55 bits long. During the read, an internal buffer object 
1593253690Sjkimis 
1594253690Sjkimcreated for the field unit because the field is larger than an integer 
1595253690Sjkim(32 
1596249663Sjkimbits). However, in this case, the buffer will be incorrectly written 
1597253690Sjkimbeyond the end because the buffer length is less than the internal 
1598253690Sjkimminimum 
1599249663Sjkimof 64 bits (8 bytes) long. The buffer will be either 5, 6, or 7 bytes 
1600249663Sjkimlong, but a full 8 bytes will be written.
1601249663Sjkim
1602249663SjkimUpdated the Embedded Controller "orphan" _REG method support. This refers 
1603249663Sjkimto _REG methods under the EC device that have no corresponding operation 
1604249663Sjkimregion. This is allowed by the ACPI specification. This update removes a 
1605249663Sjkimdependency on the existence an ECDT table. It will execute an orphan _REG 
1606249663Sjkimmethod as long as the operation region handler for the EC is installed at 
1607249663Sjkimthe EC device node and not the namespace root. Rui Zhang (original 
1608249663Sjkimupdate), Bob Moore (update/integrate).
1609249663Sjkim
1610249663SjkimImplemented run-time argument typechecking for all predefined ACPI names 
1611249663Sjkim(_STA, _BIF, etc.) This change performs object typechecking on all 
1612249663Sjkimincoming arguments for all predefined names executed via 
1613249663SjkimAcpiEvaluateObject. This ensures that ACPI-related device drivers are 
1614249663Sjkimpassing correct object types as well as the correct number of arguments 
1615249663Sjkim(therefore identifying any issues immediately). Also, the ASL/namespace 
1616249663Sjkimdefinition of the predefined name is checked against the ACPI 
1617249663Sjkimspecification for the proper argument count. Adds one new file, 
1618249663Sjkimnsarguments.c
1619249663Sjkim
1620249663SjkimChanged an exception code for the ASL UnLoad() operator. Changed the 
1621249663Sjkimexception code for the case where the input DdbHandle is invalid, from 
1622249663SjkimAE_BAD_PARAMETER to the more appropriate AE_AML_OPERAND_TYPE.
1623249663Sjkim
1624249663SjkimUnix/Linux makefiles: Removed the use of the -O2 optimization flag in the 
1625249663Sjkimglobal makefile. The use of this flag causes compiler errors on earlier 
1626249663Sjkimversions of GCC, so it has been removed for compatibility.
1627249663Sjkim
1628249663SjkimMiscellaneous cleanup:
1629249663Sjkim1) Removed some unused/obsolete macros
1630249663Sjkim2) Fixed a possible memory leak in the _OSI support
1631249663Sjkim3) Removed an unused variable in the predefined name support
1632249663Sjkim4) Windows OSL: remove obsolete reference to a memory list field
1633249663Sjkim
1634249663SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1635249663Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1636249663Sjkimdebug version of the code includes the debug output trace mechanism and 
1637249663Sjkimhas a much larger code and data size.
1638249663Sjkim
1639249663Sjkim  Current Release:
1640249663Sjkim    Non-Debug Version:  95.2K Code, 26.4K Data, 121.6K Total
1641249663Sjkim    Debug Version:     183.0K Code, 76.0K Data, 259.0K Total
1642249663Sjkim  Previous Release:
1643249663Sjkim    Non-Debug Version:  95.6K Code, 26.8K Data, 122.4K Total
1644249663Sjkim    Debug Version:     183.5K Code, 76.6K Data, 260.1K Total
1645249663Sjkim
1646249663Sjkim
1647249663Sjkim2) iASL Compiler/Disassembler and Tools:
1648249663Sjkim
1649249663SjkimAcpiExec: Added installation of a handler for the SystemCMOS address 
1650253690Sjkimspace. This prevents control method abort if a method accesses this 
1651253690Sjkimspace.
1652249663Sjkim
1653249663SjkimAcpiExec: Added support for multiple EC devices, and now install EC 
1654249663Sjkimoperation region handler(s) at the actual EC device instead of the 
1655249663Sjkimnamespace root. This reflects the typical behavior of host operating 
1656249663Sjkimsystems.
1657249663Sjkim
1658249663SjkimAcpiExec: Updated to ensure that all operation region handlers are 
1659249663Sjkiminstalled before the _REG methods are executed. This prevents a _REG 
1660249663Sjkimmethod from aborting if it accesses an address space has no handler. 
1661249663SjkimAcpiExec installs a handler for every possible address space.
1662249663Sjkim
1663249663SjkimDebugger: Enhanced the "handlers" command to display non-root handlers. 
1664249663SjkimThis change enhances the handlers command to display handlers associated 
1665249663Sjkimwith individual devices throughout the namespace, in addition to the 
1666253690Sjkimcurrently supported display of handlers associated with the root 
1667253690Sjkimnamespace 
1668249663Sjkimnode.
1669249663Sjkim
1670249663SjkimASL Test Suite: Several test suite errors have been identified and 
1671249663Sjkimresolved, reducing the total error count during execution. Chao Guan.
1672249663Sjkim
1673249663Sjkim----------------------------------------
1674249112Sjkim28 March 2013. Summary of changes for version 20130328:
1675249112Sjkim
1676249112Sjkim1) ACPICA kernel-resident subsystem:
1677249112Sjkim
1678249112SjkimFixed several possible race conditions with the internal object reference 
1679249112Sjkimcounting mechanism. Some of the external ACPICA interfaces update object 
1680249112Sjkimreference counts without holding the interpreter or namespace lock. This 
1681249112Sjkimchange adds a spinlock to protect reference count updates on the internal 
1682249112SjkimACPICA objects. Reported by and with assistance from Andriy Gapon 
1683249112Sjkim(avg@FreeBSD.org).
1684249112Sjkim
1685249112SjkimFADT support: Removed an extraneous warning for very large GPE register 
1686249112Sjkimsets. This change removes a size mismatch warning if the legacy length 
1687249112Sjkimfield for a GPE register set is larger than the 64-bit GAS structure can 
1688249112Sjkimaccommodate. GPE register sets can be larger than the 255-bit width 
1689249112Sjkimlimitation of the GAS structure. Linn Crosetto (linn@hp.com).
1690249112Sjkim
1691249112Sjkim_OSI Support: handle any errors from AcpiOsAcquireMutex. Check for error 
1692249112Sjkimreturn from this interface. Handles a possible timeout case if 
1693249112SjkimACPI_WAIT_FOREVER is modified by the host to be a value less than 
1694249112Sjkim"forever". Jung-uk Kim.
1695249112Sjkim
1696253690SjkimPredefined name support: Add allowed/required argument type information 
1697253690Sjkimto 
1698249112Sjkimthe master predefined info table. This change adds the infrastructure to 
1699249112Sjkimenable typechecking on incoming arguments for all predefined 
1700249112Sjkimmethods/objects. It does not actually contain the code that will fully 
1701249112Sjkimutilize this information, this is still under development. Also condenses 
1702249112Sjkimsome duplicate code for the predefined names into a new module, 
1703249112Sjkimutilities/utpredef.c
1704249112Sjkim
1705249112SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1706249112Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1707249112Sjkimdebug version of the code includes the debug output trace mechanism and 
1708249112Sjkimhas a much larger code and data size.
1709249112Sjkim
1710249112Sjkim  Previous Release:
1711249112Sjkim    Non-Debug Version:  95.0K Code, 25.9K Data, 120.9K Total
1712249112Sjkim    Debug Version:     182.9K Code, 75.6K Data, 258.5K Total
1713249112Sjkim  Current Release:
1714249112Sjkim    Non-Debug Version:  95.2K Code, 26.4K Data, 121.6K Total
1715249112Sjkim    Debug Version:     183.0K Code, 76.0K Data, 259.0K Total
1716249112Sjkim
1717249112Sjkim
1718249112Sjkim2) iASL Compiler/Disassembler and Tools:
1719249112Sjkim
1720253690SjkimiASL: Implemented a new option to simplify the development of ACPI-
1721253690Sjkimrelated 
1722249112SjkimBIOS code. Adds support for a new "offset table" output file. The -so 
1723249112Sjkimoption will create a C table containing the AML table offsets of various 
1724253690Sjkimnamed objects in the namespace so that BIOS code can modify them easily 
1725253690Sjkimat 
1726249112Sjkimboot time. This can simplify BIOS runtime code by eliminating expensive 
1727249112Sjkimsearches for "magic values", enhancing boot times and adding greater 
1728249112Sjkimreliability. With assistance from Lee Hamel.
1729249112Sjkim
1730249112SjkimiASL: Allow additional predefined names to return zero-length packages. 
1731249112SjkimNow, all predefined names that are defined by the ACPI specification to 
1732249112Sjkimreturn a "variable-length package of packages" are allowed to return a 
1733249112Sjkimzero length top-level package. This allows the BIOS to tell the host that 
1734249112Sjkimthe requested feature is not supported, and supports existing BIOS/ASL 
1735249112Sjkimcode and practices.
1736249112Sjkim
1737249112SjkimiASL: Changed the "result not used" warning to an error. This is the case 
1738249112Sjkimwhere an ASL operator is effectively a NOOP because the result of the 
1739249112Sjkimoperation is not stored anywhere. For example:
1740249112Sjkim    Add (4, Local0)
1741249112SjkimThere is no target (missing 3rd argument), nor is the function return 
1742249112Sjkimvalue used. This is potentially a very serious problem -- since the code 
1743249112Sjkimwas probably intended to do something, but for whatever reason, the value 
1744249112Sjkimwas not stored. Therefore, this issue has been upgraded from a warning to 
1745249112Sjkiman error.
1746249112Sjkim
1747249112SjkimAcpiHelp: Added allowable/required argument types to the predefined names 
1748249112Sjkiminfo display. This feature utilizes the recent update to the predefined 
1749249112Sjkimnames table (above).
1750249112Sjkim
1751249112Sjkim----------------------------------------
1752246849Sjkim14 February 2013. Summary of changes for version 20130214:
1753246849Sjkim
1754246849Sjkim1) ACPICA Kernel-resident Subsystem:
1755246849Sjkim
1756246849SjkimFixed a possible regression on some hosts: Reinstated the safe return 
1757246849Sjkimmacros (return_ACPI_STATUS, etc.) that ensure that the argument is 
1758246849Sjkimevaluated only once. Although these macros are not needed for the ACPICA 
1759253690Sjkimcode itself, they are often used by ACPI-related host device drivers 
1760253690Sjkimwhere 
1761246849Sjkimthe safe feature may be necessary.
1762246849Sjkim
1763246849SjkimFixed several issues related to the ACPI 5.0 reduced hardware support 
1764253690Sjkim(SOC): Now ensure that if the platform declares itself as hardware-
1765253690Sjkimreduced 
1766246849Sjkimvia the FADT, the following functions become NOOPs (and always return 
1767246849SjkimAE_OK) because ACPI is always enabled by definition on these machines:
1768246849Sjkim  AcpiEnable
1769246849Sjkim  AcpiDisable
1770246849Sjkim  AcpiHwGetMode
1771246849Sjkim  AcpiHwSetMode
1772246849Sjkim
1773246849SjkimDynamic Object Repair: Implemented additional runtime repairs for 
1774246849Sjkimpredefined name return values. Both of these repairs can simplify code in 
1775246849Sjkimthe related device drivers that invoke these methods:
1776246849Sjkim1) For the _STR and _MLS names, automatically repair/convert an ASCII 
1777246849Sjkimstring to a Unicode buffer. 
1778253690Sjkim2) For the _CRS, _PRS, and _DMA names, return a resource descriptor with 
1779253690Sjkima 
1780246849Sjkimlone end tag descriptor in the following cases: A Return(0) was executed, 
1781246849Sjkima null buffer was returned, or no object at all was returned (non-slack 
1782246849Sjkimmode only). Adds a new file, nsconvert.c
1783246849SjkimACPICA BZ 998. Bob Moore, Lv Zheng.
1784246849Sjkim
1785253690SjkimResource Manager: Added additional code to prevent possible infinite 
1786253690Sjkimloops 
1787246849Sjkimwhile traversing corrupted or ill-formed resource template buffers. Check 
1788246849Sjkimfor zero-length resource descriptors in all code that loops through 
1789246849Sjkimresource templates (the length field is used to index through the 
1790246849Sjkimtemplate). This change also hardens the external AcpiWalkResources and 
1791246849SjkimAcpiWalkResourceBuffer interfaces.
1792246849Sjkim
1793246849SjkimLocal Cache Manager: Enhanced the main data structure to eliminate an 
1794246849Sjkimunnecessary mechanism to access the next object in the list. Actually 
1795246849Sjkimprovides a small performance enhancement for hosts that use the local 
1796246849SjkimACPICA cache manager. Jung-uk Kim.
1797246849Sjkim
1798246849SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1799246849Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1800246849Sjkimdebug version of the code includes the debug output trace mechanism and 
1801246849Sjkimhas a much larger code and data size.
1802246849Sjkim
1803246849Sjkim  Previous Release:
1804246849Sjkim    Non-Debug Version:  94.5K Code, 25.4K Data, 119.9K Total
1805246849Sjkim    Debug Version:     182.3K Code, 75.0K Data, 257.3K Total
1806246849Sjkim  Current Release:
1807246849Sjkim    Non-Debug Version:  95.0K Code, 25.9K Data, 120.9K Total
1808246849Sjkim    Debug Version:     182.9K Code, 75.6K Data, 258.5K Total
1809246849Sjkim
1810246849Sjkim
1811246849Sjkim2) iASL Compiler/Disassembler and Tools:
1812246849Sjkim
1813246849SjkimiASL/Disassembler: Fixed several issues with the definition of the ACPI 
1814246849Sjkim5.0 RASF table (RAS Feature Table). This change incorporates late changes 
1815246849Sjkimthat were made to the ACPI 5.0 specification.
1816246849Sjkim
1817246849SjkimiASL/Disassembler: Added full support for the following new ACPI tables:
1818246849Sjkim  1) The MTMR table (MID Timer Table)
1819246849Sjkim  2) The VRTC table (Virtual Real Time Clock Table).
1820246849SjkimIncludes header file, disassembler, table compiler, and template support 
1821246849Sjkimfor both tables.
1822246849Sjkim
1823246849SjkimiASL: Implemented compile-time validation of package objects returned by 
1824246849Sjkimpredefined names. This new feature validates static package objects 
1825246849Sjkimreturned by the various predefined names defined to return packages. Both 
1826246849Sjkimobject types and package lengths are validated, for both parent packages 
1827253690Sjkimand sub-packages, if any. The code is similar in structure and behavior 
1828253690Sjkimto 
1829246849Sjkimthe runtime repair mechanism within the AML interpreter and uses the 
1830246849Sjkimexisting predefined name information table. Adds a new file, aslprepkg.c. 
1831246849SjkimACPICA BZ 938.
1832246849Sjkim
1833246849SjkimiASL: Implemented auto-detection of binary ACPI tables for disassembly. 
1834246849SjkimThis feature detects a binary file with a valid ACPI table header and 
1835246849Sjkiminvokes the disassembler automatically. Eliminates the need to 
1836246849Sjkimspecifically invoke the disassembler with the -d option. ACPICA BZ 862.
1837246849Sjkim
1838246849SjkimiASL/Disassembler: Added several warnings for the case where there are 
1839246849Sjkimunresolved control methods during the disassembly. This can potentially 
1840246849Sjkimcause errors when the output file is compiled, because the disassembler 
1841246849Sjkimassumes zero method arguments in these cases (it cannot determine the 
1842246849Sjkimactual number of arguments without resolution/definition of the method).
1843246849Sjkim
1844246849SjkimDebugger: Added support to display all resources with a single command. 
1845253690SjkimInvocation of the resources command with no arguments will now display 
1846253690Sjkimall 
1847246849Sjkimresources within the current namespace.
1848246849Sjkim
1849246849SjkimAcpiHelp: Added descriptive text for each ACPICA exception code displayed 
1850246849Sjkimvia the -e option.
1851246849Sjkim
1852246849Sjkim----------------------------------------
1853245582Sjkim17 January 2013. Summary of changes for version 20130117:
1854243347Sjkim
1855243347Sjkim1) ACPICA Kernel-resident Subsystem:
1856243347Sjkim
1857245582SjkimUpdated the AcpiGetSleepTypeData interface: Allow the \_Sx methods to 
1858245582Sjkimreturn either 1 or 2 integers. Although the ACPI spec defines the \_Sx 
1859253690Sjkimobjects to return a package containing one integer, most BIOS code 
1860253690Sjkimreturns 
1861253690Sjkimtwo integers and the previous code reflects that. However, we also need 
1862253690Sjkimto 
1863245582Sjkimsupport BIOS code that actually implements to the ACPI spec, and this 
1864245582Sjkimchange reflects this.
1865245582Sjkim
1866245582SjkimFixed two issues with the ACPI_DEBUG_PRINT macros:
1867245582Sjkim1) Added the ACPI_DO_WHILE macro to the main DEBUG_PRINT helper macro for 
1868245582SjkimC compilers that require this support.
1869245582Sjkim2) Renamed the internal ACPI_DEBUG macro to ACPI_DO_DEBUG_PRINT since 
1870245582SjkimACPI_DEBUG is already used by many of the various hosts.
1871245582Sjkim
1872245582SjkimUpdated all ACPICA copyrights and signons to 2013. Added the 2013 
1873245582Sjkimcopyright to all module headers and signons, including the standard Linux 
1874245582Sjkimheader. This affects virtually every file in the ACPICA core subsystem, 
1875245582SjkimiASL compiler, all ACPICA utilities, and the test suites.
1876245582Sjkim
1877245582SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1878245582Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1879245582Sjkimdebug version of the code includes the debug output trace mechanism and 
1880245582Sjkimhas a much larger code and data size.
1881245582Sjkim
1882245582Sjkim  Previous Release:
1883245582Sjkim    Non-Debug Version:  94.5K Code, 25.5K Data, 120.0K Total
1884245582Sjkim    Debug Version:     182.2K Code, 74.9K Data, 257.1K Total
1885245582Sjkim  Current Release:
1886245582Sjkim    Non-Debug Version:  94.5K Code, 25.4K Data, 119.9K Total
1887245582Sjkim    Debug Version:     182.3K Code, 75.0K Data, 257.3K Total
1888245582Sjkim
1889245582Sjkim
1890245582Sjkim2) iASL Compiler/Disassembler and Tools:
1891245582Sjkim
1892245582SjkimGeneric Unix OSL: Use a buffer to eliminate multiple vfprintf()s and 
1893245582Sjkimprevent a possible fault on some hosts. Some C libraries modify the arg 
1894245582Sjkimpointer parameter to vfprintf making it difficult to call it twice in the 
1895245582SjkimAcpiOsVprintf function. Use a local buffer to workaround this issue. This 
1896245582Sjkimdoes not affect the Windows OSL since the Win C library does not modify 
1897245582Sjkimthe arg pointer. Chao Guan, Bob Moore.
1898245582Sjkim
1899245582SjkimiASL: Fixed a possible infinite loop when the maximum error count is 
1900245582Sjkimreached. If an output file other than the .AML file is specified (such as 
1901245582Sjkima listing file), and the maximum number of errors is reached, do not 
1902245582Sjkimattempt to flush data to the output file(s) as the compiler is aborting. 
1903245582SjkimThis can cause an infinite loop as the max error count code essentially 
1904245582Sjkimkeeps calling itself.
1905245582Sjkim
1906253690SjkimiASL/Disassembler: Added an option (-in) to ignore NOOP 
1907253690Sjkimopcodes/operators. 
1908245582SjkimImplemented for both the compiler and the disassembler. Often, the NOOP 
1909253690Sjkimopcode is used as padding for packages that are changed dynamically by 
1910253690Sjkimthe 
1911245582SjkimBIOS. When disassembled and recompiled, these NOOPs will cause syntax 
1912245582Sjkimerrors. This option causes the disassembler to ignore all NOOP opcodes 
1913253690Sjkim(0xA3), and it also causes the compiler to ignore all ASL source code 
1914253690SjkimNOOP 
1915245582Sjkimstatements as well.
1916245582Sjkim
1917245582SjkimDebugger: Enhanced the Sleep command to execute all sleep states. This 
1918245582Sjkimchange allows Sleep to be invoked with no arguments and causes the 
1919245582Sjkimdebugger to execute all of the sleep states, 0-5, automatically.
1920245582Sjkim
1921245582Sjkim----------------------------------------
1922245582Sjkim20 December 2012. Summary of changes for version 20121220:
1923245582Sjkim
1924245582Sjkim1) ACPICA Kernel-resident Subsystem:
1925245582Sjkim
1926245582SjkimImplemented a new interface, AcpiWalkResourceBuffer. This interface is an 
1927245582Sjkimalternate entry point for AcpiWalkResources and improves the usability of 
1928245582Sjkimthe resource manager by accepting as input a buffer containing the output 
1929245582Sjkimof either a _CRS, _PRS, or _AEI method. The key functionality is that the 
1930245582Sjkiminput buffer is not deleted by this interface so that it can be used by 
1931245582Sjkimthe host later. See the ACPICA reference for details.
1932245582Sjkim
1933245582SjkimInterpreter: Add a warning if a 64-bit constant appears in a 32-bit table 
1934245582Sjkim(DSDT version < 2). The constant will be truncated and this warning 
1935245582Sjkimreflects that behavior.
1936245582Sjkim
1937245582SjkimResource Manager: Add support for the new ACPI 5.0 wake bit in the IRQ, 
1938245582SjkimExtendedInterrupt, and GpioInt descriptors. This change adds support to 
1939245582Sjkimboth get and set the new wake bit in these descriptors, separately from 
1940245582Sjkimthe existing share bit. Reported by Aaron Lu.
1941245582Sjkim
1942245582SjkimInterpreter: Fix Store() when an implicit conversion is not possible. For 
1943245582Sjkimexample, in the cases such as a store of a string to an existing package 
1944245582Sjkimobject, implement the store as a CopyObject(). This is a small departure 
1945253690Sjkimfrom the ACPI specification which states that the control method should 
1946253690Sjkimbe 
1947245582Sjkimaborted in this case. However, the ASLTS suite depends on this behavior.
1948245582Sjkim
1949245582SjkimPerformance improvement for the various FUNCTION_TRACE and DEBUG_PRINT 
1950245582Sjkimmacros: check if debug output is currently enabled as soon as possible to 
1951245582Sjkimminimize performance impact if debug is in fact not enabled.
1952245582Sjkim
1953245582SjkimSource code restructuring: Cleanup to improve modularity. The following 
1954245582Sjkimnew files have been added: dbconvert.c, evhandler.c, nsprepkg.c, 
1955245582Sjkimpsopinfo.c, psobject.c, rsdumpinfo.c, utstring.c, and utownerid.c. 
1956245582SjkimAssociated makefiles and project files have been updated.
1957245582Sjkim
1958245582SjkimChanged an exception code for LoadTable operator. For the case where one 
1959245582Sjkimof the input strings is too long, change the returned exception code from 
1960245582SjkimAE_BAD_PARAMETER to AE_AML_STRING_LIMIT.
1961245582Sjkim
1962245582SjkimFixed a possible memory leak in dispatcher error path. On error, delete 
1963245582Sjkimthe mutex object created during method mutex creation. Reported by 
1964245582Sjkimtim.gardner@canonical.com.
1965245582Sjkim
1966245582SjkimExample Code and Data Size: These are the sizes for the OS-independent 
1967245582Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
1968245582Sjkimdebug version of the code includes the debug output trace mechanism and 
1969245582Sjkimhas a much larger code and data size.
1970245582Sjkim
1971245582Sjkim  Previous Release:
1972245582Sjkim    Non-Debug Version:  94.3K Code, 25.3K Data, 119.6K Total
1973245582Sjkim    Debug Version:     175.5K Code, 74.5K Data, 250.0K Total
1974245582Sjkim  Current Release:
1975245582Sjkim    Non-Debug Version:  94.5K Code, 25.5K Data, 120.0K Total
1976245582Sjkim    Debug Version:     182.2K Code, 74.9K Data, 257.1K Total
1977245582Sjkim
1978245582Sjkim
1979245582Sjkim2) iASL Compiler/Disassembler and Tools:
1980245582Sjkim
1981245582SjkimiASL: Disallow a method call as argument to the ObjectType ASL operator. 
1982245582SjkimThis change tracks an errata to the ACPI 5.0 document. The AML grammar 
1983245582Sjkimwill not allow the interpreter to differentiate between a method and a 
1984245582Sjkimmethod invocation when these are used as an argument to the ObjectType 
1985253690Sjkimoperator. The ACPI specification change is to disallow a method 
1986253690Sjkiminvocation 
1987245582Sjkim(UserTerm) for the ObjectType operator.
1988245582Sjkim
1989245582SjkimFinish support for the TPM2 and CSRT tables in the headers, table 
1990245582Sjkimcompiler, and disassembler.
1991245582Sjkim
1992245582SjkimUnix user-space OSL: Fix a problem with WaitSemaphore where the timeout 
1993253690Sjkimalways expires immediately if the semaphore is not available. The 
1994253690Sjkimoriginal 
1995253690Sjkimcode was using a relative-time timeout, but sem_timedwait requires the 
1996253690Sjkimuse 
1997245582Sjkimof an absolute time.
1998245582Sjkim
1999245582SjkimiASL: Added a remark if the Timer() operator is used within a 32-bit 
2000245582Sjkimtable. This operator returns a 64-bit time value that will be truncated 
2001245582Sjkimwithin a 32-bit table.
2002245582Sjkim
2003245582SjkimiASL Source code restructuring: Cleanup to improve modularity. The 
2004245582Sjkimfollowing new files have been added: aslhex.c, aslxref.c, aslnamesp.c, 
2005245582Sjkimaslmethod.c, and aslfileio.c. Associated makefiles and project files have 
2006245582Sjkimbeen updated.
2007245582Sjkim
2008245582Sjkim
2009245582Sjkim----------------------------------------
2010245582Sjkim14 November 2012. Summary of changes for version 20121114:
2011245582Sjkim
2012245582Sjkim1) ACPICA Kernel-resident Subsystem:
2013245582Sjkim
2014243347SjkimImplemented a performance enhancement for ACPI/AML Package objects. This 
2015243347Sjkimchange greatly increases the performance of Package objects within the 
2016253690Sjkiminterpreter. It changes the processing of reference counts for packages 
2017253690Sjkimby 
2018243347Sjkimoptimizing for the most common case where the package sub-objects are 
2019253690Sjkimeither Integers, Strings, or Buffers. Increases the overall performance 
2020253690Sjkimof 
2021253690Sjkimthe ASLTS test suite by 1.5X (Increases the Slack Mode performance by 
2022253690Sjkim2X.) 
2023243347SjkimChao Guan. ACPICA BZ 943.
2024243347Sjkim
2025243347SjkimImplemented and deployed common macros to extract flag bits from resource 
2026253690Sjkimdescriptors. Improves readability and maintainability of the code. Fixes 
2027253690Sjkima 
2028243347Sjkimproblem with the UART serial bus descriptor for the number of data bits 
2029243347Sjkimflags (was incorrectly 2 bits, should be 3).
2030243347Sjkim
2031243347SjkimEnhanced the ACPI_GETx and ACPI_SETx macros. Improved the implementation 
2032243347Sjkimof the macros and changed the SETx macros to the style of (destination, 
2033243347Sjkimsource). Also added ACPI_CASTx companion macros. Lv Zheng.
2034243347Sjkim
2035243347SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2036243347Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2037243347Sjkimdebug version of the code includes the debug output trace mechanism and 
2038243347Sjkimhas a much larger code and data size.
2039243347Sjkim
2040243347Sjkim  Previous Release:
2041243347Sjkim    Non-Debug Version:  93.9K Code, 25.2K Data, 119.1K Total
2042243347Sjkim    Debug Version:     175.5K Code, 74.5K Data, 250.0K Total
2043243347Sjkim  Current Release:
2044243347Sjkim    Non-Debug Version:  94.3K Code, 25.3K Data, 119.6K Total
2045243347Sjkim    Debug Version:     175.5K Code, 74.5K Data, 250.0K Total
2046243347Sjkim
2047243347Sjkim
2048243347Sjkim2) iASL Compiler/Disassembler and Tools:
2049243347Sjkim
2050243347SjkimDisassembler: Added the new ACPI 5.0 interrupt sharing flags. This change 
2051243347Sjkimadds the ShareAndWake and ExclusiveAndWake flags which were added to the 
2052243347SjkimIrq, Interrupt, and Gpio resource descriptors in ACPI 5.0. ACPICA BZ 986.
2053243347Sjkim
2054243347SjkimDisassembler: Fixed a problem with external declaration generation. Fixes 
2055243347Sjkima problem where an incorrect pathname could be generated for an external 
2056243347Sjkimdeclaration if the original reference to the object includes leading 
2057243347Sjkimcarats (^). ACPICA BZ 984.
2058243347Sjkim
2059243347SjkimDebugger: Completed a major update for the Disassemble<method> command. 
2060243347SjkimThis command was out-of-date and did not properly disassemble control 
2061253690Sjkimmethods that had any reasonable complexity. This fix brings the command 
2062253690Sjkimup 
2063243347Sjkimto the same level as the rest of the disassembler. Adds one new file, 
2064243347Sjkimdmdeferred.c, which is existing code that is now common with the main 
2065243347Sjkimdisassembler and the debugger disassemble command. ACPICA MZ 978.
2066243347Sjkim
2067243347SjkimiASL: Moved the parser entry prototype to avoid a duplicate declaration. 
2068253690SjkimNewer versions of Bison emit this prototype, so moved the prototype out 
2069253690Sjkimof 
2070253690Sjkimthe iASL header to where it is actually used in order to avoid a 
2071253690Sjkimduplicate 
2072243347Sjkimdeclaration.
2073243347Sjkim
2074243347SjkimiASL/Tools: Standardized use of the stream I/O functions:
2075243347Sjkim  1) Ensure check for I/O error after every fopen/fread/fwrite
2076243347Sjkim  2) Ensure proper order of size/count arguments for fread/fwrite
2077243347Sjkim  3) Use test of (Actual != Requested) after all fwrite, and most fread
2078243347Sjkim  4) Standardize I/O error messages
2079253690SjkimImproves reliability and maintainability of the code. Bob Moore, Lv 
2080253690SjkimZheng. 
2081243347SjkimACPICA BZ 981.
2082243347Sjkim
2083243347SjkimDisassembler: Prevent duplicate External() statements. During generation 
2084243347Sjkimof external statements, detect similar pathnames that are actually 
2085243347Sjkimduplicates such as these:
2086243347Sjkim  External (\ABCD)
2087243347Sjkim  External (ABCD)
2088243347SjkimRemove all leading '\' characters from pathnames during the external 
2089243347Sjkimstatement generation so that duplicates will be detected and tossed. 
2090243347SjkimACPICA BZ 985.
2091243347Sjkim
2092243347SjkimTools: Replace low-level I/O with stream I/O functions. Replace 
2093243347Sjkimopen/read/write/close with the stream I/O equivalents 
2094243347Sjkimfopen/fread/fwrite/fclose for portability and performance. Lv Zheng, Bob 
2095243347SjkimMoore.
2096243347Sjkim
2097243347SjkimAcpiBin: Fix for the dump-to-hex function. Now correctly output the table 
2098243347Sjkimname header so that AcpiXtract recognizes the output file/table.
2099243347Sjkim
2100243347SjkimiASL: Remove obsolete -2 option flag. Originally intended to force the 
2101243347Sjkimcompiler/disassembler into an ACPI 2.0 mode, this was never implemented 
2102243347Sjkimand the entire concept is now obsolete.
2103243347Sjkim
2104243347Sjkim----------------------------------------
2105241973Sjkim18 October 2012. Summary of changes for version 20121018:
2106241973Sjkim
2107241973Sjkim
2108241973Sjkim1) ACPICA Kernel-resident Subsystem:
2109241973Sjkim
2110241973SjkimUpdated support for the ACPI 5.0 MPST table. Fixes some problems 
2111241973Sjkimintroduced by late changes to the table as it was added to the ACPI 5.0 
2112241973Sjkimspecification. Includes header, disassembler, and data table compiler 
2113241973Sjkimsupport as well as a new version of the MPST template.
2114241973Sjkim
2115241973SjkimAcpiGetObjectInfo: Enhanced the device object support to include the ACPI 
2116241973Sjkim5.0 _SUB method. Now calls _SUB in addition to the other PNP-related ID 
2117241973Sjkimmethods: _HID, _CID, and _UID.
2118241973Sjkim
2119241973SjkimChanged ACPI_DEVICE_ID to ACPI_PNP_DEVICE_ID. Also changed 
2120241973SjkimACPI_DEVICE_ID_LIST to ACPI_PNP_DEVICE_ID_LIST. These changes prevent 
2121241973Sjkimname collisions on hosts that reserve the *_DEVICE_ID (or *DeviceId) 
2122241973Sjkimnames for their various drivers. Affects the AcpiGetObjectInfo external 
2123241973Sjkiminterface, and other internal interfaces as well.
2124241973Sjkim
2125241973SjkimAdded and deployed a new macro for ACPI_NAME management: ACPI_MOVE_NAME. 
2126241973SjkimThis macro resolves to a simple 32-bit move of the 4-character ACPI_NAME 
2127241973Sjkimon machines that support non-aligned transfers. Optimizes for this case 
2128241973Sjkimrather than using a strncpy. With assistance from Zheng Lv.
2129241973Sjkim
2130241973SjkimResource Manager: Small fix for buffer size calculation. Fixed a one byte 
2131241973Sjkimerror in the output buffer calculation. Feng Tang. ACPICA BZ 849.
2132241973Sjkim
2133241973SjkimAdded a new debug print message for AML mutex objects that are force-
2134241973Sjkimreleased. At control method termination, any currently acquired mutex 
2135241973Sjkimobjects are force-released. Adds a new debug-only message for each one 
2136241973Sjkimthat is released.
2137241973Sjkim
2138241973SjkimAudited/updated all ACPICA return macros and the function debug depth 
2139241973Sjkimcounter: 1) Ensure that all functions that use the various TRACE macros 
2140241973Sjkimalso use the appropriate ACPICA return macros. 2) Ensure that all normal 
2141241973Sjkimreturn statements surround the return expression (value) with parens to 
2142241973Sjkimensure consistency across the ACPICA code base. Guan Chao, Tang Feng, 
2143241973SjkimZheng Lv, Bob Moore. ACPICA Bugzilla 972.
2144241973Sjkim
2145241973SjkimGlobal source code changes/maintenance: All extra lines at the start and 
2146241973Sjkimend of each source file have been removed for consistency. Also, within 
2147241973Sjkimcomments, all new sentences start with a single space instead of a double 
2148241973Sjkimspace, again for consistency across the code base.
2149241973Sjkim
2150241973SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2151241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2152241973Sjkimdebug version of the code includes the debug output trace mechanism and 
2153241973Sjkimhas a much larger code and data size.
2154241973Sjkim
2155241973Sjkim  Previous Release:
2156241973Sjkim    Non-Debug Version:  93.7K Code, 25.3K Data, 119.0K Total
2157241973Sjkim    Debug Version:     175.0K Code, 74.4K Data, 249.4K Total
2158241973Sjkim  Current Release:
2159241973Sjkim    Non-Debug Version:  93.9K Code, 25.2K Data, 119.1K Total
2160241973Sjkim    Debug Version:     175.5K Code, 74.5K Data, 250.0K Total
2161241973Sjkim
2162241973Sjkim
2163241973Sjkim2) iASL Compiler/Disassembler and Tools:
2164241973Sjkim
2165241973SjkimAcpiExec: Improved the algorithm used for memory leak/corruption 
2166241973Sjkimdetection. Added some intelligence to the code that maintains the global 
2167241973Sjkimlist of allocated memory. The list is now ordered by allocated memory 
2168241973Sjkimaddress, significantly improving performance. When running AcpiExec on 
2169241973Sjkimthe ASLTS test suite, speed improvements of 3X to 5X are seen, depending 
2170241973Sjkimon the platform and/or the environment. Note, this performance 
2171241973Sjkimenhancement affects the AcpiExec utility only, not the kernel-resident 
2172241973SjkimACPICA code.
2173241973Sjkim
2174241973SjkimEnhanced error reporting for invalid AML opcodes and bad ACPI_NAMEs. For 
2175241973Sjkimthe disassembler, dump the 48 bytes surrounding the invalid opcode. Fix 
2176241973Sjkimincorrect table offset reported for invalid opcodes. Report the original 
2177241973Sjkim32-bit value for bad ACPI_NAMEs (as well as the repaired name.)
2178241973Sjkim
2179241973SjkimDisassembler: Enhanced the -vt option to emit the binary table data in 
2180241973Sjkimhex format to assist with debugging.
2181241973Sjkim
2182241973SjkimFixed a potential filename buffer overflow in osunixdir.c. Increased the 
2183241973Sjkimsize of file structure. Colin Ian King.
2184241973Sjkim
2185241973Sjkim----------------------------------------
2186240716Sjkim13 September 2012. Summary of changes for version 20120913:
2187240716Sjkim
2188240716Sjkim
2189240716Sjkim1) ACPICA Kernel-resident Subsystem:
2190240716Sjkim
2191240716SjkimACPI 5.0: Added two new notify types for the Hardware Error Notification 
2192241973SjkimStructure within the Hardware Error Source Table (HEST) table -- CMCI(5) 
2193241973Sjkimand 
2194240716SjkimMCE(6).
2195240716Sjkim 
2196240716SjkimTable Manager: Merged/removed duplicate code in the root table resize 
2197241973Sjkimfunctions. One function is external, the other is internal. Lv Zheng, 
2198241973SjkimACPICA 
2199240716SjkimBZ 846.
2200240716Sjkim
2201240716SjkimMakefiles: Completely removed the obsolete "Linux" makefiles under 
2202253690Sjkimacpica/generate/linux. These makefiles are obsolete and have been 
2203253690Sjkimreplaced 
2204241973Sjkimby 
2205240716Sjkimthe generic unix makefiles under acpica/generate/unix.
2206240716Sjkim
2207241973SjkimMakefiles: Ensure that binary files always copied properly. Minor rule 
2208241973Sjkimchange 
2209240716Sjkimto ensure that the final binary output files are always copied up to the 
2210240716Sjkimappropriate binary directory (bin32 or bin64.)
2211240716Sjkim
2212240716SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2213241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2214241973Sjkimdebug 
2215241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2216241973Sjkimmuch 
2217240716Sjkimlarger code and data size.
2218240716Sjkim
2219240716Sjkim  Previous Release:
2220240716Sjkim    Non-Debug Version:  93.8K Code, 25.3K Data, 119.1K Total
2221240716Sjkim    Debug Version:     175.7K Code, 74.8K Data, 250.5K Total
2222240716Sjkim  Current Release:
2223240716Sjkim    Non-Debug Version:  93.7K Code, 25.3K Data, 119.0K Total
2224240716Sjkim    Debug Version:     175.0K Code, 74.4K Data, 249.4K Total
2225240716Sjkim
2226240716Sjkim
2227240716Sjkim2) iASL Compiler/Disassembler and Tools:
2228240716Sjkim
2229240716SjkimDisassembler: Fixed a possible fault during the disassembly of resource 
2230240716Sjkimdescriptors when a second parse is required because of the invocation of 
2231240716Sjkimexternal control methods within the table. With assistance from 
2232240716Sjkimadq@lidskialf.net. ACPICA BZ 976.
2233240716Sjkim
2234241973SjkimiASL: Fixed a namepath optimization problem. An error can occur if the 
2235241973Sjkimparse 
2236241973Sjkimnode that contains the namepath to be optimized does not have a parent 
2237241973Sjkimnode 
2238240716Sjkimthat is a named object. This change fixes the problem.
2239240716Sjkim
2240241973SjkimiASL: Fixed a regression where the AML file is not deleted on errors. The 
2241241973SjkimAML 
2242253690Sjkimoutput file should be deleted if there are any errors during the 
2243253690Sjkimcompiler. 
2244241973SjkimThe 
2245240716Sjkimonly exception is if the -f (force output) option is used. ACPICA BZ 974.
2246240716Sjkim
2247241973SjkimiASL: Added a feature to automatically increase internal line buffer 
2248241973Sjkimsizes. 
2249240716SjkimVia realloc(), automatically increase the internal line buffer sizes as 
2250241973Sjkimnecessary to support very long source code lines. The current version of 
2251241973Sjkimthe 
2252241973Sjkimpreprocessor requires a buffer long enough to contain full source code 
2253241973Sjkimlines. 
2254240716SjkimThis change increases the line buffer(s) if the input lines go beyond the 
2255241973Sjkimcurrent buffer size. This eliminates errors that occurred when a source 
2256241973Sjkimcode 
2257240716Sjkimline was longer than the buffer.
2258240716Sjkim
2259240716SjkimiASL: Fixed a problem with constant folding in method declarations. The 
2260241973SjkimSyncLevel term is a ByteConstExpr, and incorrect code would be generated 
2261241973Sjkimif a 
2262240716SjkimType3 opcode was used.
2263240716Sjkim
2264241973SjkimDebugger: Improved command help support. For incorrect argument count, 
2265241973Sjkimdisplay 
2266240716Sjkimfull help for the command. For help command itself, allow an argument to 
2267240716Sjkimspecify a command.
2268240716Sjkim
2269240716SjkimTest Suites: Several bug fixes for the ASLTS suite reduces the number of 
2270240716Sjkimerrors during execution of the suite. Guan Chao.
2271240716Sjkim
2272240716Sjkim----------------------------------------
2273239340Sjkim16 August 2012. Summary of changes for version 20120816:
2274239340Sjkim
2275239340Sjkim
2276239340Sjkim1) ACPICA Kernel-resident Subsystem:
2277239340Sjkim
2278241973SjkimRemoved all use of the deprecated _GTS and _BFS predefined methods. The 
2279241973Sjkim_GTS 
2280239340Sjkim(Going To Sleep) and _BFS (Back From Sleep) methods are essentially 
2281241973Sjkimdeprecated and will probably be removed from the ACPI specification. 
2282241973SjkimWindows 
2283241973Sjkimdoes not invoke them, and reportedly never will. The final nail in the 
2284241973Sjkimcoffin 
2285239340Sjkimis that the ACPI specification states that these methods must be run with 
2286241973Sjkiminterrupts off, which is not going to happen in a kernel interpreter. 
2287241973SjkimNote: 
2288239340SjkimLinux has removed all use of the methods also. It was discovered that 
2289241973Sjkiminvoking these functions caused failures on some machines, probably 
2290241973Sjkimbecause 
2291241973Sjkimthey were never tested since Windows does not call them. Affects two 
2292241973Sjkimexternal 
2293239340Sjkiminterfaces, AcpiEnterSleepState and AcpiLeaveSleepStatePrep. Tang Feng. 
2294239340SjkimACPICA BZ 969.
2295239340Sjkim
2296239340SjkimImplemented support for complex bit-packed buffers returned from the _PLD 
2297239340Sjkim(Physical Location of Device) predefined method. Adds a new external 
2298253690Sjkiminterface, AcpiDecodePldBuffer that parses the buffer into a more usable 
2299253690SjkimC 
2300239340Sjkimstructure. Note: C Bitfields cannot be used for this type of predefined 
2301241973Sjkimstructure since the memory layout of individual bitfields is not defined 
2302241973Sjkimby 
2303241973Sjkimthe C language. In addition, there are endian concerns where a compiler 
2304241973Sjkimwill 
2305239340Sjkimchange the bitfield ordering based on the machine type. The new ACPICA 
2306239340Sjkiminterface eliminates these issues, and should be called after _PLD is 
2307239340Sjkimexecuted. ACPICA BZ 954.
2308239340Sjkim
2309241973SjkimImplemented a change to allow a scope change to root (via "Scope (\)") 
2310241973Sjkimduring 
2311239340Sjkimexecution of module-level ASL code (code that is executed at table load 
2312239340Sjkimtime.) Lin Ming.
2313239340Sjkim
2314253690SjkimAdded the Windows8/Server2012 string for the _OSI method. This change 
2315253690Sjkimadds 
2316241973Sjkima 
2317241973Sjkimnew _OSI string, "Windows 2012" for both Windows 8 and Windows Server 
2318241973Sjkim2012.
2319239340Sjkim
2320241973SjkimAdded header support for the new ACPI tables DBG2 (Debug Port Table Type 
2321241973Sjkim2) 
2322239340Sjkimand CSRT (Core System Resource Table).
2323239340Sjkim
2324239340SjkimAdded struct header support for the _FDE, _GRT, _GTM, and _SRT predefined 
2325239340Sjkimnames. This simplifies access to the buffers returned by these predefined 
2326239340Sjkimnames. Adds a new file, include/acbuffer.h. ACPICA BZ 956.
2327239340Sjkim
2328239340SjkimGPE support: Removed an extraneous parameter from the various low-level 
2329239340Sjkiminternal GPE functions. Tang Feng.
2330239340Sjkim
2331239340SjkimRemoved the linux makefiles from the unix packages. The generate/linux 
2332253690Sjkimmakefiles are obsolete and have been removed from the unix tarball 
2333253690Sjkimrelease 
2334241973Sjkimpackages. The replacement makefiles are under generate/unix, and there is 
2335241973Sjkima 
2336239340Sjkimtop-level makefile under the main acpica directory. ACPICA BZ 967, 912.
2337239340Sjkim
2338239340SjkimUpdates for Unix makefiles:
2339239340Sjkim1) Add -D_FORTIFY_SOURCE=2 for gcc generation. Arjan van de Ven.
2340253690Sjkim2) Update linker flags (move to end of command line) for AcpiExec 
2341253690Sjkimutility. 
2342239340SjkimGuan Chao.
2343239340Sjkim
2344239340SjkimSplit ACPICA initialization functions to new file, utxfinit.c. Split from 
2345239340Sjkimutxface.c to improve modularity and reduce file size.
2346239340Sjkim
2347239340SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2348239340Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2349241973Sjkimdebug version of the code includes the debug output trace mechanism and 
2350241973Sjkimhas a 
2351239340Sjkimmuch larger code and data size.
2352239340Sjkim
2353239340Sjkim  Previous Release:
2354239340Sjkim    Non-Debug Version:  93.5K Code, 25.3K Data, 118.8K Total
2355239340Sjkim    Debug Version:     173.7K Code, 74.0K Data, 247.7K Total
2356239340Sjkim  Current Release:
2357239340Sjkim    Non-Debug Version:  93.8K Code, 25.3K Data, 119.1K Total
2358239340Sjkim    Debug Version:     175.7K Code, 74.8K Data, 250.5K Total
2359239340Sjkim
2360239340Sjkim
2361239340Sjkim2) iASL Compiler/Disassembler and Tools:
2362239340Sjkim
2363239340SjkimiASL: Fixed a problem with constant folding for fixed-length constant 
2364239340Sjkimexpressions. The constant-folding code was not being invoked for constant 
2365253690Sjkimexpressions that allow the use of type 3/4/5 opcodes to generate 
2366253690Sjkimconstants 
2367241973Sjkimfor expressions such as ByteConstExpr, WordConstExpr, etc. This could 
2368241973Sjkimresult 
2369239340Sjkimin the generation of invalid AML bytecode. ACPICA BZ 970.
2370239340Sjkim
2371239340SjkimiASL: Fixed a generation issue on newer versions of Bison. Newer versions 
2372253690Sjkimapparently automatically emit some of the necessary externals. This 
2373253690Sjkimchange 
2374239340Sjkimhandles these versions in order to eliminate generation warnings.
2375239340Sjkim
2376239340SjkimDisassembler: Added support to decode the DBG2 and CSRT ACPI tables.
2377239340Sjkim
2378241973SjkimDisassembler: Add support to decode _PLD buffers. The decoded buffer 
2379241973Sjkimappears 
2380239340Sjkimwithin comments in the output file.
2381239340Sjkim
2382239340SjkimDebugger: Fixed a regression with the "Threads" command where 
2383239340SjkimAE_BAD_PARAMETER was always returned.
2384239340Sjkim
2385239340Sjkim----------------------------------------
2386238381Sjkim11 July 2012. Summary of changes for version 20120711:
2387238381Sjkim
2388238381Sjkim1) ACPICA Kernel-resident Subsystem:
2389238381Sjkim
2390238381SjkimFixed a possible fault in the return package object repair code. Fixes a 
2391253690Sjkimproblem that can occur when a lone package object is wrapped with an 
2392253690Sjkimouter 
2393241973Sjkimpackage object in order to force conformance to the ACPI specification. 
2394241973SjkimCan 
2395241973Sjkimaffect these predefined names: _ALR, _MLS, _PSS, _TRT, _TSS, _PRT, _HPX, 
2396241973Sjkim_DLM, 
2397238381Sjkim_CSD, _PSD, _TSD.
2398238381Sjkim
2399238381SjkimRemoved code to disable/enable bus master arbitration (ARB_DIS bit in the 
2400238381SjkimPM2_CNT register) in the ACPICA sleep/wake interfaces. Management of the 
2401241973SjkimARB_DIS bit must be implemented in the host-dependent C3 processor power 
2402241973Sjkimstate 
2403241973Sjkimsupport. Note, ARB_DIS is obsolete and only applies to older chipsets, 
2404241973Sjkimboth 
2405238381SjkimIntel and other vendors. (for Intel: ICH4-M and earlier)
2406238381Sjkim
2407241973SjkimThis change removes the code to disable/enable bus master arbitration 
2408241973Sjkimduring 
2409241973Sjkimsuspend/resume. Use of the ARB_DIS bit in the optional PM2_CNT register 
2410241973Sjkimcauses 
2411241973Sjkimresume problems on some machines. The change has been in use for over 
2412241973Sjkimseven 
2413238381Sjkimyears within Linux.
2414238381Sjkim
2415241973SjkimImplemented two new external interfaces to support host-directed dynamic 
2416241973SjkimACPI 
2417241973Sjkimtable load and unload. They are intended to simplify the host 
2418241973Sjkimimplementation 
2419238381Sjkimof hot-plug support:
2420238381Sjkim  AcpiLoadTable: Load an SSDT from a buffer into the namespace.
2421241973Sjkim  AcpiUnloadParentTable: Unload an SSDT via a named object owned by the 
2422241973Sjkimtable.
2423238381SjkimSee the ACPICA reference for additional details. Adds one new file, 
2424238381Sjkimcomponents/tables/tbxfload.c
2425238381Sjkim
2426241973SjkimImplemented and deployed two new interfaces for errors and warnings that 
2427241973Sjkimare 
2428238381Sjkimknown to be caused by BIOS/firmware issues:
2429238381Sjkim  AcpiBiosError: Prints "ACPI Firmware Error" message.
2430238381Sjkim  AcpiBiosWarning: Prints "ACPI Firmware Warning" message.
2431241973SjkimDeployed these new interfaces in the ACPICA Table Manager code for ACPI 
2432241973Sjkimtable 
2433241973Sjkimand FADT errors. Additional deployment to be completed as appropriate in 
2434241973Sjkimthe 
2435238381Sjkimfuture. The associated conditional macros are ACPI_BIOS_ERROR and 
2436253690SjkimACPI_BIOS_WARNING. See the ACPICA reference for additional details. 
2437253690SjkimACPICA 
2438241973SjkimBZ 
2439238381Sjkim843.
2440238381Sjkim
2441238381SjkimImplicit notify support: ensure that no memory allocation occurs within a 
2442241973Sjkimcritical region. This fix moves a memory allocation outside of the time 
2443241973Sjkimthat a 
2444253690Sjkimspinlock is held. Fixes issues on systems that do not allow this 
2445253690Sjkimbehavior. 
2446238381SjkimJung-uk Kim.
2447238381Sjkim
2448241973SjkimSplit exception code utilities and tables into a new file, 
2449241973Sjkimutilities/utexcep.c
2450238381Sjkim
2451238381SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2452241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2453241973Sjkimdebug 
2454241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2455241973Sjkimmuch 
2456238381Sjkimlarger code and data size.
2457238381Sjkim
2458238381Sjkim  Previous Release:
2459238381Sjkim    Non-Debug Version:  93.1K Code, 25.1K Data, 118.2K Total
2460238381Sjkim    Debug Version:     172.9K Code, 73.6K Data, 246.5K Total
2461238381Sjkim  Current Release:
2462238381Sjkim    Non-Debug Version:  93.5K Code, 25.3K Data, 118.8K Total
2463238381Sjkim    Debug Version:     173.7K Code, 74.0K Data, 247.7K Total
2464238381Sjkim
2465238381Sjkim
2466238381Sjkim2) iASL Compiler/Disassembler and Tools:
2467238381Sjkim
2468241973SjkimiASL: Fixed a parser problem for hosts where EOF is defined as -1 instead 
2469241973Sjkimof 
2470238381Sjkim0. Jung-uk Kim.
2471238381Sjkim
2472241973SjkimDebugger: Enhanced the "tables" command to emit additional information 
2473241973Sjkimabout 
2474238381Sjkimthe current set of ACPI tables, including the owner ID and flags decode.
2475238381Sjkim
2476238381SjkimDebugger: Reimplemented the "unload" command to use the new 
2477241973SjkimAcpiUnloadParentTable external interface. This command was disable 
2478241973Sjkimpreviously 
2479238381Sjkimdue to need for an unload interface.
2480238381Sjkim
2481241973SjkimAcpiHelp: Added a new option to decode ACPICA exception codes. The -e 
2482241973Sjkimoption 
2483238381Sjkimwill decode 16-bit hex status codes (ACPI_STATUS) to name strings.
2484238381Sjkim
2485238381Sjkim----------------------------------------
2486237412Sjkim20 June 2012. Summary of changes for version 20120620:
2487237412Sjkim
2488237412Sjkim
2489237412Sjkim1) ACPICA Kernel-resident Subsystem:
2490237412Sjkim
2491241973SjkimImplemented support to expand the "implicit notify" feature to allow 
2492241973Sjkimmultiple 
2493241973Sjkimdevices to be notified by a single GPE. This feature automatically 
2494241973Sjkimgenerates a 
2495237412Sjkimruntime device notification in the absence of a BIOS-provided GPE control 
2496241973Sjkimmethod (_Lxx/_Exx) or a host-installed handler for the GPE. Implicit 
2497241973Sjkimnotify is 
2498253690Sjkimprovided by ACPICA for Windows compatibility, and is a workaround for 
2499253690SjkimBIOS 
2500241973SjkimAML 
2501241973Sjkimcode errors. See the description of the AcpiSetupGpeForWake interface in 
2502241973Sjkimthe 
2503237412SjkimAPCICA reference. Bob Moore, Rafael Wysocki. ACPICA BZ 918.
2504237412Sjkim
2505237412SjkimChanged some comments and internal function names to simplify and ensure 
2506237412Sjkimcorrectness of the Linux code translation. No functional changes.
2507237412Sjkim
2508237412SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2509241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2510241973Sjkimdebug 
2511241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2512241973Sjkimmuch 
2513237412Sjkimlarger code and data size.
2514237412Sjkim
2515237412Sjkim  Previous Release:
2516237412Sjkim    Non-Debug Version:  93.0K Code, 25.1K Data, 118.1K Total
2517237412Sjkim    Debug Version:     172.7K Code, 73.6K Data, 246.3K Total
2518237412Sjkim  Current Release:
2519237412Sjkim    Non-Debug Version:  93.1K Code, 25.1K Data, 118.2K Total
2520237412Sjkim    Debug Version:     172.9K Code, 73.6K Data, 246.5K Total
2521237412Sjkim
2522237412Sjkim
2523237412Sjkim2) iASL Compiler/Disassembler and Tools:
2524237412Sjkim
2525241973SjkimDisassembler: Added support to emit short, commented descriptions for the 
2526241973SjkimACPI 
2527237412Sjkimpredefined names in order to improve the readability of the disassembled 
2528237412Sjkimoutput. ACPICA BZ 959. Changes include:
2529241973Sjkim  1) Emit descriptions for all standard predefined names (_INI, _STA, 
2530241973Sjkim_PRW, 
2531237412Sjkimetc.)
2532237412Sjkim  2) Emit generic descriptions for the special names (_Exx, _Qxx, etc.)
2533241973Sjkim  3) Emit descriptions for the resource descriptor names (_MIN, _LEN, 
2534241973Sjkimetc.)
2535237412Sjkim
2536241973SjkimAcpiSrc: Fixed several long-standing Linux code translation issues. 
2537241973SjkimArgument 
2538253690Sjkimdescriptions in function headers are now translated properly to lower 
2539253690Sjkimcase 
2540241973Sjkimand 
2541253690Sjkimunderscores. ACPICA BZ 961. Also fixes translation problems such as 
2542253690Sjkimthese: 
2543237412Sjkim(old -> new)
2544237412Sjkim  i_aSL -> iASL
2545237412Sjkim  00-7_f -> 00-7F
2546237412Sjkim  16_k -> 16K
2547237412Sjkim  local_fADT -> local_FADT
2548237412Sjkim  execute_oSI -> execute_OSI
2549237412Sjkim
2550241973SjkimiASL: Fixed a problem where null bytes were inadvertently emitted into 
2551241973Sjkimsome 
2552237412Sjkimlisting files.
2553237412Sjkim
2554241973SjkimiASL: Added the existing debug options to the standard help screen. There 
2555241973Sjkimare 
2556237412Sjkimno longer two different help screens. ACPICA BZ 957.
2557237412Sjkim
2558241973SjkimAcpiHelp: Fixed some typos in the various predefined name descriptions. 
2559241973SjkimAlso 
2560237412Sjkimexpand some of the descriptions where appropriate.
2561237412Sjkim
2562241973SjkimiASL: Fixed the -ot option (display compile times/statistics). Was not 
2563241973Sjkimworking 
2564237412Sjkimproperly for standard output; only worked for the debug file case.
2565237412Sjkim
2566237412Sjkim----------------------------------------
2567235945Sjkim18 May 2012. Summary of changes for version 20120518:
2568235945Sjkim
2569235945Sjkim
2570235945Sjkim1) ACPICA Core Subsystem:
2571235945Sjkim
2572241973SjkimAdded a new OSL interface, AcpiOsWaitEventsComplete. This interface is 
2573241973Sjkimdefined 
2574241973Sjkimto block until asynchronous events such as notifies and GPEs have 
2575241973Sjkimcompleted. 
2576235945SjkimWithin ACPICA, it is only called before a notify or GPE handler is 
2577235945Sjkimremoved/uninstalled. It also may be useful for the host OS within related 
2578241973Sjkimdrivers such as the Embedded Controller driver. See the ACPICA reference 
2579241973Sjkimfor 
2580235945Sjkimadditional information. ACPICA BZ 868.
2581235945Sjkim
2582241973SjkimACPI Tables: Added a new error message for a possible overflow failure 
2583241973Sjkimduring 
2584253690Sjkimthe conversion of FADT 32-bit legacy register addresses to internal 
2585253690Sjkimcommon 
2586241973Sjkim64-
2587241973Sjkimbit GAS structure representation. The GAS has a one-byte "bit length" 
2588241973Sjkimfield, 
2589235945Sjkimthus limiting the register length to 255 bits. ACPICA BZ 953.
2590235945Sjkim
2591235945SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2592241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2593241973Sjkimdebug 
2594241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2595241973Sjkimmuch 
2596235945Sjkimlarger code and data size.
2597235945Sjkim
2598235945Sjkim  Previous Release:
2599235945Sjkim    Non-Debug Version:  92.9K Code, 25.0K Data, 117.9K Total
2600235945Sjkim    Debug Version:     172.6K Code, 73.4K Data, 246.0K Total
2601235945Sjkim  Current Release:
2602235945Sjkim    Non-Debug Version:  93.0K Code, 25.1K Data, 118.1K Total
2603235945Sjkim    Debug Version:     172.7K Code, 73.6K Data, 246.3K Total
2604235945Sjkim
2605235945Sjkim
2606235945Sjkim2) iASL Compiler/Disassembler and Tools:
2607235945Sjkim
2608241973SjkimiASL: Added the ACPI 5.0 "PCC" keyword for use in the Register() ASL 
2609241973Sjkimmacro. 
2610235945SjkimThis keyword was added late in the ACPI 5.0 release cycle and was not 
2611235945Sjkimimplemented until now.
2612235945Sjkim
2613235945SjkimDisassembler: Added support for Operation Region externals. Adds missing 
2614235945Sjkimsupport for operation regions that are defined in another table, and 
2615241973Sjkimreferenced locally via a Field or BankField ASL operator. Now generates 
2616241973Sjkimthe 
2617235945Sjkimcorrect External statement.
2618235945Sjkim
2619241973SjkimDisassembler: Several additional fixes for the External() statement 
2620241973Sjkimgeneration 
2621235945Sjkimrelated to some ASL operators. Also, order the External() statements 
2622253690Sjkimalphabetically in the disassembler output. Fixes the External() 
2623253690Sjkimgeneration 
2624241973Sjkimfor 
2625235945Sjkimthe Create* field, Alias, and Scope operators:
2626241973Sjkim 1) Create* buffer field operators - fix type mismatch warning on 
2627241973Sjkimdisassembly
2628235945Sjkim 2) Alias - implement missing External support
2629235945Sjkim 3) Scope - fix to make sure all necessary externals are emitted.
2630235945Sjkim
2631241973SjkimiASL: Improved pathname support. For include files, merge the prefix 
2632241973Sjkimpathname 
2633235945Sjkimwith the file pathname and eliminate unnecessary components. Convert 
2634241973Sjkimbackslashes in all pathnames to forward slashes, for readability. Include 
2635241973Sjkimfile 
2636235945Sjkimpathname changes affect both #include and Include() type operators.
2637235945Sjkim
2638241973SjkimiASL/DTC/Preprocessor: Gracefully handle early EOF. Handle an EOF at the 
2639241973Sjkimend 
2640241973Sjkimof a valid line by inserting a newline and then returning the EOF during 
2641241973Sjkimthe 
2642235945Sjkimnext call to GetNextLine. Prevents the line from being ignored due to EOF 
2643235945Sjkimcondition.
2644235945Sjkim
2645241973SjkimiASL: Implemented some changes to enhance the IDE support (-vi option.) 
2646241973SjkimError 
2647253690Sjkimand Warning messages are now correctly recognized for both the source 
2648253690Sjkimcode 
2649235945Sjkimbrowser and the global error and warning counts.
2650235945Sjkim
2651235945Sjkim----------------------------------------
2652234623Sjkim20 April 2012. Summary of changes for version 20120420:
2653234623Sjkim
2654234623Sjkim
2655234623Sjkim1) ACPICA Core Subsystem:
2656234623Sjkim
2657253690SjkimImplemented support for multiple notify handlers. This change adds 
2658253690Sjkimsupport 
2659241973Sjkimto 
2660241973Sjkimallow multiple system and device notify handlers on Device, Thermal Zone, 
2661241973Sjkimand 
2662241973SjkimProcessor objects. This can simplify the host OS notification 
2663241973Sjkimimplementation. 
2664253690SjkimAlso re-worked and restructured the entire notify support code to 
2665253690Sjkimsimplify 
2666234623Sjkimhandler installation, handler removal, notify event queuing, and notify 
2667234623Sjkimdispatch to handler(s). Note: there can still only be two global notify 
2668241973Sjkimhandlers - one for system notifies and one for device notifies. There are 
2669241973Sjkimno 
2670234623Sjkimchanges to the existing handler install/remove interfaces. Lin Ming, Bob 
2671234623SjkimMoore, Rafael Wysocki.
2672234623Sjkim
2673234623SjkimFixed a regression in the package repair code where the object reference 
2674234623Sjkimcount was calculated incorrectly. Regression was introduced in the commit 
2675234623Sjkim"Support to add Package wrappers".
2676234623Sjkim
2677241973SjkimFixed a couple possible memory leaks in the AML parser, in the error 
2678241973Sjkimrecovery 
2679234623Sjkimpath. Jesper Juhl, Lin Ming.
2680234623Sjkim
2681234623SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2682234623Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2683241973Sjkimdebug version of the code includes the debug output trace mechanism and 
2684241973Sjkimhas a 
2685234623Sjkimmuch larger code and data size.
2686234623Sjkim
2687234623Sjkim  Previous Release:
2688234623Sjkim    Non-Debug Version:  92.9K Code, 25.0K Data, 117.9K Total
2689234623Sjkim    Debug Version:     172.5K Code, 73.2K Data, 245.7K Total
2690234623Sjkim  Current Release:
2691234623Sjkim    Non-Debug Version:  92.9K Code, 25.0K Data, 117.9K Total
2692234623Sjkim    Debug Version:     172.6K Code, 73.4K Data, 246.0K Total
2693234623Sjkim
2694234623Sjkim
2695234623Sjkim2) iASL Compiler/Disassembler and Tools:
2696234623Sjkim
2697241973SjkimiASL: Fixed a problem with the resource descriptor support where the 
2698241973Sjkimlength 
2699234623Sjkimof the StartDependentFn and StartDependentFnNoPrio descriptors were not 
2700241973Sjkimincluded in cumulative descriptor offset, resulting in incorrect values 
2701241973Sjkimfor 
2702241973Sjkimresource tags within resource descriptors appearing after a 
2703241973SjkimStartDependent* 
2704234623Sjkimdescriptor. Reported by Petr Vandrovec. ACPICA BZ 949.
2705234623Sjkim
2706253690SjkimiASL and Preprocessor: Implemented full support for the #line directive 
2707253690Sjkimto 
2708241973Sjkimcorrectly track original source file line numbers through the .i 
2709241973Sjkimpreprocessor 
2710234623Sjkimoutput file - for error and warning messages.
2711234623Sjkim
2712241973SjkimiASL: Expand the allowable byte constants for address space IDs. 
2713241973SjkimPreviously, 
2714234623Sjkimthe allowable range was 0x80-0xFF (user-defined spaces), now the range is 
2715234623Sjkim0x0A-0xFF to allow for custom and new IDs without changing the compiler.
2716234623Sjkim
2717234623SjkimiASL: Add option to treat all warnings as errors (-we). ACPICA BZ 948.
2718234623Sjkim
2719234623SjkimiASL: Add option to completely disable the preprocessor (-Pn).
2720234623Sjkim
2721234623SjkimiASL: Now emit all error/warning messages to standard error (stderr) by 
2722234623Sjkimdefault (instead of the previous stdout).
2723234623Sjkim
2724241973SjkimASL Test Suite (ASLTS): Reduce iASL warnings due to use of Switch(). 
2725241973SjkimUpdate 
2726234623Sjkimfor resource descriptor offset fix above. Update/cleanup error output 
2727234623Sjkimroutines. Enable and send iASL errors/warnings to an error logfile 
2728253690Sjkim(error.txt). Send all other iASL output to a logfile (compiler.txt). 
2729253690SjkimFixed 
2730234623Sjkimseveral extraneous "unrecognized operator" messages.
2731234623Sjkim
2732234623Sjkim----------------------------------------
2733233250Sjkim20 March 2012. Summary of changes for version 20120320:
2734233250Sjkim
2735233250Sjkim
2736233250Sjkim1) ACPICA Core Subsystem:
2737233250Sjkim
2738233250SjkimEnhanced the sleep/wake interfaces to optionally execute the _GTS method 
2739253690Sjkim(Going To Sleep) and the _BFS method (Back From Sleep). Windows 
2740253690Sjkimapparently 
2741233250Sjkimdoes not execute these methods, and therefore these methods are often 
2742233250Sjkimuntested. It has been seen on some systems where the execution of these 
2743241973Sjkimmethods causes errors and also prevents the machine from entering S5. It 
2744241973Sjkimis 
2745241973Sjkimtherefore suggested that host operating systems do not execute these 
2746241973Sjkimmethods 
2747241973Sjkimby default. In the future, perhaps these methods can be optionally 
2748241973Sjkimexecuted 
2749241973Sjkimbased on the age of the system and/or what is the newest version of 
2750241973SjkimWindows 
2751241973Sjkimthat the BIOS asks for via _OSI. Changed interfaces: AcpiEnterSleepState 
2752241973Sjkimand 
2753233250SjkimAcpileaveSleepStatePrep. See the ACPICA reference and Linux BZ 13041. Lin 
2754233250SjkimMing.
2755233250Sjkim
2756241973SjkimFixed a problem where the length of the local/common FADT was set too 
2757241973Sjkimearly. 
2758233250SjkimThe local FADT table length cannot be set to the common length until the 
2759241973Sjkimoriginal length has been examined. There is code that checks the table 
2760241973Sjkimlength 
2761253690Sjkimand sets various fields appropriately. This can affect older machines 
2762253690Sjkimwith 
2763253690Sjkimearly FADT versions. For example, this can cause inadvertent writes to 
2764253690Sjkimthe 
2765233250SjkimCST_CNT register. Julian Anastasov.
2766233250Sjkim
2767241973SjkimFixed a mapping issue related to a physical table override. Use the 
2768241973Sjkimdeferred 
2769241973Sjkimmapping mechanism for tables loaded via the physical override OSL 
2770241973Sjkiminterface. 
2771241973SjkimThis allows for early mapping before the virtual memory manager is 
2772241973Sjkimavailable. 
2773233250SjkimThomas Renninger, Bob Moore.
2774233250Sjkim
2775241973SjkimEnhanced the automatic return-object repair code: Repair a common problem 
2776241973Sjkimwith 
2777253690Sjkimpredefined methods that are defined to return a variable-length Package 
2778253690Sjkimof 
2779241973Sjkimsub-objects. If there is only one sub-object, some BIOS ASL code 
2780241973Sjkimmistakenly 
2781253690Sjkimsimply returns the single object instead of a Package with one sub-
2782253690Sjkimobject. 
2783241973SjkimThis new support will repair this error by wrapping a Package object 
2784241973Sjkimaround 
2785241973Sjkimthe original object, creating the correct and expected Package with one 
2786241973Sjkimsub-
2787241973Sjkimobject. Names that can be repaired in this manner include: _ALR, _CSD, 
2788241973Sjkim_HPX, 
2789241973Sjkim_MLS, _PLD, _PRT, _PSS, _TRT, _TSS, _BCL, _DOD, _FIX, and _Sx. ACPICA BZ 
2790241973Sjkim939.
2791233250Sjkim
2792233250SjkimChanged the exception code returned for invalid ACPI paths passed as 
2793233250Sjkimparameters to external interfaces such as AcpiEvaluateObject. Was 
2794233250SjkimAE_BAD_PARAMETER, now is the more sensible AE_BAD_PATHNAME.
2795233250Sjkim
2796233250SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2797241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2798241973Sjkimdebug 
2799241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2800241973Sjkimmuch 
2801233250Sjkimlarger code and data size.
2802233250Sjkim
2803233250Sjkim  Previous Release:
2804233250Sjkim    Non-Debug Version:  93.0K Code, 25.0K Data, 118.0K Total
2805233250Sjkim    Debug Version:     172.5K Code, 73.2K Data, 245.7K Total
2806233250Sjkim  Current Release:
2807233250Sjkim    Non-Debug Version:  92.9K Code, 25.0K Data, 117.9K Total
2808233250Sjkim    Debug Version:     172.5K Code, 73.2K Data, 245.7K Total
2809233250Sjkim
2810233250Sjkim
2811233250Sjkim2) iASL Compiler/Disassembler and Tools:
2812233250Sjkim
2813241973SjkimiASL: Added the infrastructure and initial implementation of a integrated 
2814241973SjkimC-
2815241973Sjkimlike preprocessor. This will simplify BIOS development process by 
2816241973Sjkimeliminating 
2817241973Sjkimthe need for a separate preprocessing step during builds. On Windows, it 
2818241973Sjkimalso 
2819233250Sjkimeliminates the need to install a separate C compiler. ACPICA BZ 761. Some 
2820241973Sjkimfeatures including full #define() macro support are still under 
2821241973Sjkimdevelopment. 
2822233250SjkimThese preprocessor directives are supported:
2823233250Sjkim    #define
2824233250Sjkim    #elif
2825233250Sjkim    #else
2826233250Sjkim    #endif
2827233250Sjkim    #error
2828233250Sjkim    #if
2829233250Sjkim    #ifdef
2830233250Sjkim    #ifndef
2831233250Sjkim    #include
2832233250Sjkim    #pragma message
2833233250Sjkim    #undef
2834233250Sjkim    #warning
2835233250SjkimIn addition, these new command line options are supported:
2836233250Sjkim    -D <symbol> Define symbol for preprocessor use
2837233250Sjkim    -li         Create preprocessed output file (*.i)
2838233250Sjkim    -P          Preprocess only and create preprocessor output file (*.i)
2839233250Sjkim
2840241973SjkimTable Compiler: Fixed a problem where the equals operator within an 
2841241973Sjkimexpression 
2842233250Sjkimdid not work properly.
2843233250Sjkim
2844241973SjkimUpdated iASL to use the current versions of Bison/Flex. Updated the 
2845241973SjkimWindows 
2846241973Sjkimproject file to invoke these tools from the standard location. ACPICA BZ 
2847241973Sjkim904. 
2848233250SjkimVersions supported:
2849233250Sjkim    Flex for Windows:  V2.5.4
2850233250Sjkim    Bison for Windows: V2.4.1
2851233250Sjkim
2852233250Sjkim----------------------------------------
2853231844Sjkim15 February 2012. Summary of changes for version 20120215:
2854231844Sjkim
2855231844Sjkim
2856231844Sjkim1) ACPICA Core Subsystem:
2857231844Sjkim
2858231844SjkimThere have been some major changes to the sleep/wake support code, as 
2859231844Sjkimdescribed below (a - e).
2860231844Sjkim
2861231844Sjkima) The AcpiLeaveSleepState has been split into two interfaces, similar to 
2862231844SjkimAcpiEnterSleepStatePrep and AcpiEnterSleepState. The new interface is 
2863241973SjkimAcpiLeaveSleepStatePrep. This allows the host to perform actions between 
2864241973Sjkimthe 
2865241973Sjkimtime the _BFS method is called and the _WAK method is called. NOTE: all 
2866241973Sjkimhosts 
2867241973Sjkimmust update their wake/resume code or else sleep/wake will not work 
2868241973Sjkimproperly. 
2869231844SjkimRafael Wysocki.
2870231844Sjkim
2871241973Sjkimb) In AcpiLeaveSleepState, now enable all runtime GPEs before calling the 
2872241973Sjkim_WAK 
2873241973Sjkimmethod. Some machines require that the GPEs are enabled before the _WAK 
2874241973Sjkimmethod 
2875231844Sjkimis executed. Thomas Renninger.
2876231844Sjkim
2877253690Sjkimc) In AcpiLeaveSleepState, now always clear the WAK_STS (wake status) 
2878253690Sjkimbit. 
2879241973SjkimSome BIOS code assumes that WAK_STS will be cleared on resume and use it 
2880241973Sjkimto 
2881231844Sjkimdetermine whether the system is rebooting or resuming. Matthew Garrett.
2882231844Sjkim
2883241973Sjkimd) Move the invocations of _GTS (Going To Sleep) and _BFS (Back From 
2884241973SjkimSleep) to 
2885231844Sjkimmatch the ACPI specification requirement. Rafael Wysocki.
2886231844Sjkim
2887231844Sjkime) Implemented full support for the ACPI 5.0 SleepStatus and SleepControl 
2888231844Sjkimregisters within the V5 FADT. This support adds two new files: 
2889241973Sjkimhardware/hwesleep.c implements the support for the new registers. Moved 
2890241973Sjkimall 
2891231844Sjkimsleep/wake external interfaces to hardware/hwxfsleep.c.
2892231844Sjkim
2893231844Sjkim
2894231844SjkimAdded a new OSL interface for ACPI table overrides, 
2895231844SjkimAcpiOsPhysicalTableOverride. This interface allows the host to override a 
2896231844Sjkimtable via a physical address, instead of the logical address required by 
2897231844SjkimAcpiOsTableOverride. This simplifies the host implementation. Initial 
2898241973Sjkimimplementation by Thomas Renninger. The ACPICA implementation creates a 
2899241973Sjkimsingle 
2900231844Sjkimshared function for table overrides that attempts both a logical and a 
2901231844Sjkimphysical override.
2902231844Sjkim
2903231844SjkimExpanded the OSL memory read/write interfaces to 64-bit data 
2904231844Sjkim(AcpiOsReadMemory, AcpiOsWriteMemory.) This enables full 64-bit memory 
2905241973Sjkimtransfer support for GAS register structures passed to AcpiRead and 
2906241973SjkimAcpiWrite.
2907231844Sjkim
2908241973SjkimImplemented the ACPI_REDUCED_HARDWARE option to allow the creation of a 
2909241973Sjkimcustom 
2910241973Sjkimbuild of ACPICA that supports only the ACPI 5.0 reduced hardware (SoC) 
2911241973Sjkimmodel. 
2912241973SjkimSee the ACPICA reference for details. ACPICA BZ 942. This option removes 
2913241973Sjkimabout 
2914253690Sjkim10% of the code and 5% of the static data, and the following hardware 
2915253690SjkimACPI 
2916231844Sjkimfeatures become unavailable:
2917231844Sjkim    PM Event and Control registers
2918231844Sjkim    SCI interrupt (and handler)
2919231844Sjkim    Fixed Events
2920231844Sjkim    General Purpose Events (GPEs)
2921231844Sjkim    Global Lock
2922231844Sjkim    ACPI PM timer
2923231844Sjkim    FACS table (Waking vectors and Global Lock)
2924231844Sjkim
2925241973SjkimUpdated the unix tarball directory structure to match the ACPICA git 
2926241973Sjkimsource 
2927231844Sjkimtree. This ensures that the generic unix makefiles work properly (in 
2928253690Sjkimgenerate/unix).  Also updated the Linux makefiles to match. ACPICA BZ 
2929253690Sjkim867.
2930231844Sjkim
2931241973SjkimUpdated the return value of the _REV predefined method to integer value 5 
2932241973Sjkimto 
2933231844Sjkimreflect ACPI 5.0 support.
2934231844Sjkim
2935241973SjkimMoved the external ACPI PM timer interface prototypes to the public 
2936241973Sjkimacpixf.h 
2937231844Sjkimfile where they belong.
2938231844Sjkim
2939231844SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2940241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2941241973Sjkimdebug 
2942241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2943241973Sjkimmuch 
2944231844Sjkimlarger code and data size.
2945231844Sjkim
2946231844Sjkim  Previous Release:
2947231844Sjkim    Non-Debug Version:  92.8K Code, 24.9K Data, 117.7K Total
2948231844Sjkim    Debug Version:     171.7K Code, 72.9K Data, 244.5K Total
2949231844Sjkim  Current Release:
2950231844Sjkim    Non-Debug Version:  93.0K Code, 25.0K Data, 118.0K Total
2951231844Sjkim    Debug Version:     172.5K Code, 73.2K Data, 245.7K Total
2952231844Sjkim
2953231844Sjkim
2954231844Sjkim2) iASL Compiler/Disassembler and Tools:
2955231844Sjkim
2956231844SjkimDisassembler: Fixed a problem with the new ACPI 5.0 serial resource 
2957231844Sjkimdescriptors (I2C, SPI, UART) where the resource produce/consumer bit was 
2958231844Sjkimincorrectly displayed.
2959231844Sjkim
2960231844SjkimAcpiHelp: Add display of ACPI/PNP device IDs that are defined in the ACPI 
2961231844Sjkimspecification.
2962231844Sjkim
2963231844Sjkim----------------------------------------
2964229989Sjkim11 January 2012. Summary of changes for version 20120111:
2965229989Sjkim
2966229989Sjkim
2967229989Sjkim1) ACPICA Core Subsystem:
2968229989Sjkim
2969241973SjkimImplemented a new mechanism to allow host device drivers to check for 
2970241973Sjkimaddress 
2971241973Sjkimrange conflicts with ACPI Operation Regions. Both SystemMemory and 
2972241973SjkimSystemIO 
2973241973Sjkimaddress spaces are supported. A new external interface, 
2974241973SjkimAcpiCheckAddressRange, 
2975241973Sjkimallows drivers to check an address range against the ACPI namespace. See 
2976241973Sjkimthe 
2977229989SjkimACPICA reference for additional details. Adds one new file, 
2978229989Sjkimutilities/utaddress.c. Lin Ming, Bob Moore.
2979229989Sjkim
2980253690SjkimFixed several issues with the ACPI 5.0 FADT support: Add the sleep 
2981253690SjkimControl 
2982241973Sjkimand 
2983229989SjkimStatus registers, update the ACPI 5.0 flags, and update internal data 
2984241973Sjkimstructures to handle an FADT larger than 256 bytes. The size of the ACPI 
2985241973Sjkim5.0 
2986229989SjkimFADT is 268 bytes.
2987229989Sjkim
2988241973SjkimUpdated all ACPICA copyrights and signons to 2012. Added the 2012 
2989241973Sjkimcopyright to 
2990229989Sjkimall module headers and signons, including the standard Linux header. This 
2991241973Sjkimaffects virtually every file in the ACPICA core subsystem, iASL compiler, 
2992241973Sjkimand 
2993229989Sjkimall ACPICA utilities.
2994229989Sjkim
2995229989SjkimExample Code and Data Size: These are the sizes for the OS-independent 
2996241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
2997241973Sjkimdebug 
2998241973Sjkimversion of the code includes the debug output trace mechanism and has a 
2999241973Sjkimmuch 
3000229989Sjkimlarger code and data size.
3001229989Sjkim
3002229989Sjkim  Previous Release:
3003229989Sjkim    Non-Debug Version:  92.3K Code, 24.9K Data, 117.2K Total
3004229989Sjkim    Debug Version:     170.8K Code, 72.6K Data, 243.4K Total
3005229989Sjkim  Current Release:
3006229989Sjkim    Non-Debug Version:  92.8K Code, 24.9K Data, 117.7K Total
3007229989Sjkim    Debug Version:     171.7K Code, 72.9K Data, 244.5K Total
3008229989Sjkim
3009229989Sjkim
3010229989Sjkim2) iASL Compiler/Disassembler and Tools:
3011229989Sjkim
3012229989SjkimDisassembler: fixed a problem with the automatic resource tag generation 
3013229989Sjkimsupport. Fixes a problem where the resource tags are inadvertently not 
3014241973Sjkimconstructed if the table being disassembled contains external references 
3015241973Sjkimto 
3016241973Sjkimcontrol methods. Moved the actual construction of the tags to after the 
3017241973Sjkimfinal 
3018241973Sjkimnamespace is constructed (after 2nd parse is invoked due to external 
3019241973Sjkimcontrol 
3020229989Sjkimmethod references.) ACPICA BZ 941.
3021229989Sjkim
3022241973SjkimTable Compiler: Make all "generic" operators caseless. These are the 
3023241973Sjkimoperators 
3024241973Sjkimlike UINT8, String, etc. Making these caseless improves ease-of-use. 
3025241973SjkimACPICA BZ 
3026229989Sjkim934.
3027229989Sjkim
3028229989Sjkim----------------------------------------
3029228110Sjkim23 November 2011. Summary of changes for version 20111123:
3030222544Sjkim
3031228110Sjkim0) ACPI 5.0 Support:
3032228110Sjkim
3033228110SjkimThis release contains full support for the ACPI 5.0 specification, as 
3034228110Sjkimsummarized below.
3035228110Sjkim
3036228110SjkimReduced Hardware Support:
3037228110Sjkim-------------------------
3038228110Sjkim
3039253690SjkimThis support allows for ACPI systems without the usual ACPI hardware. 
3040253690SjkimThis 
3041241973Sjkimsupport is enabled by a flag in the revision 5 FADT. If it is set, ACPICA 
3042241973Sjkimwill 
3043241973Sjkimnot attempt to initialize or use any of the usual ACPI hardware. Note, 
3044241973Sjkimwhen 
3045228110Sjkimthis flag is set, all of the following ACPI hardware is assumed to be not 
3046228110Sjkimpresent and is not initialized or accessed:
3047228110Sjkim
3048228110Sjkim    General Purpose Events (GPEs)
3049228110Sjkim    Fixed Events (PM1a/PM1b and PM Control)
3050228110Sjkim    Power Management Timer and Console Buttons (power/sleep)
3051228110Sjkim    Real-time Clock Alarm
3052228110Sjkim    Global Lock
3053228110Sjkim    System Control Interrupt (SCI)
3054228110Sjkim    The FACS is assumed to be non-existent
3055228110Sjkim
3056228110SjkimACPI Tables:
3057228110Sjkim------------
3058228110Sjkim
3059228110SjkimAll new tables and updates to existing tables are fully supported in the 
3060253690SjkimACPICA headers (for use by device drivers), the disassembler, and the 
3061253690SjkimiASL 
3062228110SjkimData Table Compiler. ACPI 5.0 defines these new tables:
3063228110Sjkim
3064228110Sjkim    BGRT        /* Boot Graphics Resource Table */
3065228110Sjkim    DRTM        /* Dynamic Root of Trust for Measurement table */
3066228110Sjkim    FPDT        /* Firmware Performance Data Table */
3067228110Sjkim    GTDT        /* Generic Timer Description Table */
3068228110Sjkim    MPST        /* Memory Power State Table */
3069228110Sjkim    PCCT        /* Platform Communications Channel Table */
3070228110Sjkim    PMTT        /* Platform Memory Topology Table */
3071228110Sjkim    RASF        /* RAS Feature table */
3072228110Sjkim
3073228110SjkimOperation Regions/SpaceIDs:
3074228110Sjkim---------------------------
3075228110Sjkim
3076228110SjkimAll new operation regions are fully supported by the iASL compiler, the 
3077241973Sjkimdisassembler, and the ACPICA runtime code (for dispatch to region 
3078241973Sjkimhandlers.) 
3079228110SjkimThe new operation region Space IDs are:
3080228110Sjkim
3081228110Sjkim    GeneralPurposeIo
3082228110Sjkim    GenericSerialBus
3083228110Sjkim
3084228110SjkimResource Descriptors:
3085228110Sjkim---------------------
3086228110Sjkim
3087253690SjkimAll new ASL resource descriptors are fully supported by the iASL 
3088253690Sjkimcompiler, 
3089241973Sjkimthe 
3090241973SjkimASL/AML disassembler, and the ACPICA runtime Resource Manager code 
3091241973Sjkim(including 
3092228110Sjkimall new predefined resource tags). New descriptors are:
3093228110Sjkim
3094228110Sjkim    FixedDma
3095228110Sjkim    GpioIo
3096228110Sjkim    GpioInt
3097228110Sjkim    I2cSerialBus
3098228110Sjkim    SpiSerialBus
3099228110Sjkim    UartSerialBus
3100228110Sjkim
3101228110SjkimASL/AML Operators, New and Modified:
3102228110Sjkim------------------------------------
3103228110Sjkim
3104241973SjkimOne new operator is added, the Connection operator, which is used to 
3105241973Sjkimassociate 
3106253690Sjkima GeneralPurposeIo or GenericSerialBus resource descriptor with 
3107253690Sjkimindividual 
3108241973Sjkimfield objects within an operation region. Several new protocols are 
3109241973Sjkimassociated 
3110228110Sjkimwith the AccessAs operator. All are fully supported by the iASL compiler, 
3111228110Sjkimdisassembler, and runtime ACPICA AML interpreter:
3112228110Sjkim
3113253690Sjkim    Connection                      // Declare Field Connection 
3114253690Sjkimattributes
3115228110Sjkim    AccessAs: AttribBytes (n)           // Read/Write N-Bytes Protocol
3116253690Sjkim    AccessAs: AttribRawBytes (n)        // Raw Read/Write N-Bytes 
3117253690SjkimProtocol
3118228110Sjkim    AccessAs: AttribRawProcessBytes (n) // Raw Process Call Protocol
3119241973Sjkim    RawDataBuffer                       // Data type for Vendor Data 
3120241973Sjkimfields
3121228110Sjkim
3122228110SjkimPredefined ASL/AML Objects:
3123228110Sjkim---------------------------
3124228110Sjkim
3125241973SjkimAll new predefined objects/control-methods are supported by the iASL 
3126241973Sjkimcompiler 
3127241973Sjkimand the ACPICA runtime validation/repair (arguments and return values.) 
3128241973SjkimNew 
3129228110Sjkimpredefined names include the following:
3130228110Sjkim
3131228110SjkimStandard Predefined Names (Objects or Control Methods):
3132228110Sjkim    _AEI, _CLS, _CPC, _CWS, _DEP,
3133228110Sjkim    _DLM, _EVT, _GCP, _CRT, _GWS,
3134228110Sjkim    _HRV, _PRE, _PSE, _SRT, _SUB.
3135228110Sjkim
3136228110SjkimResource Tags (Names used to access individual fields within resource 
3137228110Sjkimdescriptors):
3138228110Sjkim    _DBT, _DPL, _DRS, _END, _FLC,
3139228110Sjkim    _IOR, _LIN, _MOD, _PAR, _PHA,
3140228110Sjkim    _PIN, _PPI, _POL, _RXL, _SLV,
3141228110Sjkim    _SPE, _STB, _TXL, _VEN.
3142228110Sjkim
3143228110SjkimACPICA External Interfaces:
3144228110Sjkim---------------------------
3145228110Sjkim
3146228110SjkimSeveral new interfaces have been defined for use by ACPI-related device 
3147228110Sjkimdrivers and other host OS services:
3148228110Sjkim
3149241973SjkimAcpiAcquireMutex and AcpiReleaseMutex: These interfaces allow the host OS 
3150241973Sjkimto 
3151228110Sjkimacquire and release AML mutexes that are defined in the DSDT/SSDT tables 
3152253690Sjkimprovided by the BIOS. They are intended to be used in conjunction with 
3153253690Sjkimthe 
3154228110SjkimACPI 5.0 _DLM (Device Lock Method) in order to provide transaction-level 
3155228110Sjkimmutual exclusion with the AML code/interpreter.
3156228110Sjkim
3157241973SjkimAcpiGetEventResources: Returns the (formatted) resource descriptors as 
3158241973Sjkimdefined 
3159241973Sjkimby the ACPI 5.0 _AEI object (ACPI Event Information).  This object 
3160241973Sjkimprovides 
3161241973Sjkimresource descriptors associated with hardware-reduced platform events, 
3162241973Sjkimsimilar 
3163228110Sjkimto the AcpiGetCurrentResources interface.
3164228110Sjkim
3165228110SjkimOperation Region Handlers: For General Purpose IO and Generic Serial Bus 
3166241973Sjkimoperation regions, information about the Connection() object and any 
3167241973Sjkimoptional 
3168228110Sjkimlength information is passed to the region handler within the Context 
3169228110Sjkimparameter.
3170228110Sjkim
3171241973SjkimAcpiBufferToResource: This interface converts a raw AML buffer containing 
3172241973Sjkima 
3173241973Sjkimresource template or resource descriptor to the ACPI_RESOURCE internal 
3174241973Sjkimformat 
3175241973Sjkimsuitable for use by device drivers. Can be used by an operation region 
3176241973Sjkimhandler 
3177228110Sjkimto convert the Connection() buffer object into a ACPI_RESOURCE.
3178228110Sjkim
3179228110SjkimMiscellaneous/Tools/TestSuites: 
3180228110Sjkim-------------------------------
3181228110Sjkim
3182228110SjkimSupport for extended _HID names (Four alpha characters instead of three).
3183228110SjkimSupport for ACPI 5.0 features in the AcpiExec and AcpiHelp utilities.
3184228110SjkimSupport for ACPI 5.0 features in the ASLTS test suite.
3185228110SjkimFully updated documentation (ACPICA and iASL reference documents.)
3186228110Sjkim
3187228110SjkimACPI Table Definition Language:
3188228110Sjkim-------------------------------
3189228110Sjkim
3190241973SjkimSupport for this language was implemented and released as a subsystem of 
3191241973Sjkimthe 
3192228110SjkimiASL compiler in 2010. (See the iASL compiler User Guide.)
3193228110Sjkim
3194228110Sjkim
3195228110SjkimNon-ACPI 5.0 changes for this release:
3196228110Sjkim--------------------------------------
3197228110Sjkim
3198228110Sjkim1) ACPICA Core Subsystem:
3199228110Sjkim
3200253690SjkimFix a problem with operation region declarations where a failure can 
3201253690Sjkimoccur 
3202241973Sjkimif 
3203228110Sjkimthe region name and an argument that evaluates to an object (such as the 
3204241973Sjkimregion address) are in different namespace scopes. Lin Ming, ACPICA BZ 
3205241973Sjkim937.
3206228110Sjkim
3207241973SjkimDo not abort an ACPI table load if an invalid space ID is found within. 
3208241973SjkimThis 
3209228110Sjkimwill be caught later if the offending method is executed. ACPICA BZ 925.
3210228110Sjkim
3211228110SjkimFixed an issue with the FFixedHW space ID where the ID was not always 
3212228110Sjkimrecognized properly (Both ACPICA and iASL). ACPICA BZ 926.
3213228110Sjkim
3214228110SjkimFixed a problem with the 32-bit generation of the unix-specific OSL 
3215228110Sjkim(osunixxf.c). Lin Ming, ACPICA BZ 936.
3216228110Sjkim
3217241973SjkimSeveral changes made to enable generation with the GCC 4.6 compiler. 
3218241973SjkimACPICA BZ 
3219228110Sjkim935.
3220228110Sjkim
3221241973SjkimNew error messages: Unsupported I/O requests (not 8/16/32 bit), and 
3222241973SjkimIndex/Bank 
3223228110Sjkimfield registers out-of-range.
3224228110Sjkim
3225228110Sjkim2) iASL Compiler/Disassembler and Tools:
3226228110Sjkim
3227241973SjkimiASL: Implemented the __PATH__ operator, which returns the full pathname 
3228241973Sjkimof 
3229228110Sjkimthe current source file.
3230228110Sjkim
3231228110SjkimAcpiHelp: Automatically display expanded keyword information for all ASL 
3232228110Sjkimoperators.
3233228110Sjkim
3234228110SjkimDebugger: Add "Template" command to disassemble/dump resource template 
3235228110Sjkimbuffers.
3236228110Sjkim
3237228110SjkimAdded a new master script to generate and execute the ASLTS test suite. 
3238228110SjkimAutomatically handles 32- and 64-bit generation. See tests/aslts.sh
3239228110Sjkim
3240241973SjkimiASL: Fix problem with listing generation during processing of the 
3241241973SjkimSwitch() 
3242228110Sjkimoperator where AML listing was disabled until the entire Switch block was 
3243228110Sjkimcompleted.
3244228110Sjkim
3245228110SjkimiASL: Improve support for semicolon statement terminators. Fix "invalid 
3246241973Sjkimcharacter" message for some cases when the semicolon is used. Semicolons 
3247241973Sjkimare 
3248228110Sjkimnow allowed after every <Term> grammar element. ACPICA BZ 927.
3249228110Sjkim
3250241973SjkimiASL: Fixed some possible aliasing warnings during generation. ACPICA BZ 
3251241973Sjkim923.
3252228110Sjkim
3253253690SjkimDisassembler: Fix problem with disassembly of the DataTableRegion 
3254253690Sjkimoperator 
3255241973Sjkimwhere an inadvertent "Unhandled deferred opcode" message could be 
3256241973Sjkimgenerated.
3257228110Sjkim
3258228110Sjkim3) Example Code and Data Size
3259228110Sjkim
3260228110SjkimThese are the sizes for the OS-independent acpica.lib produced by the 
3261228110SjkimMicrosoft Visual C++ 9.0 32-bit compiler. The debug version of the code 
3262241973Sjkimincludes the debug output trace mechanism and has a much larger code and 
3263241973Sjkimdata 
3264228110Sjkimsize.
3265228110Sjkim
3266228110Sjkim  Previous Release:
3267228110Sjkim    Non-Debug Version:  90.2K Code, 23.9K Data, 114.1K Total
3268228110Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3269228110Sjkim  Current Release:
3270228110Sjkim    Non-Debug Version:  92.3K Code, 24.9K Data, 117.2K Total
3271228110Sjkim    Debug Version:     170.8K Code, 72.6K Data, 243.4K Total
3272228110Sjkim
3273228110Sjkim----------------------------------------
3274228110Sjkim22 September 2011. Summary of changes for version 20110922:
3275228110Sjkim
3276228110Sjkim0) ACPI 5.0 News:
3277228110Sjkim
3278241973SjkimSupport for ACPI 5.0 in ACPICA has been underway for several months and 
3279241973Sjkimwill 
3280228110Sjkimbe released at the same time that ACPI 5.0 is officially released.
3281228110Sjkim
3282253690SjkimThe ACPI 5.0 specification is on track for release in the next few 
3283253690Sjkimmonths.
3284228110Sjkim 
3285228110Sjkim1) ACPICA Core Subsystem:
3286228110Sjkim
3287228110SjkimFixed a problem where the maximum sleep time for the Sleep() operator was 
3288253690Sjkimintended to be limited to two seconds, but was inadvertently limited to 
3289253690Sjkim20 
3290228110Sjkimseconds instead.
3291228110Sjkim
3292253690SjkimLinux and Unix makefiles: Added header file dependencies to ensure 
3293253690Sjkimcorrect 
3294241973Sjkimgeneration of ACPICA core code and utilities. Also simplified the 
3295241973Sjkimmakefiles 
3296241973Sjkimconsiderably through the use of the vpath variable to specify search 
3297241973Sjkimpaths. 
3298228110SjkimACPICA BZ 924.
3299228110Sjkim
3300228110Sjkim2) iASL Compiler/Disassembler and Tools:
3301228110Sjkim
3302241973SjkimiASL: Implemented support to check the access length for all fields 
3303241973Sjkimcreated to 
3304241973Sjkimaccess named Resource Descriptor fields. For example, if a resource field 
3305241973Sjkimis 
3306253690Sjkimdefined to be two bits, a warning is issued if a CreateXxxxField() is 
3307253690Sjkimused 
3308253690Sjkimwith an incorrect bit length. This is implemented for all current 
3309253690Sjkimresource 
3310228110Sjkimdescriptor names. ACPICA BZ 930.
3311228110Sjkim  
3312241973SjkimDisassembler: Fixed a byte ordering problem with the output of 24-bit and 
3313241973Sjkim56-
3314228110Sjkimbit integers.
3315228110Sjkim
3316228110SjkimiASL: Fixed a couple of issues associated with variable-length package 
3317241973Sjkimobjects. 1) properly handle constants like One, Ones, Zero -- do not make 
3318241973Sjkima 
3319241973SjkimVAR_PACKAGE when these are used as a package length. 2) Allow the 
3320241973SjkimVAR_PACKAGE 
3321241973Sjkimopcode (in addition to PACKAGE) when validating object types for 
3322241973Sjkimpredefined 
3323228110Sjkimnames.
3324228110Sjkim
3325241973SjkimiASL: Emit statistics for all output files (instead of just the ASL input 
3326241973Sjkimand 
3327228110SjkimAML output). Includes listings, hex files, etc.
3328228110Sjkim
3329241973SjkimiASL: Added -G option to the table compiler to allow the compilation of 
3330241973Sjkimcustom 
3331253690SjkimACPI tables. The only part of a table that is required is the standard 
3332253690Sjkim36-
3333241973Sjkimbyte 
3334228110SjkimACPI header.
3335228110Sjkim
3336241973SjkimAcpiXtract: Ported to the standard ACPICA environment (with ACPICA 
3337241973Sjkimheaders), 
3338253690Sjkimwhich also adds correct 64-bit support. Also, now all output filenames 
3339253690Sjkimare 
3340228110Sjkimcompletely lower case.
3341228110Sjkim
3342228110SjkimAcpiExec: Ignore any non-AML tables (tables other than DSDT or SSDT) when 
3343228110Sjkimloading table files. A warning is issued for any such tables. The only 
3344241973Sjkimexception is an FADT. This also fixes a possible fault when attempting to 
3345241973Sjkimload 
3346228110Sjkimnon-AML tables. ACPICA BZ 932.
3347228110Sjkim
3348253690SjkimAcpiHelp: Added the AccessAs and Offset operators. Fixed a problem where 
3349253690Sjkima 
3350228110Sjkimmissing table terminator could cause a fault when using the -p option.
3351228110Sjkim
3352228110SjkimAcpiSrc: Fixed a possible divide-by-zero fault when generating file 
3353228110Sjkimstatistics.
3354228110Sjkim
3355228110Sjkim3) Example Code and Data Size
3356228110Sjkim
3357228110SjkimThese are the sizes for the OS-independent acpica.lib produced by the 
3358228110SjkimMicrosoft Visual C++ 9.0 32-bit compiler. The debug version of the code 
3359241973Sjkimincludes the debug output trace mechanism and has a much larger code and 
3360241973Sjkimdata 
3361228110Sjkimsize.
3362228110Sjkim
3363228110Sjkim  Previous Release (VC 9.0):
3364228110Sjkim    Non-Debug Version:  90.2K Code, 23.9K Data, 114.1K Total
3365228110Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3366228110Sjkim  Current Release (VC 9.0):
3367228110Sjkim    Non-Debug Version:  90.2K Code, 23.9K Data, 114.1K Total
3368228110Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3369228110Sjkim
3370228110Sjkim
3371228110Sjkim----------------------------------------
3372228110Sjkim23 June 2011. Summary of changes for version 20110623:
3373228110Sjkim
3374222544Sjkim1) ACPI CA Core Subsystem:
3375222544Sjkim
3376241973SjkimUpdated the predefined name repair mechanism to not attempt repair of a 
3377241973Sjkim_TSS 
3378241973Sjkimreturn object if a _PSS object is present. We can only sort the _TSS 
3379241973Sjkimreturn 
3380253690Sjkimpackage if there is no _PSS within the same scope. This is because if 
3381253690Sjkim_PSS 
3382241973Sjkimis 
3383241973Sjkimpresent, the ACPI specification dictates that the _TSS Power Dissipation 
3384241973Sjkimfield 
3385241973Sjkimis to be ignored, and therefore some BIOSs leave garbage values in the 
3386241973Sjkim_TSS 
3387241973SjkimPower field(s). In this case, it is best to just return the _TSS package 
3388241973Sjkimas-
3389228110Sjkimis. Reported by, and fixed with assistance from Fenghua Yu.
3390228110Sjkim
3391241973SjkimAdded an option to globally disable the control method return value 
3392241973Sjkimvalidation 
3393253690Sjkimand repair. This runtime option can be used to disable return value 
3394253690Sjkimrepair 
3395241973Sjkimif 
3396253690Sjkimthis is causing a problem on a particular machine. Also added an option 
3397253690Sjkimto 
3398228110SjkimAcpiExec (-dr) to set this disable flag.
3399228110Sjkim
3400241973SjkimAll makefiles and project files: Major changes to improve generation of 
3401241973SjkimACPICA 
3402228110Sjkimtools. ACPICA BZ 912:
3403228110Sjkim    Reduce default optimization levels to improve compatibility
3404228110Sjkim    For Linux, add strict-aliasing=0 for gcc 4
3405228110Sjkim    Cleanup and simplify use of command line defines
3406228110Sjkim    Cleanup multithread library support
3407228110Sjkim    Improve usage messages
3408228110Sjkim
3409241973SjkimLinux-specific header: update handling of THREAD_ID and pthread. For the 
3410241973Sjkim32-
3411241973Sjkimbit case, improve casting to eliminate possible warnings, especially with 
3412241973Sjkimthe 
3413228110Sjkimacpica tools.
3414228110Sjkim
3415228110SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3416241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
3417241973Sjkimdebug 
3418241973Sjkimversion of the code includes the debug output trace mechanism and has a 
3419241973Sjkimmuch 
3420228110Sjkimlarger code and data size.
3421228110Sjkim
3422228110Sjkim  Previous Release (VC 9.0):
3423228110Sjkim    Non-Debug Version:  90.1K Code, 23.9K Data, 114.0K Total
3424228110Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3425228110Sjkim  Current Release (VC 9.0):
3426228110Sjkim    Non-Debug Version:  90.2K Code, 23.9K Data, 114.1K Total
3427228110Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3428228110Sjkim
3429228110Sjkim2) iASL Compiler/Disassembler and Tools:
3430228110Sjkim
3431241973SjkimWith this release, a new utility named "acpihelp" has been added to the 
3432241973SjkimACPICA 
3433241973Sjkimpackage. This utility summarizes the ACPI specification chapters for the 
3434241973SjkimASL 
3435228110Sjkimand AML languages. It generates under Linux/Unix as well as Windows, and 
3436228110Sjkimprovides the following functionality:
3437228110Sjkim    Find/display ASL operator(s) -- with description and syntax.
3438228110Sjkim    Find/display ASL keyword(s) -- with exact spelling and descriptions.
3439228110Sjkim    Find/display ACPI predefined name(s) -- with description, number
3440228110Sjkim        of arguments, and the return value data type.
3441241973Sjkim    Find/display AML opcode name(s) -- with opcode, arguments, and 
3442241973Sjkimgrammar.
3443253690Sjkim    Decode/display AML opcode -- with opcode name, arguments, and 
3444253690Sjkimgrammar.
3445228110Sjkim
3446241973SjkimService Layers: Make multi-thread support configurable. Conditionally 
3447241973Sjkimcompile 
3448253690Sjkimthe multi-thread support so that threading libraries will not be linked 
3449253690Sjkimif 
3450241973Sjkimnot 
3451228110Sjkimnecessary. The only tool that requires multi-thread support is AcpiExec.
3452228110Sjkim
3453241973SjkimiASL: Update yyerrror/AslCompilerError for "const" errors. Newer versions 
3454241973Sjkimof 
3455228110SjkimBison appear to want the interface to yyerror to be a const char * (or at 
3456241973Sjkimleast this is a problem when generating iASL on some systems.) ACPICA BZ 
3457241973Sjkim923 
3458228110SjkimPierre Lejeune.
3459228110Sjkim
3460241973SjkimTools: Fix for systems where O_BINARY is not defined. Only used for 
3461241973SjkimWindows 
3462228110Sjkimversions of the tools.
3463228110Sjkim
3464228110Sjkim----------------------------------------
3465228110Sjkim27 May 2011. Summary of changes for version 20110527:
3466228110Sjkim
3467228110Sjkim1) ACPI CA Core Subsystem:
3468228110Sjkim
3469241973SjkimASL Load() operator: Reinstate most restrictions on the incoming ACPI 
3470241973Sjkimtable 
3471222544Sjkimsignature. Now, only allow SSDT, OEMx, and a null signature. History:
3472222544Sjkim    1) Originally, we checked the table signature for "SSDT" or "PSDT".
3473222544Sjkim       (PSDT is now obsolete.)
3474222544Sjkim    2) We added support for OEMx tables, signature "OEM" plus a fourth
3475222544Sjkim       "don't care" character.
3476222544Sjkim    3) Valid tables were encountered with a null signature, so we just
3477222544Sjkim       gave up on validating the signature, (05/2008).
3478222544Sjkim    4) We encountered non-AML tables such as the MADT, which caused
3479222544Sjkim       interpreter errors and kernel faults. So now, we once again allow
3480222544Sjkim       only SSDT, OEMx, and now, also a null signature. (05/2011).
3481222544Sjkim
3482253690SjkimAdded the missing _TDL predefined name to the global name list in order 
3483253690Sjkimto 
3484241973Sjkimenable validation. Affects both the core ACPICA code and the iASL 
3485241973Sjkimcompiler.
3486222544Sjkim
3487222544SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3488241973Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
3489241973Sjkimdebug 
3490241973Sjkimversion of the code includes the debug output trace mechanism and has a 
3491241973Sjkimmuch 
3492222544Sjkimlarger code and data size.
3493222544Sjkim
3494222544Sjkim  Previous Release (VC 9.0):
3495222544Sjkim    Non-Debug Version:  90.0K Code, 23.8K Data, 113.8K Total
3496222544Sjkim    Debug Version:     164.5K Code, 68.0K Data, 232.5K Total
3497222544Sjkim  Current Release (VC 9.0):
3498222544Sjkim    Non-Debug Version:  90.1K Code, 23.9K Data, 114.0K Total
3499222544Sjkim    Debug Version:     165.6K Code, 68.4K Data, 234.0K Total
3500222544Sjkim
3501222544Sjkim2) iASL Compiler/Disassembler and Tools:
3502222544Sjkim
3503241973SjkimDebugger/AcpiExec: Implemented support for "complex" method arguments on 
3504241973Sjkimthe 
3505241973Sjkimdebugger command line. This adds support beyond simple integers -- 
3506241973Sjkimincluding 
3507222544SjkimStrings, Buffers, and Packages. Includes support for nested packages. 
3508241973SjkimIncreased the default command line buffer size to accommodate these 
3509241973Sjkimarguments. 
3510222544SjkimSee the ACPICA reference for details and syntax. ACPICA BZ 917.
3511222544Sjkim 
3512241973SjkimDebugger/AcpiExec: Implemented support for "default" method arguments for 
3513241973Sjkimthe 
3514241973SjkimExecute/Debug command. Now, the debugger will always invoke a control 
3515241973Sjkimmethod 
3516241973Sjkimwith the required number of arguments -- even if the command line 
3517241973Sjkimspecifies 
3518241973Sjkimnone or insufficient arguments. It uses default integer values for any 
3519241973Sjkimmissing 
3520222544Sjkimarguments. Also fixes a bug where only six method arguments maximum were 
3521222544Sjkimsupported instead of the required seven.
3522222544Sjkim
3523241973SjkimDebugger/AcpiExec: Add a maximum buffer length parameter to AcpiOsGetLine 
3524241973Sjkimand 
3525222544Sjkimalso return status in order to prevent buffer overruns. See the ACPICA 
3526222544Sjkimreference for details and syntax. ACPICA BZ 921
3527222544Sjkim
3528222544SjkimiASL: Cleaned up support for Berkeley yacc. A general cleanup of code and 
3529222544Sjkimmakefiles to simplify support for the two different but similar parser 
3530222544Sjkimgenerators, bison and yacc.
3531222544Sjkim
3532241973SjkimUpdated the generic unix makefile for gcc 4. The default gcc version is 
3533241973Sjkimnow 
3534222544Sjkimexpected to be 4 or greater, since options specific to gcc 4 are used.
3535222544Sjkim
3536222544Sjkim----------------------------------------
3537220663Sjkim13 April 2011. Summary of changes for version 20110413:
3538220663Sjkim
3539220663Sjkim1) ACPI CA Core Subsystem:
3540220663Sjkim
3541241973SjkimImplemented support to execute a so-called "orphan" _REG method under the 
3542222544SjkimEC 
3543241973Sjkimdevice. This change will force the execution of a _REG method underneath 
3544241973Sjkimthe 
3545241973SjkimEC 
3546220663Sjkimdevice even if there is no corresponding operation region of type 
3547220663SjkimEmbeddedControl. Fixes a problem seen on some machines and apparently is 
3548220663Sjkimcompatible with Windows behavior. ACPICA BZ 875.
3549220663Sjkim
3550253690SjkimAdded more predefined methods that are eligible for automatic NULL 
3551253690Sjkimpackage 
3552253690Sjkimelement removal. This change adds another group of predefined names to 
3553253690Sjkimthe 
3554222544Sjkimlist 
3555220663Sjkimof names that can be repaired by having NULL package elements dynamically 
3556253690Sjkimremoved. This group are those methods that return a single variable-
3557253690Sjkimlength 
3558241973Sjkimpackage containing simple data types such as integers, buffers, strings. 
3559241973SjkimThis 
3560241973Sjkimincludes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx, 
3561241973Sjkim_PSL, 
3562222544Sjkim_Sx, 
3563220663Sjkimand _TZD. ACPICA BZ 914.
3564220663Sjkim
3565222544SjkimSplit and segregated all internal global lock functions to a new file, 
3566222544Sjkimevglock.c.
3567220663Sjkim
3568241973SjkimUpdated internal address SpaceID for DataTable regions. Moved this 
3569241973Sjkiminternal 
3570222544Sjkimspace 
3571241973Sjkimid in preparation for ACPI 5.0 changes that will include some new space 
3572241973SjkimIDs. 
3573222544SjkimThis 
3574220663Sjkimchange should not affect user/host code.
3575220663Sjkim
3576222544SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3577222544Sjkimacpica.lib 
3578241973Sjkimproduced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug 
3579241973Sjkimversion of 
3580241973Sjkimthe code includes the debug output trace mechanism and has a much larger 
3581241973Sjkimcode 
3582222544Sjkimand 
3583220663Sjkimdata size.
3584220663Sjkim
3585220663Sjkim  Previous Release (VC 9.0):
3586220663Sjkim    Non-Debug Version:  89.8K Code, 23.8K Data, 113.6K Total
3587220663Sjkim    Debug Version:     164.2K Code, 67.9K Data, 232.1K Total
3588220663Sjkim  Current Release (VC 9.0):
3589220663Sjkim    Non-Debug Version:  90.0K Code, 23.8K Data, 113.8K Total
3590220663Sjkim    Debug Version:     164.5K Code, 68.0K Data, 232.5K Total
3591220663Sjkim
3592220663Sjkim2) iASL Compiler/Disassembler and Tools:
3593220663Sjkim
3594241973SjkimiASL/DTC: Major update for new grammar features. Allow generic data types 
3595241973Sjkimin 
3596253690Sjkimcustom ACPI tables. Field names are now optional. Any line can be split 
3597253690Sjkimto 
3598241973Sjkimmultiple lines using the continuation char (\). Large buffers now use 
3599241973Sjkimline-
3600222544Sjkimcontinuation character(s) and no colon on the continuation lines. See the 
3601222544Sjkimgrammar 
3602241973Sjkimupdate in the iASL compiler reference. ACPI BZ 910,911. Lin Ming, Bob 
3603241973SjkimMoore.
3604220663Sjkim
3605241973SjkimiASL: Mark ASL "Return()" and the simple "Return" as "Null" return 
3606241973Sjkimstatements. 
3607241973SjkimSince the parser stuffs a "zero" as the return value for these statements 
3608241973Sjkim(due 
3609222544Sjkimto 
3610241973Sjkimthe underlying AML grammar), they were seen as "return with value" by the 
3611241973SjkimiASL 
3612241973Sjkimsemantic checking. They are now seen correctly as "null" return 
3613241973Sjkimstatements.
3614220663Sjkim
3615241973SjkimiASL: Check if a_REG declaration has a corresponding Operation Region. 
3616241973SjkimAdds a 
3617241973Sjkimcheck for each _REG to ensure that there is in fact a corresponding 
3618241973Sjkimoperation 
3619222544Sjkimregion declaration in the same scope. If not, the _REG method is not very 
3620222544Sjkimuseful 
3621220663Sjkimsince it probably won't be executed. ACPICA BZ 915.
3622220663Sjkim
3623253690SjkimiASL/DTC: Finish support for expression evaluation. Added a new 
3624253690Sjkimexpression 
3625222544Sjkimparser 
3626222544Sjkimthat implements c-style operator precedence and parenthesization. ACPICA 
3627222544Sjkimbugzilla 
3628220663Sjkim908.
3629220663Sjkim
3630241973SjkimDisassembler/DTC: Remove support for () and <> style comments in data 
3631241973Sjkimtables. 
3632222544SjkimNow 
3633241973Sjkimthat DTC has full expression support, we don't want to have comment 
3634241973Sjkimstrings 
3635222544Sjkimthat 
3636241973Sjkimstart with a parentheses or a less-than symbol. Now, only the standard /* 
3637241973Sjkimand 
3638222544Sjkim// 
3639220663Sjkimcomments are supported, as well as the bracket [] comments.
3640220663Sjkim
3641222544SjkimAcpiXtract: Fix for RSDP and dynamic SSDT extraction. These tables have 
3642222544Sjkim"unusual" 
3643241973Sjkimheaders in the acpidump file. Update the header validation to support 
3644241973Sjkimthese 
3645253690Sjkimtables. Problem introduced in previous AcpiXtract version in the change 
3646253690Sjkimto 
3647220663Sjkimsupport "wrong checksum" error messages emitted by acpidump utility.
3648220663Sjkim
3649253690SjkimiASL: Add a * option to generate all template files (as a synonym for 
3650253690SjkimALL) 
3651241973Sjkimas 
3652222544Sjkimin 
3653220663Sjkim"iasl -T *" or "iasl -T ALL".
3654220663Sjkim
3655241973SjkimiASL/DTC: Do not abort compiler on fatal errors. We do not want to 
3656241973Sjkimcompletely 
3657241973Sjkimabort the compiler on "fatal" errors, simply should abort the current 
3658241973Sjkimcompile. 
3659220663SjkimThis allows multiple compiles with a single (possibly wildcard) compiler 
3660220663Sjkiminvocation.
3661220663Sjkim
3662220663Sjkim----------------------------------------
3663219707Sjkim16 March 2011. Summary of changes for version 20110316:
3664219707Sjkim
3665219707Sjkim1) ACPI CA Core Subsystem:
3666219707Sjkim
3667241973SjkimFixed a problem caused by a _PRW method appearing at the namespace root 
3668241973Sjkimscope 
3669241973Sjkimduring the setup of wake GPEs. A fault could occur if a _PRW directly 
3670241973Sjkimunder 
3671222544Sjkimthe 
3672219707Sjkimroot object was passed to the AcpiSetupGpeForWake interface. Lin Ming.
3673219707Sjkim
3674241973SjkimImplemented support for "spurious" Global Lock interrupts. On some 
3675241973Sjkimsystems, a 
3676253690Sjkimglobal lock interrupt can occur without the pending flag being set. Upon 
3677253690Sjkima 
3678241973SjkimGL 
3679241973Sjkiminterrupt, we now ensure that a thread is actually waiting for the lock 
3680241973Sjkimbefore 
3681219707Sjkimsignaling GL availability. Rafael Wysocki, Bob Moore.
3682219707Sjkim
3683222544SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3684222544Sjkimacpica.lib 
3685241973Sjkimproduced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug 
3686241973Sjkimversion of 
3687241973Sjkimthe code includes the debug output trace mechanism and has a much larger 
3688241973Sjkimcode 
3689222544Sjkimand 
3690219707Sjkimdata size.
3691219707Sjkim
3692219707Sjkim  Previous Release (VC 9.0):
3693219707Sjkim    Non-Debug Version:  89.7K Code, 23.7K Data, 113.4K Total
3694219707Sjkim    Debug Version:     163.9K Code, 67.5K Data, 231.4K Total
3695219707Sjkim  Current Release (VC 9.0):
3696219707Sjkim    Non-Debug Version:  89.8K Code, 23.8K Data, 113.6K Total
3697219707Sjkim    Debug Version:     164.2K Code, 67.9K Data, 232.1K Total
3698219707Sjkim
3699219707Sjkim2) iASL Compiler/Disassembler and Tools:
3700219707Sjkim
3701241973SjkimImplemented full support for the "SLIC" ACPI table. Includes support in 
3702241973Sjkimthe 
3703241973Sjkimheader files, disassembler, table compiler, and template generator. Bob 
3704241973SjkimMoore, 
3705219707SjkimLin Ming.
3706219707Sjkim
3707253690SjkimAcpiXtract: Correctly handle embedded comments and messages from 
3708253690SjkimAcpiDump. 
3709241973SjkimApparently some or all versions of acpidump will occasionally emit a 
3710241973Sjkimcomment 
3711222544Sjkimlike 
3712219707Sjkim"Wrong checksum", etc., into the dump file. This was causing problems for 
3713219707SjkimAcpiXtract. ACPICA BZ 905.
3714219707Sjkim
3715241973SjkimiASL: Fix the Linux makefile by removing an inadvertent double file 
3716241973Sjkiminclusion. 
3717219707SjkimACPICA BZ 913.
3718219707Sjkim
3719222544SjkimAcpiExec: Update installation of operation region handlers. Install one 
3720222544Sjkimhandler 
3721241973Sjkimfor a user-defined address space. This is used by the ASL test suite 
3722241973Sjkim(ASLTS).
3723219707Sjkim
3724219707Sjkim----------------------------------------
3725218590Sjkim11 February 2011. Summary of changes for version 20110211:
3726218590Sjkim
3727218590Sjkim1) ACPI CA Core Subsystem:
3728218590Sjkim
3729253690SjkimAdded a mechanism to defer _REG methods for some early-installed 
3730253690Sjkimhandlers. 
3731253690SjkimMost user handlers should be installed before call to 
3732253690SjkimAcpiEnableSubsystem. 
3733218590SjkimHowever, Event handlers and region handlers should be installed after 
3734241973SjkimAcpiInitializeObjects. Override handlers for the "default" regions should 
3735241973Sjkimbe 
3736218590Sjkiminstalled early, however. This change executes all _REG methods for the 
3737218590Sjkimdefault regions (Memory/IO/PCI/DataTable) simultaneously to prevent any 
3738218590Sjkimchicken/egg issues between them. ACPICA BZ 848.
3739218590Sjkim
3740241973SjkimImplemented an optimization for GPE detection. This optimization will 
3741241973Sjkimsimply 
3742218590Sjkimignore GPE registers that contain no enabled GPEs -- there is no need to 
3743218590Sjkimread the register since this information is available internally. This 
3744253690Sjkimbecomes more important on machines with a large GPE space. ACPICA 
3745253690Sjkimbugzilla 
3746218590Sjkim884. Lin Ming. Suggestion from Joe Liu.
3747218590Sjkim
3748253690SjkimRemoved all use of the highly unreliable FADT revision field. The 
3749253690Sjkimrevision 
3750241973Sjkimnumber in the FADT has been found to be completely unreliable and cannot 
3751241973Sjkimbe 
3752241973Sjkimtrusted. Only the actual table length can be used to infer the version. 
3753241973SjkimThis 
3754253690Sjkimchange updates the ACPICA core and the disassembler so that both no 
3755253690Sjkimlonger 
3756218590Sjkimeven look at the FADT version and instead depend solely upon the FADT 
3757218590Sjkimlength.
3758218590Sjkim
3759218590SjkimFix an unresolved name issue for the no-debug and no-error-message source 
3760241973Sjkimgeneration cases. The _AcpiModuleName was left undefined in these cases, 
3761241973Sjkimbut 
3762218590Sjkimit is actually needed as a parameter to some interfaces. Define 
3763218590Sjkim_AcpiModuleName as a null string in these cases. ACPICA Bugzilla 888.
3764218590Sjkim
3765218590SjkimSplit several large files (makefiles and project files updated)
3766218590Sjkim  utglobal.c   -> utdecode.c
3767218590Sjkim  dbcomds.c    -> dbmethod.c dbnames.c
3768218590Sjkim  dsopcode.c   -> dsargs.c dscontrol.c
3769218590Sjkim  dsload.c     -> dsload2.c
3770218590Sjkim  aslanalyze.c -> aslbtypes.c aslwalks.c
3771218590Sjkim
3772218590SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3773218590Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
3774241973Sjkimdebug version of the code includes the debug output trace mechanism and 
3775241973Sjkimhas 
3776218590Sjkima much larger code and data size.
3777218590Sjkim
3778218590Sjkim  Previous Release (VC 9.0):
3779218590Sjkim    Non-Debug Version:  89.7K Code, 23.7K Data, 113.4K Total
3780218590Sjkim    Debug Version:     163.9K Code, 67.5K Data, 231.4K Total
3781218590Sjkim  Current Release (VC 9.0):
3782218590Sjkim    Non-Debug Version:  89.7K Code, 23.7K Data, 113.4K Total
3783218590Sjkim    Debug Version:     163.9K Code, 67.5K Data, 231.4K Total
3784218590Sjkim
3785218590Sjkim2) iASL Compiler/Disassembler and Tools:
3786218590Sjkim
3787218590SjkimiASL: Implemented the predefined macros __LINE__, __FILE__, and __DATE__. 
3788218590SjkimThese are useful C-style macros with the standard definitions. ACPICA 
3789218590Sjkimbugzilla 898.
3790218590Sjkim
3791241973SjkimiASL/DTC: Added support for integer expressions and labels. Support for 
3792241973Sjkimfull 
3793241973Sjkimexpressions for all integer fields in all ACPI tables. Support for labels 
3794241973Sjkimin 
3795218590Sjkim"generic" portions of tables such as UEFI. See the iASL reference manual.
3796218590Sjkim
3797218590SjkimDebugger: Added a command to display the status of global handlers. The 
3798218590Sjkim"handlers" command will display op region, fixed event, and miscellaneous 
3799241973Sjkimglobal handlers. installation status -- and for op regions, whether 
3800241973Sjkimdefault 
3801218590Sjkimor user-installed handler will be used.
3802218590Sjkim
3803253690SjkimiASL: Warn if reserved method incorrectly returns a value. Many 
3804253690Sjkimpredefined 
3805241973Sjkimnames are defined such that they do not return a value. If implemented as 
3806241973Sjkima 
3807218590Sjkimmethod, issue a warning if such a name explicitly returns a value. ACPICA 
3808218590SjkimBugzilla 855.
3809218590Sjkim
3810241973SjkimiASL: Added detection of GPE method name conflicts. Detects a conflict 
3811241973Sjkimwhere 
3812241973Sjkimthere are two GPE methods of the form _Lxy and _Exy in the same scope. 
3813241973Sjkim(For 
3814218590Sjkimexample, _L1D and _E1D in the same scope.) ACPICA bugzilla 848.
3815218590Sjkim
3816218590SjkimiASL/DTC: Fixed a couple input scanner issues with comments and line 
3817241973Sjkimnumbers. Comment remover could get confused and miss a comment ending. 
3818241973SjkimFixed 
3819218590Sjkima problem with line counter maintenance.
3820218590Sjkim
3821241973SjkimiASL/DTC: Reduced the severity of some errors from fatal to error. There 
3822241973Sjkimis 
3823218590Sjkimno need to abort on simple errors within a field definition.
3824218590Sjkim
3825241973SjkimDebugger: Simplified the output of the help command. All help output now 
3826241973Sjkimin 
3827218590Sjkima single screen, instead of help subcommands. ACPICA Bugzilla 897.
3828218590Sjkim
3829218590Sjkim----------------------------------------
3830217365Sjkim12 January 2011. Summary of changes for version 20110112:
3831217365Sjkim
3832217365Sjkim1) ACPI CA Core Subsystem:
3833217365Sjkim
3834241973SjkimFixed a race condition between method execution and namespace walks that 
3835241973Sjkimcan 
3836217365Sjkimpossibly cause a fault. The problem was apparently introduced in version 
3837253690Sjkim20100528 as a result of a performance optimization that reduces the 
3838253690Sjkimnumber 
3839241973Sjkimof 
3840217365Sjkimnamespace walks upon method exit by using the delete_namespace_subtree 
3841241973Sjkimfunction instead of the delete_namespace_by_owner function used 
3842241973Sjkimpreviously. 
3843217365SjkimBug is a missing namespace lock in the delete_namespace_subtree function. 
3844217365Sjkimdana.myers@oracle.com
3845217365Sjkim
3846217365SjkimFixed several issues and a possible fault with the automatic "serialized" 
3847241973Sjkimmethod support. History: This support changes a method to "serialized" on 
3848241973Sjkimthe 
3849217365Sjkimfly if the method generates an AE_ALREADY_EXISTS error, indicating the 
3850253690Sjkimpossibility that it cannot handle reentrancy. This fix repairs a couple 
3851253690Sjkimof 
3852217365Sjkimissues seen in the field, especially on machines with many cores:
3853217365Sjkim
3854217365Sjkim    1) Delete method children only upon the exit of the last thread,
3855217365Sjkim       so as to not delete objects out from under other running threads
3856217365Sjkim      (and possibly causing a fault.)
3857217365Sjkim    2) Set the "serialized" bit for the method only upon the exit of the
3858217365Sjkim       Last thread, so as to not cause deadlock when running threads
3859217365Sjkim       attempt to exit.
3860217365Sjkim    3) Cleanup the use of the AML "MethodFlags" and internal method flags
3861217365Sjkim       so that there is no longer any confusion between the two.
3862217365Sjkim
3863217365Sjkim    Lin Ming, Bob Moore. Reported by dana.myers@oracle.com.
3864217365Sjkim
3865241973SjkimDebugger: Now lock the namespace for duration of a namespace dump. 
3866241973SjkimPrevents 
3867217365Sjkimissues if the namespace is changing dynamically underneath the debugger. 
3868217365SjkimEspecially affects temporary namespace nodes, since the debugger displays 
3869217365Sjkimthese also.
3870217365Sjkim
3871217365SjkimUpdated the ordering of include files. The ACPICA headers should appear 
3872241973Sjkimbefore any compiler-specific headers (stdio.h, etc.) so that acenv.h can 
3873241973Sjkimset 
3874241973Sjkimany necessary compiler-specific defines, etc. Affects the ACPI-related 
3875241973Sjkimtools 
3876217365Sjkimand utilities.
3877217365Sjkim
3878241973SjkimUpdated all ACPICA copyrights and signons to 2011. Added the 2011 
3879241973Sjkimcopyright 
3880241973Sjkimto all module headers and signons, including the Linux header. This 
3881241973Sjkimaffects 
3882217365Sjkimvirtually every file in the ACPICA core subsystem, iASL compiler, and all 
3883217365Sjkimutilities.
3884217365Sjkim
3885217365SjkimAdded project files for MS Visual Studio 2008 (VC++ 9.0). The original 
3886241973Sjkimproject files for VC++ 6.0 are now obsolete. New project files can be 
3887241973Sjkimfound 
3888217365Sjkimunder acpica/generate/msvc9. See acpica/generate/msvc9/readme.txt for 
3889217365Sjkimdetails.
3890217365Sjkim
3891217365SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3892217365Sjkimacpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 
3893241973Sjkimdebug version of the code includes the debug output trace mechanism and 
3894241973Sjkimhas a 
3895217365Sjkimmuch larger code and data size.
3896217365Sjkim
3897217365Sjkim  Previous Release (VC 6.0):
3898217365Sjkim    Non-Debug Version:  89.8K Code, 18.9K Data, 108.7K Total
3899217365Sjkim    Debug Version:     166.6K Code, 52.1K Data, 218.7K Total
3900217365Sjkim  Current Release (VC 9.0):
3901217365Sjkim    Non-Debug Version:  89.7K Code, 23.7K Data, 113.4K Total
3902217365Sjkim    Debug Version:     163.9K Code, 67.5K Data, 231.4K Total
3903217365Sjkim
3904217365Sjkim2) iASL Compiler/Disassembler and Tools:
3905217365Sjkim
3906241973SjkimiASL: Added generic data types to the Data Table compiler. Add "generic" 
3907241973Sjkimdata 
3908253690Sjkimtypes such as UINT32, String, Unicode, etc., to simplify the generation 
3909253690Sjkimof 
3910217365Sjkimplatform-defined tables such as UEFI. Lin Ming.
3911217365Sjkim
3912241973SjkimiASL: Added listing support for the Data Table Compiler. Adds listing 
3913241973Sjkimsupport 
3914217365Sjkim(-l) to display actual binary output for each line of input code.
3915217365Sjkim
3916217365Sjkim----------------------------------------
3917216471Sjkim09 December 2010. Summary of changes for version 20101209:
3918216471Sjkim
3919216471Sjkim1) ACPI CA Core Subsystem:
3920216471Sjkim
3921241973SjkimCompleted the major overhaul of the GPE support code that was begun in 
3922241973SjkimJuly 
3923216471Sjkim2010. Major features include: removal of _PRW execution in ACPICA (host 
3924216471Sjkimexecutes _PRWs anyway), cleanup of "wake" GPE interfaces and processing, 
3925241973Sjkimchanges to existing interfaces, simplification of GPE handler operation, 
3926241973Sjkimand 
3927216471Sjkima handful of new interfaces:
3928216471Sjkim
3929216471Sjkim    AcpiUpdateAllGpes
3930216471Sjkim    AcpiFinishGpe
3931216471Sjkim    AcpiSetupGpeForWake
3932216471Sjkim    AcpiSetGpeWakeMask
3933216471Sjkim    One new file, evxfgpe.c to consolidate all external GPE interfaces.
3934216471Sjkim
3935216471SjkimSee the ACPICA Programmer Reference for full details and programming 
3936253690Sjkiminformation. See the new section 4.4 "General Purpose Event (GPE) 
3937253690SjkimSupport" 
3938241973Sjkimfor a full overview, and section 8.7 "ACPI General Purpose Event 
3939241973SjkimManagement" 
3940253690Sjkimfor programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin 
3941253690SjkimMing, 
3942216471SjkimBob Moore, Rafael Wysocki.
3943216471Sjkim
3944241973SjkimImplemented a new GPE feature for Windows compatibility, the "Implicit 
3945241973SjkimWake 
3946253690SjkimGPE Notify". This feature will automatically issue a Notify(2) on a 
3947253690Sjkimdevice 
3948216471Sjkimwhen a Wake GPE is received if there is no corresponding GPE method or 
3949216471Sjkimhandler. ACPICA BZ 870.
3950216471Sjkim
3951241973SjkimFixed a problem with the Scope() operator during table parse and load 
3952241973Sjkimphase. 
3953241973SjkimDuring load phase (table load or method execution), the scope operator 
3954241973Sjkimshould 
3955241973Sjkimnot enter the target into the namespace. Instead, it should open a new 
3956241973Sjkimscope 
3957216471Sjkimat the target location. Linux BZ 19462, ACPICA BZ 882.
3958216471Sjkim
3959216471SjkimExample Code and Data Size: These are the sizes for the OS-independent 
3960216471Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
3961241973Sjkimdebug version of the code includes the debug output trace mechanism and 
3962241973Sjkimhas a 
3963216471Sjkimmuch larger code and data size.
3964216471Sjkim
3965216471Sjkim  Previous Release:
3966216471Sjkim    Non-Debug Version:  89.8K Code, 18.9K Data, 108.7K Total
3967216471Sjkim    Debug Version:     166.6K Code, 52.1K Data, 218.7K Total
3968216471Sjkim  Current Release:
3969216471Sjkim    Non-Debug Version:  89.9K Code, 19.0K Data, 108.9K Total
3970216471Sjkim    Debug Version:     166.3K Code, 52.1K Data, 218.4K Total
3971216471Sjkim
3972216471Sjkim2) iASL Compiler/Disassembler and Tools:
3973216471Sjkim
3974241973SjkimiASL: Relax the alphanumeric restriction on _CID strings. These strings 
3975241973Sjkimare 
3976241973Sjkim"bus-specific" per the ACPI specification, and therefore any characters 
3977241973Sjkimare 
3978241973Sjkimacceptable. The only checks that can be performed are for a null string 
3979241973Sjkimand 
3980216471Sjkimperhaps for a leading asterisk. ACPICA BZ 886.
3981216471Sjkim
3982216471SjkimiASL: Fixed a problem where a syntax error that caused a premature EOF 
3983216471Sjkimcondition on the source file emitted a very confusing error message. The 
3984216471Sjkimpremature EOF is now detected correctly. ACPICA BZ 891.
3985216471Sjkim
3986241973SjkimDisassembler: Decode the AccessSize within a Generic Address Structure 
3987241973Sjkim(byte 
3988216471Sjkimaccess, word access, etc.) Note, this field does not allow arbitrary bit 
3989216471Sjkimaccess, the size is encoded as 1=byte, 2=word, 3=dword, and 4=qword.
3990216471Sjkim
3991241973SjkimNew: AcpiNames utility - Example namespace dump utility. Shows an example 
3992241973Sjkimof 
3993216471SjkimACPICA configuration for a minimal namespace dump utility. Uses table and 
3994253690Sjkimnamespace managers, but no AML interpreter. Does not add any 
3995253690Sjkimfunctionality 
3996216471Sjkimover AcpiExec, it is a subset of AcpiExec. The purpose is to show how to 
3997216471Sjkimpartition and configure ACPICA. ACPICA BZ 883.
3998216471Sjkim
3999241973SjkimAML Debugger: Increased the debugger buffer size for method return 
4000241973Sjkimobjects. 
4001253690SjkimWas 4K, increased to 16K. Also enhanced error messages for debugger 
4002253690Sjkimmethod 
4003216471Sjkimexecution, including the buffer overflow case.
4004216471Sjkim
4005216471Sjkim----------------------------------------
4006213806Sjkim13 October 2010. Summary of changes for version 20101013:
4007213806Sjkim
4008213806Sjkim1) ACPI CA Core Subsystem:
4009213806Sjkim
4010241973SjkimAdded support to clear the PCIEXP_WAKE event. When clearing ACPI events, 
4011241973Sjkimnow 
4012213806Sjkimclear the PCIEXP_WAKE_STS bit in the ACPI PM1 Status Register, via 
4013213806SjkimHwClearAcpiStatus. Original change from Colin King. ACPICA BZ 880.
4014213806Sjkim
4015241973SjkimChanged the type of the predefined namespace object _TZ from ThermalZone 
4016241973Sjkimto 
4017253690SjkimDevice. This was found to be confusing to the host software that 
4018253690Sjkimprocesses 
4019253690Sjkimthe various thermal zones, since _TZ is not really a ThermalZone. 
4020253690SjkimHowever, 
4021241973Sjkima 
4022213806SjkimNotify() can still be performed on it. ACPICA BZ 876. Suggestion from Rui 
4023213806SjkimZhang.
4024213806Sjkim
4025213806SjkimAdded Windows Vista SP2 to the list of supported _OSI strings. The actual 
4026213806Sjkimstring is "Windows 2006 SP2".
4027213806Sjkim
4028241973SjkimEliminated duplicate code in AcpiUtExecute* functions. Now that the 
4029241973Sjkimnsrepair 
4030213806Sjkimcode automatically repairs _HID-related strings, this type of code is no 
4031253690Sjkimlonger needed in Execute_HID, Execute_CID, and Execute_UID. ACPICA BZ 
4032253690Sjkim878.
4033213806Sjkim
4034213806SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4035213806Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4036241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4037241973Sjkimhas a 
4038213806Sjkimmuch larger code and data size.
4039213806Sjkim
4040213806Sjkim  Previous Release:
4041213806Sjkim    Non-Debug Version:  89.9K Code, 19.0K Data, 108.9K Total
4042213806Sjkim    Debug Version:     166.3K Code, 52.1K Data, 218.4K Total
4043213806Sjkim  Current Release:
4044213806Sjkim    Non-Debug Version:  89.9K Code, 19.0K Data, 108.9K Total
4045213806Sjkim    Debug Version:     166.3K Code, 52.1K Data, 218.4K Total
4046213806Sjkim
4047213806Sjkim2) iASL Compiler/Disassembler and Tools:
4048213806Sjkim
4049253690SjkimiASL: Implemented additional compile-time validation for _HID strings. 
4050253690SjkimThe 
4051253690Sjkimnon-hex prefix (such as "PNP" or "ACPI") must be uppercase, and the 
4052253690Sjkimlength 
4053241973Sjkimof 
4054241973Sjkimthe string must be exactly seven or eight characters. For both _HID and 
4055241973Sjkim_CID 
4056213806Sjkimstrings, all characters must be alphanumeric. ACPICA BZ 874.
4057213806Sjkim
4058213806SjkimiASL: Allow certain "null" resource descriptors. Some BIOS code creates 
4059241973Sjkimdescriptors that are mostly or all zeros, with the expectation that they 
4060241973Sjkimwill 
4061241973Sjkimbe filled in at runtime. iASL now allows this as long as there is a 
4062241973Sjkim"resource 
4063213806Sjkimtag" (name) associated with the descriptor, which gives the ASL a handle 
4064213806Sjkimneeded to modify the descriptor. ACPICA BZ 873.
4065213806Sjkim
4066253690SjkimAdded single-thread support to the generic Unix application OSL. 
4067253690SjkimPrimarily 
4068253690Sjkimfor iASL support, this change removes the use of semaphores in the 
4069253690Sjkimsingle-
4070213806Sjkimthreaded ACPICA tools/applications - increasing performance. The 
4071213806Sjkim_MULTI_THREADED option was replaced by the (reverse) ACPI_SINGLE_THREADED 
4072213806Sjkimoption. ACPICA BZ 879.
4073213806Sjkim
4074241973SjkimAcpiExec: several fixes for the 64-bit version. Adds XSDT support and 
4075241973Sjkimsupport 
4076213806Sjkimfor 64-bit DSDT/FACS addresses in the FADT. Lin Ming.
4077213806Sjkim
4078213806SjkimiASL: Moved all compiler messages to a new file, aslmessages.h.
4079213806Sjkim
4080213806Sjkim----------------------------------------
4081212761Sjkim15 September 2010. Summary of changes for version 20100915:
4082212761Sjkim
4083212761Sjkim1) ACPI CA Core Subsystem:
4084212761Sjkim
4085241973SjkimRemoved the AcpiOsDerivePciId OSL interface. The various host 
4086241973Sjkimimplementations 
4087212761Sjkimof this function were not OS-dependent and are now obsolete and can be 
4088212761Sjkimremoved from all host OSLs. This function has been replaced by 
4089212761SjkimAcpiHwDerivePciId, which is now part of the ACPICA core code. 
4090212761SjkimAcpiHwDerivePciId has been implemented without recursion. Adds one new 
4091212761Sjkimmodule, hwpci.c. ACPICA BZ 857.
4092212761Sjkim
4093212761SjkimImplemented a dynamic repair for _HID and _CID strings. The following 
4094212761Sjkimproblems are now repaired at runtime: 1) Remove a leading asterisk in the 
4095212761Sjkimstring, and 2) the entire string is uppercased. Both repairs are in 
4096253690Sjkimaccordance with the ACPI specification and will simplify host driver 
4097253690Sjkimcode. 
4098212761SjkimACPICA BZ 871.
4099212761Sjkim
4100212761SjkimThe ACPI_THREAD_ID type is no longer configurable, internally it is now 
4101241973Sjkimalways UINT64. This simplifies the ACPICA code, especially any printf 
4102241973Sjkimoutput. 
4103212761SjkimUINT64 is the only common data type for all thread_id types across all 
4104241973Sjkimoperating systems. It is now up to the host OSL to cast the native 
4105241973Sjkimthread_id 
4106241973Sjkimtype to UINT64 before returning the value to ACPICA (via 
4107241973SjkimAcpiOsGetThreadId). 
4108212761SjkimLin Ming, Bob Moore.
4109212761Sjkim
4110241973SjkimAdded the ACPI_INLINE type to enhance the ACPICA configuration. The 
4111241973Sjkim"inline" 
4112241973Sjkimkeyword is not standard across compilers, and this type allows inline to 
4113241973Sjkimbe 
4114212761Sjkimconfigured on a per-compiler basis. Lin Ming.
4115212761Sjkim
4116253690SjkimMade the system global AcpiGbl_SystemAwakeAndRunning publically 
4117253690Sjkimavailable. 
4118241973SjkimAdded an extern for this boolean in acpixf.h. Some hosts utilize this 
4119241973Sjkimvalue 
4120212761Sjkimduring suspend/restore operations. ACPICA BZ 869.
4121212761Sjkim
4122241973SjkimAll code that implements error/warning messages with the "ACPI:" prefix 
4123241973Sjkimhas 
4124212761Sjkimbeen moved to a new module, utxferror.c.
4125212761Sjkim
4126241973SjkimThe UINT64_OVERLAY was moved to utmath.c, which is the only module where 
4127241973Sjkimit 
4128212761Sjkimis used. ACPICA BZ 829. Lin Ming, Bob Moore.
4129212761Sjkim
4130212761SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4131212761Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4132241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4133241973Sjkimhas a 
4134212761Sjkimmuch larger code and data size.
4135212761Sjkim
4136212761Sjkim  Previous Release:
4137212761Sjkim    Non-Debug Version:  89.1K Code, 19.0K Data, 108.1K Total
4138212761Sjkim    Debug Version:     165.1K Code, 51.9K Data, 217.0K Total
4139212761Sjkim  Current Release:
4140212761Sjkim    Non-Debug Version:  89.9K Code, 19.0K Data, 108.9K Total
4141212761Sjkim    Debug Version:     166.3K Code, 52.1K Data, 218.4K Total
4142212761Sjkim
4143212761Sjkim2) iASL Compiler/Disassembler and Tools:
4144212761Sjkim
4145253690SjkimiASL/Disassembler: Write ACPI errors to stderr instead of the output 
4146253690Sjkimfile. 
4147241973SjkimThis keeps the output files free of random error messages that may 
4148241973Sjkimoriginate 
4149253690Sjkimfrom within the namespace/interpreter code. Used this opportunity to 
4150253690Sjkimmerge 
4151212761Sjkimall ACPI:-style messages into a single new module, utxferror.c. ACPICA BZ 
4152212761Sjkim866. Lin Ming, Bob Moore.
4153212761Sjkim
4154241973SjkimTools: update some printfs for ansi warnings on size_t. Handle width 
4155241973Sjkimchange 
4156212761Sjkimof size_t on 32-bit versus 64-bit generations. Lin Ming.
4157212761Sjkim
4158212761Sjkim----------------------------------------
4159210976Sjkim06 August 2010. Summary of changes for version 20100806:
4160210976Sjkim
4161210976Sjkim1) ACPI CA Core Subsystem:
4162210976Sjkim
4163241973SjkimDesigned and implemented a new host interface to the _OSI support code. 
4164241973SjkimThis 
4165253690Sjkimwill allow the host to dynamically add or remove multiple _OSI strings, 
4166253690Sjkimas 
4167241973Sjkimwell as install an optional handler that is called for each _OSI 
4168241973Sjkiminvocation. 
4169241973SjkimAlso added a new AML debugger command, 'osi' to display and modify the 
4170241973Sjkimglobal 
4171241973Sjkim_OSI string table, and test support in the AcpiExec utility. See the 
4172241973SjkimACPICA 
4173210976Sjkimreference manual for full details. Lin Ming, Bob Moore. ACPICA BZ 836.
4174210976SjkimNew Functions:
4175210976Sjkim    AcpiInstallInterface - Add an _OSI string.
4176210976Sjkim    AcpiRemoveInterface - Delete an _OSI string.
4177210976Sjkim    AcpiInstallInterfaceHandler - Install optional _OSI handler.
4178210976SjkimObsolete Functions:
4179210976Sjkim    AcpiOsValidateInterface - no longer used.
4180210976SjkimNew Files:
4181210976Sjkim    source/components/utilities/utosi.c
4182210976Sjkim
4183210976SjkimRe-introduced the support to enable multi-byte transfers for Embedded 
4184241973SjkimController (EC) operation regions. A reported problem was found to be a 
4185241973Sjkimbug 
4186241973Sjkimin the host OS, not in the multi-byte support. Previously, the maximum 
4187241973Sjkimdata 
4188241973Sjkimsize passed to the EC operation region handler was a single byte. There 
4189241973Sjkimare 
4190241973Sjkimoften EC Fields larger than one byte that need to be transferred, and it 
4191241973Sjkimis 
4192241973Sjkimuseful for the EC driver to lock these as a single transaction. This 
4193241973Sjkimchange 
4194210976Sjkimenables single transfers larger than 8 bits. This effectively changes the 
4195210976Sjkimaccess to the EC space from ByteAcc to AnyAcc, and will probably require 
4196241973Sjkimchanges to the host OS Embedded Controller driver to enable 16/32/64/256-
4197241973Sjkimbit 
4198210976Sjkimtransfers in addition to 8-bit transfers. Alexey Starikovskiy, Lin Ming.
4199210976Sjkim
4200210976SjkimFixed a problem with the prototype for AcpiOsReadPciConfiguration. The 
4201210976Sjkimprototype in acpiosxf.h had the output value pointer as a (void *).
4202210976SjkimIt should be a (UINT64 *). This may affect some host OSL code.
4203210976Sjkim
4204241973SjkimFixed a couple problems with the recently modified Linux makefiles for 
4205241973SjkimiASL 
4206210976Sjkimand AcpiExec. These new makefiles place the generated object files in the 
4207241973Sjkimlocal directory so that there can be no collisions between the files that 
4208241973Sjkimare 
4209210976Sjkimshared between them that are compiled with different options.
4210210976Sjkim
4211210976SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4212210976Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4213241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4214241973Sjkimhas a 
4215210976Sjkimmuch larger code and data size.
4216210976Sjkim
4217210976Sjkim  Previous Release:
4218210976Sjkim    Non-Debug Version:  88.3K Code, 18.8K Data, 107.1K Total
4219210976Sjkim    Debug Version:     164.0K Code, 51.5K Data, 215.5K Total
4220210976Sjkim  Current Release:
4221210976Sjkim    Non-Debug Version:  89.1K Code, 19.0K Data, 108.1K Total
4222210976Sjkim    Debug Version:     165.1K Code, 51.9K Data, 217.0K Total
4223210976Sjkim
4224210976Sjkim2) iASL Compiler/Disassembler and Tools:
4225210976Sjkim
4226253690SjkimiASL/Disassembler: Added a new option (-da, "disassemble all") to load 
4227253690Sjkimthe 
4228210976Sjkimnamespace from and disassemble an entire group of AML files. Useful for 
4229241973Sjkimloading all of the AML tables for a given machine (DSDT, SSDT1...SSDTn) 
4230241973Sjkimand 
4231210976Sjkimdisassembling with one simple command. ACPICA BZ 865. Lin Ming.
4232210976Sjkim
4233253690SjkimiASL: Allow multiple invocations of -e option. This change allows 
4234253690Sjkimmultiple 
4235241973Sjkimuses of -e on the command line: "-e ssdt1.dat -e ssdt2.dat". ACPICA BZ 
4236241973Sjkim834. 
4237210976SjkimLin Ming.
4238210976Sjkim
4239210976Sjkim----------------------------------------
4240209746Sjkim02 July 2010. Summary of changes for version 20100702:
4241209746Sjkim
4242209746Sjkim1) ACPI CA Core Subsystem:
4243209746Sjkim
4244209746SjkimImplemented several updates to the recently added GPE reference count 
4245241973Sjkimsupport. The model for "wake" GPEs is changing to give the host OS 
4246241973Sjkimcomplete 
4247241973Sjkimcontrol of these GPEs. Eventually, the ACPICA core will not execute any 
4248241973Sjkim_PRW 
4249241973Sjkimmethods, since the host already must execute them. Also, additional 
4250241973Sjkimchanges 
4251209746Sjkimwere made to help ensure that the reference counts are kept in proper 
4252209746Sjkimsynchronization with reality. Rafael J. Wysocki.
4253209746Sjkim
4254209746Sjkim1) Ensure that GPEs are not enabled twice during initialization.
4255209746Sjkim2) Ensure that GPE enable masks stay in sync with the reference count.
4256209746Sjkim3) Do not inadvertently enable GPEs when writing GPE registers.
4257209746Sjkim4) Remove the internal wake reference counter and add new AcpiGpeWakeup 
4258209746Sjkiminterface. This interface will set or clear individual GPEs for wakeup.
4259241973Sjkim5) Remove GpeType argument from AcpiEnable and AcpiDisable. These 
4260241973Sjkiminterfaces 
4261209746Sjkimare now used for "runtime" GPEs only.
4262209746Sjkim
4263253690SjkimChanged the behavior of the GPE install/remove handler interfaces. The 
4264253690SjkimGPE 
4265241973Sjkimis 
4266241973Sjkimno longer disabled during this process, as it was found to cause problems 
4267241973Sjkimon 
4268209746Sjkimsome machines. Rafael J. Wysocki.
4269209746Sjkim
4270209746SjkimReverted a change introduced in version 20100528 to enable Embedded 
4271241973SjkimController multi-byte transfers. This change was found to cause problems 
4272241973Sjkimwith 
4273209746SjkimIndex Fields and possibly Bank Fields. It will be reintroduced when these 
4274209746Sjkimproblems have been resolved.
4275209746Sjkim
4276253690SjkimFixed a problem with references to Alias objects within Package Objects. 
4277253690SjkimA 
4278209746Sjkimreference to an Alias within the definition of a Package was not always 
4279253690Sjkimresolved properly. Aliases to objects like Processors, Thermal zones, 
4280253690Sjkimetc. 
4281253690Sjkimwere resolved to the actual object instead of a reference to the object 
4282253690Sjkimas 
4283241973Sjkimit 
4284209746Sjkimshould be. Package objects are only allowed to contain integer, string, 
4285209746Sjkimbuffer, package, and reference objects. Redhat bugzilla 608648.
4286209746Sjkim
4287209746SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4288209746Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4289241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4290241973Sjkimhas a 
4291209746Sjkimmuch larger code and data size.
4292209746Sjkim
4293209746Sjkim  Previous Release:
4294209746Sjkim    Non-Debug Version:  88.3K Code, 18.8K Data, 107.1K Total
4295209746Sjkim    Debug Version:     164.1K Code, 51.5K Data, 215.6K Total
4296209746Sjkim  Current Release:
4297209746Sjkim    Non-Debug Version:  88.3K Code, 18.8K Data, 107.1K Total
4298209746Sjkim    Debug Version:     164.0K Code, 51.5K Data, 215.5K Total
4299209746Sjkim
4300209746Sjkim2) iASL Compiler/Disassembler and Tools:
4301209746Sjkim
4302209746SjkimiASL: Implemented a new compiler subsystem to allow definition and 
4303241973Sjkimcompilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc. 
4304241973SjkimThese 
4305209746Sjkimare called "ACPI Data Tables", and the new compiler is the "Data Table 
4306209746SjkimCompiler". This compiler is intended to simplify the existing error-prone 
4307209746Sjkimprocess of creating these tables for the BIOS, as well as allowing the 
4308241973Sjkimdisassembly, modification, recompilation, and override of existing ACPI 
4309241973Sjkimdata 
4310209746Sjkimtables. See the iASL User Guide for detailed information.
4311209746Sjkim
4312241973SjkimiASL: Implemented a new Template Generator option in support of the new 
4313241973SjkimData 
4314209746SjkimTable Compiler. This option will create examples of all known ACPI tables 
4315209746Sjkimthat can be used as the basis for table development. See the iASL 
4316209746Sjkimdocumentation and the -T option.
4317209746Sjkim
4318209746SjkimDisassembler and headers: Added support for the WDDT ACPI table (Watchdog 
4319209746SjkimDescriptor Table).
4320209746Sjkim
4321209746SjkimUpdated the Linux makefiles for iASL and AcpiExec to place the generated 
4322209746Sjkimobject files in the local directory so that there can be no collisions 
4323209746Sjkimbetween the shared files between them that are generated with different 
4324209746Sjkimoptions.
4325209746Sjkim
4326253690SjkimAdded support for Mac OS X in the Unix OSL used for iASL and AcpiExec. 
4327253690SjkimUse 
4328209746Sjkimthe #define __APPLE__ to enable this support.
4329209746Sjkim
4330209746Sjkim----------------------------------------
4331209746Sjkim28 May 2010. Summary of changes for version 20100528:
4332209746Sjkim
4333209746SjkimNote: The ACPI 4.0a specification was released on April 5, 2010 and is 
4334209746Sjkimavailable at www.acpi.info. This is primarily an errata release.
4335209746Sjkim
4336209746Sjkim1) ACPI CA Core Subsystem:
4337209746Sjkim
4338241973SjkimUndefined ACPI tables: We are looking for the definitions for the 
4339241973Sjkimfollowing 
4340209746SjkimACPI tables that have been seen in the field: ATKG, IEIT, GSCI.
4341209746Sjkim
4342253690SjkimImplemented support to enable multi-byte transfers for Embedded 
4343253690SjkimController 
4344253690Sjkim(EC) operation regions. Previously, the maximum data size passed to the 
4345253690SjkimEC 
4346241973Sjkimoperation region handler was a single byte. There are often EC Fields 
4347241973Sjkimlarger 
4348241973Sjkimthan one byte that need to be transferred, and it is useful for the EC 
4349241973Sjkimdriver 
4350241973Sjkimto lock these as a single transaction. This change enables single 
4351241973Sjkimtransfers 
4352241973Sjkimlarger than 8 bits. This effectively changes the access to the EC space 
4353241973Sjkimfrom 
4354241973SjkimByteAcc to AnyAcc, and will probably require changes to the host OS 
4355241973SjkimEmbedded 
4356241973SjkimController driver to enable 16/32/64/256-bit transfers in addition to 8-
4357241973Sjkimbit 
4358209746Sjkimtransfers. Alexey Starikovskiy, Lin Ming
4359209746Sjkim
4360241973SjkimImplemented a performance enhancement for namespace search and access. 
4361241973SjkimThis 
4362241973Sjkimchange enhances the performance of namespace searches and walks by adding 
4363241973Sjkima 
4364241973Sjkimbackpointer to the parent in each namespace node. On large namespaces, 
4365241973Sjkimthis 
4366241973Sjkimchange can improve overall ACPI performance by up to 9X. Adding a pointer 
4367241973Sjkimto 
4368241973Sjkimeach namespace node increases the overall size of the internal namespace 
4369241973Sjkimby 
4370209746Sjkimabout 5%, since each namespace entry usually consists of both a namespace 
4371209746Sjkimnode and an ACPI operand object. However, this is the first growth of the 
4372209746Sjkimnamespace in ten years. ACPICA bugzilla 817. Alexey Starikovskiy.
4373209746Sjkim
4374241973SjkimImplemented a performance optimization that reduces the number of 
4375241973Sjkimnamespace 
4376241973Sjkimwalks. On control method exit, only walk the namespace if the method is 
4377241973Sjkimknown 
4378241973Sjkimto have created namespace objects outside of its local scope. Previously, 
4379241973Sjkimthe 
4380241973Sjkimentire namespace was traversed on each control method exit. This change 
4381241973Sjkimcan 
4382241973Sjkimimprove overall ACPI performance by up to 3X. Alexey Starikovskiy, Bob 
4383241973SjkimMoore.
4384209746Sjkim
4385241973SjkimAdded support to truncate I/O addresses to 16 bits for Windows 
4386241973Sjkimcompatibility. 
4387209746SjkimSome ASL code has been seen in the field that inadvertently has bits set 
4388253690Sjkimabove bit 15. This feature is optional and is enabled if the BIOS 
4389253690Sjkimrequests 
4390209746Sjkimany Windows OSI strings. It can also be enabled by the host OS. Matthew 
4391209746SjkimGarrett, Bob Moore.
4392209746Sjkim
4393209746SjkimAdded support to limit the maximum time for the ASL Sleep() operator. To 
4394209746Sjkimprevent accidental deep sleeps, limit the maximum time that Sleep() will 
4395209746Sjkimactually sleep. Configurable, the default maximum is two seconds. ACPICA 
4396209746Sjkimbugzilla 854.
4397209746Sjkim
4398241973SjkimAdded run-time validation support for the _WDG and_WED Microsoft 
4399241973Sjkimpredefined 
4400241973Sjkimmethods. These objects are defined by "Windows Instrumentation", and are 
4401241973Sjkimnot 
4402209746Sjkimpart of the ACPI spec. ACPICA BZ 860.
4403209746Sjkim
4404209746SjkimExpanded all statistic counters used during namespace and device 
4405241973Sjkiminitialization from 16 to 32 bits in order to support very large 
4406241973Sjkimnamespaces.
4407209746Sjkim
4408241973SjkimReplaced all instances of %d in printf format specifiers with %u since 
4409241973Sjkimnearly 
4410209746Sjkimall integers in ACPICA are unsigned.
4411209746Sjkim
4412241973SjkimFixed the exception namestring for AE_WAKE_ONLY_GPE. Was incorrectly 
4413241973Sjkimreturned 
4414209746Sjkimas AE_NO_HANDLER.
4415209746Sjkim
4416209746SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4417209746Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4418241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4419241973Sjkimhas a 
4420209746Sjkimmuch larger code and data size.
4421209746Sjkim
4422209746Sjkim  Previous Release:
4423209746Sjkim    Non-Debug Version:  88.4K Code, 18.8K Data, 107.2K Total
4424209746Sjkim    Debug Version:     164.2K Code, 51.5K Data, 215.7K Total
4425209746Sjkim  Current Release:
4426209746Sjkim    Non-Debug Version:  88.3K Code, 18.8K Data, 107.1K Total
4427209746Sjkim    Debug Version:     164.1K Code, 51.5K Data, 215.6K Total
4428209746Sjkim
4429209746Sjkim2) iASL Compiler/Disassembler and Tools:
4430209746Sjkim
4431209746SjkimiASL: Added compiler support for the _WDG and_WED Microsoft predefined 
4432241973Sjkimmethods. These objects are defined by "Windows Instrumentation", and are 
4433241973Sjkimnot 
4434209746Sjkimpart of the ACPI spec. ACPICA BZ 860.
4435209746Sjkim
4436209746SjkimAcpiExec: added option to disable the memory tracking mechanism. The -dt 
4437209746Sjkimoption will disable the tracking mechanism, which improves performance 
4438209746Sjkimconsiderably.
4439209746Sjkim
4440209746SjkimAcpiExec: Restructured the command line options into -d (disable) and -e 
4441209746Sjkim(enable) options.
4442209746Sjkim
4443209746Sjkim----------------------------------------
4444207344Sjkim28 April 2010. Summary of changes for version 20100428:
4445207344Sjkim
4446207344Sjkim1) ACPI CA Core Subsystem:
4447207344Sjkim
4448207344SjkimImplemented GPE support for dynamically loaded ACPI tables. For all GPEs, 
4449241973Sjkimincluding FADT-based and GPE Block Devices, execute any _PRW methods in 
4450241973Sjkimthe 
4451207344Sjkimnew table, and process any _Lxx/_Exx GPE methods in the new table. Any 
4452207344Sjkimruntime GPE that is referenced by an _Lxx/_Exx method in the new table is 
4453207344Sjkimimmediately enabled. Handles the FADT-defined GPEs as well as GPE Block 
4454207344SjkimDevices. Provides compatibility with other ACPI implementations. Two new 
4455241973Sjkimfiles added, evgpeinit.c and evgpeutil.c. ACPICA BZ 833. Lin Ming, Bob 
4456241973SjkimMoore.
4457207344Sjkim
4458253690SjkimFixed a regression introduced in version 20100331 within the table 
4459253690Sjkimmanager 
4460253690Sjkimwhere initial table loading could fail. This was introduced in the fix 
4461253690Sjkimfor 
4462253690SjkimAcpiReallocateRootTable. Also, renamed some of fields in the table 
4463253690Sjkimmanager 
4464207344Sjkimdata structures to clarify their meaning and use.
4465207344Sjkim
4466207344SjkimFixed a possible allocation overrun during internal object copy in 
4467241973SjkimAcpiUtCopySimpleObject. The original code did not correctly handle the 
4468241973Sjkimcase 
4469241973Sjkimwhere the object to be copied was a namespace node. Lin Ming. ACPICA BZ 
4470241973Sjkim847.
4471207344Sjkim
4472207344SjkimUpdated the allocation dump routine, AcpiUtDumpAllocation and fixed a 
4473241973Sjkimpossible access beyond end-of-allocation. Also, now fully validate 
4474241973Sjkimdescriptor 
4475207344Sjkim(size and type) before output. Lin Ming, Bob Moore. ACPICA BZ 847
4476207344Sjkim
4477207344SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4478207344Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4479241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4480241973Sjkimhas a 
4481207344Sjkimmuch larger code and data size.
4482207344Sjkim
4483207344Sjkim  Previous Release:
4484207344Sjkim    Non-Debug Version:  87.9K Code, 18.6K Data, 106.5K Total
4485207344Sjkim    Debug Version:     163.5K Code, 51.3K Data, 214.8K Total
4486207344Sjkim  Current Release:
4487207344Sjkim    Non-Debug Version:  88.4K Code, 18.8K Data, 107.2K Total
4488207344Sjkim    Debug Version:     164.2K Code, 51.5K Data, 215.7K Total
4489207344Sjkim
4490207344Sjkim2) iASL Compiler/Disassembler and Tools:
4491207344Sjkim
4492207344SjkimiASL: Implemented Min/Max/Len/Gran validation for address resource 
4493253690Sjkimdescriptors. This change implements validation for the address fields 
4494253690Sjkimthat 
4495207344Sjkimare common to all address-type resource descriptors. These checks are 
4496207344Sjkimimplemented: Checks for valid Min/Max, length within the Min/Max window, 
4497253690Sjkimvalid granularity, Min/Max a multiple of granularity, and _MIF/_MAF as 
4498253690Sjkimper 
4499241973Sjkimtable 6-40 in the ACPI 4.0a specification. Also split the large 
4500241973Sjkimaslrestype1.c 
4501207344Sjkimand aslrestype2.c files into five new files. ACPICA BZ 840.
4502207344Sjkim
4503241973SjkimiASL: Added support for the _Wxx predefined names. This support was 
4504241973Sjkimmissing 
4505207344Sjkimand these names were not recognized by the compiler as valid predefined 
4506207344Sjkimnames. ACPICA BZ 851.
4507207344Sjkim
4508241973SjkimiASL: Added an error for all predefined names that are defined to return 
4509241973Sjkimno 
4510241973Sjkimvalue and thus must be implemented as Control Methods. These include all 
4511241973Sjkimof 
4512207344Sjkimthe _Lxx, _Exx, _Wxx, and _Qxx names, as well as some other miscellaneous 
4513207344Sjkimnames such as _DIS, _INI, _IRC, _OFF, _ON, and _PSx. ACPICA BZ 850, 856.
4514207344Sjkim
4515253690SjkimiASL: Implemented the -ts option to emit hex AML data in ASL format, as 
4516253690Sjkiman 
4517241973SjkimASL Buffer. Allows ACPI tables to be easily included within ASL files, to 
4518241973Sjkimbe 
4519253690Sjkimdynamically loaded via the Load() operator. Also cleaned up output for 
4520253690Sjkimthe 
4521241973Sjkim-
4522207344Sjkimta and -tc options. ACPICA BZ 853.
4523207344Sjkim
4524207344SjkimTests: Added a new file with examples of extended iASL error checking. 
4525207344SjkimDemonstrates the advanced error checking ability of the iASL compiler. 
4526207344SjkimAvailable at tests/misc/badcode.asl.
4527207344Sjkim
4528207344Sjkim----------------------------------------
4529206117Sjkim31 March 2010. Summary of changes for version 20100331:
4530206117Sjkim
4531206117Sjkim1) ACPI CA Core Subsystem:
4532206117Sjkim
4533241973SjkimCompleted a major update for the GPE support in order to improve support 
4534241973Sjkimfor 
4535241973Sjkimshared GPEs and to simplify both host OS and ACPICA code. Added a 
4536241973Sjkimreference 
4537241973Sjkimcount mechanism to support shared GPEs that require multiple device 
4538241973Sjkimdrivers. 
4539206117SjkimSeveral external interfaces have changed. One external interface has been 
4540206117Sjkimremoved. One new external interface was added. Most of the GPE external 
4541206117Sjkiminterfaces now use the GPE spinlock instead of the events mutex (and the 
4542253690SjkimFlags parameter for many GPE interfaces has been removed.) See the 
4543253690Sjkimupdated 
4544241973SjkimACPICA Programmer Reference for details. Matthew Garrett, Bob Moore, 
4545241973SjkimRafael 
4546206117SjkimWysocki. ACPICA BZ 831.
4547206117Sjkim
4548206117SjkimChanged:
4549206117Sjkim    AcpiEnableGpe, AcpiDisableGpe, AcpiClearGpe, AcpiGetGpeStatus
4550206117SjkimRemoved:
4551206117Sjkim    AcpiSetGpeType
4552206117SjkimNew:
4553206117Sjkim    AcpiSetGpe
4554206117Sjkim
4555241973SjkimImplemented write support for DataTable operation regions. These regions 
4556241973Sjkimare 
4557241973Sjkimdefined via the DataTableRegion() operator. Previously, only read support 
4558241973Sjkimwas 
4559241973Sjkimimplemented. The ACPI specification allows DataTableRegions to be 
4560241973Sjkimread/write, 
4561206117Sjkimhowever.
4562206117Sjkim
4563206117SjkimImplemented a new subsystem option to force a copy of the DSDT to local 
4564253690Sjkimmemory. Optionally copy the entire DSDT to local memory (instead of 
4565253690Sjkimsimply 
4566241973Sjkimmapping it.) There are some (albeit very rare) BIOSs that corrupt or 
4567241973Sjkimreplace 
4568253690Sjkimthe original DSDT, creating the need for this option. Default is FALSE, 
4569253690Sjkimdo 
4570206117Sjkimnot copy the DSDT.
4571206117Sjkim
4572206117SjkimImplemented detection of a corrupted or replaced DSDT. This change adds 
4573241973Sjkimsupport to detect a DSDT that has been corrupted and/or replaced from 
4574241973Sjkimoutside 
4575241973Sjkimthe OS (by firmware). This is typically catastrophic for the system, but 
4576241973Sjkimhas 
4577206117Sjkimbeen seen on some machines. Once this problem has been detected, the DSDT 
4578206117Sjkimcopy option can be enabled via system configuration. Lin Ming, Bob Moore.
4579206117Sjkim
4580241973SjkimFixed two problems with AcpiReallocateRootTable during the root table 
4581241973Sjkimcopy. 
4582206117SjkimWhen copying the root table to the new allocation, the length used was 
4583241973Sjkimincorrect. The new size was used instead of the current table size, 
4584241973Sjkimmeaning 
4585241973Sjkimtoo much data was copied. Also, the count of available slots for ACPI 
4586241973Sjkimtables 
4587206117Sjkimwas not set correctly. Alexey Starikovskiy, Bob Moore.
4588206117Sjkim
4589206117SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4590206117Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4591241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4592241973Sjkimhas a 
4593206117Sjkimmuch larger code and data size.
4594206117Sjkim
4595206117Sjkim  Previous Release:
4596206117Sjkim    Non-Debug Version:  87.5K Code, 18.4K Data, 105.9K Total
4597206117Sjkim    Debug Version:     163.4K Code, 51.1K Data, 214.5K Total
4598206117Sjkim  Current Release:
4599206117Sjkim    Non-Debug Version:  87.9K Code, 18.6K Data, 106.5K Total
4600206117Sjkim    Debug Version:     163.5K Code, 51.3K Data, 214.8K Total
4601206117Sjkim
4602206117Sjkim2) iASL Compiler/Disassembler and Tools:
4603206117Sjkim
4604206117SjkimiASL: Implement limited typechecking for values returned from predefined 
4605206117Sjkimcontrol methods. The type of any returned static (unnamed) object is now 
4606206117Sjkimvalidated. For example, Return(1). ACPICA BZ 786.
4607206117Sjkim
4608241973SjkimiASL: Fixed a predefined name object verification regression. Fixes a 
4609241973Sjkimproblem 
4610206117Sjkimintroduced in version 20100304. An error is incorrectly generated if a 
4611206117Sjkimpredefined name is declared as a static named object with a value defined 
4612206117Sjkimusing the keywords "Zero", "One", or "Ones". Lin Ming.
4613206117Sjkim
4614253690SjkimiASL: Added Windows 7 support for the -g option (get local ACPI tables) 
4615253690Sjkimby 
4616206117Sjkimreducing the requested registry access rights. ACPICA BZ 842.
4617206117Sjkim
4618241973SjkimDisassembler: fixed a possible fault when generating External() 
4619241973Sjkimstatements. 
4620253690SjkimIntroduced in commit ae7d6fd: Properly handle externals with parent-
4621253690Sjkimprefix 
4622206117Sjkim(carat). Fixes a string length allocation calculation. Lin Ming.
4623206117Sjkim
4624206117Sjkim----------------------------------------
4625204773Sjkim04 March 2010. Summary of changes for version 20100304:
4626204773Sjkim
4627204773Sjkim1) ACPI CA Core Subsystem:
4628204773Sjkim
4629204773SjkimFixed a possible problem with the AML Mutex handling function 
4630204773SjkimAcpiExReleaseMutex where the function could fault under the very rare 
4631241973Sjkimcondition when the interpreter has blocked, the interpreter lock is 
4632241973Sjkimreleased, 
4633204773Sjkimthe interpreter is then reentered via the same thread, and attempts to 
4634241973Sjkimacquire an AML mutex that was previously acquired. FreeBSD report 140979. 
4635241973SjkimLin 
4636204773SjkimMing.
4637204773Sjkim
4638204773SjkimImplemented additional configuration support for the AML "Debug Object". 
4639204773SjkimOutput from the debug object can now be enabled via a global variable, 
4640241973SjkimAcpiGbl_EnableAmlDebugObject. This will assist with remote machine 
4641241973Sjkimdebugging. 
4642241973SjkimThis debug output is now available in the release version of ACPICA 
4643241973Sjkiminstead 
4644253690Sjkimof just the debug version. Also, the entire debug output module can now 
4645253690Sjkimbe 
4646204773Sjkimconfigured out of the ACPICA build if desired. One new file added, 
4647204773Sjkimexecuter/exdebug.c. Lin Ming, Bob Moore.
4648204773Sjkim
4649204773SjkimAdded header support for the ACPI MCHI table (Management Controller Host 
4650241973SjkimInterface Table). This table was added in ACPI 4.0, but the defining 
4651241973Sjkimdocument 
4652204773Sjkimhas only recently become available.
4653204773Sjkim
4654241973SjkimStandardized output of integer values for ACPICA warnings/errors. Always 
4655241973Sjkimuse 
4656241973Sjkim0x prefix for hex output, always use %u for unsigned integer decimal 
4657241973Sjkimoutput. 
4658253690SjkimAffects ACPI_INFO, ACPI_ERROR, ACPI_EXCEPTION, and ACPI_WARNING (about 
4659253690Sjkim400 
4660204773Sjkiminvocations.) These invocations were converted from the original 
4661204773SjkimACPI_DEBUG_PRINT invocations and were not consistent. ACPICA BZ 835.
4662204773Sjkim
4663204773SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4664204773Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4665241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4666241973Sjkimhas a 
4667204773Sjkimmuch larger code and data size.
4668204773Sjkim
4669204773Sjkim  Previous Release:
4670204773Sjkim    Non-Debug Version:  87.1K Code, 18.0K Data, 105.1K Total
4671204773Sjkim    Debug Version:     163.5K Code, 50.9K Data, 214.4K Total
4672204773Sjkim  Current Release:
4673204773Sjkim    Non-Debug Version:  87.5K Code, 18.4K Data, 105.9K Total
4674204773Sjkim    Debug Version:     163.4K Code, 51.1K Data, 214.5K Total
4675204773Sjkim
4676204773Sjkim2) iASL Compiler/Disassembler and Tools:
4677204773Sjkim
4678204773SjkimiASL: Implemented typechecking support for static (non-control method) 
4679204773Sjkimpredefined named objects that are declared with the Name() operator. For 
4680204773Sjkimexample, the type of this object is now validated to be of type Integer: 
4681241973SjkimName(_BBN, 1). This change migrates the compiler to using the core 
4682241973Sjkimpredefined 
4683204773Sjkimname table instead of maintaining a local version. Added a new file, 
4684204773Sjkimaslpredef.c. ACPICA BZ 832.
4685204773Sjkim
4686204773SjkimDisassembler: Added support for the ACPI 4.0 MCHI table.
4687204773Sjkim
4688204773Sjkim----------------------------------------
4689202771Sjkim21 January 2010. Summary of changes for version 20100121:
4690202771Sjkim
4691202771Sjkim1) ACPI CA Core Subsystem:
4692202771Sjkim
4693202771SjkimAdded the 2010 copyright to all module headers and signons. This affects 
4694202771Sjkimvirtually every file in the ACPICA core subsystem, the iASL compiler, the 
4695202771Sjkimtools/utilities, and the test suites.
4696202771Sjkim
4697241973SjkimImplemented a change to the AcpiGetDevices interface to eliminate 
4698241973Sjkimunnecessary 
4699202771Sjkiminvocations of the _STA method. In the case where a specific _HID is 
4700202771Sjkimrequested, do not run _STA until a _HID match is found. This eliminates 
4701241973Sjkimpotentially dozens of _STA calls during a search for a particular 
4702241973Sjkimdevice/HID, 
4703202771Sjkimwhich in turn can improve boot times. ACPICA BZ 828. Lin Ming.
4704202771Sjkim
4705241973SjkimImplemented an additional repair for predefined method return values. 
4706241973SjkimAttempt 
4707253690Sjkimto repair unexpected NULL elements within returned Package objects. 
4708253690SjkimCreate 
4709241973Sjkiman 
4710241973SjkimInteger of value zero, a NULL String, or a zero-length Buffer as 
4711241973Sjkimappropriate. 
4712202771SjkimACPICA BZ 818. Lin Ming, Bob Moore.
4713202771Sjkim
4714241973SjkimRemoved the obsolete ACPI_INTEGER data type. This type was introduced as 
4715241973Sjkimthe 
4716241973Sjkimcode was migrated from ACPI 1.0 (with 32-bit AML integers) to ACPI 2.0 
4717241973Sjkim(with 
4718241973Sjkim64-bit AML integers). It is now obsolete and this change removes it from 
4719241973Sjkimthe 
4720241973SjkimACPICA code base, replaced by UINT64. The original typedef has been 
4721241973Sjkimretained 
4722253690Sjkimfor now for compatibility with existing device driver code. ACPICA BZ 
4723253690Sjkim824.
4724202771Sjkim
4725253690SjkimRemoved the unused UINT32_STRUCT type, and the obsolete Integer64 field 
4726253690Sjkimin 
4727202771Sjkimthe parse tree object.
4728202771Sjkim
4729241973SjkimAdded additional warning options for the gcc-4 generation. Updated the 
4730241973Sjkimsource 
4731241973Sjkimaccordingly. This includes some code restructuring to eliminate 
4732241973Sjkimunreachable 
4733253690Sjkimcode, elimination of some gotos, elimination of unused return values, 
4734253690Sjkimsome 
4735202771Sjkimadditional casting, and removal of redundant declarations.
4736202771Sjkim
4737202771SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4738202771Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4739241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4740241973Sjkimhas a 
4741202771Sjkimmuch larger code and data size.
4742202771Sjkim
4743202771Sjkim  Previous Release:
4744202771Sjkim    Non-Debug Version:  87.0K Code, 18.0K Data, 105.0K Total
4745202771Sjkim    Debug Version:     163.4K Code, 50.8K Data, 214.2K Total
4746202771Sjkim  Current Release:
4747202771Sjkim    Non-Debug Version:  87.1K Code, 18.0K Data, 105.1K Total
4748202771Sjkim    Debug Version:     163.5K Code, 50.9K Data, 214.4K Total
4749202771Sjkim
4750202771Sjkim2) iASL Compiler/Disassembler and Tools:
4751202771Sjkim
4752202771SjkimNo functional changes for this release.
4753202771Sjkim
4754202771Sjkim----------------------------------------
4755200553Sjkim14 December 2009. Summary of changes for version 20091214:
4756200553Sjkim
4757200553Sjkim1) ACPI CA Core Subsystem:
4758200553Sjkim
4759253690SjkimEnhanced automatic data type conversions for predefined name repairs. 
4760253690SjkimThis 
4761241973Sjkimchange expands the automatic repairs/conversions for predefined name 
4762241973Sjkimreturn 
4763253690Sjkimvalues to make Integers, Strings, and Buffers fully interchangeable. 
4764253690SjkimAlso, 
4765241973Sjkima 
4766241973SjkimBuffer can be converted to a Package of Integers if necessary. The 
4767241973Sjkimnsrepair.c 
4768200553Sjkimmodule was completely restructured. Lin Ming, Bob Moore.
4769200553Sjkim
4770241973SjkimImplemented automatic removal of null package elements during predefined 
4771241973Sjkimname 
4772200553Sjkimrepairs. This change will automatically remove embedded and trailing NULL 
4773253690Sjkimpackage elements from returned package objects that are defined to 
4774253690Sjkimcontain 
4775241973Sjkima 
4776241973Sjkimvariable number of sub-packages. The driver is then presented with a 
4777241973Sjkimpackage 
4778200553Sjkimwith no null elements to deal with. ACPICA BZ 819.
4779200553Sjkim
4780200553SjkimImplemented a repair for the predefined _FDE and _GTM names. The expected 
4781253690Sjkimreturn value for both names is a Buffer of 5 DWORDs. This repair fixes 
4782253690Sjkimtwo 
4783253690Sjkimpossible problems (both seen in the field), where a package of integers 
4784253690Sjkimis 
4785241973Sjkimreturned, or a buffer of BYTEs is returned. With assistance from Jung-uk 
4786241973SjkimKim.
4787200553Sjkim
4788241973SjkimImplemented additional module-level code support. This change will 
4789241973Sjkimproperly 
4790241973Sjkimexecute module-level code that is not at the root of the namespace (under 
4791241973Sjkima 
4792241973SjkimDevice object, etc.). Now executes the code within the current scope 
4793241973Sjkiminstead 
4794200553Sjkimof the root. ACPICA BZ 762. Lin Ming.
4795200553Sjkim
4796253690SjkimFixed possible mutex acquisition errors when running _REG methods. Fixes 
4797253690Sjkima 
4798253690Sjkimproblem where mutex errors can occur when running a _REG method that is 
4799253690Sjkimin 
4800253690Sjkimthe same scope as a method-defined operation region or an operation 
4801253690Sjkimregion 
4802241973Sjkimunder a module-level IF block. This type of code is rare, so the problem 
4803241973Sjkimhas 
4804200553Sjkimnot been seen before. ACPICA BZ 826. Lin Ming, Bob Moore.
4805200553Sjkim
4806253690SjkimFixed a possible memory leak during module-level code execution. An 
4807253690Sjkimobject 
4808200553Sjkimcould be leaked for each block of executed module-level code if the 
4809241973Sjkiminterpreter slack mode is enabled This change deletes any implicitly 
4810241973Sjkimreturned 
4811200553Sjkimobject from the module-level code block. Lin Ming.
4812200553Sjkim
4813253690SjkimRemoved messages for successful predefined repair(s). The repair 
4814253690Sjkimmechanism 
4815241973Sjkimwas considered too wordy. Now, messages are only unconditionally emitted 
4816241973Sjkimif 
4817200553Sjkimthe return object cannot be repaired. Existing messages for successful 
4818241973Sjkimrepairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 
4819241973Sjkim827.
4820200553Sjkim
4821200553SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4822200553Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4823241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4824241973Sjkimhas a 
4825200553Sjkimmuch larger code and data size.
4826200553Sjkim
4827200553Sjkim  Previous Release:
4828200553Sjkim    Non-Debug Version:  86.6K Code, 18.2K Data, 104.8K Total
4829200553Sjkim    Debug Version:     162.7K Code, 50.8K Data, 213.5K Total
4830200553Sjkim  Current Release:
4831200553Sjkim    Non-Debug Version:  87.0K Code, 18.0K Data, 105.0K Total
4832200553Sjkim    Debug Version:     163.4K Code, 50.8K Data, 214.2K Total
4833200553Sjkim
4834200553Sjkim2) iASL Compiler/Disassembler and Tools:
4835200553Sjkim
4836241973SjkimiASL: Fixed a regression introduced in 20091112 where intermediate .SRC 
4837241973Sjkimfiles 
4838200553Sjkimwere no longer automatically removed at the termination of the compile.
4839200553Sjkim
4840200553Sjkimacpiexec: Implemented the -f option to specify default region fill value. 
4841200553SjkimThis option specifies the value used to initialize buffers that simulate 
4842241973Sjkimoperation regions. Default value is zero. Useful for debugging problems 
4843241973Sjkimthat 
4844200553Sjkimdepend on a specific initial value for a region or field.
4845200553Sjkim
4846200553Sjkim----------------------------------------
4847199337Sjkim12 November 2009. Summary of changes for version 20091112:
4848199337Sjkim
4849199337Sjkim1) ACPI CA Core Subsystem:
4850199337Sjkim
4851199337SjkimImplemented a post-order callback to AcpiWalkNamespace. The existing 
4852199337Sjkiminterface only has a pre-order callback. This change adds an additional 
4853241973Sjkimparameter for a post-order callback which will be more useful for bus 
4854241973Sjkimscans. 
4855199337SjkimACPICA BZ 779. Lin Ming. Updated the ACPICA Programmer Reference.
4856199337Sjkim
4857199337SjkimModified the behavior of the operation region memory mapping cache for 
4858241973SjkimSystemMemory. Ensure that the memory mappings created for operation 
4859241973Sjkimregions 
4860199337Sjkimdo not cross 4K page boundaries. Crossing a page boundary while mapping 
4861241973Sjkimregions can cause kernel warnings on some hosts if the pages have 
4862241973Sjkimdifferent 
4863241973Sjkimattributes. Such regions are probably BIOS bugs, and this is the 
4864241973Sjkimworkaround. 
4865199337SjkimLinux BZ 14445. Lin Ming.
4866199337Sjkim
4867199337SjkimImplemented an automatic repair for predefined methods that must return 
4868241973Sjkimsorted lists. This change will repair (by sorting) packages returned by 
4869241973Sjkim_ALR, 
4870241973Sjkim_PSS, and _TSS. Drivers can now assume that the packages are correctly 
4871241973Sjkimsorted 
4872199337Sjkimand do not contain NULL package elements. Adds one new file, 
4873199337Sjkimnamespace/nsrepair2.c. ACPICA BZ 784. Lin Ming, Bob Moore.
4874199337Sjkim
4875241973SjkimFixed a possible fault during predefined name validation if a return 
4876241973SjkimPackage 
4877199337Sjkimobject contains NULL elements. Also adds a warning if a NULL element is 
4878241973Sjkimfollowed by any non-null elements. ACPICA BZ 813, 814. Future enhancement 
4879241973Sjkimmay 
4880199337Sjkiminclude repair or removal of all such NULL elements where possible.
4881199337Sjkim
4882241973SjkimImplemented additional module-level executable AML code support. This 
4883241973Sjkimchange 
4884199337Sjkimwill execute module-level code that is not at the root of the namespace 
4885241973Sjkim(under a Device object, etc.) at table load time. Module-level executable 
4886241973SjkimAML 
4887199337Sjkimcode has been illegal since ACPI 2.0. ACPICA BZ 762. Lin Ming.
4888199337Sjkim
4889241973SjkimImplemented a new internal function to create Integer objects. This 
4890241973Sjkimfunction 
4891199337Sjkimsimplifies miscellaneous object creation code. ACPICA BZ 823.
4892199337Sjkim
4893253690SjkimReduced the severity of predefined repair messages, Warning to Info. 
4894253690SjkimSince 
4895241973Sjkimthe object was successfully repaired, a warning is too severe. Reduced to 
4896241973Sjkiman 
4897241973Sjkiminfo message for now. These messages may eventually be changed to debug-
4898241973Sjkimonly. 
4899199337SjkimACPICA BZ 812.
4900199337Sjkim
4901199337SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4902199337Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4903241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4904241973Sjkimhas a 
4905199337Sjkimmuch larger code and data size.
4906199337Sjkim
4907199337Sjkim  Previous Release:
4908199337Sjkim    Non-Debug Version:  85.8K Code, 18.0K Data, 103.8K Total
4909199337Sjkim    Debug Version:     161.8K Code, 50.6K Data, 212.4K Total
4910199337Sjkim  Current Release:
4911199337Sjkim    Non-Debug Version:  86.6K Code, 18.2K Data, 104.8K Total
4912199337Sjkim    Debug Version:     162.7K Code, 50.8K Data, 213.5K Total
4913199337Sjkim
4914199337Sjkim2) iASL Compiler/Disassembler and Tools:
4915199337Sjkim
4916241973SjkimiASL: Implemented Switch() with While(1) so that Break works correctly. 
4917241973SjkimThis 
4918241973Sjkimchange correctly implements the Switch operator with a surrounding 
4919241973SjkimWhile(1) 
4920199337Sjkimso that the Break operator works as expected. ACPICA BZ 461. Lin Ming.
4921199337Sjkim
4922241973SjkimiASL: Added a message if a package initializer list is shorter than 
4923241973Sjkimpackage 
4924241973Sjkimlength. Adds a new remark for a Package() declaration if an initializer 
4925241973Sjkimlist 
4926199337Sjkimexists, but is shorter than the declared length of the package. Although 
4927199337Sjkimtechnically legal, this is probably a coding error and it is seen in the 
4928199337Sjkimfield. ACPICA BZ 815. Lin Ming, Bob Moore.
4929199337Sjkim
4930241973SjkimiASL: Fixed a problem where the compiler could fault after the maximum 
4931241973Sjkimnumber 
4932199337Sjkimof errors was reached (200).
4933199337Sjkim
4934241973Sjkimacpixtract: Fixed a possible warning for pointer cast if the compiler 
4935241973Sjkimwarning 
4936199337Sjkimlevel set very high.
4937199337Sjkim
4938199337Sjkim----------------------------------------
4939198237Sjkim13 October 2009. Summary of changes for version 20091013:
4940197104Sjkim
4941197104Sjkim1) ACPI CA Core Subsystem:
4942197104Sjkim
4943241973SjkimFixed a problem where an Operation Region _REG method could be executed 
4944241973Sjkimmore 
4945241973Sjkimthan once. If a custom address space handler is installed by the host 
4946241973Sjkimbefore 
4947253690Sjkimthe "initialize operation regions" phase of the ACPICA initialization, 
4948253690Sjkimany 
4949198237Sjkim_REG methods for that address space could be executed twice. This change 
4950198237Sjkimfixes the problem. ACPICA BZ 427. Lin Ming.
4951198237Sjkim
4952198237SjkimFixed a possible memory leak for the Scope() ASL operator. When the exact 
4953198237Sjkiminvocation of "Scope(\)" is executed (change scope to root), one internal 
4954198237Sjkimoperand object was leaked. Lin Ming.
4955198237Sjkim
4956198237SjkimImplemented a run-time repair for the _MAT predefined method. If the _MAT 
4957198237Sjkimreturn value is defined as a Field object in the AML, and the field
4958241973Sjkimsize is less than or equal to the default width of an integer (32 or 
4959241973Sjkim64),_MAT 
4960198237Sjkimcan incorrectly return an Integer instead of a Buffer. ACPICA now 
4961198237Sjkimautomatically repairs this problem. ACPICA BZ 810.
4962198237Sjkim
4963241973SjkimImplemented a run-time repair for the _BIF and _BIX predefined methods. 
4964241973SjkimThe 
4965198237Sjkim"OEM Information" field is often incorrectly returned as an Integer with 
4966241973Sjkimvalue zero if the field is not supported by the platform. This is due to 
4967241973Sjkiman 
4968198237Sjkimambiguity in the ACPI specification. The field should always be a string. 
4969198237SjkimACPICA now automatically repairs this problem by returning a NULL string 
4970198237Sjkimwithin the returned Package. ACPICA BZ 807.
4971198237Sjkim
4972198237SjkimExample Code and Data Size: These are the sizes for the OS-independent 
4973198237Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
4974241973Sjkimdebug version of the code includes the debug output trace mechanism and 
4975241973Sjkimhas a 
4976198237Sjkimmuch larger code and data size.
4977198237Sjkim
4978198237Sjkim  Previous Release:
4979198237Sjkim    Non-Debug Version:  85.6K Code, 18.0K Data, 103.6K Total
4980198237Sjkim    Debug Version:     161.7K Code, 50.9K Data, 212.6K Total
4981198237Sjkim  Current Release:
4982198237Sjkim    Non-Debug Version:  85.8K Code, 18.0K Data, 103.8K Total
4983198237Sjkim    Debug Version:     161.8K Code, 50.6K Data, 212.4K Total
4984198237Sjkim
4985198237Sjkim2) iASL Compiler/Disassembler and Tools:
4986198237Sjkim
4987198237SjkimDisassembler: Fixed a problem where references to external symbols that 
4988253690Sjkimcontained one or more parent-prefixes (carats) were not handled 
4989253690Sjkimcorrectly, 
4990198237Sjkimpossibly causing a fault. ACPICA BZ 806. Lin Ming.
4991198237Sjkim
4992198237SjkimDisassembler: Restructured the code so that all functions that handle 
4993198237Sjkimexternal symbols are in a single module. One new file is added, 
4994198237Sjkimcommon/dmextern.c.
4995198237Sjkim
4996198237SjkimAML Debugger: Added a max count argument for the Batch command (which 
4997198237Sjkimexecutes multiple predefined methods within the namespace.)
4998198237Sjkim
4999198237SjkimiASL: Updated the compiler documentation (User Reference.) Available at 
5000198237Sjkimhttp://www.acpica.org/documentation/. ACPICA BZ 750.
5001198237Sjkim
5002198237SjkimAcpiXtract: Updated for Lint and other formatting changes. Close all open 
5003198237Sjkimfiles.
5004198237Sjkim
5005198237Sjkim----------------------------------------
5006198237Sjkim03 September 2009. Summary of changes for version 20090903:
5007198237Sjkim
5008198237Sjkim1) ACPI CA Core Subsystem:
5009198237Sjkim
5010197104SjkimFor Windows Vista compatibility, added the automatic execution of an _INI 
5011197104Sjkimmethod located at the namespace root (\_INI). This method is executed at 
5012253690Sjkimtable load time. This support is in addition to the automatic execution 
5013253690Sjkimof 
5014197104Sjkim\_SB._INI. Lin Ming.
5015197104Sjkim
5016253690SjkimFixed a possible memory leak in the interpreter for AML package objects 
5017253690Sjkimif 
5018241973Sjkimthe package initializer list is longer than the defined size of the 
5019241973Sjkimpackage. 
5020241973SjkimThis apparently can only happen if the BIOS changes the package size on 
5021241973Sjkimthe 
5022197104Sjkimfly (seen in a _PSS object), as ASL compilers do not allow this. The 
5023241973Sjkiminterpreter will truncate the package to the defined size (and issue an 
5024241973Sjkimerror 
5025241973Sjkimmessage), but previously could leave the extra objects undeleted if they 
5026241973Sjkimwere 
5027241973Sjkimpre-created during the argument processing (such is the case if the 
5028241973Sjkimpackage 
5029197104Sjkimconsists of a number of sub-packages as in the _PSS.) ACPICA BZ 805.
5030197104Sjkim
5031197104SjkimFixed a problem seen when a Buffer or String is stored to itself via ASL. 
5032253690SjkimThis has been reported in the field. Previously, ACPICA would zero out 
5033253690Sjkimthe 
5034197104Sjkimbuffer/string. Now, the operation is treated as a noop. Provides Windows 
5035197104Sjkimcompatibility. ACPICA BZ 803. Lin Ming.
5036197104Sjkim
5037197104SjkimRemoved an extraneous error message for ASL constructs of the form 
5038241973SjkimStore(LocalX,LocalX) when LocalX is uninitialized. These curious 
5039241973Sjkimstatements 
5040253690Sjkimare seen in many BIOSs and are once again treated as NOOPs and no error 
5041253690Sjkimis 
5042197104Sjkimemitted when they are encountered. ACPICA BZ 785.
5043197104Sjkim
5044197104SjkimFixed an extraneous warning message if a _DSM reserved method returns a 
5045197104SjkimPackage object. _DSM can return any type of object, so validation on the 
5046197104Sjkimreturn type cannot be performed. ACPICA BZ 802.
5047197104Sjkim
5048197104SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5049197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5050241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5051241973Sjkimhas a 
5052197104Sjkimmuch larger code and data size.
5053197104Sjkim
5054197104Sjkim  Previous Release:
5055197104Sjkim    Non-Debug Version:  85.5K Code, 18.0K Data, 103.5K Total
5056197104Sjkim    Debug Version:     161.6K Code, 50.9K Data, 212.5K Total
5057197104Sjkim  Current Release:
5058197104Sjkim    Non-Debug Version:  85.6K Code, 18.0K Data, 103.6K Total
5059197104Sjkim    Debug Version:     161.7K Code, 50.9K Data, 212.6K Total
5060197104Sjkim
5061197104Sjkim2) iASL Compiler/Disassembler and Tools:
5062197104Sjkim
5063197104SjkimiASL: Fixed a problem with the use of the Alias operator and Resource 
5064197104SjkimTemplates. The correct alias is now constructed and no error is emitted. 
5065197104SjkimACPICA BZ 738.
5066197104Sjkim
5067241973SjkimiASL: Implemented the -I option to specify additional search directories 
5068241973Sjkimfor 
5069197104Sjkiminclude files. Allows multiple additional search paths for include files. 
5070253690SjkimDirectories are searched in the order specified on the command line 
5071253690Sjkim(after 
5072197104Sjkimthe local directory is searched.) ACPICA BZ 800.
5073197104Sjkim
5074197104SjkimiASL: Fixed a problem where the full pathname for include files was not 
5075197104Sjkimemitted for warnings/errors. This caused the IDE support to not work 
5076197104Sjkimproperly. ACPICA BZ 765.
5077197104Sjkim
5078197104SjkimiASL: Implemented the -@ option to specify a Windows-style response file 
5079197104Sjkimcontaining additional command line options. ACPICA BZ 801.
5080197104Sjkim
5081253690SjkimAcpiExec: Added support to load multiple AML files simultaneously (such 
5082253690Sjkimas 
5083241973Sjkima 
5084197104SjkimDSDT and multiple SSDTs). Also added support for wildcards within the AML 
5085197104Sjkimpathname. These features allow all machine tables to be easily loaded and 
5086197104Sjkimdebugged together. ACPICA BZ 804.
5087197104Sjkim
5088241973SjkimDisassembler: Added missing support for disassembly of HEST table Error 
5089241973SjkimBank 
5090197104Sjkimsubtables. 
5091197104Sjkim
5092197104Sjkim----------------------------------------
5093197104Sjkim30 July 2009. Summary of changes for version 20090730:
5094197104Sjkim
5095197104SjkimThe ACPI 4.0 implementation for ACPICA is complete with this release.
5096197104Sjkim
5097197104Sjkim1) ACPI CA Core Subsystem:
5098197104Sjkim
5099197104SjkimACPI 4.0: Added header file support for all new and changed ACPI tables. 
5100253690SjkimCompletely new tables are: IBFT, IVRS, MSCT, and WAET. Tables that are 
5101253690Sjkimnew 
5102241973Sjkimfor ACPI 4.0, but have previously been supported in ACPICA are: CPEP, 
5103241973SjkimBERT, 
5104241973SjkimEINJ, ERST, and HEST. Other newly supported tables are: UEFI and WDAT. 
5105241973SjkimThere 
5106197104Sjkimhave been some ACPI 4.0 changes to other existing tables. Split the large 
5107197104Sjkimactbl1.h header into the existing actbl2.h header. ACPICA BZ 774.
5108197104Sjkim
5109241973SjkimACPI 4.0: Implemented predefined name validation for all new names. There 
5110241973Sjkimare 
5111241973Sjkim31 new names in ACPI 4.0. The predefined validation module was split into 
5112241973Sjkimtwo 
5113197104Sjkimfiles. The new file is namespace/nsrepair.c. ACPICA BZ 770.
5114197104Sjkim
5115197104SjkimImplemented support for so-called "module-level executable code". This is 
5116241973Sjkimexecutable AML code that exists outside of any control method and is 
5117241973Sjkimintended 
5118241973Sjkimto be executed at table load time. Although illegal since ACPI 2.0, this 
5119241973Sjkimtype 
5120253690Sjkimof code still exists and is apparently still being created. Blocks of 
5121253690Sjkimthis 
5122253690Sjkimcode are now detected and executed as intended. Currently, the code 
5123253690Sjkimblocks 
5124197104Sjkimmust exist under either an If, Else, or While construct; these are the 
5125197104Sjkimtypical cases seen in the field. ACPICA BZ 762. Lin Ming.
5126197104Sjkim
5127197104SjkimImplemented an automatic dynamic repair for predefined names that return 
5128241973Sjkimnested Package objects. This applies to predefined names that are defined 
5129241973Sjkimto 
5130197104Sjkimreturn a variable-length Package of sub-packages. If the number of sub-
5131241973Sjkimpackages is one, BIOS code is occasionally seen that creates a simple 
5132241973Sjkimsingle 
5133197104Sjkimpackage with no sub-packages. This code attempts to fix the problem by 
5134241973Sjkimwrapping a new package object around the existing package. These methods 
5135241973Sjkimcan 
5136253690Sjkimbe repaired: _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, and _TSS. ACPICA 
5137253690SjkimBZ 
5138197104Sjkim790.
5139197104Sjkim
5140241973SjkimFixed a regression introduced in 20090625 for the AcpiGetDevices 
5141241973Sjkiminterface. 
5142241973SjkimThe _HID/_CID matching was broken and no longer matched IDs correctly. 
5143241973SjkimACPICA 
5144197104SjkimBZ 793.
5145197104Sjkim
5146197104SjkimFixed a problem with AcpiReset where the reset would silently fail if the 
5147241973Sjkimregister was one of the protected I/O ports. AcpiReset now bypasses the 
5148241973Sjkimport 
5149241973Sjkimvalidation mechanism. This may eventually be driven into the 
5150241973SjkimAcpiRead/Write 
5151197104Sjkiminterfaces.
5152197104Sjkim
5153197104SjkimFixed a regression related to the recent update of the AcpiRead/Write 
5154241973Sjkiminterfaces. A sleep/suspend could fail if the optional PM2 Control 
5155241973Sjkimregister 
5156197104Sjkimdoes not exist during an attempt to write the Bus Master Arbitration bit. 
5157253690Sjkim(However, some hosts already delete the code that writes this bit, and 
5158253690Sjkimthe 
5159197104Sjkimcode may in fact be obsolete at this date.) ACPICA BZ 799.
5160197104Sjkim
5161241973SjkimFixed a problem where AcpiTerminate could fault if inadvertently called 
5162241973Sjkimtwice 
5163197104Sjkimin succession. ACPICA BZ 795.
5164197104Sjkim
5165197104SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5166197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5167241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5168241973Sjkimhas a 
5169197104Sjkimmuch larger code and data size.
5170197104Sjkim
5171197104Sjkim  Previous Release:
5172197104Sjkim    Non-Debug Version:  84.7K Code, 17.8K Data, 102.5K Total
5173197104Sjkim    Debug Version:     160.5K Code, 50.6K Data, 211.1K Total
5174197104Sjkim  Current Release:
5175197104Sjkim    Non-Debug Version:  85.5K Code, 18.0K Data, 103.5K Total
5176197104Sjkim    Debug Version:     161.6K Code, 50.9K Data, 212.5K Total
5177197104Sjkim
5178197104Sjkim2) iASL Compiler/Disassembler and Tools:
5179197104Sjkim
5180197104SjkimACPI 4.0: Implemented disassembler support for all new ACPI tables and 
5181197104Sjkimchanges to existing tables. ACPICA BZ 775.
5182197104Sjkim
5183197104Sjkim----------------------------------------
5184197104Sjkim25 June 2009. Summary of changes for version 20090625:
5185197104Sjkim
5186197104SjkimThe ACPI 4.0 Specification was released on June 16 and is available at 
5187197104Sjkimwww.acpi.info. ACPICA implementation of ACPI 4.0 is underway and will 
5188197104Sjkimcontinue for the next few releases.
5189197104Sjkim
5190197104Sjkim1) ACPI CA Core Subsystem:
5191197104Sjkim
5192197104SjkimACPI 4.0: Implemented interpreter support for the IPMI operation region 
5193241973Sjkimaddress space. Includes support for bi-directional data buffers and an 
5194241973SjkimIPMI 
5195241973Sjkimaddress space handler (to be installed by an IPMI device driver.) ACPICA 
5196241973SjkimBZ 
5197197104Sjkim773. Lin Ming.
5198197104Sjkim
5199253690SjkimACPI 4.0: Added changes for existing ACPI tables - FACS and SRAT. 
5200253690SjkimIncludes 
5201197104Sjkimsupport in both the header files and the disassembler.
5202197104Sjkim
5203197104SjkimCompleted a major update for the AcpiGetObjectInfo external interface. 
5204197104SjkimChanges include:
5205197104Sjkim - Support for variable, unlimited length HID, UID, and CID strings.
5206241973Sjkim - Support Processor objects the same as Devices (HID,UID,CID,ADR,STA, 
5207241973Sjkimetc.)
5208197104Sjkim - Call the _SxW power methods on behalf of a device object.
5209197104Sjkim - Determine if a device is a PCI root bridge.
5210197104Sjkim - Change the ACPI_BUFFER parameter to ACPI_DEVICE_INFO.
5211253690SjkimThese changes will require an update to all callers of this interface. 
5212253690SjkimSee 
5213241973Sjkimthe updated ACPICA Programmer Reference for details. One new source file 
5214241973Sjkimhas 
5215197104Sjkimbeen added - utilities/utids.c. ACPICA BZ 368, 780.
5216197104Sjkim
5217197104SjkimUpdated the AcpiRead and AcpiWrite external interfaces to support 64-bit 
5218241973Sjkimtransfers. The Value parameter has been extended from 32 bits to 64 bits 
5219241973Sjkimin 
5220253690Sjkimorder to support new ACPI 4.0 tables. These changes will require an 
5221253690Sjkimupdate 
5222241973Sjkimto 
5223197104Sjkimall callers of these interfaces. See the ACPICA Programmer Reference for 
5224197104Sjkimdetails. ACPICA BZ 768.
5225197104Sjkim
5226241973SjkimFixed several problems with AcpiAttachData. The handler was not invoked 
5227241973Sjkimwhen 
5228241973Sjkimthe host node was deleted. The data sub-object was not automatically 
5229241973Sjkimdeleted 
5230253690Sjkimwhen the host node was deleted. The interface to the handler had an 
5231253690Sjkimunused 
5232197104Sjkimparameter, this was removed. ACPICA BZ 778.
5233197104Sjkim
5234197104SjkimEnhanced the function that dumps ACPI table headers. All non-printable 
5235241973Sjkimcharacters in the string fields are now replaced with '?' (Signature, 
5236241973SjkimOemId, 
5237197104SjkimOemTableId, and CompilerId.) ACPI tables with non-printable characters in 
5238197104Sjkimthese fields are occasionally seen in the field. ACPICA BZ 788.
5239197104Sjkim
5240197104SjkimFixed a problem with predefined method repair code where the code that 
5241253690Sjkimattempts to repair/convert an object of incorrect type is only executed 
5242253690Sjkimon 
5243241973Sjkimthe first time the predefined method is called. The mechanism that 
5244241973Sjkimdisables 
5245197104Sjkimwarnings on subsequent calls was interfering with the repair mechanism. 
5246197104SjkimACPICA BZ 781.
5247197104Sjkim
5248253690SjkimFixed a possible memory leak in the predefined validation/repair code 
5249253690Sjkimwhen 
5250241973Sjkima 
5251197104Sjkimbuffer is automatically converted to an expected string object.
5252197104Sjkim
5253241973SjkimRemoved obsolete 16-bit files from the distribution and from the current 
5254241973Sjkimgit 
5255197104Sjkimtree head. ACPICA BZ 776.
5256197104Sjkim
5257197104SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5258197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5259241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5260241973Sjkimhas a 
5261197104Sjkimmuch larger code and data size.
5262197104Sjkim
5263197104Sjkim  Previous Release:
5264197104Sjkim    Non-Debug Version:  83.4K Code, 17.5K Data, 100.9K Total
5265197104Sjkim    Debug Version:     158.9K Code, 50.0K Data, 208.9K Total
5266197104Sjkim  Current Release:
5267197104Sjkim    Non-Debug Version:  84.7K Code, 17.8K Data, 102.5K Total
5268197104Sjkim    Debug Version:     160.5K Code, 50.6K Data, 211.1K Total
5269197104Sjkim
5270197104Sjkim2) iASL Compiler/Disassembler and Tools:
5271197104Sjkim
5272197104SjkimACPI 4.0: iASL and Disassembler - implemented support for the new IPMI 
5273197104Sjkimoperation region keyword. ACPICA BZ 771, 772. Lin Ming.
5274197104Sjkim
5275197104SjkimACPI 4.0: iASL - implemented compile-time validation support for all new 
5276197104Sjkimpredefined names and control methods (31 total). ACPICA BZ 769.
5277197104Sjkim
5278197104Sjkim----------------------------------------
5279193267Sjkim21 May 2009. Summary of changes for version 20090521:
5280193267Sjkim
5281193267Sjkim1) ACPI CA Core Subsystem:
5282193267Sjkim
5283241973SjkimDisabled the preservation of the SCI enable bit in the PM1 control 
5284241973Sjkimregister. 
5285253690SjkimThe SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification 
5286253690Sjkimto 
5287241973Sjkimbe 
5288193267Sjkima "preserved" bit - "OSPM always preserves this bit position", section 
5289193267Sjkim4.7.3.2.1. However, some machines fail if this bit is in fact preserved 
5290193267Sjkimbecause the bit needs to be explicitly set by the OS as a workaround. No 
5291193267Sjkimmachines fail if the bit is not preserved. Therefore, ACPICA no longer 
5292193267Sjkimattempts to preserve this bit.
5293193267Sjkim
5294193267SjkimFixed a problem in AcpiRsGetPciRoutingTableLength where an invalid or 
5295193267Sjkimincorrectly formed _PRT package could cause a fault. Added validation to 
5296193267Sjkimensure that each package element is actually a sub-package.
5297193267Sjkim
5298241973SjkimImplemented a new interface to install or override a single control 
5299241973Sjkimmethod, 
5300241973SjkimAcpiInstallMethod. This interface is useful when debugging in order to 
5301241973Sjkimrepair 
5302241973Sjkiman existing method or to install a missing method without having to 
5303241973Sjkimoverride 
5304193267Sjkimthe entire ACPI table. See the ACPICA Programmer Reference for use and 
5305193267Sjkimexamples. Lin Ming, Bob Moore.
5306193267Sjkim
5307193267SjkimFixed several reference count issues with the DdbHandle object that is 
5308241973Sjkimcreated from a Load or LoadTable operator. Prevent premature deletion of 
5309241973Sjkimthe 
5310253690Sjkimobject. Also, mark the object as invalid once the table has been 
5311253690Sjkimunloaded. 
5312241973SjkimThis is needed because the handle itself may not be deleted after the 
5313241973Sjkimtable 
5314193267Sjkimunload, depending on whether it has been stored in a named object by the 
5315193267Sjkimcaller. Lin Ming.
5316193267Sjkim
5317193267SjkimFixed a problem with Mutex Sync Levels. Fixed a problem where if multiple 
5318241973Sjkimmutexes of the same sync level are acquired but then not released in 
5319241973Sjkimstrict 
5320241973Sjkimopposite order, the internally maintained Current Sync Level becomes 
5321241973Sjkimconfused 
5322193267Sjkimand can cause subsequent execution errors. ACPICA BZ 471.
5323193267Sjkim
5324193267SjkimChanged the allowable release order for ASL mutex objects. The ACPI 4.0 
5325241973Sjkimspecification has been changed to make the SyncLevel for mutex objects 
5326241973Sjkimmore 
5327253690Sjkimuseful. When releasing a mutex, the SyncLevel of the mutex must now be 
5328253690Sjkimthe 
5329241973Sjkimsame as the current sync level. This makes more sense than the previous 
5330241973Sjkimrule 
5331193267Sjkim(SyncLevel less than or equal). This change updates the code to match the 
5332193267Sjkimspecification.
5333193267Sjkim
5334241973SjkimFixed a problem with the local version of the AcpiOsPurgeCache function. 
5335241973SjkimThe 
5336193267Sjkim(local) cache must be locked during all cache object deletions. Andrew 
5337193267SjkimBaumann.
5338193267Sjkim
5339241973SjkimUpdated the Load operator to use operation region interfaces. This 
5340241973Sjkimreplaces 
5341241973Sjkimdirect memory mapping with region access calls. Now, all region accesses 
5342241973Sjkimgo 
5343193267Sjkimthrough the installed region handler as they should.
5344193267Sjkim
5345241973SjkimSimplified and optimized the NsGetNextNode function. Reduced parameter 
5346241973Sjkimcount 
5347193267Sjkimand reduced code for this frequently used function.
5348193267Sjkim
5349193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5350193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5351241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5352241973Sjkimhas a 
5353193267Sjkimmuch larger code and data size.
5354193267Sjkim
5355193267Sjkim  Previous Release:
5356193267Sjkim    Non-Debug Version:  82.8K Code, 17.5K Data, 100.3K Total
5357193267Sjkim    Debug Version:     158.0K Code, 49.9K Data, 207.9K Total
5358193267Sjkim  Current Release:
5359193267Sjkim    Non-Debug Version:  83.4K Code, 17.5K Data, 100.9K Total
5360193267Sjkim    Debug Version:     158.9K Code, 50.0K Data, 208.9K Total
5361193267Sjkim
5362193267Sjkim2) iASL Compiler/Disassembler and Tools:
5363193267Sjkim
5364241973SjkimDisassembler: Fixed some issues with DMAR, HEST, MADT tables. Some 
5365241973Sjkimproblems 
5366241973Sjkimwith sub-table disassembly and handling invalid sub-tables. Attempt 
5367241973Sjkimrecovery 
5368193267Sjkimafter an invalid sub-table ID.
5369193267Sjkim
5370193267Sjkim----------------------------------------
5371193267Sjkim22 April 2009. Summary of changes for version 20090422:
5372193267Sjkim
5373193267Sjkim1) ACPI CA Core Subsystem:
5374193267Sjkim
5375253690SjkimFixed a compatibility issue with the recently released I/O port 
5376253690Sjkimprotection 
5377193267Sjkimmechanism. For windows compatibility, 1) On a port protection violation, 
5378241973Sjkimsimply ignore the request and do not return an exception (allow the 
5379241973Sjkimcontrol 
5380193267Sjkimmethod to continue execution.) 2) If only part of the request overlaps a 
5381241973Sjkimprotected port, read/write the individual ports that are not protected. 
5382241973SjkimLinux 
5383193267SjkimBZ 13036. Lin Ming
5384193267Sjkim
5385241973SjkimEnhanced the execution of the ASL/AML BreakPoint operator so that it 
5386241973Sjkimactually 
5387193267Sjkimbreaks into the AML debugger if the debugger is present. This matches the 
5388193267SjkimACPI-defined behavior.
5389193267Sjkim
5390193267SjkimFixed several possible warnings related to the use of the configurable 
5391193267SjkimACPI_THREAD_ID. This type can now be configured as either an integer or a 
5392193267Sjkimpointer with no warnings. Also fixes several warnings in printf-like 
5393193267Sjkimstatements for the 64-bit build when the type is configured as a pointer. 
5394193267SjkimACPICA BZ 766, 767.
5395193267Sjkim
5396241973SjkimFixed a number of possible warnings when compiling with gcc 4+ (depending 
5397241973Sjkimon 
5398241973Sjkimwarning options.) Examples include printf formats, aliasing, unused 
5399241973Sjkimglobals, 
5400193267Sjkimmissing prototypes, missing switch default statements, use of non-ANSI 
5401241973Sjkimlibrary functions, use of non-ANSI constructs. See generate/unix/Makefile 
5402241973Sjkimfor 
5403193267Sjkima list of warning options used with gcc 3 and 4. ACPICA BZ 735.
5404193267Sjkim
5405193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5406193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5407241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5408241973Sjkimhas a 
5409193267Sjkimmuch larger code and data size.
5410193267Sjkim
5411193267Sjkim  Previous Release:
5412193267Sjkim    Non-Debug Version:  82.6K Code, 17.6K Data, 100.2K Total
5413193267Sjkim    Debug Version:     157.7K Code, 49.9K Data, 207.6K Total
5414193267Sjkim  Current Release:
5415193267Sjkim    Non-Debug Version:  82.8K Code, 17.5K Data, 100.3K Total
5416193267Sjkim    Debug Version:     158.0K Code, 49.9K Data, 207.9K Total
5417193267Sjkim
5418193267Sjkim2) iASL Compiler/Disassembler and Tools:
5419193267Sjkim
5420253690SjkimiASL: Fixed a generation warning from Bison 2.3 and fixed several 
5421253690Sjkimwarnings 
5422241973Sjkimon 
5423193267Sjkimthe 64-bit build.
5424193267Sjkim
5425241973SjkimiASL: Fixed a problem where the Unix/Linux versions of the compiler could 
5426241973Sjkimnot 
5427193267Sjkimcorrectly digest Windows/DOS formatted files (with CR/LF).
5428193267Sjkim
5429193267SjkimiASL: Added a new option for "quiet mode" (-va) that produces only the 
5430193267Sjkimcompilation summary, not individual errors and warnings. Useful for large 
5431193267Sjkimbatch compilations.
5432193267Sjkim
5433253690SjkimAcpiExec: Implemented a new option (-z) to enable a forced 
5434253690Sjkimsemaphore/mutex 
5435253690Sjkimtimeout that can be used to detect hang conditions during execution of 
5436253690SjkimAML 
5437241973Sjkimcode (includes both internal semaphores and AML-defined mutexes and 
5438241973Sjkimevents.)
5439193267Sjkim
5440193267SjkimAdded new makefiles for the generation of acpica in a generic unix-like 
5441253690Sjkimenvironment. These makefiles are intended to generate the acpica tools 
5442253690Sjkimand 
5443193267Sjkimutilities from the original acpica git source tree structure.
5444193267Sjkim
5445193267SjkimTest Suites: Updated and cleaned up the documentation files. Updated the 
5446241973Sjkimcopyrights to 2009, affecting all source files. Use the new version of 
5447241973SjkimiASL 
5448241973Sjkimwith quiet mode. Increased the number of available semaphores in the 
5449241973SjkimWindows 
5450241973SjkimOSL, allowing the aslts to execute fully on Windows. For the Unix OSL, 
5451241973Sjkimadded 
5452193267Sjkiman alternate implementation of the semaphore timeout to allow aslts to 
5453193267Sjkimexecute fully on Cygwin.
5454193267Sjkim
5455193267Sjkim----------------------------------------
5456193267Sjkim20 March 2009. Summary of changes for version 20090320:
5457193267Sjkim
5458193267Sjkim1) ACPI CA Core Subsystem:
5459193267Sjkim
5460241973SjkimFixed a possible race condition between AcpiWalkNamespace and dynamic 
5461241973Sjkimtable 
5462241973Sjkimunloads. Added a reader/writer locking mechanism to allow multiple 
5463241973Sjkimconcurrent 
5464241973Sjkimnamespace walks (readers), but block a dynamic table unload until it can 
5465241973Sjkimgain 
5466241973Sjkimexclusive write access to the namespace. This fixes a problem where a 
5467241973Sjkimtable 
5468241973Sjkimunload could (possibly catastrophically) delete the portion of the 
5469241973Sjkimnamespace 
5470241973Sjkimthat is currently being examined by a walk. Adds a new file, utlock.c, 
5471241973Sjkimthat 
5472193267Sjkimimplements the reader/writer lock mechanism. ACPICA BZ 749.
5473193267Sjkim
5474241973SjkimFixed a regression introduced in version 20090220 where a change to the 
5475241973SjkimFADT 
5476241973Sjkimhandling could cause the ACPICA subsystem to access non-existent I/O 
5477241973Sjkimports.
5478193267Sjkim
5479241973SjkimModified the handling of FADT register and table (FACS/DSDT) addresses. 
5480241973SjkimThe 
5481193267SjkimFADT can contain both 32-bit and 64-bit versions of these addresses. 
5482241973SjkimPreviously, the 64-bit versions were favored, meaning that if both 32 and 
5483241973Sjkim64 
5484193267Sjkimversions were valid, but not equal, the 64-bit version was used. This was 
5485241973Sjkimfound to cause some machines to fail. Now, in this case, the 32-bit 
5486241973Sjkimversion 
5487193267Sjkimis used instead. This now matches the Windows behavior.
5488193267Sjkim
5489241973SjkimImplemented a new mechanism to protect certain I/O ports. Provides 
5490241973SjkimMicrosoft 
5491193267Sjkimcompatibility and protects the standard PC I/O ports from access via AML 
5492193267Sjkimcode. Adds a new file, hwvalid.c
5493193267Sjkim
5494193267SjkimFixed a possible extraneous warning message from the FADT support. The 
5495193267Sjkimmessage warns of a 32/64 length mismatch between the legacy and GAS 
5496193267Sjkimdefinitions for a register.
5497193267Sjkim
5498241973SjkimRemoved the obsolete AcpiOsValidateAddress OSL interface. This interface 
5499241973Sjkimis 
5500241973Sjkimmade obsolete by the port protection mechanism above. It was previously 
5501241973Sjkimused 
5502241973Sjkimto validate the entire address range of an operation region, which could 
5503241973Sjkimbe 
5504193267Sjkimincorrect if the range included illegal ports, but fields within the 
5505193267Sjkimoperation region did not actually access those ports. Validation is now 
5506193267Sjkimperformed on a per-field basis instead of the entire region.
5507193267Sjkim
5508193267SjkimModified the handling of the PM1 Status Register ignored bit (bit 11.) 
5509253690SjkimIgnored bits must be "preserved" according to the ACPI spec. Usually, 
5510253690Sjkimthis 
5511241973Sjkimmeans a read/modify/write when writing to the register. However, for 
5512241973Sjkimstatus 
5513241973Sjkimregisters, writing a one means clear the event. Writing a zero means 
5514241973Sjkimpreserve 
5515253690Sjkimthe event (do not clear.) This behavior is clarified in the ACPI 4.0 
5516253690Sjkimspec, 
5517193267Sjkimand the ACPICA code now simply always writes a zero to the ignored bit.
5518193267Sjkim
5519241973SjkimModified the handling of ignored bits for the PM1 A/B Control Registers. 
5520241973SjkimAs 
5521193267Sjkimper the ACPI specification, for the control registers, preserve 
5522241973Sjkim(read/modify/write) all bits that are defined as either reserved or 
5523241973Sjkimignored.
5524193267Sjkim
5525193267SjkimUpdated the handling of write-only bits in the PM1 A/B Control Registers. 
5526193267SjkimWhen reading the register, zero the write-only bits as per the ACPI spec. 
5527193267SjkimACPICA BZ 443. Lin Ming.
5528193267Sjkim
5529193267SjkimRemoved "Linux" from the list of supported _OSI strings. Linux no longer 
5530241973Sjkimwants to reply true to this request. The Windows strings are the only 
5531241973Sjkimpaths 
5532193267Sjkimthrough the AML that are tested and known to work properly.
5533193267Sjkim
5534193267Sjkim  Previous Release:
5535193267Sjkim    Non-Debug Version:  82.0K Code, 17.5K Data,  99.5K Total
5536193267Sjkim    Debug Version:     156.9K Code, 49.8K Data, 206.7K Total
5537193267Sjkim  Current Release:
5538193267Sjkim    Non-Debug Version:  82.6K Code, 17.6K Data, 100.2K Total
5539193267Sjkim    Debug Version:     157.7K Code, 49.9K Data, 207.6K Total
5540193267Sjkim
5541193267Sjkim2) iASL Compiler/Disassembler and Tools:
5542193267Sjkim
5543241973SjkimAcpiexec: Split the large aeexec.c file into two new files, aehandlers.c 
5544241973Sjkimand 
5545193267Sjkimaetables.c
5546193267Sjkim
5547193267Sjkim----------------------------------------
5548193267Sjkim20 February 2009. Summary of changes for version 20090220:
5549193267Sjkim
5550193267Sjkim1) ACPI CA Core Subsystem:
5551193267Sjkim
5552241973SjkimOptimized the ACPI register locking. Removed locking for reads from the 
5553241973SjkimACPI 
5554253690Sjkimbit registers in PM1 Status, Enable, Control, and PM2 Control. The lock 
5555253690Sjkimis 
5556193267Sjkimnot required when reading the single-bit registers. The 
5557253690SjkimAcpiGetRegisterUnlocked function is no longer needed and has been 
5558253690Sjkimremoved. 
5559253690SjkimThis will improve performance for reads on these registers. ACPICA BZ 
5560253690Sjkim760.
5561193267Sjkim
5562193267SjkimFixed the parameter validation for AcpiRead/Write. Now return 
5563253690SjkimAE_BAD_PARAMETER if the input register pointer is null, and 
5564253690SjkimAE_BAD_ADDRESS 
5565241973Sjkimif 
5566241973Sjkimthe register has an address of zero. Previously, these cases simply 
5567241973Sjkimreturned 
5568241973SjkimAE_OK. For optional registers such as PM1B status/enable/control, the 
5569241973Sjkimcaller 
5570193267Sjkimshould check for a valid register address before calling. ACPICA BZ 748.
5571193267Sjkim
5572193267SjkimRenamed the external ACPI bit register access functions. Renamed 
5573193267SjkimAcpiGetRegister and AcpiSetRegister to clarify the purpose of these 
5574253690Sjkimfunctions. The new names are AcpiReadBitRegister and 
5575253690SjkimAcpiWriteBitRegister. 
5576241973SjkimAlso, restructured the code for these functions by simplifying the code 
5577241973Sjkimpath 
5578193267Sjkimand condensing duplicate code to reduce code size.
5579193267Sjkim
5580193267SjkimAdded new functions to transparently handle the possibly split PM1 A/B 
5581253690Sjkimregisters. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two 
5582253690Sjkimfunctions 
5583253690Sjkimnow handle the split registers for PM1 Status, Enable, and Control. 
5584253690SjkimACPICA 
5585241973SjkimBZ 
5586193267Sjkim746.
5587193267Sjkim
5588241973SjkimAdded a function to handle the PM1 control registers, 
5589241973SjkimAcpiHwWritePm1Control. 
5590241973SjkimThis function writes both of the PM1 control registers (A/B). These 
5591241973Sjkimregisters 
5592241973Sjkimare different than the PM1 A/B status and enable registers in that 
5593241973Sjkimdifferent 
5594253690Sjkimvalues can be written to the A/B registers. Most notably, the SLP_TYP 
5595253690Sjkimbits 
5596241973Sjkimcan be different, as per the values returned from the _Sx predefined 
5597241973Sjkimmethods.
5598193267Sjkim
5599241973SjkimRemoved an extra register write within AcpiHwClearAcpiStatus. This 
5600241973Sjkimfunction 
5601241973Sjkimwas writing an optional PM1B status register twice. The existing call to 
5602241973Sjkimthe 
5603241973Sjkimlow-level AcpiHwRegisterWrite automatically handles a possibly split PM1 
5604241973SjkimA/B 
5605193267Sjkimregister. ACPICA BZ 751.
5606193267Sjkim
5607241973SjkimSplit out the PM1 Status registers from the FADT. Added new globals for 
5608241973Sjkimthese 
5609193267Sjkimregisters (A/B), similar to the way the PM1 Enable registers are handled. 
5610253690SjkimInstead of overloading the FADT Event Register blocks. This makes the 
5611253690Sjkimcode 
5612193267Sjkimclearer and less prone to error.
5613193267Sjkim
5614241973SjkimFixed the warning message for when the platform contains too many ACPI 
5615241973Sjkimtables 
5616241973Sjkimfor the default size of the global root table data structure. The 
5617241973Sjkimcalculation 
5618193267Sjkimfor the truncation value was incorrect.
5619193267Sjkim
5620193267SjkimRemoved the ACPI_GET_OBJECT_TYPE macro. Removed all instances of this 
5621253690Sjkimobsolete macro, since it is now a simple reference to ->common.type. 
5622253690SjkimThere 
5623193267Sjkimwere about 150 invocations of the macro across 41 files. ACPICA BZ 755.
5624193267Sjkim
5625193267SjkimRemoved the redundant ACPI_BITREG_SLEEP_TYPE_B. This type is the same as 
5626193267SjkimTYPE_A. Removed this and all related instances. Renamed SLEEP_TYPE_A to 
5627193267Sjkimsimply SLEEP_TYPE. ACPICA BZ 754.
5628193267Sjkim
5629193267SjkimConditionally compile the AcpiSetFirmwareWakingVector64 function. This 
5630193267Sjkimfunction is only needed on 64-bit host operating systems and is thus not 
5631193267Sjkimincluded for 32-bit hosts.
5632193267Sjkim
5633241973SjkimDebug output: print the input and result for invocations of the _OSI 
5634241973Sjkimreserved 
5635253690Sjkimcontrol method via the ACPI_LV_INFO debug level. Also, reduced some of 
5636253690Sjkimthe 
5637193267Sjkimverbosity of this debug level. Len Brown.
5638193267Sjkim
5639193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5640193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5641241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5642241973Sjkimhas a 
5643193267Sjkimmuch larger code and data size.
5644193267Sjkim
5645193267Sjkim  Previous Release:
5646193267Sjkim    Non-Debug Version:  82.3K Code, 17.5K Data,  99.8K Total
5647193267Sjkim    Debug Version:     157.3K Code, 49.8K Data, 207.1K Total
5648193267Sjkim  Current Release:
5649193267Sjkim    Non-Debug Version:  82.0K Code, 17.5K Data,  99.5K Total
5650193267Sjkim    Debug Version:     156.9K Code, 49.8K Data, 206.7K Total
5651193267Sjkim
5652193267Sjkim2) iASL Compiler/Disassembler and Tools:
5653193267Sjkim
5654193267SjkimDisassembler: Decode the FADT PM_Profile field. Emit ascii names for the 
5655193267Sjkimvarious legal performance profiles.
5656193267Sjkim
5657193267Sjkim----------------------------------------
5658193267Sjkim23 January 2009. Summary of changes for version 20090123:
5659193267Sjkim
5660193267Sjkim1) ACPI CA Core Subsystem:
5661193267Sjkim
5662193267SjkimAdded the 2009 copyright to all module headers and signons. This affects 
5663193267Sjkimvirtually every file in the ACPICA core subsystem, the iASL compiler, and 
5664193267Sjkimthe tools/utilities.
5665193267Sjkim
5666241973SjkimImplemented a change to allow the host to override any ACPI table, 
5667241973Sjkimincluding 
5668241973Sjkimdynamically loaded tables. Previously, only the DSDT could be replaced by 
5669241973Sjkimthe 
5670241973Sjkimhost. With this change, the AcpiOsTableOverride interface is called for 
5671241973Sjkimeach 
5672241973Sjkimtable found in the RSDT/XSDT during ACPICA initialization, and also 
5673241973Sjkimwhenever 
5674193267Sjkima table is dynamically loaded via the AML Load operator.
5675193267Sjkim
5676193267SjkimUpdated FADT flag definitions, especially the Boot Architecture flags.
5677193267Sjkim
5678253690SjkimDebugger: For the Find command, automatically pad the input ACPI name 
5679253690Sjkimwith 
5680253690Sjkimunderscores if the name is shorter than 4 characters. This enables a 
5681253690Sjkimmatch 
5682193267Sjkimwith the actual namespace entry which is itself padded with underscores.
5683193267Sjkim
5684193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5685193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5686241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5687241973Sjkimhas a 
5688193267Sjkimmuch larger code and data size.
5689193267Sjkim
5690193267Sjkim  Previous Release:
5691193267Sjkim    Non-Debug Version:  82.3K Code, 17.4K Data,  99.7K Total
5692193267Sjkim    Debug Version:     157.1K Code, 49.7K Data, 206.8K Total
5693193267Sjkim  Current Release:
5694193267Sjkim    Non-Debug Version:  82.3K Code, 17.5K Data,  99.8K Total
5695193267Sjkim    Debug Version:     157.3K Code, 49.8K Data, 207.1K Total
5696193267Sjkim
5697193267Sjkim2) iASL Compiler/Disassembler and Tools:
5698193267Sjkim
5699193267SjkimFix build error under Bison-2.4.
5700193267Sjkim
5701241973SjkimDissasembler: Enhanced FADT support. Added decoding of the Boot 
5702241973SjkimArchitecture 
5703193267Sjkimflags. Now decode all flags, regardless of the FADT version. Flag output 
5704193267Sjkimincludes the FADT version which first defined each flag.
5705193267Sjkim
5706241973SjkimThe iASL -g option now dumps the RSDT to a file (in addition to the FADT 
5707241973Sjkimand 
5708193267SjkimDSDT). Windows only.
5709193267Sjkim
5710193267Sjkim----------------------------------------
5711193267Sjkim04 December 2008. Summary of changes for version 20081204:
5712193267Sjkim
5713193267Sjkim1) ACPI CA Core Subsystem:
5714193267Sjkim
5715241973SjkimThe ACPICA Programmer Reference has been completely updated and revamped 
5716241973Sjkimfor 
5717193267Sjkimthis release. This includes updates to the external interfaces, OSL 
5718193267Sjkiminterfaces, the overview sections, and the debugger reference.
5719193267Sjkim
5720193267SjkimSeveral new ACPICA interfaces have been implemented and documented in the 
5721193267Sjkimprogrammer reference:
5722193267SjkimAcpiReset - Writes the reset value to the FADT-defined reset register.
5723193267SjkimAcpiDisableAllGpes - Disable all available GPEs.
5724193267SjkimAcpiEnableAllRuntimeGpes - Enable all available runtime GPEs.
5725193267SjkimAcpiGetGpeDevice - Get the GPE block device associated with a GPE.
5726193267SjkimAcpiGbl_CurrentGpeCount - Tracks the current number of available GPEs.
5727193267SjkimAcpiRead - Low-level read ACPI register (was HwLowLevelRead.)
5728193267SjkimAcpiWrite - Low-level write ACPI register (was HwLowLevelWrite.)
5729193267Sjkim
5730241973SjkimMost of the public ACPI hardware-related interfaces have been moved to a 
5731241973Sjkimnew 
5732193267Sjkimfile, components/hardware/hwxface.c
5733193267Sjkim
5734193267SjkimEnhanced the FADT parsing and low-level ACPI register access: The ACPI 
5735193267Sjkimregister lengths within the FADT are now used, and the low level ACPI 
5736193267Sjkimregister access no longer hardcodes the ACPI register lengths. Given that 
5737241973Sjkimthere may be some risk in actually trusting the FADT register lengths, a 
5738241973Sjkimrun-
5739253690Sjkimtime option was added to fall back to the default hardcoded lengths if 
5740253690Sjkimthe 
5741193267SjkimFADT proves to contain incorrect values - UseDefaultRegisterWidths. This 
5742241973Sjkimoption is set to true for now, and a warning is issued if a suspicious 
5743241973SjkimFADT 
5744193267Sjkimregister length is overridden with the default value.
5745193267Sjkim
5746241973SjkimFixed a reference count issue in NsRepairObject. This problem was 
5747241973Sjkimintroduced 
5748193267Sjkimin version 20081031 as part of a fix to repair Buffer objects within 
5749193267SjkimPackages. Lin Ming.
5750193267Sjkim
5751193267SjkimAdded semaphore support to the Linux/Unix application OS-services layer 
5752193267Sjkim(OSL). ACPICA BZ 448. Lin Ming.
5753193267Sjkim
5754241973SjkimAdded the ACPI_MUTEX_TYPE configuration option to select whether mutexes 
5755241973Sjkimwill 
5756193267Sjkimbe implemented in the OSL, or will binary semaphores be used instead.
5757193267Sjkim
5758193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5759193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5760241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5761241973Sjkimhas a 
5762193267Sjkimmuch larger code and data size.
5763193267Sjkim
5764193267Sjkim  Previous Release:
5765193267Sjkim    Non-Debug Version:  81.7K Code, 17.3K Data,  99.0K Total
5766193267Sjkim    Debug Version:     156.4K Code, 49.4K Data, 205.8K Total
5767193267Sjkim  Current Release:
5768193267Sjkim    Non-Debug Version:  82.3K Code, 17.4K Data,  99.7K Total
5769193267Sjkim    Debug Version:     157.1K Code, 49.7K Data, 206.8K Total
5770193267Sjkim
5771193267Sjkim2) iASL Compiler/Disassembler and Tools:
5772193267Sjkim
5773253690SjkimiASL: Completed the '-e' option to include additional ACPI tables in 
5774253690Sjkimorder 
5775241973Sjkimto 
5776253690Sjkimaid with disassembly and External statement generation. ACPICA BZ 742. 
5777253690SjkimLin 
5778193267SjkimMing.
5779193267Sjkim
5780193267SjkimiASL: Removed the "named object in while loop" error. The compiler cannot 
5781193267Sjkimdetermine how many times a loop will execute. ACPICA BZ 730.
5782193267Sjkim
5783241973SjkimDisassembler: Implemented support for FADT revision 2 (MS extension). 
5784241973SjkimACPICA 
5785193267SjkimBZ 743.
5786193267Sjkim
5787253690SjkimDisassembler: Updates for several ACPI data tables (HEST, EINJ, and 
5788253690SjkimMCFG).
5789193267Sjkim
5790193267Sjkim----------------------------------------
5791193267Sjkim31 October 2008. Summary of changes for version 20081031:
5792193267Sjkim
5793193267Sjkim1) ACPI CA Core Subsystem:
5794193267Sjkim
5795241973SjkimRestructured the ACPICA header files into public/private. acpi.h now 
5796241973Sjkimincludes 
5797241973Sjkimonly the "public" acpica headers. All other acpica headers are "private" 
5798241973Sjkimand 
5799241973Sjkimshould not be included by acpica users. One new file, accommon.h is used 
5800241973Sjkimto 
5801241973Sjkiminclude the commonly used private headers for acpica code generation. 
5802241973SjkimFuture 
5803193267Sjkimplans include moving all private headers to a new subdirectory.
5804193267Sjkim
5805193267SjkimImplemented an automatic Buffer->String return value conversion for 
5806253690Sjkimpredefined ACPI methods. For these methods (such as _BIF), added 
5807253690Sjkimautomatic 
5808241973Sjkimconversion for return objects that are required to be a String, but a 
5809241973SjkimBuffer 
5810241973Sjkimwas found instead. This can happen when reading string battery data from 
5811241973Sjkiman 
5812253690Sjkimoperation region, because it used to be difficult to convert the data 
5813253690Sjkimfrom 
5814253690Sjkimbuffer to string from within the ASL. Ensures that the host OS is 
5815253690Sjkimprovided 
5816193267Sjkimwith a valid null-terminated string. Linux BZ 11822.
5817193267Sjkim
5818241973SjkimUpdated the FACS waking vector interfaces. Split 
5819241973SjkimAcpiSetFirmwareWakingVector 
5820241973Sjkiminto two: one for the 32-bit vector, another for the 64-bit vector. This 
5821241973Sjkimis 
5822253690Sjkimrequired because the host OS must setup the wake much differently for 
5823253690Sjkimeach 
5824253690Sjkimvector (real vs. protected mode, etc.) and the interface itself should 
5825253690Sjkimnot 
5826241973Sjkimbe 
5827253690Sjkimdeciding which vector to use. Also, eliminated the 
5828253690SjkimGetFirmwareWakingVector 
5829253690Sjkiminterface, as it served no purpose (only the firmware reads the vector, 
5830253690SjkimOS 
5831193267Sjkimonly writes the vector.) ACPICA BZ 731.
5832193267Sjkim
5833253690SjkimImplemented a mechanism to escape infinite AML While() loops. Added a 
5834253690Sjkimloop 
5835253690Sjkimcounter to force exit from AML While loops if the count becomes too 
5836253690Sjkimlarge. 
5837193267SjkimThis can occur in poorly written AML when the hardware does not respond 
5838253690Sjkimwithin a while loop and the loop does not implement a timeout. The 
5839253690Sjkimmaximum 
5840241973Sjkimloop count is configurable. A new exception code is returned when a loop 
5841241973Sjkimis 
5842193267Sjkimbroken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore.
5843193267Sjkim
5844193267SjkimOptimized the execution of AML While loops. Previously, a control state 
5845193267Sjkimobject was allocated and freed for each execution of the loop. The 
5846253690Sjkimoptimization is to simply reuse the control state for each iteration. 
5847253690SjkimThis 
5848193267Sjkimspeeds up the raw loop execution time by about 5%.
5849193267Sjkim
5850241973SjkimEnhanced the implicit return mechanism. For Windows compatibility, return 
5851241973Sjkiman 
5852241973Sjkimimplicit integer of value zero for methods that contain no executable 
5853241973Sjkimcode. 
5854193267SjkimSuch methods are seen in the field as stubs (presumably), and can cause 
5855193267Sjkimdrivers to fail if they expect a return value. Lin Ming.
5856193267Sjkim
5857193267SjkimAllow multiple backslashes as root prefixes in namepaths. In a fully 
5858241973Sjkimqualified namepath, allow multiple backslash prefixes. This can happen 
5859241973Sjkim(and 
5860193267Sjkimis seen in the field) because of the use of a double-backslash in strings 
5861253690Sjkim(since backslash is the escape character) causing confusion. ACPICA BZ 
5862253690Sjkim739 
5863193267SjkimLin Ming.
5864193267Sjkim
5865193267SjkimEmit a warning if two different FACS or DSDT tables are discovered in the 
5866241973SjkimFADT. Checks if there are two valid but different addresses for the FACS 
5867241973Sjkimand 
5868193267SjkimDSDT within the FADT (mismatch between the 32-bit and 64-bit fields.)
5869193267Sjkim
5870241973SjkimConsolidated the method argument count validation code. Merged the code 
5871241973Sjkimthat 
5872193267Sjkimvalidates control method argument counts into the predefined validation 
5873241973Sjkimmodule. Eliminates possible multiple warnings for incorrect argument 
5874241973Sjkimcounts.
5875193267Sjkim
5876193267SjkimImplemented ACPICA example code. Includes code for ACPICA initialization, 
5877193267Sjkimhandler installation, and calling a control method. Available at 
5878193267Sjkimsource/tools/examples.
5879193267Sjkim
5880241973SjkimAdded a global pointer for FACS table to simplify internal FACS access. 
5881241973SjkimUse 
5882241973Sjkimthe global pointer instead of using AcpiGetTableByIndex for each FACS 
5883241973Sjkimaccess. 
5884193267SjkimThis simplifies the code for the Global Lock and the Firmware Waking 
5885193267SjkimVector(s).
5886193267Sjkim
5887193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5888193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5889241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5890241973Sjkimhas a 
5891193267Sjkimmuch larger code and data size.
5892193267Sjkim
5893193267Sjkim  Previous Release:
5894193267Sjkim    Non-Debug Version:  81.2K Code, 17.0K Data,  98.2K Total
5895193267Sjkim    Debug Version:     155.8K Code, 49.1K Data, 204.9K Total
5896193267Sjkim  Current Release:
5897193267Sjkim    Non-Debug Version:  81.7K Code, 17.3K Data,  99.0K Total
5898193267Sjkim    Debug Version:     156.4K Code, 49.4K Data, 205.8K Total
5899193267Sjkim
5900193267Sjkim2) iASL Compiler/Disassembler and Tools:
5901193267Sjkim
5902241973SjkimiASL: Improved disassembly of external method calls. Added the -e option 
5903241973Sjkimto 
5904253690Sjkimallow the inclusion of additional ACPI tables to help with the 
5905253690Sjkimdisassembly 
5906241973Sjkimof 
5907193267Sjkimmethod invocations and the generation of external declarations during the 
5908193267Sjkimdisassembly. Certain external method invocations cannot be disassembled 
5909241973Sjkimproperly without the actual declaration of the method. Use the -e option 
5910241973Sjkimto 
5911253690Sjkiminclude the table where the external method(s) are actually declared. 
5912253690SjkimMost 
5913193267Sjkimuseful for disassembling SSDTs that make method calls back to the master 
5914241973SjkimDSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT:  iasl 
5915241973Sjkim-d 
5916193267Sjkim-e dsdt.aml ssdt1.aml
5917193267Sjkim
5918193267SjkimiASL: Fix to allow references to aliases within ASL namepaths. Fixes a 
5919193267Sjkimproblem where the use of an alias within a namepath would result in a not 
5920193267Sjkimfound error or cause the compiler to fault. Also now allows forward 
5921193267Sjkimreferences from the Alias operator itself. ACPICA BZ 738.
5922193267Sjkim
5923193267Sjkim----------------------------------------
5924193267Sjkim26 September 2008. Summary of changes for version 20080926:
5925193267Sjkim
5926193267Sjkim1) ACPI CA Core Subsystem:
5927193267Sjkim
5928241973SjkimDesigned and implemented a mechanism to validate predefined ACPI methods 
5929241973Sjkimand 
5930241973Sjkimobjects. This code validates the predefined ACPI objects (objects whose 
5931241973Sjkimnames 
5932193267Sjkimstart with underscore) that appear in the namespace, at the time they are 
5933193267Sjkimevaluated. The argument count and the type of the returned object are 
5934241973Sjkimvalidated against the ACPI specification. The purpose of this validation 
5935241973Sjkimis 
5936241973Sjkimto detect problems with the BIOS-implemented predefined ACPI objects 
5937241973Sjkimbefore 
5938241973Sjkimthe results are returned to the ACPI-related drivers. Future enhancements 
5939241973Sjkimmay 
5940193267Sjkiminclude actual repair of incorrect return objects where possible. Two new 
5941193267Sjkimfiles are nspredef.c and acpredef.h.
5942193267Sjkim
5943253690SjkimFixed a fault in the AML parser if a memory allocation fails during the 
5944253690SjkimOp 
5945193267Sjkimcompletion routine AcpiPsCompleteThisOp. Lin Ming. ACPICA BZ 492.
5946193267Sjkim
5947241973SjkimFixed an issue with implicit return compatibility. This change improves 
5948241973Sjkimthe 
5949241973Sjkimimplicit return mechanism to be more compatible with the MS interpreter. 
5950241973SjkimLin 
5951193267SjkimMing, ACPICA BZ 349.
5952193267Sjkim
5953241973SjkimImplemented support for zero-length buffer-to-string conversions. Allow 
5954241973Sjkimzero 
5955241973Sjkimlength strings during interpreter buffer-to-string conversions. For 
5956241973Sjkimexample, 
5957193267Sjkimduring the ToDecimalString and ToHexString operators, as well as implicit 
5958193267Sjkimconversions. Fiodor Suietov, ACPICA BZ 585.
5959193267Sjkim
5960193267SjkimFixed two possible memory leaks in the error exit paths of 
5961253690SjkimAcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions 
5962253690Sjkimare 
5963193267Sjkimsimilar in that they use a stack of state objects in order to eliminate 
5964193267Sjkimrecursion. The stack must be fully unwound and deallocated if an error 
5965193267Sjkimoccurs. Lin Ming. ACPICA BZ 383.
5966193267Sjkim
5967241973SjkimRemoved the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the 
5968241973Sjkimglobal 
5969193267SjkimACPI register table. This bit does not exist and is unused. Lin Ming, Bob 
5970193267SjkimMoore ACPICA BZ 442.
5971193267Sjkim
5972193267SjkimRemoved the obsolete version number in module headers. Removed the 
5973241973Sjkim"$Revision" number that appeared in each module header. This version 
5974241973Sjkimnumber 
5975241973Sjkimwas useful under SourceSafe and CVS, but has no meaning under git. It is 
5976241973Sjkimnot 
5977193267Sjkimonly incorrect, it could also be misleading.
5978193267Sjkim
5979193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
5980193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
5981241973Sjkimdebug version of the code includes the debug output trace mechanism and 
5982241973Sjkimhas a 
5983193267Sjkimmuch larger code and data size.
5984193267Sjkim
5985193267Sjkim  Previous Release:
5986193267Sjkim    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
5987193267Sjkim    Debug Version:     153.7K Code, 48.2K Data, 201.9K Total
5988193267Sjkim  Current Release:
5989193267Sjkim    Non-Debug Version:  81.2K Code, 17.0K Data,  98.2K Total
5990193267Sjkim    Debug Version:     155.8K Code, 49.1K Data, 204.9K Total
5991193267Sjkim
5992193267Sjkim----------------------------------------
5993193267Sjkim29 August 2008. Summary of changes for version 20080829:
5994193267Sjkim
5995193267Sjkim1) ACPI CA Core Subsystem:
5996193267Sjkim
5997193267SjkimCompleted a major cleanup of the internal ACPI_OPERAND_OBJECT of type 
5998253690SjkimReference. Changes include the elimination of cheating on the Object 
5999253690Sjkimfield 
6000193267Sjkimfor the DdbHandle subtype, addition of a reference class field to 
6001241973Sjkimdifferentiate the various reference types (instead of an AML opcode), and 
6002241973Sjkimthe 
6003193267Sjkimcleanup of debug output for this object. Lin Ming, Bob Moore. BZ 723
6004193267Sjkim
6005193267SjkimReduce an error to a warning for an incorrect method argument count. 
6006193267SjkimPreviously aborted with an error if too few arguments were passed to a 
6007241973Sjkimcontrol method via the external ACPICA interface. Now issue a warning 
6008241973Sjkiminstead 
6009253690Sjkimand continue. Handles the case where the method inadvertently declares 
6010253690Sjkimtoo 
6011241973Sjkimmany arguments, but does not actually use the extra ones. Applies mainly 
6012241973Sjkimto 
6013193267Sjkimthe predefined methods. Lin Ming. Linux BZ 11032.
6014193267Sjkim
6015241973SjkimDisallow the evaluation of named object types with no intrinsic value. 
6016241973SjkimReturn 
6017241973SjkimAE_TYPE for objects that have no value and therefore evaluation is 
6018241973Sjkimundefined: 
6019241973SjkimDevice, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation 
6020241973Sjkimof 
6021241973Sjkimthese types were allowed, but an exception would be generated at some 
6022241973Sjkimpoint 
6023193267Sjkimduring the evaluation. Now, the error is generated up front.
6024193267Sjkim
6025193267SjkimFixed a possible memory leak in the AcpiNsGetExternalPathname function 
6026193267Sjkim(nsnames.c). Fixes a leak in the error exit path.
6027193267Sjkim
6028241973SjkimRemoved the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These 
6029241973Sjkimdebug 
6030241973Sjkimlevels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and 
6031241973SjkimACPI_EXCEPTION 
6032193267Sjkiminterfaces. Also added ACPI_DB_EVENTS to correspond with the existing 
6033193267SjkimACPI_LV_EVENTS.
6034193267Sjkim
6035193267SjkimRemoved obsolete and/or unused exception codes from the acexcep.h header. 
6036241973SjkimThere is the possibility that certain device drivers may be affected if 
6037241973Sjkimthey 
6038193267Sjkimuse any of these exceptions.
6039193267Sjkim
6040241973SjkimThe ACPICA documentation has been added to the public git source tree, 
6041241973Sjkimunder 
6042193267Sjkimacpica/documents. Included are the ACPICA programmer reference, the iASL 
6043193267Sjkimcompiler reference, and the changes.txt release logfile.
6044193267Sjkim
6045193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6046193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6047241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6048241973Sjkimhas a 
6049193267Sjkimmuch larger code and data size.
6050193267Sjkim
6051193267Sjkim  Previous Release:
6052193267Sjkim    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
6053193267Sjkim    Debug Version:     153.9K Code, 48.4K Data, 202.3K Total
6054193267Sjkim  Current Release:
6055193267Sjkim    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
6056193267Sjkim    Debug Version:     153.7K Code, 48.2K Data, 201.9K Total
6057193267Sjkim
6058193267Sjkim2) iASL Compiler/Disassembler and Tools:
6059193267Sjkim
6060193267SjkimAllow multiple argument counts for the predefined _SCP method. ACPI 3.0 
6061193267Sjkimdefines _SCP with 3 arguments. Previous versions defined it with only 1 
6062193267Sjkimargument. iASL now allows both definitions.
6063193267Sjkim
6064253690SjkimiASL/disassembler: avoid infinite loop on bad ACPI tables. Check for 
6065253690Sjkimzero-
6066193267Sjkimlength subtables when disassembling ACPI tables. Also fixed a couple of 
6067241973Sjkimerrors where a full 16-bit table type field was not extracted from the 
6068241973Sjkiminput 
6069193267Sjkimproperly.
6070193267Sjkim
6071193267Sjkimacpisrc: Improve comment counting mechanism for generating source code 
6072241973Sjkimstatistics. Count first and last lines of multi-line comments as 
6073241973Sjkimwhitespace, 
6074241973Sjkimnot comment lines. Handle Linux legal header in addition to standard 
6075241973Sjkimacpica 
6076193267Sjkimheader.
6077193267Sjkim
6078193267Sjkim----------------------------------------
6079193267Sjkim
6080193267Sjkim29 July 2008. Summary of changes for version 20080729:
6081193267Sjkim
6082193267Sjkim1) ACPI CA Core Subsystem:
6083193267Sjkim
6084193267SjkimFix a possible deadlock in the GPE dispatch. Remove call to 
6085241973SjkimAcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will 
6086241973Sjkimattempt 
6087241973Sjkimto acquire the GPE lock but can deadlock since the GPE lock is already 
6088241973Sjkimheld 
6089241973Sjkimat dispatch time. This code was introduced in version 20060831 as a 
6090241973Sjkimresponse 
6091193267Sjkimto Linux BZ 6881 and has since been removed from Linux.
6092193267Sjkim
6093241973SjkimAdd a function to dereference returned reference objects. Examines the 
6094241973Sjkimreturn 
6095241973Sjkimobject from a call to AcpiEvaluateObject. Any Index or RefOf references 
6096241973Sjkimare 
6097253690Sjkimautomatically dereferenced in an attempt to return something useful 
6098253690Sjkim(these 
6099241973Sjkimreference types cannot be converted into an external ACPI_OBJECT.) 
6100241973SjkimProvides 
6101193267SjkimMS compatibility. Lin Ming, Bob Moore. Linux BZ 11105
6102193267Sjkim
6103193267Sjkimx2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new 
6104193267Sjkimsubtables for the MADT and one new subtable for the SRAT. Includes 
6105241973Sjkimdisassembler and AcpiSrc support. Data from the Intel 64 Architecture 
6106241973Sjkimx2APIC 
6107193267SjkimSpecification, June 2008.
6108193267Sjkim
6109241973SjkimAdditional error checking for pathname utilities. Add error check after 
6110241973Sjkimall 
6111193267Sjkimcalls to AcpiNsGetPathnameLength. Add status return from 
6112241973SjkimAcpiNsBuildExternalPath and check after all calls. Add parameter 
6113241973Sjkimvalidation 
6114193267Sjkimto AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar.
6115193267Sjkim
6116241973SjkimReturn status from the global init function AcpiUtGlobalInitialize. This 
6117241973Sjkimis 
6118253690Sjkimused by both the kernel subsystem and the utilities such as iASL 
6119253690Sjkimcompiler. 
6120253690SjkimThe function could possibly fail when the caches are initialized. Yang 
6121253690SjkimYi.
6122193267Sjkim
6123193267SjkimAdd a function to decode reference object types to strings. Created for 
6124193267Sjkimimproved error messages. 
6125193267Sjkim
6126241973SjkimImprove object conversion error messages. Better error messages during 
6127241973Sjkimobject 
6128241973Sjkimconversion from internal to the external ACPI_OBJECT. Used for external 
6129241973Sjkimcalls 
6130193267Sjkimto AcpiEvaluateObject.
6131193267Sjkim
6132193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6133193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6134241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6135241973Sjkimhas a 
6136193267Sjkimmuch larger code and data size.
6137193267Sjkim
6138193267Sjkim  Previous Release:
6139193267Sjkim    Non-Debug Version:  79.6K Code, 16.2K Data,  95.8K Total
6140193267Sjkim    Debug Version:     153.5K Code, 48.2K Data, 201.7K Total
6141193267Sjkim  Current Release:
6142193267Sjkim    Non-Debug Version:  79.7K Code, 16.4K Data,  96.1K Total
6143193267Sjkim    Debug Version:     153.9K Code, 48.4K Data, 202.3K Total
6144193267Sjkim
6145193267Sjkim2) iASL Compiler/Disassembler and Tools:
6146193267Sjkim
6147253690SjkimDebugger: fix a possible hang when evaluating non-methods. Fixes a 
6148253690Sjkimproblem 
6149253690Sjkimintroduced in version 20080701. If the object being evaluated (via 
6150253690Sjkimexecute 
6151241973Sjkimcommand) is not a method, the debugger can hang while trying to obtain 
6152241973Sjkimnon-
6153193267Sjkimexistent parameters.
6154193267Sjkim
6155193267SjkimiASL: relax error for using reserved "_T_x" identifiers. These names can 
6156193267Sjkimappear in a disassembled ASL file if they were emitted by the original 
6157193267Sjkimcompiler. Instead of issuing an error or warning and forcing the user to 
6158193267Sjkimmanually change these names, issue a remark instead.
6159193267Sjkim
6160241973SjkimiASL: error if named object created in while loop. Emit an error if any 
6161241973Sjkimnamed 
6162253690Sjkimobject is created within a While loop. If allowed, this code will 
6163253690Sjkimgenerate 
6164241973Sjkima 
6165253690Sjkimrun-time error on the second iteration of the loop when an attempt is 
6166253690Sjkimmade 
6167241973Sjkimto 
6168193267Sjkimcreate the same named object twice. ACPICA bugzilla 730.
6169193267Sjkim
6170241973SjkimiASL: Support absolute pathnames for include files. Add support for 
6171241973Sjkimabsolute 
6172253690Sjkimpathnames within the Include operator. previously, only relative 
6173253690Sjkimpathnames 
6174193267Sjkimwere supported.
6175193267Sjkim
6176241973SjkimiASL: Enforce minimum 1 interrupt in interrupt macro and Resource 
6177241973SjkimDescriptor. 
6178193267SjkimThe ACPI spec requires one interrupt minimum. BZ 423
6179193267Sjkim
6180193267SjkimiASL: Handle a missing ResourceSource arg, with a present SourceIndex. 
6181193267SjkimHandles the case for the Interrupt Resource Descriptor where
6182193267Sjkimthe ResourceSource argument is omitted but ResourceSourceIndex
6183193267Sjkimis present. Now leave room for the Index. BZ 426
6184193267Sjkim
6185241973SjkimiASL: Prevent error message if CondRefOf target does not exist. Fixes 
6186241973Sjkimcases 
6187193267Sjkimwhere an error message is emitted if the target does not exist. BZ 516
6188193267Sjkim
6189193267SjkimiASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option 
6190241973Sjkim(get ACPI tables on Windows). This was apparently broken in version 
6191241973Sjkim20070919.
6192193267Sjkim
6193241973SjkimAcpiXtract: Handle EOF while extracting data. Correctly handle the case 
6194241973Sjkimwhere 
6195193267Sjkimthe EOF happens immediately after the last table in the input file. Print 
6196193267Sjkimcompletion message. Previously, no message was displayed in this case.
6197193267Sjkim
6198193267Sjkim----------------------------------------
6199193267Sjkim01 July 2008. Summary of changes for version 20080701:
6200193267Sjkim
6201193267Sjkim0) Git source tree / acpica.org
6202193267Sjkim
6203193267SjkimFixed a problem where a git-clone from http would not transfer the entire 
6204193267Sjkimsource tree.
6205193267Sjkim
6206193267Sjkim1) ACPI CA Core Subsystem:
6207193267Sjkim
6208193267SjkimImplemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one 
6209241973Sjkimenable bit. Now performs a read-change-write of the enable register 
6210241973Sjkiminstead 
6211241973Sjkimof simply writing out the cached enable mask. This will prevent 
6212241973Sjkiminadvertent 
6213241973Sjkimenabling of GPEs if a rogue GPE is received during initialization (before 
6214241973SjkimGPE 
6215193267Sjkimhandlers are installed.)
6216193267Sjkim
6217193267SjkimImplemented a copy for dynamically loaded tables. Previously, dynamically 
6218193267Sjkimloaded tables were simply mapped - but on some machines this memory is 
6219193267Sjkimcorrupted after suspend. Now copy the table to a local buffer. For the 
6220193267SjkimOpRegion case, added checksum verify. Use the table length from the table 
6221193267Sjkimheader, not the region length. For the Buffer case, use the table length 
6222193267Sjkimalso. Dennis Noordsij, Bob Moore. BZ 10734
6223193267Sjkim
6224241973SjkimFixed a problem where the same ACPI table could not be dynamically loaded 
6225241973Sjkimand 
6226241973Sjkimunloaded more than once. Without this change, a table cannot be loaded 
6227241973Sjkimagain 
6228193267Sjkimonce it has been loaded/unloaded one time. The current mechanism does not 
6229241973Sjkimunregister a table upon an unload. During a load, if the same table is 
6230241973Sjkimfound, 
6231193267Sjkimthis no longer returns an exception. BZ 722
6232193267Sjkim
6233193267SjkimFixed a problem where the wrong descriptor length was calculated for the 
6234253690SjkimEndTag descriptor in 64-bit mode. The "minimal" descriptors such as 
6235253690SjkimEndTag 
6236193267Sjkimare calculated as 12 bytes long, but the actual length in the internal 
6237241973Sjkimdescriptor is 16 because of the round-up to 8 on the 64-bit build. 
6238241973SjkimReported 
6239193267Sjkimby Linn Crosetto. BZ 728
6240193267Sjkim
6241241973SjkimFixed a possible memory leak in the Unload operator. The DdbHandle 
6242241973Sjkimreturned 
6243241973Sjkimby Load() did not have its reference count decremented during unload, 
6244241973Sjkimleading 
6245193267Sjkimto a memory leak. Lin Ming. BZ 727
6246193267Sjkim
6247193267SjkimFixed a possible memory leak when deleting thermal/processor objects. Any 
6248193267Sjkimassociated notify handlers (and objects) were not being deleted. Fiodor 
6249193267SjkimSuietov. BZ 506
6250193267Sjkim
6251241973SjkimFixed the ordering of the ASCII names in the global mutex table to match 
6252241973Sjkimthe 
6253241973Sjkimactual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug 
6254241973Sjkimonly. 
6255193267SjkimVegard Nossum. BZ 726
6256193267Sjkim
6257193267SjkimEnhanced the AcpiGetObjectInfo interface to return the number of required 
6258241973Sjkimarguments if the object is a control method. Added this call to the 
6259241973Sjkimdebugger 
6260193267Sjkimso the proper number of default arguments are passed to a method. This 
6261193267Sjkimprevents a warning when executing methods from AcpiExec.
6262193267Sjkim
6263193267SjkimAdded a check for an invalid handle in AcpiGetObjectInfo. Return 
6264193267SjkimAE_BAD_PARAMETER if input handle is invalid. BZ 474
6265193267Sjkim
6266193267SjkimFixed an extraneous warning from exconfig.c on the 64-bit build.
6267193267Sjkim
6268193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6269193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6270241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6271241973Sjkimhas a 
6272193267Sjkimmuch larger code and data size.
6273193267Sjkim
6274193267Sjkim  Previous Release:
6275193267Sjkim    Non-Debug Version:  79.3K Code, 16.2K Data,  95.5K Total
6276193267Sjkim    Debug Version:     153.0K Code, 48.2K Data, 201.2K Total
6277193267Sjkim  Current Release:
6278193267Sjkim    Non-Debug Version:  79.6K Code, 16.2K Data,  95.8K Total
6279193267Sjkim    Debug Version:     153.5K Code, 48.2K Data, 201.7K Total
6280193267Sjkim
6281193267Sjkim2) iASL Compiler/Disassembler and Tools:
6282193267Sjkim
6283193267SjkimiASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both 
6284193267Sjkimresource descriptor names.
6285193267Sjkim
6286241973SjkimiASL: Detect invalid ASCII characters in input (windows version). Removed 
6287241973Sjkimthe 
6288193267Sjkim"-CF" flag from the flex compile, enables correct detection of non-ASCII 
6289193267Sjkimcharacters in the input. BZ 441
6290193267Sjkim
6291241973SjkimiASL: Eliminate warning when result of LoadTable is not used. Eliminate 
6292241973Sjkimthe 
6293193267Sjkim"result of operation not used" warning when the DDB handle returned from 
6294193267SjkimLoadTable is not used. The warning is not needed. BZ 590
6295193267Sjkim
6296253690SjkimAcpiExec: Add support for dynamic table load/unload. Now calls _CFG 
6297253690Sjkimmethod 
6298241973Sjkimto 
6299241973Sjkimpass address of table to the AML. Added option to disable OpRegion 
6300241973Sjkimsimulation 
6301241973Sjkimto allow creation of an OpRegion with a real address that was passed to 
6302241973Sjkim_CFG. 
6303253690SjkimAll of this allows testing of the Load and Unload operators from 
6304253690SjkimAcpiExec.
6305193267Sjkim
6306241973SjkimDebugger: update tables command for unloaded tables. Handle unloaded 
6307241973Sjkimtables 
6308193267Sjkimand use the standard table header output routine.
6309193267Sjkim
6310193267Sjkim----------------------------------------
6311193267Sjkim09 June 2008. Summary of changes for version 20080609:
6312193267Sjkim
6313193267Sjkim1) ACPI CA Core Subsystem:
6314193267Sjkim
6315241973SjkimImplemented a workaround for reversed _PRT entries. A significant number 
6316241973Sjkimof 
6317193267SjkimBIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This 
6318241973Sjkimchange dynamically detects and repairs this problem. Provides 
6319241973Sjkimcompatibility 
6320193267Sjkimwith MS ACPI. BZ 6859
6321193267Sjkim
6322193267SjkimSimplified the internal ACPI hardware interfaces to eliminate the locking 
6323193267Sjkimflag parameter from Register Read/Write. Added a new external interface, 
6324193267SjkimAcpiGetRegisterUnlocked.
6325193267Sjkim
6326241973SjkimFixed a problem where the invocation of a GPE control method could hang. 
6327241973SjkimThis 
6328193267Sjkimwas a regression introduced in 20080514. The new method argument count 
6329193267Sjkimvalidation mechanism can enter an infinite loop when a GPE method is 
6330241973Sjkimdispatched. Problem fixed by removing the obsolete code that passed GPE 
6331241973Sjkimblock 
6332241973Sjkiminformation to the notify handler via the control method parameter 
6333241973Sjkimpointer.
6334193267Sjkim
6335241973SjkimFixed a problem where the _SST execution status was incorrectly returned 
6336241973Sjkimto 
6337253690Sjkimthe caller of AcpiEnterSleepStatePrep. This was a regression introduced 
6338253690Sjkimin 
6339193267Sjkim20080514. _SST is optional and a NOT_FOUND exception should never be 
6340193267Sjkimreturned. BZ 716
6341193267Sjkim
6342241973SjkimFixed a problem where a deleted object could be accessed from within the 
6343241973SjkimAML 
6344241973Sjkimparser. This was a regression introduced in version 20080123 as a fix for 
6345241973Sjkimthe 
6346193267SjkimUnload operator. Lin Ming. BZ 10669
6347193267Sjkim
6348241973SjkimCleaned up the debug operand dump mechanism. Eliminated unnecessary 
6349241973Sjkimoperands 
6350193267Sjkimand eliminated the use of a negative index in a loop. Operands are now 
6351241973Sjkimdisplayed in the correct order, not backwards. This also fixes a 
6352241973Sjkimregression 
6353193267Sjkimintroduced in 20080514 on 64-bit systems where the elimination of 
6354241973SjkimACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 
6355241973Sjkim715
6356193267Sjkim
6357241973SjkimFixed a possible memory leak in EvPciConfigRegionSetup where the error 
6358241973Sjkimexit 
6359193267Sjkimpath did not delete a locally allocated structure.
6360193267Sjkim
6361193267SjkimUpdated definitions for the DMAR and SRAT tables to synchronize with the 
6362193267Sjkimcurrent specifications. Includes disassembler support.
6363193267Sjkim
6364193267SjkimFixed a problem in the mutex debug code (in utmutex.c) where an incorrect 
6365241973Sjkimloop termination value was used. Loop terminated on iteration early, 
6366241973Sjkimmissing 
6367193267Sjkimone mutex. Linn Crosetto
6368193267Sjkim
6369193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6370193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6371241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6372241973Sjkimhas a 
6373193267Sjkimmuch larger code and data size.
6374193267Sjkim
6375193267Sjkim  Previous Release:
6376193267Sjkim    Non-Debug Version:  79.5K Code, 16.2K Data,  95.7K Total
6377193267Sjkim    Debug Version:     153.3K Code, 48.3K Data, 201.6K Total
6378193267Sjkim  Current Release:
6379193267Sjkim    Non-Debug Version:  79.3K Code, 16.2K Data,  95.5K Total
6380193267Sjkim    Debug Version:     153.0K Code, 48.2K Data, 201.2K Total
6381193267Sjkim
6382193267Sjkim2) iASL Compiler/Disassembler and Tools:
6383193267Sjkim
6384193267SjkimDisassembler: Implemented support for EisaId() within _CID objects. Now 
6385193267Sjkimdisassemble integer _CID objects back to EisaId invocations, including 
6386193267Sjkimmultiple integers within _CID packages. Includes single-step support for 
6387193267Sjkimdebugger also.
6388193267Sjkim
6389193267SjkimDisassembler: Added support for DMAR and SRAT table definition changes.
6390193267Sjkim
6391193267Sjkim----------------------------------------
6392193267Sjkim14 May 2008. Summary of changes for version 20080514:
6393193267Sjkim
6394193267Sjkim1) ACPI CA Core Subsystem:
6395193267Sjkim
6396193267SjkimFixed a problem where GPEs were enabled too early during the ACPICA 
6397193267Sjkiminitialization. This could lead to "handler not installed" errors on some 
6398241973Sjkimmachines. Moved GPE enable until after _REG/_STA/_INI methods are run. 
6399241973SjkimThis 
6400241973Sjkimensures that all operation regions and devices throughout the namespace 
6401241973Sjkimhave 
6402193267Sjkimbeen initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916.
6403193267Sjkim
6404193267SjkimImplemented a change to the enter sleep code. Moved execution of the _GTS 
6405241973Sjkimmethod to just before setting sleep enable bit. The execution was moved 
6406241973Sjkimfrom 
6407193267SjkimAcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed 
6408193267Sjkimimmediately before the SLP_EN bit is set, as per the ACPI specification. 
6409193267SjkimLuming Yu, BZ 1653.
6410193267Sjkim
6411241973SjkimImplemented a fix to disable unknown GPEs (2nd version). Now always 
6412241973Sjkimdisable 
6413193267Sjkimthe GPE, even if ACPICA thinks that that it is already disabled. It is 
6414241973Sjkimpossible that the AML or some other code has enabled the GPE unbeknownst 
6415241973Sjkimto 
6416193267Sjkimthe ACPICA code.
6417193267Sjkim
6418241973SjkimFixed a problem with the Field operator where zero-length fields would 
6419241973Sjkimreturn 
6420241973Sjkiman AE_AML_NO_OPERAND exception during table load. Fix enables zero-length 
6421241973SjkimASL 
6422193267Sjkimfield declarations in Field(), BankField(), and IndexField(). BZ 10606.
6423193267Sjkim
6424241973SjkimImplemented a fix for the Load operator, now load the table at the 
6425241973Sjkimnamespace 
6426241973Sjkimroot. This reverts a change introduced in version 20071019. The table is 
6427241973Sjkimnow 
6428193267Sjkimloaded at the namespace root even though this goes against the ACPI 
6429241973Sjkimspecification. This provides compatibility with other ACPI 
6430241973Sjkimimplementations. 
6431241973SjkimThe ACPI specification will be updated to reflect this in ACPI 4.0. Lin 
6432241973SjkimMing.
6433193267Sjkim
6434241973SjkimFixed a problem where ACPICA would not Load() tables with unusual 
6435241973Sjkimsignatures. 
6436193267SjkimNow ignore ACPI table signature for Load() operator. Only "SSDT" is 
6437193267Sjkimacceptable to the ACPI spec, but tables are seen with OEMx and null sigs. 
6438241973SjkimTherefore, signature validation is worthless. Apparently MS ACPI accepts 
6439241973Sjkimsuch 
6440193267Sjkimsignatures, ACPICA must be compatible. BZ 10454.
6441193267Sjkim
6442241973SjkimFixed a possible negative array index in AcpiUtValidateException. Added 
6443241973SjkimNULL 
6444253690Sjkimfields to the exception string arrays to eliminate a -1 subtraction on 
6445253690Sjkimthe 
6446193267SjkimSubStatus field.
6447193267Sjkim
6448193267SjkimUpdated the debug tracking macros to reduce overall code and data size. 
6449193267SjkimChanged ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings 
6450193267Sjkiminstead of pointers to static strings. Jan Beulich and Bob Moore.
6451193267Sjkim
6452193267SjkimImplemented argument count checking in control method invocation via 
6453253690SjkimAcpiEvaluateObject. Now emit an error if too few arguments, warning if 
6454253690Sjkimtoo 
6455241973Sjkimmany. This applies only to extern programmatic control method execution, 
6456241973Sjkimnot 
6457193267Sjkimmethod-to-method calls within the AML. Lin Ming.
6458193267Sjkim
6459241973SjkimEliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is 
6460241973Sjkimno 
6461241973Sjkimlonger needed, especially with the removal of 16-bit support. It was 
6462241973Sjkimreplaced 
6463253690Sjkimmostly with UINT32, but also ACPI_SIZE where a type that changes 32/64 
6464253690Sjkimbit 
6465241973Sjkimon 
6466193267Sjkim32/64-bit platforms is required.
6467193267Sjkim
6468193267SjkimAdded the C const qualifier for appropriate string constants -- mostly 
6469193267SjkimMODULE_NAME and printf format strings. Jan Beulich.
6470193267Sjkim
6471193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6472193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6473241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6474241973Sjkimhas a 
6475193267Sjkimmuch larger code and data size.
6476193267Sjkim
6477193267Sjkim  Previous Release:
6478193267Sjkim    Non-Debug Version:  80.0K Code, 17.4K Data,  97.4K Total
6479193267Sjkim    Debug Version:     159.4K Code, 64.4K Data, 223.8K Total
6480193267Sjkim  Current Release:
6481193267Sjkim    Non-Debug Version:  79.5K Code, 16.2K Data,  95.7K Total
6482193267Sjkim    Debug Version:     153.3K Code, 48.3K Data, 201.6K Total
6483193267Sjkim
6484193267Sjkim2) iASL Compiler/Disassembler and Tools:
6485193267Sjkim
6486253690SjkimImplemented ACPI table revision ID validation in the disassembler. Zero 
6487253690Sjkimis 
6488241973Sjkimalways invalid. For DSDTs, the ID controls the interpreter integer width. 
6489241973Sjkim1 
6490193267Sjkimmeans 32-bit and this is unusual. 2 or greater is 64-bit.
6491193267Sjkim
6492193267Sjkim----------------------------------------
6493193267Sjkim21 March 2008. Summary of changes for version 20080321:
6494193267Sjkim
6495193267Sjkim1) ACPI CA Core Subsystem:
6496193267Sjkim
6497193267SjkimImplemented an additional change to the GPE support in order to suppress 
6498253690Sjkimspurious or stray GPEs. The AcpiEvDisableGpe function will now 
6499253690Sjkimpermanently 
6500241973Sjkimdisable incoming GPEs that are neither enabled nor disabled -- meaning 
6501241973Sjkimthat 
6502241973Sjkimthe GPE is unknown to the system. This should prevent future interrupt 
6503241973Sjkimfloods 
6504193267Sjkimfrom that GPE. BZ 6217 (Zhang Rui)
6505193267Sjkim
6506193267SjkimFixed a problem where NULL package elements were not returned to the 
6507193267SjkimAcpiEvaluateObject interface correctly. The element was simply ignored 
6508241973Sjkiminstead of returning a NULL ACPI_OBJECT package element, potentially 
6509241973Sjkimcausing 
6510241973Sjkima buffer overflow and/or confusing the caller who expected a fixed number 
6511241973Sjkimof 
6512193267Sjkimelements. BZ 10132 (Lin Ming, Bob Moore)
6513193267Sjkim
6514241973SjkimFixed a problem with the CreateField, CreateXXXField (Bit, Byte, Word, 
6515241973SjkimDword, 
6516241973SjkimQword), Field, BankField, and IndexField operators when invoked from 
6517241973Sjkiminside 
6518241973Sjkiman executing control method. In this case, these operators created 
6519241973Sjkimnamespace 
6520193267Sjkimnodes that were incorrectly left marked as permanent nodes instead of 
6521193267Sjkimtemporary nodes. This could cause a problem if there is race condition 
6522241973Sjkimbetween an exiting control method and a running namespace walk. (Reported 
6523241973Sjkimby 
6524193267SjkimLinn Crosetto)
6525193267Sjkim
6526193267SjkimFixed a problem where the CreateField and CreateXXXField operators would 
6527241973Sjkimincorrectly allow duplicate names (the name of the field) with no 
6528241973Sjkimexception 
6529193267Sjkimgenerated.
6530193267Sjkim
6531241973SjkimImplemented several changes for Notify handling. Added support for new 
6532241973SjkimNotify 
6533193267Sjkimvalues (ACPI 2.0+) and improved the Notify debug output. Notify on 
6534253690SjkimPowerResource objects is no longer allowed, as per the ACPI 
6535253690Sjkimspecification. 
6536193267Sjkim(Bob Moore, Zhang Rui)
6537193267Sjkim
6538241973SjkimAll Reference Objects returned via the AcpiEvaluateObject interface are 
6539241973Sjkimnow 
6540241973Sjkimmarked as type "REFERENCE" instead of "ANY". The type ANY is now reserved 
6541241973Sjkimfor 
6542241973SjkimNULL objects - either NULL package elements or unresolved named 
6543241973Sjkimreferences.
6544193267Sjkim
6545253690SjkimFixed a problem where an extraneous debug message was produced for 
6546253690Sjkimpackage 
6547193267Sjkimobjects (when debugging enabled). The message "Package List length larger 
6548253690Sjkimthan NumElements count" is now produced in the correct case, and is now 
6549253690Sjkiman 
6550193267Sjkimerror message rather than a debug message. Added a debug message for the 
6551241973Sjkimopposite case, where NumElements is larger than the Package List (the 
6552241973Sjkimpackage 
6553193267Sjkimwill be padded out with NULL elements as per the ACPI spec.)
6554193267Sjkim
6555241973SjkimImplemented several improvements for the output of the ASL "Debug" object 
6556241973Sjkimto 
6557193267Sjkimclarify and keep all data for a given object on one output line.
6558193267Sjkim
6559253690SjkimFixed two size calculation issues with the variable-length Start 
6560253690SjkimDependent 
6561193267Sjkimresource descriptor.
6562193267Sjkim
6563193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6564193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6565241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6566241973Sjkimhas 
6567193267Sjkima much larger code and data size.
6568193267Sjkim
6569193267Sjkim  Previous Release:
6570193267Sjkim    Non-Debug Version:  79.7K Code, 17.3K Data,  97.0K Total
6571193267Sjkim    Debug Version:     158.9K Code, 64.0K Data, 222.9K Total
6572193267Sjkim  Current Release:
6573193267Sjkim    Non-Debug Version:  80.0K Code, 17.4K Data,  97.4K Total
6574193267Sjkim    Debug Version:     159.4K Code, 64.4K Data, 223.8K Total
6575193267Sjkim
6576193267Sjkim2) iASL Compiler/Disassembler and Tools:
6577193267Sjkim
6578253690SjkimFixed a problem with the use of the Switch operator where execution of 
6579253690Sjkimthe 
6580193267Sjkimcontaining method by multiple concurrent threads could cause an 
6581193267SjkimAE_ALREADY_EXISTS exception. This is caused by the fact that there is no 
6582193267Sjkimactual Switch opcode, it must be simulated with local named temporary 
6583241973Sjkimvariables and if/else pairs. The solution chosen was to mark any method 
6584241973Sjkimthat 
6585241973Sjkimuses Switch as Serialized, thus preventing multiple thread entries. BZ 
6586241973Sjkim469.
6587193267Sjkim
6588193267Sjkim----------------------------------------
6589193267Sjkim13 February 2008. Summary of changes for version 20080213:
6590193267Sjkim
6591193267Sjkim1) ACPI CA Core Subsystem:
6592193267Sjkim
6593241973SjkimImplemented another MS compatibility design change for GPE/Notify 
6594241973Sjkimhandling. 
6595241973SjkimGPEs are now cleared/enabled asynchronously to allow all pending notifies 
6596241973Sjkimto 
6597193267Sjkimcomplete first. It is expected that the OSL will queue the enable request 
6598241973Sjkimbehind all pending notify requests (may require changes to the local host 
6599241973SjkimOSL 
6600193267Sjkimin AcpiOsExecute). Alexey Starikovskiy.
6601193267Sjkim
6602193267SjkimFixed a problem where buffer and package objects passed as arguments to a 
6603241973Sjkimcontrol method via the external AcpiEvaluateObject interface could cause 
6604241973Sjkiman 
6605193267SjkimAE_AML_INTERNAL exception depending on the order and type of operators 
6606193267Sjkimexecuted by the target control method.
6607193267Sjkim
6608193267SjkimFixed a problem where resource descriptor size optimization could cause a 
6609253690Sjkimproblem when a _CRS resource template is passed to a _SRS method. The 
6610253690Sjkim_SRS 
6611193267Sjkimresource template must use the same descriptors (with the same size) as 
6612241973Sjkimreturned from _CRS. This change affects the following resource 
6613241973Sjkimdescriptors: 
6614241973SjkimIRQ / IRQNoFlags and StartDependendentFn / StartDependentFnNoPri. (BZ 
6615241973Sjkim9487)
6616193267Sjkim
6617241973SjkimFixed a problem where a CopyObject to RegionField, BankField, and 
6618241973SjkimIndexField 
6619241973Sjkimobjects did not perform an implicit conversion as it should. These types 
6620241973Sjkimmust 
6621241973Sjkimretain their initial type permanently as per the ACPI specification. 
6622241973SjkimHowever, 
6623193267Sjkima CopyObject to all other object types should not perform an implicit 
6624193267Sjkimconversion, as per the ACPI specification. (Lin Ming, Bob Moore) BZ 388
6625193267Sjkim
6626193267SjkimFixed a problem with the AcpiGetDevices interface where the mechanism to 
6627193267Sjkimmatch device CIDs did not examine the entire list of available CIDs, but 
6628193267Sjkiminstead aborted on the first non-matching CID. Andrew Patterson.
6629193267Sjkim
6630241973SjkimFixed a regression introduced in version 20071114. The ACPI_HIDWORD macro 
6631241973Sjkimwas 
6632193267Sjkiminadvertently changed to return a 16-bit value instead of a 32-bit value, 
6633193267Sjkimtruncating the upper dword of a 64-bit value. This macro is only used to 
6634193267Sjkimdisplay debug output, so no incorrect calculations were made. Also, 
6635193267Sjkimreimplemented the macro so that a 64-bit shift is not performed by 
6636193267Sjkiminefficient compilers.
6637193267Sjkim
6638193267SjkimAdded missing va_end statements that should correspond with each va_start 
6639193267Sjkimstatement.
6640193267Sjkim
6641193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6642193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6643241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6644241973Sjkimhas 
6645193267Sjkima much larger code and data size.
6646193267Sjkim
6647193267Sjkim  Previous Release:
6648193267Sjkim    Non-Debug Version:  79.5K Code, 17.2K Data,  96.7K Total
6649193267Sjkim    Debug Version:     159.0K Code, 63.8K Data, 222.8K Total
6650193267Sjkim  Current Release:
6651193267Sjkim    Non-Debug Version:  79.7K Code, 17.3K Data,  97.0K Total
6652193267Sjkim    Debug Version:     158.9K Code, 64.0K Data, 222.9K Total
6653193267Sjkim
6654193267Sjkim2) iASL Compiler/Disassembler and Tools:
6655193267Sjkim
6656193267SjkimImplemented full disassembler support for the following new ACPI tables: 
6657193267SjkimBERT, EINJ, and ERST. Implemented partial disassembler support for the 
6658193267Sjkimcomplicated HEST table. These tables support the Windows Hardware Error 
6659193267SjkimArchitecture (WHEA).
6660193267Sjkim
6661193267Sjkim----------------------------------------
6662193267Sjkim23 January 2008. Summary of changes for version 20080123:
6663193267Sjkim
6664193267Sjkim1) ACPI CA Core Subsystem:
6665193267Sjkim
6666193267SjkimAdded the 2008 copyright to all module headers and signons. This affects 
6667193267Sjkimvirtually every file in the ACPICA core subsystem, the iASL compiler, and 
6668193267Sjkimthe tools/utilities.
6669193267Sjkim
6670253690SjkimFixed a problem with the SizeOf operator when used with Package and 
6671253690SjkimBuffer 
6672253690Sjkimobjects. These objects have deferred execution for some arguments, and 
6673253690Sjkimthe 
6674241973Sjkimexecution is now completed before the SizeOf is executed. This problem 
6675241973Sjkimcaused 
6676241973Sjkimunexpected AE_PACKAGE_LIMIT errors on some systems (Lin Ming, Bob Moore) 
6677241973SjkimBZ 
6678193267Sjkim9558
6679193267Sjkim
6680253690SjkimImplemented an enhancement to the interpreter "slack mode". In the 
6681253690Sjkimabsence 
6682241973Sjkimof 
6683253690Sjkiman explicit return or an implicitly returned object from the last 
6684253690Sjkimexecuted 
6685241973Sjkimopcode, a control method will now implicitly return an integer of value 0 
6686241973Sjkimfor 
6687193267SjkimMicrosoft compatibility. (Lin Ming) BZ 392
6688193267Sjkim
6689253690SjkimFixed a problem with the Load operator where an exception was not 
6690253690Sjkimreturned 
6691241973Sjkimin 
6692193267Sjkimthe case where the table is already loaded. (Lin Ming) BZ 463
6693193267Sjkim
6694241973SjkimImplemented support for the use of DDBHandles as an Indexed Reference, as 
6695241973Sjkimper 
6696193267Sjkimthe ACPI spec. (Lin Ming) BZ 486
6697193267Sjkim
6698241973SjkimImplemented support for UserTerm (Method invocation) for the Unload 
6699241973Sjkimoperator 
6700193267Sjkimas per the ACPI spec. (Lin Ming) BZ 580
6701193267Sjkim
6702253690SjkimFixed a problem with the LoadTable operator where the OemId and 
6703253690SjkimOemTableId 
6704241973Sjkiminput strings could cause unexpected failures if they were shorter than 
6705241973Sjkimthe 
6706193267Sjkimmaximum lengths allowed. (Lin Ming, Bob Moore) BZ 576
6707193267Sjkim
6708241973SjkimImplemented support for UserTerm (Method invocation) for the Unload 
6709241973Sjkimoperator 
6710193267Sjkimas per the ACPI spec. (Lin Ming) BZ 580
6711193267Sjkim
6712241973SjkimImplemented header file support for new ACPI tables - BERT, ERST, EINJ, 
6713241973SjkimHEST, 
6714193267SjkimIBFT, UEFI, WDAT. Disassembler support is forthcoming.
6715193267Sjkim
6716193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6717193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6718241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6719241973Sjkimhas 
6720193267Sjkima much larger code and data size.
6721193267Sjkim
6722193267Sjkim  Previous Release:
6723193267Sjkim    Non-Debug Version:  79.3K Code, 17.2K Data,  96.5K Total
6724193267Sjkim    Debug Version:     158.6K Code, 63.8K Data, 222.4K Total
6725193267Sjkim  Current Release:
6726193267Sjkim    Non-Debug Version:  79.5K Code, 17.2K Data,  96.7K Total
6727193267Sjkim    Debug Version:     159.0K Code, 63.8K Data, 222.8K Total
6728193267Sjkim
6729193267Sjkim2) iASL Compiler/Disassembler and Tools:
6730193267Sjkim
6731241973SjkimImplemented support in the disassembler for checksum validation on 
6732241973Sjkimincoming 
6733241973Sjkimbinary DSDTs and SSDTs. If incorrect, a message is displayed within the 
6734241973Sjkimtable 
6735193267Sjkimheader dump at the start of the disassembly.
6736193267Sjkim
6737253690SjkimImplemented additional debugging information in the namespace listing 
6738253690Sjkimfile 
6739241973Sjkimcreated during compilation. In addition to the namespace hierarchy, the 
6740241973Sjkimfull 
6741193267Sjkimpathname to each namespace object is displayed.
6742193267Sjkim
6743241973SjkimFixed a problem with the disassembler where invalid ACPI tables could 
6744241973Sjkimcause 
6745193267Sjkimfaults or infinite loops.
6746193267Sjkim
6747193267SjkimFixed an unexpected parse error when using the optional "parameter types" 
6748193267Sjkimlist in a control method declaration. (Lin Ming) BZ 397
6749193267Sjkim
6750253690SjkimFixed a problem where two External declarations with the same name did 
6751253690Sjkimnot 
6752193267Sjkimcause an error (Lin Ming) BZ 509
6753193267Sjkim
6754193267SjkimImplemented support for full TermArgs (adding Argx, Localx and method 
6755241973Sjkiminvocation) for the ParameterData parameter to the LoadTable operator. 
6756241973Sjkim(Lin 
6757193267SjkimMing) BZ 583,587
6758193267Sjkim
6759193267Sjkim----------------------------------------
6760193267Sjkim19 December 2007. Summary of changes for version 20071219:
6761193267Sjkim
6762193267Sjkim1) ACPI CA Core Subsystem:
6763193267Sjkim
6764193267SjkimImplemented full support for deferred execution for the TermArg string 
6765193267Sjkimarguments for DataTableRegion. This enables forward references and full 
6766241973Sjkimoperand resolution for the three string arguments. Similar to 
6767241973SjkimOperationRegion 
6768193267Sjkimdeferred argument execution.) Lin Ming. BZ 430
6769193267Sjkim
6770253690SjkimImplemented full argument resolution support for the BankValue argument 
6771253690Sjkimto 
6772241973SjkimBankField. Previously, only constants were supported, now any TermArg may 
6773241973Sjkimbe 
6774193267Sjkimused. Lin Ming BZ 387, 393
6775193267Sjkim
6776193267SjkimFixed a problem with AcpiGetDevices where the search of a branch of the 
6777193267Sjkimdevice tree could be terminated prematurely. In accordance with the ACPI 
6778241973Sjkimspecification, the search down the current branch is terminated if a 
6779241973Sjkimdevice 
6780241973Sjkimis both not present and not functional (instead of just not present.) 
6781241973SjkimYakui 
6782193267SjkimZhao.
6783193267Sjkim
6784241973SjkimFixed a problem where "unknown" GPEs could be allowed to fire repeatedly 
6785241973Sjkimif 
6786253690Sjkimthe underlying AML code changed the GPE enable registers. Now, any 
6787253690Sjkimunknown 
6788241973Sjkimincoming GPE (no _Lxx/_Exx method and not the EC GPE) is immediately 
6789241973Sjkimdisabled 
6790193267Sjkiminstead of simply ignored. Rui Zhang.
6791193267Sjkim
6792253690SjkimFixed a problem with Index Fields where the Index register was 
6793253690Sjkimincorrectly 
6794193267Sjkimlimited to a maximum of 32 bits. Now any size may be used.
6795193267Sjkim
6796253690SjkimFixed a couple memory leaks associated with "implicit return" objects 
6797253690Sjkimwhen 
6798193267Sjkimthe AML Interpreter slack mode is enabled. Lin Ming BZ 349
6799193267Sjkim
6800193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6801193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6802241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6803241973Sjkimhas 
6804193267Sjkima much larger code and data size.
6805193267Sjkim
6806193267Sjkim  Previous Release:
6807193267Sjkim    Non-Debug Version:  79.0K Code, 17.2K Data,  96.2K Total
6808193267Sjkim    Debug Version:     157.9K Code, 63.6K Data, 221.5K Total
6809193267Sjkim  Current Release:
6810193267Sjkim    Non-Debug Version:  79.3K Code, 17.2K Data,  96.5K Total
6811193267Sjkim    Debug Version:     158.6K Code, 63.8K Data, 222.4K Total
6812193267Sjkim
6813193267Sjkim----------------------------------------
6814193267Sjkim14 November 2007. Summary of changes for version 20071114:
6815193267Sjkim
6816193267Sjkim1) ACPI CA Core Subsystem:
6817193267Sjkim
6818193267SjkimImplemented event counters for each of the Fixed Events, the ACPI SCI 
6819193267Sjkim(interrupt) itself, and control methods executed. Named 
6820241973SjkimAcpiFixedEventCount[], AcpiSciCount, and AcpiMethodCount respectively. 
6821241973SjkimThese 
6822193267Sjkimshould be useful for debugging and statistics.
6823193267Sjkim
6824193267SjkimImplemented a new external interface, AcpiGetStatistics, to retrieve the 
6825193267Sjkimcontents of the various event counters. Returns the current values for 
6826193267SjkimAcpiSciCount, AcpiGpeCount, the AcpiFixedEventCount array, and 
6827241973SjkimAcpiMethodCount. The interface can be expanded in the future if new 
6828241973Sjkimcounters 
6829253690Sjkimare added. Device drivers should use this interface rather than access 
6830253690Sjkimthe 
6831193267Sjkimcounters directly.
6832193267Sjkim
6833253690SjkimFixed a problem with the FromBCD and ToBCD operators. With some 
6834253690Sjkimcompilers, 
6835253690Sjkimthe ShortDivide function worked incorrectly, causing problems with the 
6836253690SjkimBCD 
6837193267Sjkimfunctions with large input values. A truncation from 64-bit to 32-bit 
6838193267Sjkiminadvertently occurred. Internal BZ 435. Lin Ming
6839193267Sjkim
6840241973SjkimFixed a problem with Index references passed as method arguments. 
6841241973SjkimReferences 
6842241973Sjkimpassed as arguments to control methods were dereferenced immediately 
6843241973Sjkim(before 
6844253690Sjkimcontrol was passed to the called method). The references are now 
6845253690Sjkimcorrectly 
6846193267Sjkimpassed directly to the called method. BZ 5389. Lin Ming
6847193267Sjkim
6848241973SjkimFixed a problem with CopyObject used in conjunction with the Index 
6849241973Sjkimoperator. 
6850241973SjkimThe reference was incorrectly dereferenced before the copy. The reference 
6851241973Sjkimis 
6852193267Sjkimnow correctly copied. BZ 5391. Lin Ming
6853193267Sjkim
6854241973SjkimFixed a problem with Control Method references within Package objects. 
6855241973SjkimThese 
6856193267Sjkimreferences are now correctly generated. This completes the package 
6857193267Sjkimconstruction overhaul that began in version 20071019.
6858193267Sjkim
6859193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6860193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6861241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6862241973Sjkimhas 
6863193267Sjkima much larger code and data size.
6864193267Sjkim
6865193267Sjkim  Previous Release:
6866193267Sjkim    Non-Debug Version:  78.8K Code, 17.2K Data,  96.0K Total
6867193267Sjkim    Debug Version:     157.2K Code, 63.4K Data, 220.6K Total
6868193267Sjkim  Current Release:
6869193267Sjkim    Non-Debug Version:  79.0K Code, 17.2K Data,  96.2K Total
6870193267Sjkim    Debug Version:     157.9K Code, 63.6K Data, 221.5K Total
6871193267Sjkim
6872193267Sjkim
6873193267Sjkim2) iASL Compiler/Disassembler and Tools:
6874193267Sjkim
6875193267SjkimThe AcpiExec utility now installs handlers for all of the predefined 
6876193267SjkimOperation Region types. New types supported are: PCI_Config, CMOS, and 
6877193267SjkimPCIBARTarget.
6878193267Sjkim
6879241973SjkimFixed a problem with the 64-bit version of AcpiExec where the extended 
6880241973Sjkim(64-
6881193267Sjkimbit) address fields for the DSDT and FACS within the FADT were not being 
6882253690Sjkimused, causing truncation of the upper 32-bits of these addresses. Lin 
6883253690SjkimMing 
6884193267Sjkimand Bob Moore
6885193267Sjkim
6886193267Sjkim----------------------------------------
6887193267Sjkim19 October 2007. Summary of changes for version 20071019:
6888193267Sjkim
6889193267Sjkim1) ACPI CA Core Subsystem:
6890193267Sjkim
6891193267SjkimFixed a problem with the Alias operator when the target of the alias is a 
6892253690Sjkimnamed ASL operator that opens a new scope -- Scope, Device, 
6893253690SjkimPowerResource, 
6894193267SjkimProcessor, and ThermalZone. In these cases, any children of the original 
6895241973Sjkimoperator could not be accessed via the alias, potentially causing 
6896241973Sjkimunexpected 
6897193267SjkimAE_NOT_FOUND exceptions. (BZ 9067)
6898193267Sjkim
6899193267SjkimFixed a problem with the Package operator where all named references were 
6900241973Sjkimcreated as object references and left otherwise unresolved. According to 
6901241973Sjkimthe 
6902241973SjkimACPI specification, a Package can only contain Data Objects or references 
6903241973Sjkimto 
6904193267Sjkimcontrol methods. The implication is that named references to Data Objects 
6905193267Sjkim(Integer, Buffer, String, Package, BufferField, Field) should be resolved 
6906193267Sjkimimmediately upon package creation. This is the approach taken with this 
6907193267Sjkimchange. References to all other named objects (Methods, Devices, Scopes, 
6908193267Sjkimetc.) are all now properly created as reference objects. (BZ 5328)
6909193267Sjkim
6910193267SjkimReverted a change to Notify handling that was introduced in version 
6911193267Sjkim20070508. This version changed the Notify handling from asynchronous to 
6912241973Sjkimfully synchronous (Device driver Notify handling with respect to the 
6913241973SjkimNotify 
6914193267SjkimASL operator). It was found that this change caused more problems than it 
6915193267Sjkimsolved and was removed by most users.
6916193267Sjkim
6917241973SjkimFixed a problem with the Increment and Decrement operators where the type 
6918241973Sjkimof 
6919193267Sjkimthe target object could be unexpectedly and incorrectly changed. (BZ 353) 
6920193267SjkimLin Ming.
6921193267Sjkim
6922193267SjkimFixed a problem with the Load and LoadTable operators where the table 
6923193267Sjkimlocation within the namespace was ignored. Instead, the table was always 
6924193267Sjkimloaded into the root or current scope. Lin Ming.
6925193267Sjkim
6926193267SjkimFixed a problem with the Load operator when loading a table from a buffer 
6927193267Sjkimobject. The input buffer was prematurely zeroed and/or deleted. (BZ 577)
6928193267Sjkim
6929241973SjkimFixed a problem with the Debug object where a store of a DdbHandle 
6930241973Sjkimreference 
6931193267Sjkimobject to the Debug object could cause a fault.
6932193267Sjkim
6933241973SjkimAdded a table checksum verification for the Load operator, in the case 
6934241973Sjkimwhere 
6935193267Sjkimthe load is from a buffer. (BZ 578).
6936193267Sjkim
6937241973SjkimImplemented additional parameter validation for the LoadTable operator. 
6938241973SjkimThe 
6939241973Sjkimlength of the input strings SignatureString, OemIdString, and OemTableId 
6940241973Sjkimare 
6941193267Sjkimnow checked for maximum lengths. (BZ 582) Lin Ming.
6942193267Sjkim
6943193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6944193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6945241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6946241973Sjkimhas 
6947193267Sjkima much larger code and data size.
6948193267Sjkim
6949193267Sjkim  Previous Release:
6950193267Sjkim    Non-Debug Version:  78.5K Code, 17.1K Data,  95.6K Total
6951193267Sjkim    Debug Version:     156.7K Code, 63.2K Data, 219.9K Total
6952193267Sjkim  Current Release:
6953193267Sjkim    Non-Debug Version:  78.8K Code, 17.2K Data,  96.0K Total
6954193267Sjkim    Debug Version:     157.2K Code, 63.4K Data, 220.6K Total
6955193267Sjkim
6956193267Sjkim
6957193267Sjkim2) iASL Compiler/Disassembler:
6958193267Sjkim
6959193267SjkimFixed a problem where if a single file was specified and the file did not 
6960193267Sjkimexist, no error message was emitted. (Introduced with wildcard support in 
6961193267Sjkimversion 20070917.)
6962193267Sjkim
6963193267Sjkim----------------------------------------
6964193267Sjkim19 September 2007. Summary of changes for version 20070919:
6965193267Sjkim
6966193267Sjkim1) ACPI CA Core Subsystem:
6967193267Sjkim
6968193267SjkimDesigned and implemented new external interfaces to install and remove 
6969241973Sjkimhandlers for ACPI table-related events. Current events that are defined 
6970241973Sjkimare 
6971193267SjkimLOAD and UNLOAD. These interfaces allow the host to track ACPI tables as 
6972193267Sjkimthey are dynamically loaded and unloaded. See AcpiInstallTableHandler and 
6973193267SjkimAcpiRemoveTableHandler. (Lin Ming and Bob Moore)
6974193267Sjkim
6975193267SjkimFixed a problem where the use of the AcpiGbl_AllMethodsSerialized flag 
6976193267Sjkim(acpi_serialized option on Linux) could cause some systems to hang during 
6977193267Sjkiminitialization. (Bob Moore) BZ 8171
6978193267Sjkim
6979193267SjkimFixed a problem where objects of certain types (Device, ThermalZone, 
6980193267SjkimProcessor, PowerResource) can be not found if they are declared and 
6981193267Sjkimreferenced from within the same control method (Lin Ming) BZ 341
6982193267Sjkim
6983193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
6984193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
6985241973Sjkimdebug version of the code includes the debug output trace mechanism and 
6986241973Sjkimhas 
6987193267Sjkima much larger code and data size.
6988193267Sjkim
6989193267Sjkim  Previous Release:
6990193267Sjkim    Non-Debug Version:  78.3K Code, 17.0K Data,  95.3K Total
6991193267Sjkim    Debug Version:     156.3K Code, 63.1K Data, 219.4K Total
6992193267Sjkim  Current Release:
6993193267Sjkim    Non-Debug Version:  78.5K Code, 17.1K Data,  95.6K Total
6994193267Sjkim    Debug Version:     156.7K Code, 63.2K Data, 219.9K Total
6995193267Sjkim
6996193267Sjkim
6997193267Sjkim2) iASL Compiler/Disassembler:
6998193267Sjkim
6999253690SjkimImplemented support to allow multiple files to be compiled/disassembled 
7000253690Sjkimin 
7001241973Sjkima 
7002241973Sjkimsingle invocation. This includes command line wildcard support for both 
7003241973Sjkimthe 
7004193267SjkimWindows and Unix versions of the compiler. This feature simplifies the 
7005253690Sjkimdisassembly and compilation of multiple ACPI tables in a single 
7006253690Sjkimdirectory.
7007193267Sjkim
7008193267Sjkim----------------------------------------
7009193267Sjkim08 May 2007. Summary of changes for version 20070508:
7010193267Sjkim
7011193267Sjkim1) ACPI CA Core Subsystem:
7012193267Sjkim
7013241973SjkimImplemented a Microsoft compatibility design change for the handling of 
7014241973Sjkimthe 
7015193267SjkimNotify AML operator. Previously, notify handlers were dispatched and 
7016193267Sjkimexecuted completely asynchronously in a deferred thread. The new design 
7017253690Sjkimstill executes the notify handlers in a different thread, but the 
7018253690Sjkimoriginal 
7019253690Sjkimthread that executed the Notify() now waits at a synchronization point 
7020253690Sjkimfor 
7021241973Sjkimthe notify handler to complete. Some machines depend on a synchronous 
7022241973SjkimNotify 
7023193267Sjkimoperator in order to operate correctly.
7024193267Sjkim
7025193267SjkimImplemented support to allow Package objects to be passed as method 
7026193267Sjkimarguments to the external AcpiEvaluateObject interface. Previously, this 
7027193267Sjkimwould return the AE_NOT_IMPLEMENTED exception. This feature had not been 
7028193267Sjkimimplemented since there were no reserved control methods that required it 
7029193267Sjkimuntil recently.
7030193267Sjkim
7031241973SjkimFixed a problem with the internal FADT conversion where ACPI 1.0 FADTs 
7032241973Sjkimthat 
7033193267Sjkimcontained invalid non-zero values in reserved fields could cause later 
7034253690Sjkimfailures because these fields have meaning in later revisions of the 
7035253690SjkimFADT. 
7036241973SjkimFor incoming ACPI 1.0 FADTs, these fields are now always zeroed. (The 
7037241973Sjkimfields 
7038193267Sjkimare: Preferred_PM_Profile, PSTATE_CNT, CST_CNT, and IAPC_BOOT_FLAGS.)
7039193267Sjkim
7040253690SjkimFixed a problem where the Global Lock handle was not properly updated if 
7041253690Sjkima 
7042253690Sjkimthread that acquired the Global Lock via executing AML code then 
7043253690Sjkimattempted 
7044241973Sjkimto acquire the lock via the AcpiAcquireGlobalLock interface. Reported by 
7045241973SjkimJoe 
7046193267SjkimLiu.
7047193267Sjkim
7048193267SjkimFixed a problem in AcpiEvDeleteGpeXrupt where the global interrupt list 
7049193267Sjkimcould be corrupted if the interrupt being removed was at the head of the 
7050193267Sjkimlist. Reported by Linn Crosetto.
7051193267Sjkim
7052193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7053193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7054241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7055241973Sjkimhas 
7056193267Sjkima much larger code and data size.
7057193267Sjkim
7058193267Sjkim  Previous Release:
7059193267Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7060193267Sjkim    Debug Version:     155.9K Code, 63.1K Data, 219.0K Total
7061193267Sjkim  Current Release:
7062193267Sjkim    Non-Debug Version:  78.3K Code, 17.0K Data,  95.3K Total
7063193267Sjkim    Debug Version:     156.3K Code, 63.1K Data, 219.4K Total
7064193267Sjkim
7065193267Sjkim----------------------------------------
7066167802Sjkim20 March 2007. Summary of changes for version 20070320:
7067167802Sjkim
7068167802Sjkim1) ACPI CA Core Subsystem:
7069167802Sjkim
7070193267SjkimImplemented a change to the order of interpretation and evaluation of AML 
7071193267Sjkimoperand objects within the AML interpreter. The interpreter now evaluates 
7072193267Sjkimoperands in the order that they appear in the AML stream (and the 
7073253690Sjkimcorresponding ASL code), instead of in the reverse order (after the 
7074253690Sjkimentire 
7075253690Sjkimoperand list has been parsed). The previous behavior caused several 
7076253690Sjkimsubtle 
7077193267Sjkimincompatibilities with the Microsoft AML interpreter as well as being 
7078193267Sjkimsomewhat non-intuitive. BZ 7871, local BZ 263. Valery Podrezov.
7079167802Sjkim
7080241973SjkimImplemented a change to the ACPI Global Lock support. All interfaces to 
7081241973Sjkimthe 
7082193267Sjkimglobal lock now allow the same thread to acquire the lock multiple times. 
7083241973SjkimThis affects the AcpiAcquireGlobalLock external interface to the global 
7084241973Sjkimlock 
7085193267Sjkimas well as the internal use of the global lock to support AML fields -- a 
7086241973Sjkimcontrol method that is holding the global lock can now simultaneously 
7087241973Sjkimaccess 
7088253690SjkimAML fields that require global lock protection. Previously, in both 
7089253690Sjkimcases, 
7090241973Sjkimthis would have resulted in an AE_ALREADY_ACQUIRED exception. The change 
7091241973Sjkimto 
7092193267SjkimAcpiAcquireGlobalLock is of special interest to drivers for the Embedded 
7093241973SjkimController. There is no change to the behavior of the AML Acquire 
7094241973Sjkimoperator, 
7095193267Sjkimas this can already be used to acquire a mutex multiple times by the same 
7096193267Sjkimthread. BZ 8066. With assistance from Alexey Starikovskiy.
7097167802Sjkim
7098193267SjkimFixed a problem where invalid objects could be referenced in the AML 
7099253690SjkimInterpreter after error conditions. During operand evaluation, ensure 
7100253690Sjkimthat 
7101193267Sjkimthe internal "Return Object" field is cleared on error and only valid 
7102241973Sjkimpointers are stored there. Caused occasional access to deleted objects 
7103241973Sjkimthat 
7104193267Sjkimresulted in "large reference count" warning messages. Valery Podrezov.
7105167802Sjkim
7106241973SjkimFixed a problem where an AE_STACK_OVERFLOW internal exception could occur 
7107241973Sjkimon 
7108193267Sjkimdeeply nested control method invocations. BZ 7873, local BZ 487. Valery 
7109193267SjkimPodrezov.
7110167802Sjkim
7111193267SjkimFixed an internal problem with the handling of result objects on the 
7112193267Sjkiminterpreter result stack. BZ 7872. Valery Podrezov.
7113167802Sjkim
7114241973SjkimRemoved obsolete code that handled the case where AML_NAME_OP is the 
7115241973Sjkimtarget 
7116193267Sjkimof a reference (Reference.Opcode). This code was no longer necessary. BZ 
7117193267Sjkim7874. Valery Podrezov.
7118167802Sjkim
7119253690SjkimRemoved obsolete ACPI_NO_INTEGER64_SUPPORT from two header files. This 
7120253690Sjkimwas 
7121241973Sjkima 
7122193267Sjkimremnant from the previously discontinued 16-bit support.
7123167802Sjkim
7124193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7125193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7126241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7127241973Sjkimhas 
7128193267Sjkima much larger code and data size.
7129167802Sjkim
7130167802Sjkim  Previous Release:
7131167802Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7132167802Sjkim    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
7133167802Sjkim  Current Release:
7134167802Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7135167802Sjkim    Debug Version:     155.9K Code, 63.1K Data, 219.0K Total
7136167802Sjkim
7137167802Sjkim----------------------------------------
7138167802Sjkim26 January 2007. Summary of changes for version 20070126:
7139167802Sjkim
7140167802Sjkim1) ACPI CA Core Subsystem:
7141167802Sjkim
7142193267SjkimAdded the 2007 copyright to all module headers and signons. This affects 
7143193267Sjkimvirtually every file in the ACPICA core subsystem, the iASL compiler, and 
7144193267Sjkimthe utilities.
7145167802Sjkim
7146193267SjkimImplemented a fix for an incorrect parameter passed to AcpiTbDeleteTable 
7147241973Sjkimduring a table load. A bad pointer was passed in the case where the DSDT 
7148241973Sjkimis 
7149193267Sjkimoverridden, causing a fault in this case.
7150167802Sjkim
7151193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7152193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7153241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7154241973Sjkimhas 
7155193267Sjkima much larger code and data size.
7156167802Sjkim
7157167802Sjkim  Previous Release:
7158167802Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7159167802Sjkim    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
7160167802Sjkim  Current Release:
7161167802Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7162167802Sjkim    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
7163167802Sjkim
7164167802Sjkim----------------------------------------
7165167802Sjkim15 December 2006. Summary of changes for version 20061215:
7166167802Sjkim
7167167802Sjkim1) ACPI CA Core Subsystem:
7168167802Sjkim
7169241973SjkimSupport for 16-bit ACPICA has been completely removed since it is no 
7170241973Sjkimlonger 
7171193267Sjkimnecessary and it clutters the code. All 16-bit macros, types, and 
7172241973Sjkimconditional compiles have been removed, cleaning up and simplifying the 
7173241973Sjkimcode 
7174193267Sjkimacross the entire subsystem. DOS support is no longer needed since the 
7175193267Sjkimbootable Linux firmware kit is now available.
7176167802Sjkim
7177193267SjkimThe handler for the Global Lock is now removed during AcpiTerminate to 
7178193267Sjkimenable a clean subsystem restart, via the implementation of the 
7179193267SjkimAcpiEvRemoveGlobalLockHandler function. (With assistance from Joel Bretz, 
7180193267SjkimHP)
7181167802Sjkim
7182253690SjkimImplemented enhancements to the multithreading support within the 
7183253690Sjkimdebugger 
7184241973Sjkimto enable improved multithreading debugging and evaluation of the 
7185241973Sjkimsubsystem. 
7186167802Sjkim(Valery Podrezov)
7187167802Sjkim
7188241973SjkimDebugger: Enhanced the Statistics/Memory command to emit the total 
7189241973Sjkim(maximum) 
7190241973Sjkimmemory used during the execution, as well as the maximum memory consumed 
7191241973Sjkimby 
7192193267Sjkimeach of the various object types. (Valery Podrezov)
7193167802Sjkim
7194193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7195193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7196241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7197241973Sjkimhas 
7198193267Sjkima much larger code and data size.
7199193267Sjkim
7200167802Sjkim  Previous Release:
7201167802Sjkim    Non-Debug Version:  77.9K Code, 17.0K Data,  94.9K Total
7202167802Sjkim    Debug Version:     155.2K Code, 63.1K Data, 218.3K Total
7203167802Sjkim  Current Release:
7204167802Sjkim    Non-Debug Version:  78.0K Code, 17.1K Data,  95.1K Total
7205167802Sjkim    Debug Version:     155.8K Code, 63.3K Data, 219.1K Total
7206167802Sjkim
7207167802Sjkim
7208167802Sjkim2) iASL Compiler/Disassembler and Tools:
7209167802Sjkim
7210193267SjkimAcpiExec: Implemented a new option (-m) to display full memory use 
7211193267Sjkimstatistics upon subsystem/program termination. (Valery Podrezov)
7212167802Sjkim
7213167802Sjkim----------------------------------------
7214167802Sjkim09 November 2006. Summary of changes for version 20061109:
7215167802Sjkim
7216167802Sjkim1) ACPI CA Core Subsystem:
7217167802Sjkim
7218253690SjkimOptimized the Load ASL operator in the case where the source operand is 
7219253690Sjkiman 
7220193267Sjkimoperation region. Simply map the operation region memory, instead of 
7221193267Sjkimperforming a bytewise read. (Region must be of type SystemMemory, see 
7222193267Sjkimbelow.)
7223167802Sjkim
7224193267SjkimFixed the Load ASL operator for the case where the source operand is a 
7225241973Sjkimregion field. A buffer object is also allowed as the source operand. BZ 
7226241973Sjkim480
7227167802Sjkim
7228241973SjkimFixed a problem where the Load ASL operator allowed the source operand to 
7229241973Sjkimbe 
7230193267Sjkiman operation region of any type. It is now restricted to regions of type 
7231193267SjkimSystemMemory, as per the ACPI specification. BZ 481
7232167802Sjkim
7233193267SjkimAdditional cleanup and optimizations for the new Table Manager code.
7234167802Sjkim
7235253690SjkimAcpiEnable will now fail if all of the required ACPI tables are not 
7236253690Sjkimloaded 
7237193267Sjkim(FADT, FACS, DSDT). BZ 477
7238167802Sjkim
7239241973SjkimAdded #pragma pack(8/4) to acobject.h to ensure that the structures in 
7240241973Sjkimthis 
7241193267Sjkimheader are always compiled as aligned. The ACPI_OPERAND_OBJECT has been 
7242193267Sjkimmanually optimized to be aligned and will not work if it is byte-packed. 
7243167802Sjkim
7244193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7245193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7246241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7247241973Sjkimhas 
7248193267Sjkima much larger code and data size.
7249167802Sjkim
7250167802Sjkim  Previous Release:
7251167802Sjkim    Non-Debug Version:  78.1K Code, 17.1K Data,  95.2K Total
7252167802Sjkim    Debug Version:     155.4K Code, 63.1K Data, 218.5K Total
7253167802Sjkim  Current Release:
7254167802Sjkim    Non-Debug Version:  77.9K Code, 17.0K Data,  94.9K Total
7255167802Sjkim    Debug Version:     155.2K Code, 63.1K Data, 218.3K Total
7256167802Sjkim
7257167802Sjkim
7258167802Sjkim2) iASL Compiler/Disassembler and Tools:
7259167802Sjkim
7260193267SjkimFixed a problem where the presence of the _OSI predefined control method 
7261193267Sjkimwithin complex expressions could cause an internal compiler error.
7262167802Sjkim
7263193267SjkimAcpiExec: Implemented full region support for multiple address spaces. 
7264193267SjkimSpaceId is now part of the REGION object. BZ 429
7265167802Sjkim
7266167802Sjkim----------------------------------------
7267167802Sjkim11 October 2006. Summary of changes for version 20061011:
7268167802Sjkim
7269167802Sjkim1) ACPI CA Core Subsystem:
7270167802Sjkim
7271193267SjkimCompleted an AML interpreter performance enhancement for control method 
7272193267Sjkimexecution. Previously a 2-pass parse/execution, control methods are now 
7273193267Sjkimcompletely parsed and executed in a single pass. This improves overall 
7274193267Sjkiminterpreter performance by ~25%, reduces code size, and reduces CPU stack 
7275193267Sjkimuse. (Valery Podrezov + interpreter changes in version 20051202 that 
7276193267Sjkimeliminated namespace loading during the pass one parse.)
7277167802Sjkim
7278241973SjkimImplemented _CID support for PCI Root Bridge detection. If the _HID does 
7279241973Sjkimnot 
7280241973Sjkimmatch the predefined PCI Root Bridge IDs, the _CID list (if present) is 
7281241973Sjkimnow 
7282193267Sjkimobtained and also checked for an ID match.
7283167802Sjkim
7284241973SjkimImplemented additional support for the PCI _ADR execution: upsearch until 
7285241973Sjkima 
7286193267Sjkimdevice scope is found before executing _ADR. This allows PCI_Config 
7287253690Sjkimoperation regions to be declared locally within control methods 
7288253690Sjkimunderneath 
7289193267SjkimPCI device objects.
7290167802Sjkim
7291193267SjkimFixed a problem with a possible race condition between threads executing 
7292193267SjkimAcpiWalkNamespace and the AML interpreter. This condition was removed by 
7293253690Sjkimmodifying AcpiWalkNamespace to (by default) ignore all temporary 
7294253690Sjkimnamespace 
7295193267Sjkimentries created during any concurrent control method execution. An 
7296193267Sjkimadditional namespace race condition is known to exist between 
7297193267SjkimAcpiWalkNamespace and the Load/Unload ASL operators and is still under 
7298193267Sjkiminvestigation.
7299167802Sjkim
7300193267SjkimRestructured the AML ParseLoop function, breaking it into several 
7301253690Sjkimsubfunctions in order to reduce CPU stack use and improve 
7302253690Sjkimmaintainability. 
7303193267Sjkim(Mikhail Kouzmich)
7304167802Sjkim
7305253690SjkimAcpiGetHandle: Fix for parameter validation to detect invalid 
7306253690Sjkimcombinations 
7307193267Sjkimof prefix handle and pathname. BZ 478
7308167802Sjkim
7309193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7310193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7311241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7312241973Sjkimhas 
7313193267Sjkima much larger code and data size.
7314167802Sjkim
7315167802Sjkim  Previous Release:
7316167802Sjkim    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
7317167802Sjkim    Debug Version:     154.6K Code, 63.0K Data, 217.6K Total
7318167802Sjkim  Current Release:
7319167802Sjkim    Non-Debug Version:  78.1K Code, 17.1K Data,  95.2K Total
7320167802Sjkim    Debug Version:     155.4K Code, 63.1K Data, 218.5K Total
7321167802Sjkim
7322167802Sjkim2) iASL Compiler/Disassembler and Tools:
7323167802Sjkim
7324241973SjkimPorted the -g option (get local ACPI tables) to the new ACPICA Table 
7325241973SjkimManager 
7326193267Sjkimto restore original behavior.
7327167802Sjkim
7328167802Sjkim----------------------------------------
7329167802Sjkim27 September 2006. Summary of changes for version 20060927:
7330167802Sjkim
7331167802Sjkim1) ACPI CA Core Subsystem:
7332167802Sjkim
7333193267SjkimRemoved the "Flags" parameter from AcpiGetRegister and AcpiSetRegister. 
7334193267SjkimThese functions now use a spinlock for mutual exclusion and the interrupt 
7335193267Sjkimlevel indication flag is not needed.
7336167802Sjkim
7337193267SjkimFixed a problem with the Global Lock where the lock could appear to be 
7338193267Sjkimobtained before it is actually obtained. The global lock semaphore was 
7339253690Sjkiminadvertently created with one unit instead of zero units. (BZ 464) 
7340253690SjkimFiodor 
7341193267SjkimSuietov.
7342167802Sjkim
7343241973SjkimFixed a possible memory leak and fault in AcpiExResolveObjectToValue 
7344241973Sjkimduring 
7345193267Sjkima read from a buffer or region field. (BZ 458) Fiodor Suietov.
7346167802Sjkim
7347193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7348193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7349241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7350241973Sjkimhas 
7351193267Sjkima much larger code and data size.
7352167802Sjkim
7353167802Sjkim  Previous Release:
7354167802Sjkim    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
7355167802Sjkim    Debug Version:     154.7K Code, 63.0K Data, 217.7K Total
7356167802Sjkim  Current Release:
7357167802Sjkim    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
7358167802Sjkim    Debug Version:     154.6K Code, 63.0K Data, 217.6K Total
7359167802Sjkim
7360167802Sjkim
7361167802Sjkim2) iASL Compiler/Disassembler and Tools:
7362167802Sjkim
7363253690SjkimFixed a compilation problem with the pre-defined Resource Descriptor 
7364253690Sjkimfield 
7365241973Sjkimnames where an "object does not exist" error could be incorrectly 
7366241973Sjkimgenerated 
7367193267Sjkimif the parent ResourceTemplate pathname places the template within a 
7368193267Sjkimdifferent namespace scope than the current scope. (BZ 7212)
7369167802Sjkim
7370253690SjkimFixed a problem where the compiler could hang after syntax errors 
7371253690Sjkimdetected 
7372193267Sjkimin an ElseIf construct. (BZ 453)
7373167802Sjkim
7374193267SjkimFixed a problem with the AmlFilename parameter to the DefinitionBlock() 
7375241973Sjkimoperator. An incorrect output filename was produced when this parameter 
7376241973Sjkimwas 
7377193267Sjkima null string (""). Now, the original input filename is used as the AML 
7378193267Sjkimoutput filename, with an ".aml" extension.
7379167802Sjkim
7380253690SjkimImplemented a generic batch command mode for the AcpiExec utility 
7381253690Sjkim(execute 
7382193267Sjkimany AML debugger command) (Valery Podrezov).
7383167802Sjkim
7384167802Sjkim----------------------------------------
7385167802Sjkim12 September 2006. Summary of changes for version 20060912:
7386167802Sjkim
7387167802Sjkim1) ACPI CA Core Subsystem:
7388167802Sjkim
7389193267SjkimEnhanced the implementation of the "serialized mode" of the interpreter 
7390193267Sjkim(enabled via the AcpiGbl_AllMethodsSerialized flag.) When this mode is 
7391241973Sjkimspecified, instead of creating a serialization semaphore per control 
7392241973Sjkimmethod, 
7393193267Sjkimthe interpreter lock is simply no longer released before a blocking 
7394193267Sjkimoperation during control method execution. This effectively makes the AML 
7395193267SjkimInterpreter single-threaded. The overhead of a semaphore per-method is 
7396193267Sjkimeliminated.
7397167802Sjkim
7398241973SjkimFixed a regression where an error was no longer emitted if a control 
7399241973Sjkimmethod 
7400193267Sjkimattempts to create 2 objects of the same name. This once again returns 
7401241973SjkimAE_ALREADY_EXISTS. When this exception occurs, it invokes the mechanism 
7402241973Sjkimthat 
7403193267Sjkimwill dynamically serialize the control method to possible prevent future 
7404193267Sjkimerrors. (BZ 440)
7405167802Sjkim
7406193267SjkimIntegrated a fix for a problem with PCI Express HID detection in the PCI 
7407193267SjkimConfig Space setup procedure. (BZ 7145)
7408167802Sjkim
7409193267SjkimMoved all FADT-related functions to a new file, tbfadt.c. Eliminated the 
7410193267SjkimAcpiHwInitialize function - the FADT registers are now validated when the 
7411193267Sjkimtable is loaded.
7412167802Sjkim
7413253690SjkimAdded two new warnings during FADT verification - 1) if the FADT is 
7414253690Sjkimlarger 
7415253690Sjkimthan the largest known FADT version, and 2) if there is a mismatch 
7416253690Sjkimbetween 
7417241973Sjkima 
7418241973Sjkim32-bit block address and the 64-bit X counterpart (when both are non-
7419241973Sjkimzero.)
7420167802Sjkim
7421193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7422193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7423241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7424241973Sjkimhas 
7425193267Sjkima much larger code and data size.
7426167802Sjkim
7427167802Sjkim  Previous Release:
7428167802Sjkim    Non-Debug Version:  77.9K Code, 16.7K Data,  94.6K Total
7429167802Sjkim    Debug Version:     154.9K Code, 62.6K Data, 217.5K Total
7430167802Sjkim  Current Release:
7431167802Sjkim    Non-Debug Version:  77.9K Code, 17.1K Data,  95.0K Total
7432167802Sjkim    Debug Version:     154.7K Code, 63.0K Data, 217.7K Total
7433167802Sjkim
7434167802Sjkim
7435167802Sjkim2) iASL Compiler/Disassembler and Tools:
7436167802Sjkim
7437253690SjkimFixed a problem with the implementation of the Switch() operator where 
7438253690Sjkimthe 
7439253690Sjkimtemporary variable was declared too close to the actual Switch, instead 
7440253690Sjkimof 
7441193267Sjkimat method level. This could cause a problem if the Switch() operator is 
7442193267Sjkimwithin a while loop, causing an error on the second iteration. (BZ 460)
7443167802Sjkim
7444193267SjkimDisassembler - fix for error emitted for unknown type for target of scope 
7445193267Sjkimoperator. Now, ignore it and continue.
7446167802Sjkim
7447193267SjkimDisassembly of an FADT now verifies the input FADT and reports any errors 
7448193267Sjkimfound. Fix for proper disassembly of full-sized (ACPI 2.0) FADTs.
7449167802Sjkim
7450253690SjkimDisassembly of raw data buffers with byte initialization data now 
7451253690Sjkimprefixes 
7452193267Sjkimeach output line with the current buffer offset.
7453167802Sjkim
7454193267SjkimDisassembly of ASF! table now includes all variable-length data fields at 
7455193267Sjkimthe end of some of the subtables.
7456167802Sjkim
7457193267SjkimThe disassembler now emits a comment if a buffer appears to be a 
7458241973SjkimResourceTemplate, but cannot be disassembled as such because the EndTag 
7459241973Sjkimdoes 
7460193267Sjkimnot appear at the very end of the buffer.
7461167802Sjkim
7462241973SjkimAcpiExec - Added the "-t" command line option to enable the serialized 
7463241973Sjkimmode 
7464193267Sjkimof the AML interpreter.
7465167802Sjkim
7466167802Sjkim----------------------------------------
7467167802Sjkim31 August 2006. Summary of changes for version 20060831:
7468167802Sjkim
7469167802Sjkim1) ACPI CA Core Subsystem:
7470167802Sjkim
7471167802SjkimMiscellaneous fixes for the Table Manager:
7472193267Sjkim- Correctly initialize internal common FADT for all 64-bit "X" fields
7473167802Sjkim- Fixed a couple table mapping issues during table load
7474167802Sjkim- Fixed a couple alignment issues for IA64
7475167802Sjkim- Initialize input array to zero in AcpiInitializeTables
7476193267Sjkim- Additional parameter validation for AcpiGetTable, AcpiGetTableHeader, 
7477193267SjkimAcpiGetTableByIndex
7478167802Sjkim
7479241973SjkimChange for GPE support: when a "wake" GPE is received, all wake GPEs are 
7480241973Sjkimnow 
7481193267Sjkimimmediately disabled to prevent the waking GPE from firing again and to 
7482193267Sjkimprevent other wake GPEs from interrupting the wake process.
7483167802Sjkim
7484253690SjkimAdded the AcpiGpeCount global that tracks the number of processed GPEs, 
7485253690Sjkimto 
7486193267Sjkimbe used for debugging systems with a large number of ACPI interrupts.
7487167802Sjkim
7488193267SjkimImplemented support for the "DMAR" ACPI table (DMA Redirection Table) in 
7489193267Sjkimboth the ACPICA headers and the disassembler.
7490167802Sjkim
7491193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7492193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7493241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7494241973Sjkimhas 
7495193267Sjkima much larger code and data size.
7496167802Sjkim
7497167802Sjkim  Previous Release:
7498167802Sjkim    Non-Debug Version:  77.8K Code, 16.5K Data,  94.3K Total
7499167802Sjkim    Debug Version:     154.6K Code, 62.3K Data, 216.9K Total
7500167802Sjkim  Current Release:
7501167802Sjkim    Non-Debug Version:  77.9K Code, 16.7K Data,  94.6K Total
7502167802Sjkim    Debug Version:     154.9K Code, 62.6K Data, 217.5K Total
7503167802Sjkim
7504167802Sjkim
7505167802Sjkim2) iASL Compiler/Disassembler and Tools:
7506167802Sjkim
7507167802SjkimDisassembler support for the DMAR ACPI table.
7508167802Sjkim
7509167802Sjkim----------------------------------------
7510167802Sjkim23 August 2006. Summary of changes for version 20060823:
7511167802Sjkim
7512167802Sjkim1) ACPI CA Core Subsystem:
7513167802Sjkim
7514193267SjkimThe Table Manager component has been completely redesigned and 
7515241973Sjkimreimplemented. The new design is much simpler, and reduces the overall 
7516241973Sjkimcode 
7517241973Sjkimand data size of the kernel-resident ACPICA by approximately 5%. Also, it 
7518241973Sjkimis 
7519193267Sjkimnow possible to obtain the ACPI tables very early during kernel 
7520193267Sjkiminitialization, even before dynamic memory management is initialized. 
7521193267Sjkim(Alexey Starikovskiy, Fiodor Suietov, Bob Moore)
7522167802Sjkim
7523167802SjkimObsolete ACPICA interfaces:
7524167802Sjkim
7525241973Sjkim- AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early kernel 
7526241973Sjkiminit 
7527193267Sjkimtime).
7528167802Sjkim- AcpiLoadTable: Not needed.
7529167802Sjkim- AcpiUnloadTable: Not needed.
7530167802Sjkim
7531167802SjkimNew ACPICA interfaces:
7532167802Sjkim
7533241973Sjkim- AcpiInitializeTables: Must be called before the table manager can be 
7534241973Sjkimused.
7535193267Sjkim- AcpiReallocateRootTable: Used to transfer the root table to dynamically 
7536193267Sjkimallocated memory after it becomes available.
7537253690Sjkim- AcpiGetTableByIndex: Allows the host to easily enumerate all ACPI 
7538253690Sjkimtables 
7539193267Sjkimin the RSDT/XSDT.
7540167802Sjkim
7541167802SjkimOther ACPICA changes:
7542167802Sjkim
7543241973Sjkim- AcpiGetTableHeader returns the actual mapped table header, not a copy. 
7544241973SjkimUse 
7545193267SjkimAcpiOsUnmapMemory to free this mapping.
7546193267Sjkim- AcpiGetTable returns the actual mapped table. The mapping is managed 
7547193267Sjkiminternally and must not be deleted by the caller. Use of this interface 
7548193267Sjkimcauses no additional dynamic memory allocation.
7549241973Sjkim- AcpiFindRootPointer: Support for physical addressing has been 
7550241973Sjkimeliminated, 
7551193267Sjkimit appeared to be unused.
7552193267Sjkim- The interface to AcpiOsMapMemory has changed to be consistent with the 
7553193267Sjkimother allocation interfaces.
7554241973Sjkim- The interface to AcpiOsGetRootPointer has changed to eliminate 
7555241973Sjkimunnecessary 
7556193267Sjkimparameters.
7557253690Sjkim- ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64 bits on 
7558253690Sjkim64-
7559193267Sjkimbit platforms. Was previously 64 bits on all platforms.
7560241973Sjkim- The interface to the ACPI Global Lock acquire/release macros have 
7561241973Sjkimchanged 
7562193267Sjkimslightly since ACPICA no longer keeps a local copy of the FACS with a 
7563193267Sjkimconstructed pointer to the actual global lock.
7564167802Sjkim
7565167802SjkimPorting to the new table manager:
7566167802Sjkim
7567193267Sjkim- AcpiInitializeTables: Must be called once, and can be called anytime 
7568241973Sjkimduring the OS initialization process. It allows the host to specify an 
7569241973Sjkimarea 
7570193267Sjkimof memory to be used to store the internal version of the RSDT/XSDT (root 
7571241973Sjkimtable). This allows the host to access ACPI tables before memory 
7572241973Sjkimmanagement 
7573193267Sjkimis initialized and running.
7574241973Sjkim- AcpiReallocateRootTable: Can be called after memory management is 
7575241973Sjkimrunning 
7576193267Sjkimto copy the root table to a dynamically allocated array, freeing up the 
7577193267Sjkimscratch memory specified in the call to AcpiInitializeTables.
7578193267Sjkim- AcpiSubsystemInitialize: This existing interface is independent of the 
7579253690SjkimTable Manager, and does not have to be called before the Table Manager 
7580253690Sjkimcan 
7581193267Sjkimbe used, it only must be called before the rest of ACPICA can be used.
7582241973Sjkim- ACPI Tables: Some changes have been made to the names and structure of 
7583241973Sjkimthe 
7584241973Sjkimactbl.h and actbl1.h header files and may require changes to existing 
7585241973Sjkimcode. 
7586241973SjkimFor example, bitfields have been completely removed because of their lack 
7587241973Sjkimof 
7588193267Sjkimportability across C compilers.
7589193267Sjkim- Update interfaces to the Global Lock acquire/release macros if local 
7590193267Sjkimversions are used. (see acwin.h)
7591167802Sjkim
7592167802SjkimObsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c
7593167802Sjkim
7594167802SjkimNew files: tbfind.c
7595167802Sjkim
7596193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7597193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7598241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7599241973Sjkimhas 
7600193267Sjkima much larger code and data size.
7601167802Sjkim
7602167802Sjkim  Previous Release:
7603167802Sjkim    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
7604167802Sjkim    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
7605167802Sjkim  Current Release:
7606167802Sjkim    Non-Debug Version:  77.8K Code, 16.5K Data,  94.3K Total
7607167802Sjkim    Debug Version:     154.6K Code, 62.3K Data, 216.9K Total
7608167802Sjkim
7609167802Sjkim
7610167802Sjkim2) iASL Compiler/Disassembler and Tools:
7611167802Sjkim
7612167802SjkimNo changes for this release.
7613167802Sjkim
7614167802Sjkim----------------------------------------
7615167802Sjkim21 July 2006. Summary of changes for version 20060721:
7616167802Sjkim
7617167802Sjkim1) ACPI CA Core Subsystem:
7618167802Sjkim
7619193267SjkimThe full source code for the ASL test suite used to validate the iASL 
7620193267Sjkimcompiler and the ACPICA core subsystem is being released with the ACPICA 
7621241973Sjkimsource for the first time. The source is contained in a separate package 
7622241973Sjkimand 
7623241973Sjkimconsists of over 1100 files that exercise all ASL/AML operators. The 
7624241973Sjkimpackage 
7625253690Sjkimshould appear on the Intel/ACPI web site shortly. (Valery Podrezov, 
7626253690SjkimFiodor 
7627167802SjkimSuietov)
7628167802Sjkim
7629193267SjkimCompleted a new design and implementation for support of the ACPI Global 
7630193267SjkimLock. On the OS side, the global lock is now treated as a standard AML 
7631193267Sjkimmutex. Previously, multiple OS threads could "acquire" the global lock 
7632241973Sjkimsimultaneously. However, this could cause the BIOS to be starved out of 
7633241973Sjkimthe 
7634193267Sjkimlock - especially in cases such as the Embedded Controller driver where 
7635193267Sjkimthere is a tight coupling between the OS and the BIOS.
7636167802Sjkim
7637193267SjkimImplemented an optimization for the ACPI Global Lock interrupt mechanism. 
7638193267SjkimThe Global Lock interrupt handler no longer queues the execution of a 
7639241973Sjkimseparate thread to signal the global lock semaphore. Instead, the 
7640241973Sjkimsemaphore 
7641193267Sjkimis signaled directly from the interrupt handler.
7642167802Sjkim
7643193267SjkimImplemented support within the AML interpreter for package objects that 
7644253690Sjkimcontain a larger AML length (package list length) than the package 
7645253690Sjkimelement 
7646193267Sjkimcount. In this case, the length of the package is truncated to match the 
7647241973Sjkimpackage element count. Some BIOS code apparently modifies the package 
7648241973Sjkimlength 
7649253690Sjkimon the fly, and this change supports this behavior. Provides 
7650253690Sjkimcompatibility 
7651193267Sjkimwith the MS AML interpreter. (With assistance from Fiodor Suietov)
7652167802Sjkim
7653253690SjkimImplemented a temporary fix for the BankValue parameter of a Bank Field 
7654253690Sjkimto 
7655193267Sjkimsupport all constant values, now including the Zero and One opcodes. 
7656241973SjkimEvaluation of this parameter must eventually be converted to a full 
7657241973SjkimTermArg 
7658253690Sjkimevaluation. A not-implemented error is now returned (temporarily) for 
7659253690Sjkimnon-
7660193267Sjkimconstant values for this parameter.
7661167802Sjkim
7662167802SjkimFixed problem reports (Fiodor Suietov) integrated:
7663241973Sjkim- Fix for premature object deletion after CopyObject on Operation Region 
7664241973Sjkim(BZ 
7665193267Sjkim350)
7666167802Sjkim
7667193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7668193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7669241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7670241973Sjkimhas 
7671193267Sjkima much larger code and data size.
7672167802Sjkim
7673167802Sjkim  Previous Release:
7674167802Sjkim    Non-Debug Version:  80.7K Code, 18.0K Data,  98.7K Total
7675167802Sjkim    Debug Version:     160.9K Code, 65.1K Data, 226.0K Total
7676167802Sjkim  Current Release:
7677167802Sjkim    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
7678167802Sjkim    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
7679167802Sjkim
7680167802Sjkim
7681167802Sjkim2) iASL Compiler/Disassembler and Tools:
7682167802Sjkim
7683167802SjkimNo changes for this release.
7684167802Sjkim
7685167802Sjkim----------------------------------------
7686167802Sjkim07 July 2006. Summary of changes for version 20060707:
7687167802Sjkim
7688167802Sjkim1) ACPI CA Core Subsystem:
7689167802Sjkim
7690193267SjkimAdded the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C compilers 
7691193267Sjkimthat do not allow the initialization of address pointers within packed 
7692193267Sjkimstructures - even though the hardware itself may support misaligned 
7693193267Sjkimtransfers. Some of the debug data structures are packed by default to 
7694193267Sjkimminimize size.
7695167802Sjkim
7696241973SjkimAdded an error message for the case where AcpiOsGetThreadId() returns 
7697241973Sjkimzero. 
7698193267SjkimA non-zero value is required by the core ACPICA code to ensure the proper 
7699193267Sjkimoperation of AML mutexes and recursive control methods.
7700167802Sjkim
7701193267SjkimThe DSDT is now the only ACPI table that determines whether the AML 
7702241973Sjkiminterpreter is in 32-bit or 64-bit mode. Not really a functional change, 
7703241973Sjkimbut 
7704253690Sjkimthe hooks for per-table 32/64 switching have been removed from the code. 
7705253690SjkimA 
7706193267Sjkimclarification to the ACPI specification is forthcoming in ACPI 3.0B.
7707167802Sjkim
7708193267SjkimFixed a possible leak of an OwnerID in the error path of 
7709193267SjkimAcpiTbInitTableDescriptor (tbinstal.c), and migrated all table OwnerID 
7710241973Sjkimdeletion to a single place in AcpiTbUninstallTable to correct possible 
7711241973Sjkimleaks 
7712193267Sjkimwhen using the AcpiTbDeleteTablesByType interface (with assistance from 
7713193267SjkimLance Ortiz.)
7714167802Sjkim
7715193267SjkimFixed a problem with Serialized control methods where the semaphore 
7716193267Sjkimassociated with the method could be over-signaled after multiple method 
7717193267Sjkiminvocations.
7718167802Sjkim
7719241973SjkimFixed two issues with the locking of the internal namespace data 
7720241973Sjkimstructure. 
7721193267SjkimBoth the Unload() operator and AcpiUnloadTable interface now lock the 
7722193267Sjkimnamespace during the namespace deletion associated with the table unload 
7723193267Sjkim(with assistance from Linn Crosetto.)
7724167802Sjkim
7725167802SjkimFixed problem reports (Valery Podrezov) integrated:
7726193267Sjkim- Eliminate unnecessary memory allocation for CreateXxxxField (BZ 5426)
7727167802Sjkim
7728167802SjkimFixed problem reports (Fiodor Suietov) integrated:
7729167802Sjkim- Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369)
7730193267Sjkim- On Address Space handler deletion, needless deactivation call (BZ 374)
7731253690Sjkim- AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ 
7732253690Sjkim375)
7733241973Sjkim- Possible memory leak, Notify sub-objects of Processor, Power, 
7734241973SjkimThermalZone 
7735193267Sjkim(BZ 376)
7736193267Sjkim- AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ 378)
7737167802Sjkim- Minimum Length of RSDT should be validated (BZ 379)
7738193267Sjkim- AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj has no 
7739193267SjkimHandler (BZ (380)
7740241973Sjkim- AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type 
7741241973Sjkimloaded 
7742193267Sjkim(BZ 381)
7743167802Sjkim
7744193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7745193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7746241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7747241973Sjkimhas 
7748193267Sjkima much larger code and data size.
7749167802Sjkim
7750167802Sjkim  Previous Release:
7751167802Sjkim    Non-Debug Version:  80.5K Code, 17.8K Data,  98.3K Total
7752167802Sjkim    Debug Version:     160.8K Code, 64.8K Data, 225.6K Total
7753167802Sjkim  Current Release:
7754167802Sjkim    Non-Debug Version:  80.7K Code, 17.9K Data,  98.6K Total
7755167802Sjkim    Debug Version:     161.0K Code, 65.1K Data, 226.1K Total
7756167802Sjkim
7757167802Sjkim
7758167802Sjkim2) iASL Compiler/Disassembler and Tools:
7759167802Sjkim
7760167802SjkimFixed problem reports:
7761193267SjkimCompiler segfault when ASL contains a long (>1024) String declaration (BZ 
7762193267Sjkim436)
7763167802Sjkim
7764167802Sjkim----------------------------------------
7765167802Sjkim23 June 2006. Summary of changes for version 20060623:
7766167802Sjkim
7767167802Sjkim1) ACPI CA Core Subsystem:
7768167802Sjkim
7769193267SjkimImplemented a new ACPI_SPINLOCK type for the OSL lock interfaces. This 
7770193267Sjkimallows the type to be customized to the host OS for improved efficiency 
7771193267Sjkim(since a spinlock is usually a very small object.)
7772167802Sjkim
7773253690SjkimImplemented support for "ignored" bits in the ACPI registers. According 
7774253690Sjkimto 
7775193267Sjkimthe ACPI specification, these bits should be preserved when writing the 
7776241973Sjkimregisters via a read/modify/write cycle. There are 3 bits preserved in 
7777241973Sjkimthis 
7778193267Sjkimmanner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11].
7779167802Sjkim
7780253690SjkimImplemented the initial deployment of new OSL mutex interfaces. Since 
7781253690Sjkimsome 
7782193267Sjkimhost operating systems have separate mutex and semaphore objects, this 
7783193267Sjkimfeature was requested. The base code now uses mutexes (and the new mutex 
7784193267Sjkiminterfaces) wherever a binary semaphore was used previously. However, for 
7785241973Sjkimthe current release, the mutex interfaces are defined as macros to map 
7786241973Sjkimthem 
7787241973Sjkimto the existing semaphore interfaces. Therefore, no OSL changes are 
7788241973Sjkimrequired 
7789193267Sjkimat this time. (See acpiosxf.h)
7790167802Sjkim
7791193267SjkimFixed several problems with the support for the control method SyncLevel 
7792253690Sjkimparameter. The SyncLevel now works according to the ACPI specification 
7793253690Sjkimand 
7794253690Sjkimin concert with the Mutex SyncLevel parameter, since the current 
7795253690SjkimSyncLevel 
7796241973Sjkimis a property of the executing thread. Mutual exclusion for control 
7797241973Sjkimmethods 
7798193267Sjkimis now implemented with a mutex instead of a semaphore.
7799167802Sjkim
7800193267SjkimFixed three instances of the use of the C shift operator in the bitfield 
7801253690Sjkimsupport code (exfldio.c) to avoid the use of a shift value larger than 
7802253690Sjkimthe 
7803241973Sjkimtarget data width. The behavior of C compilers is undefined in this case 
7804241973Sjkimand 
7805241973Sjkimcan cause unpredictable results, and therefore the case must be detected 
7806241973Sjkimand 
7807193267Sjkimavoided. (Fiodor Suietov)
7808167802Sjkim
7809193267SjkimAdded an info message whenever an SSDT or OEM table is loaded dynamically 
7810253690Sjkimvia the Load() or LoadTable() ASL operators. This should improve 
7811253690Sjkimdebugging 
7812253690Sjkimcapability since it will show exactly what tables have been loaded 
7813253690Sjkim(beyond 
7814193267Sjkimthe tables present in the RSDT/XSDT.)
7815167802Sjkim
7816193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7817193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7818241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7819241973Sjkimhas 
7820193267Sjkima much larger code and data size.
7821167802Sjkim
7822167802Sjkim  Previous Release:
7823167802Sjkim    Non-Debug Version:  80.0K Code, 17.6K Data,  97.6K Total
7824167802Sjkim    Debug Version:     160.2K Code, 64.7K Data, 224.9K Total
7825167802Sjkim  Current Release:
7826167802Sjkim    Non-Debug Version:  80.5K Code, 17.8K Data,  98.3K Total
7827167802Sjkim    Debug Version:     160.8K Code, 64.8K Data, 225.6K Total
7828167802Sjkim
7829167802Sjkim
7830167802Sjkim2) iASL Compiler/Disassembler and Tools:
7831167802Sjkim
7832167802SjkimNo changes for this release.
7833167802Sjkim
7834167802Sjkim----------------------------------------
7835167802Sjkim08 June 2006. Summary of changes for version 20060608:
7836167802Sjkim
7837167802Sjkim1) ACPI CA Core Subsystem:
7838167802Sjkim
7839253690SjkimConverted the locking mutex used for the ACPI hardware to a spinlock. 
7840253690SjkimThis 
7841193267Sjkimchange should eliminate all problems caused by attempting to acquire a 
7842193267Sjkimsemaphore at interrupt level, and it means that all ACPICA external 
7843241973Sjkiminterfaces that directly access the ACPI hardware can be safely called 
7844241973Sjkimfrom 
7845241973Sjkiminterrupt level. OSL code that implements the semaphore interfaces should 
7846241973Sjkimbe 
7847193267Sjkimable to eliminate any workarounds for being called at interrupt level.
7848167802Sjkim
7849193267SjkimFixed a regression introduced in 20060526 where the ACPI device 
7850241973Sjkiminitialization could be prematurely aborted with an AE_NOT_FOUND if a 
7851241973Sjkimdevice 
7852193267Sjkimdid not have an optional _INI method.
7853167802Sjkim
7854193267SjkimFixed an IndexField issue where a write to the Data Register should be 
7855241973Sjkimlimited in size to the AccessSize (width) of the IndexField itself. (BZ 
7856241973Sjkim433, 
7857193267SjkimFiodor Suietov)
7858167802Sjkim
7859167802SjkimFixed problem reports (Valery Podrezov) integrated:
7860193267Sjkim- Allow store of ThermalZone objects to Debug object (BZ 5369/5370)
7861167802Sjkim
7862167802SjkimFixed problem reports (Fiodor Suietov) integrated:
7863193267Sjkim- AcpiGetTableHeader doesn't handle multiple instances correctly (BZ 364)
7864167802Sjkim
7865193267SjkimRemoved four global mutexes that were obsolete and were no longer being 
7866193267Sjkimused.
7867167802Sjkim
7868193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7869193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7870241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7871241973Sjkimhas 
7872193267Sjkima much larger code and data size.
7873167802Sjkim
7874167802Sjkim  Previous Release:
7875167802Sjkim    Non-Debug Version:  80.0K Code, 17.7K Data,  97.7K Total
7876167802Sjkim    Debug Version:     160.3K Code, 64.9K Data, 225.2K Total
7877167802Sjkim  Current Release:
7878167802Sjkim    Non-Debug Version:  80.0K Code, 17.6K Data,  97.6K Total
7879167802Sjkim    Debug Version:     160.2K Code, 64.7K Data, 224.9K Total
7880167802Sjkim
7881167802Sjkim
7882167802Sjkim2) iASL Compiler/Disassembler and Tools:
7883167802Sjkim
7884193267SjkimFixed a fault when using -g option (get tables from registry) on Windows 
7885193267Sjkimmachines.
7886167802Sjkim
7887167802SjkimFixed problem reports integrated:
7888193267Sjkim- Generate error if CreateField NumBits parameter is zero. (BZ 405)
7889193267Sjkim- Fault if Offset/Length in Field unit is very large (BZ 432, Fiodor 
7890193267SjkimSuietov)
7891167802Sjkim- Global table revision override (-r) is ignored (BZ 413)
7892167802Sjkim
7893167802Sjkim----------------------------------------
7894167802Sjkim26 May 2006. Summary of changes for version 20060526:
7895167802Sjkim
7896167802Sjkim1) ACPI CA Core Subsystem:
7897167802Sjkim
7898193267SjkimRestructured, flattened, and simplified the internal interfaces for 
7899241973Sjkimnamespace object evaluation - resulting in smaller code, less CPU stack 
7900241973Sjkimuse, 
7901193267Sjkimand fewer interfaces. (With assistance from Mikhail Kouzmich)
7902167802Sjkim
7903253690SjkimFixed a problem with the CopyObject operator where the first parameter 
7904253690Sjkimwas 
7905241973Sjkimnot typed correctly for the parser, interpreter, compiler, and 
7906241973Sjkimdisassembler. 
7907193267SjkimCaused various errors and unexpected behavior.
7908167802Sjkim
7909193267SjkimFixed a problem where a ShiftLeft or ShiftRight of more than 64 bits 
7910193267Sjkimproduced incorrect results with some C compilers. Since the behavior of C 
7911193267Sjkimcompilers when the shift value is larger than the datatype width is 
7912241973Sjkimapparently not well defined, the interpreter now detects this condition 
7913241973Sjkimand 
7914193267Sjkimsimply returns zero as expected in all such cases. (BZ 395)
7915167802Sjkim
7916167802SjkimFixed problem reports (Valery Podrezov) integrated:
7917193267Sjkim- Update String-to-Integer conversion to match ACPI 3.0A spec (BZ 5329)
7918193267Sjkim- Allow interpreter to handle nested method declarations (BZ 5361)
7919167802Sjkim
7920167802SjkimFixed problem reports (Fiodor Suietov) integrated:
7921253690Sjkim- AcpiTerminate doesn't free debug memory allocation list objects (BZ 
7922253690Sjkim355)
7923241973Sjkim- After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ 
7924241973Sjkim356)
7925193267Sjkim- AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ 357)
7926193267Sjkim- Resource Manager should return AE_TYPE for non-device objects (BZ 358)
7927167802Sjkim- Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359)
7928193267Sjkim- Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData (BZ 360)
7929167802Sjkim- Incomplete cleanup branch in AcpiPsParseAml (BZ 361)
7930167802Sjkim- Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362)
7931241973Sjkim- AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ 
7932241973Sjkim365)
7933193267Sjkim- Status of the Global Initialization Handler call not used (BZ 366)
7934193267Sjkim- Incorrect object parameter to Global Initialization Handler (BZ 367)
7935167802Sjkim
7936193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7937193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7938241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7939241973Sjkimhas 
7940193267Sjkima much larger code and data size.
7941167802Sjkim
7942167802Sjkim  Previous Release:
7943167802Sjkim    Non-Debug Version:  79.8K Code, 17.7K Data,  97.5K Total
7944167802Sjkim    Debug Version:     160.5K Code, 65.1K Data, 225.6K Total
7945167802Sjkim  Current Release:
7946167802Sjkim    Non-Debug Version:  80.0K Code, 17.7K Data,  97.7K Total
7947167802Sjkim    Debug Version:     160.3K Code, 64.9K Data, 225.2K Total
7948167802Sjkim
7949167802Sjkim
7950167802Sjkim2) iASL Compiler/Disassembler and Tools:
7951167802Sjkim
7952193267SjkimModified the parser to allow the names IO, DMA, and IRQ to be used as 
7953193267Sjkimnamespace identifiers with no collision with existing resource descriptor 
7954193267Sjkimmacro names. This provides compatibility with other ASL compilers and is 
7955253690Sjkimmost useful for disassembly/recompilation of existing tables without 
7956253690Sjkimparse 
7957167802Sjkimerrors. (With assistance from Thomas Renninger)
7958167802Sjkim
7959193267SjkimDisassembler: fixed an incorrect disassembly problem with the 
7960193267SjkimDataTableRegion and CopyObject operators. Fixed a possible fault during 
7961193267Sjkimdisassembly of some Alias operators.
7962167802Sjkim
7963167802Sjkim----------------------------------------
7964167802Sjkim12 May 2006. Summary of changes for version 20060512:
7965167802Sjkim
7966167802Sjkim1) ACPI CA Core Subsystem:
7967167802Sjkim
7968193267SjkimReplaced the AcpiOsQueueForExecution interface with a new interface named 
7969241973SjkimAcpiOsExecute. The major difference is that the new interface does not 
7970241973Sjkimhave 
7971253690Sjkima Priority parameter, this appeared to be useless and has been replaced 
7972253690Sjkimby 
7973241973Sjkima 
7974193267SjkimType parameter. The Type tells the host what type of execution is being 
7975193267Sjkimrequested, such as global lock handler, notify handler, GPE handler, etc. 
7976241973SjkimThis allows the host to queue and execute the request as appropriate for 
7977241973Sjkimthe 
7978241973Sjkimrequest type, possibly using different work queues and different 
7979241973Sjkimpriorities 
7980193267Sjkimfor the various request types. This enables fixes for multithreading 
7981241973Sjkimdeadlock problems such as BZ #5534, and will require changes to all 
7982241973Sjkimexisting 
7983193267SjkimOS interface layers. (Alexey Starikovskiy and Bob Moore)
7984167802Sjkim
7985253690SjkimFixed a possible memory leak associated with the support for the so-
7986253690Sjkimcalled 
7987193267Sjkim"implicit return" ACPI extension. Reported by FreeBSD, BZ #6514. (Fiodor 
7988193267SjkimSuietov)
7989167802Sjkim
7990193267SjkimFixed a problem with the Load() operator where a table load from an 
7991253690Sjkimoperation region could overwrite an internal table buffer by up to 7 
7992253690Sjkimbytes 
7993241973Sjkimand cause alignment faults on IPF systems. (With assistance from Luming 
7994241973SjkimYu)
7995167802Sjkim
7996193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
7997193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
7998241973Sjkimdebug version of the code includes the debug output trace mechanism and 
7999241973Sjkimhas 
8000193267Sjkima much larger code and data size.
8001167802Sjkim
8002167802Sjkim  Previous Release:
8003167802Sjkim    Non-Debug Version:  79.7K Code, 17.7K Data,  97.4K Total
8004167802Sjkim    Debug Version:     160.1K Code, 65.2K Data, 225.3K Total
8005167802Sjkim  Current Release:
8006167802Sjkim    Non-Debug Version:  79.8K Code, 17.7K Data,  97.5K Total
8007167802Sjkim    Debug Version:     160.5K Code, 65.1K Data, 225.6K Total
8008167802Sjkim
8009167802Sjkim
8010167802Sjkim
8011167802Sjkim2) iASL Compiler/Disassembler and Tools:
8012167802Sjkim
8013241973SjkimDisassembler: Implemented support to cross reference the internal 
8014241973Sjkimnamespace 
8015241973Sjkimand automatically generate ASL External() statements for symbols not 
8016241973Sjkimdefined 
8017193267Sjkimwithin the current table being disassembled. This will simplify the 
8018253690Sjkimdisassembly and recompilation of interdependent tables such as SSDTs 
8019253690Sjkimsince 
8020193267Sjkimthese statements will no longer have to be added manually.
8021167802Sjkim
8022193267SjkimDisassembler: Implemented experimental support to automatically detect 
8023241973Sjkiminvocations of external control methods and generate appropriate 
8024241973SjkimExternal() 
8025253690Sjkimstatements. This is problematic because the AML cannot be correctly 
8026253690Sjkimparsed 
8027253690Sjkimuntil the number of arguments for each control method is known. 
8028253690SjkimCurrently, 
8029193267Sjkimstandalone method invocations and invocations as the source operand of a 
8030193267SjkimStore() statement are supported.
8031167802Sjkim
8032193267SjkimDisassembler: Implemented support for the ASL pseudo-operators LNotEqual, 
8033193267SjkimLLessEqual, and LGreaterEqual. Previously disassembled as LNot(LEqual()), 
8034193267SjkimLNot(LGreater()), and LNot(LLess()), this makes the disassembled ASL code 
8035193267Sjkimmore readable and likely closer to the original ASL source.
8036167802Sjkim
8037167802Sjkim----------------------------------------
8038167802Sjkim21 April 2006. Summary of changes for version 20060421:
8039167802Sjkim
8040167802Sjkim1) ACPI CA Core Subsystem:
8041167802Sjkim
8042193267SjkimRemoved a device initialization optimization introduced in 20051216 where 
8043193267Sjkimthe _STA method was not run unless an _INI was also present for the same 
8044253690Sjkimdevice. This optimization could cause problems because it could allow 
8045253690Sjkim_INI 
8046193267Sjkimmethods to be run within a not-present device subtree. (If a not-present 
8047241973Sjkimdevice had no _INI, _STA would not be run, the not-present status would 
8048241973Sjkimnot 
8049193267Sjkimbe discovered, and the children of the device would be incorrectly 
8050167802Sjkimtraversed.)
8051167802Sjkim
8052193267SjkimImplemented a new _STA optimization where namespace subtrees that do not 
8053193267Sjkimcontain _INI are identified and ignored during device initialization. 
8054193267SjkimSelectively running _STA can significantly improve boot time on large 
8055193267Sjkimmachines (with assistance from Len Brown.)
8056167802Sjkim
8057193267SjkimImplemented support for the device initialization case where the returned 
8058241973Sjkim_STA flags indicate a device not-present but functioning. In this case, 
8059241973Sjkim_INI 
8060193267Sjkimis not run, but the device children are examined for presence, as per the 
8061193267SjkimACPI specification.
8062167802Sjkim
8063193267SjkimImplemented an additional change to the IndexField support in order to 
8064193267Sjkimconform to MS behavior. The value written to the Index Register is not 
8065193267Sjkimsimply a byte offset, it is a byte offset in units of the access width of 
8066193267Sjkimthe parent Index Field. (Fiodor Suietov)
8067167802Sjkim
8068193267SjkimDefined and deployed a new OSL interface, AcpiOsValidateAddress. This 
8069193267Sjkiminterface is called during the creation of all AML operation regions, and 
8070193267Sjkimallows the host OS to exert control over what addresses it will allow the 
8071193267SjkimAML code to access. Operation Regions whose addresses are disallowed will 
8072253690Sjkimcause a runtime exception when they are actually accessed (will not 
8073253690Sjkimaffect 
8074193267Sjkimor abort table loading.) See oswinxf or osunixxf for an example 
8075167802Sjkimimplementation.
8076167802Sjkim
8077193267SjkimDefined and deployed a new OSL interface, AcpiOsValidateInterface. This 
8078193267Sjkiminterface allows the host OS to match the various "optional" 
8079193267Sjkiminterface/behavior strings for the _OSI predefined control method as 
8080193267Sjkimappropriate (with assistance from Bjorn Helgaas.) See oswinxf or osunixxf 
8081193267Sjkimfor an example implementation.
8082167802Sjkim
8083253690SjkimRestructured and corrected various problems in the exception handling 
8084253690Sjkimcode 
8085193267Sjkimpaths within DsCallControlMethod and DsTerminateControlMethod in dsmethod 
8086193267Sjkim(with assistance from Takayoshi Kochi.)
8087167802Sjkim
8088253690SjkimModified the Linux source converter to ignore quoted string literals 
8089253690Sjkimwhile 
8090241973Sjkimconverting identifiers from mixed to lower case. This will correct 
8091241973Sjkimproblems 
8092193267Sjkimwith the disassembler and other areas where such strings must not be 
8093193267Sjkimmodified.
8094167802Sjkim
8095193267SjkimThe ACPI_FUNCTION_* macros no longer require quotes around the function 
8096241973Sjkimname. This allows the Linux source converter to convert the names, now 
8097241973Sjkimthat 
8098193267Sjkimthe converter ignores quoted strings.
8099167802Sjkim
8100193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
8101193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
8102241973Sjkimdebug version of the code includes the debug output trace mechanism and 
8103241973Sjkimhas 
8104193267Sjkima much larger code and data size.
8105193267Sjkim
8106167802Sjkim  Previous Release:
8107167802Sjkim
8108167802Sjkim    Non-Debug Version:  81.1K Code, 17.7K Data,  98.8K Total
8109167802Sjkim    Debug Version:     158.9K Code, 64.9K Data, 223.8K Total
8110167802Sjkim  Current Release:
8111167802Sjkim    Non-Debug Version:  79.7K Code, 17.7K Data,  97.4K Total
8112167802Sjkim    Debug Version:     160.1K Code, 65.2K Data, 225.3K Total
8113167802Sjkim
8114167802Sjkim
8115167802Sjkim2) iASL Compiler/Disassembler and Tools:
8116167802Sjkim
8117241973SjkimImplemented 3 new warnings for iASL, and implemented multiple warning 
8118241973Sjkimlevels 
8119193267Sjkim(w2 flag).
8120167802Sjkim
8121241973Sjkim1) Ignored timeouts: If the TimeoutValue parameter to Wait or Acquire is 
8122241973Sjkimnot 
8123193267SjkimWAIT_FOREVER (0xFFFF) and the code does not examine the return value to 
8124193267Sjkimcheck for the possible timeout, a warning is issued.
8125167802Sjkim
8126241973Sjkim2) Useless operators: If an ASL operator does not specify an optional 
8127241973Sjkimtarget 
8128193267Sjkimoperand and it also does not use the function return value from the 
8129253690Sjkimoperator, a warning is issued since the operator effectively does 
8130253690Sjkimnothing.
8131167802Sjkim
8132193267Sjkim3) Unreferenced objects: If a namespace object is created, but never 
8133253690Sjkimreferenced, a warning is issued. This is a warning level 2 since there 
8134253690Sjkimare 
8135253690Sjkimcases where this is ok, such as when a secondary table is loaded that 
8136253690Sjkimuses 
8137253690Sjkimthe unreferenced objects. Even so, care is taken to only flag objects 
8138253690Sjkimthat 
8139193267Sjkimdon't look like they will ever be used. For example, the reserved methods 
8140193267Sjkim(starting with an underscore) are usually not referenced because it is 
8141193267Sjkimexpected that the OS will invoke them.
8142167802Sjkim
8143167802Sjkim----------------------------------------
8144167802Sjkim31 March 2006. Summary of changes for version 20060331:
8145167802Sjkim
8146167802Sjkim1) ACPI CA Core Subsystem:
8147167802Sjkim
8148193267SjkimImplemented header file support for the following additional ACPI tables: 
8149241973SjkimASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this 
8150241973Sjkimsupport, 
8151241973Sjkimall current and known ACPI tables are now defined in the ACPICA headers 
8152241973Sjkimand 
8153193267Sjkimare available for use by device drivers and other software.
8154167802Sjkim
8155193267SjkimImplemented support to allow tables that contain ACPI names with invalid 
8156193267Sjkimcharacters to be loaded. Previously, this would cause the table load to 
8157193267Sjkimfail, but since there are several known cases of such tables on existing 
8158253690Sjkimmachines, this change was made to enable ACPI support for them. Also, 
8159253690Sjkimthis 
8160193267Sjkimmatches the behavior of the Microsoft ACPI implementation.
8161167802Sjkim
8162241973SjkimFixed a couple regressions introduced during the memory optimization in 
8163241973Sjkimthe 
8164193267Sjkim20060317 release. The namespace node definition required additional 
8165253690Sjkimreorganization and an internal datatype that had been changed to 8-bit 
8166253690Sjkimwas 
8167193267Sjkimrestored to 32-bit. (Valery Podrezov)
8168167802Sjkim
8169193267SjkimFixed a problem where a null pointer passed to AcpiUtDeleteGenericState 
8170193267Sjkimcould be passed through to AcpiOsReleaseObject which is unexpected. Such 
8171193267Sjkimnull pointers are now trapped and ignored, matching the behavior of the 
8172193267Sjkimprevious implementation before the deployment of AcpiOsReleaseObject.
8173167802Sjkim(Valery Podrezov, Fiodor Suietov)
8174167802Sjkim
8175241973SjkimFixed a memory mapping leak during the deletion of a SystemMemory 
8176241973Sjkimoperation 
8177193267Sjkimregion where a cached memory mapping was not deleted. This became a 
8178241973Sjkimnoticeable problem for operation regions that are defined within 
8179241973Sjkimfrequently 
8180193267Sjkimused control methods. (Dana Meyers)
8181167802Sjkim
8182193267SjkimReorganized the ACPI table header files into two main files: one for the 
8183253690SjkimACPI tables consumed by the ACPICA core, and another for the 
8184253690Sjkimmiscellaneous 
8185241973SjkimACPI tables that are consumed by the drivers and other software. The 
8186241973Sjkimvarious 
8187193267SjkimFADT definitions were merged into one common section and three different 
8188193267Sjkimtables (ACPI 1.0, 1.0+, and 2.0)
8189167802Sjkim
8190193267SjkimExample Code and Data Size: These are the sizes for the OS-independent 
8191193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The 
8192241973Sjkimdebug version of the code includes the debug output trace mechanism and 
8193241973Sjkimhas 
8194193267Sjkima much larger code and data size.
8195167802Sjkim
8196167802Sjkim  Previous Release:
8197167802Sjkim    Non-Debug Version:  80.9K Code, 17.7K Data,  98.6K Total
8198167802Sjkim    Debug Version:     158.7K Code, 64.8K Data, 223.5K Total
8199167802Sjkim  Current Release:
8200167802Sjkim    Non-Debug Version:  81.1K Code, 17.7K Data,  98.8K Total
8201167802Sjkim    Debug Version:     158.9K Code, 64.9K Data, 223.8K Total
8202167802Sjkim
8203167802Sjkim
8204167802Sjkim2) iASL Compiler/Disassembler and Tools:
8205167802Sjkim
8206193267SjkimDisassembler: Implemented support to decode and format all non-AML ACPI 
8207193267Sjkimtables (tables other than DSDTs and SSDTs.) This includes the new tables 
8208241973Sjkimadded to the ACPICA headers, therefore all current and known ACPI tables 
8209241973Sjkimare 
8210193267Sjkimsupported.
8211167802Sjkim
8212193267SjkimDisassembler: The change to allow ACPI names with invalid characters also 
8213241973Sjkimenables the disassembly of such tables. Invalid characters within names 
8214241973Sjkimare 
8215193267Sjkimchanged to '*' to make the name printable; the iASL compiler will still 
8216193267Sjkimgenerate an error for such names, however, since this is an invalid ACPI 
8217193267Sjkimcharacter.
8218167802Sjkim
8219241973SjkimImplemented an option for AcpiXtract (-a) to extract all tables found in 
8220241973Sjkimthe 
8221193267Sjkiminput file. The default invocation extracts only the DSDTs and SSDTs.
8222167802Sjkim
8223193267SjkimFixed a couple of gcc generation issues for iASL and AcpiExec and added a 
8224193267Sjkimmakefile for the AcpiXtract utility.
8225167802Sjkim
8226167802Sjkim----------------------------------------
8227167802Sjkim17 March 2006. Summary of changes for version 20060317:
8228167802Sjkim
8229167802Sjkim1) ACPI CA Core Subsystem:
8230167802Sjkim
8231193267SjkimImplemented the use of a cache object for all internal namespace nodes. 
8232193267SjkimSince there are about 1000 static nodes in a typical system, this will 
8233253690Sjkimdecrease memory use for cache implementations that minimize per-
8234253690Sjkimallocation 
8235193267Sjkimoverhead (such as a slab allocator.)
8236167802Sjkim
8237241973SjkimRemoved the reference count mechanism for internal namespace nodes, since 
8238241973Sjkimit 
8239193267Sjkimwas deemed unnecessary. This reduces the size of each namespace node by 
8240253690Sjkimabout 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit 
8241253690Sjkimcase, 
8242193267Sjkimand 32 bytes for the 64-bit case.
8243167802Sjkim
8244253690SjkimOptimized several internal data structures to reduce object size on 64-
8245253690Sjkimbit 
8246193267Sjkimplatforms by packing data within the 64-bit alignment. This includes the 
8247193267Sjkimfrequently used ACPI_OPERAND_OBJECT, of which there can be ~1000 static 
8248193267Sjkiminstances corresponding to the namespace objects.
8249167802Sjkim
8250253690SjkimAdded two new strings for the predefined _OSI method: "Windows 2001.1 
8251253690SjkimSP1" 
8252193267Sjkimand "Windows 2006".
8253167802Sjkim
8254193267SjkimSplit the allocation tracking mechanism out to a separate file, from 
8255193267Sjkimutalloc.c to uttrack.c. This mechanism appears to be only useful for 
8256193267Sjkimapplication-level code. Kernels may wish to not include uttrack.c in 
8257193267Sjkimdistributions.
8258167802Sjkim
8259241973SjkimRemoved all remnants of the obsolete ACPI_REPORT_* macros and the 
8260241973Sjkimassociated 
8261193267Sjkimcode. (These macros have been replaced by the ACPI_ERROR and ACPI_WARNING 
8262193267Sjkimmacros.)
8263167802Sjkim
8264253690SjkimCode and Data Size: These are the sizes for the acpica.lib produced by 
8265253690Sjkimthe 
8266241973SjkimMicrosoft Visual C++ 6.0 32-bit compiler. The values do not include any 
8267241973SjkimACPI 
8268241973Sjkimdriver or OSPM code. The debug version of the code includes the debug 
8269241973Sjkimoutput 
8270193267Sjkimtrace mechanism and has a much larger code and data size. Note that these 
8271193267Sjkimvalues will vary depending on the efficiency of the compiler and the 
8272193267Sjkimcompiler options used during generation.
8273167802Sjkim
8274167802Sjkim  Previous Release:
8275167802Sjkim    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
8276167802Sjkim    Debug Version:     161.6K Code, 65.7K Data, 227.3K Total
8277167802Sjkim  Current Release:
8278167802Sjkim    Non-Debug Version:  80.9K Code, 17.7K Data,  98.6K Total
8279167802Sjkim    Debug Version:     158.7K Code, 64.8K Data, 223.5K Total
8280167802Sjkim
8281167802Sjkim
8282167802Sjkim2) iASL Compiler/Disassembler and Tools:
8283167802Sjkim
8284253690SjkimImplemented an ANSI C version of the acpixtract utility. This version 
8285253690Sjkimwill 
8286193267Sjkimautomatically extract the DSDT and all SSDTs from the input acpidump text 
8287193267Sjkimfile and dump the binary output to separate files. It can also display a 
8288193267Sjkimsummary of the input file including the headers for each table found and 
8289193267Sjkimwill extract any single ACPI table, with any signature. (See 
8290167802Sjkimsource/tools/acpixtract)
8291167802Sjkim
8292167802Sjkim----------------------------------------
8293167802Sjkim10 March 2006. Summary of changes for version 20060310:
8294167802Sjkim
8295167802Sjkim1) ACPI CA Core Subsystem:
8296167802Sjkim
8297193267SjkimTagged all external interfaces to the subsystem with the new 
8298253690SjkimACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to 
8299253690Sjkimassist 
8300193267Sjkimkernel integration. For Linux, the macro resolves to the EXPORT_SYMBOL 
8301193267Sjkimmacro. The default definition is NULL.
8302167802Sjkim
8303253690SjkimAdded the ACPI_THREAD_ID type for the return value from 
8304253690SjkimAcpiOsGetThreadId. 
8305193267SjkimThis allows the host to define this as necessary to simplify kernel 
8306193267Sjkimintegration. The default definition is ACPI_NATIVE_UINT.
8307167802Sjkim
8308241973SjkimFixed two interpreter problems related to error processing, the deletion 
8309241973Sjkimof 
8310193267Sjkimobjects, and placing invalid pointers onto the internal operator result 
8311193267Sjkimstack. BZ 6028, 6151 (Valery Podrezov)
8312167802Sjkim
8313241973SjkimIncreased the reference count threshold where a warning is emitted for 
8314241973Sjkimlarge 
8315241973Sjkimreference counts in order to eliminate unnecessary warnings on systems 
8316241973Sjkimwith 
8317193267Sjkimlarge namespaces (especially 64-bit.) Increased the value from 0x400 to 
8318193267Sjkim0x800.
8319167802Sjkim
8320253690SjkimDue to universal disagreement as to the meaning of the 'c' in the 
8321253690Sjkimcalloc() 
8322193267Sjkimfunction, the ACPI_MEM_CALLOCATE macro has been renamed to 
8323193267SjkimACPI_ALLOCATE_ZEROED so that the purpose of the interface is 'clear'. 
8324193267SjkimACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and 
8325193267SjkimACPI_FREE.
8326167802Sjkim
8327253690SjkimCode and Data Size: These are the sizes for the acpica.lib produced by 
8328253690Sjkimthe 
8329241973SjkimMicrosoft Visual C++ 6.0 32-bit compiler. The values do not include any 
8330241973SjkimACPI 
8331241973Sjkimdriver or OSPM code. The debug version of the code includes the debug 
8332241973Sjkimoutput 
8333193267Sjkimtrace mechanism and has a much larger code and data size. Note that these 
8334193267Sjkimvalues will vary depending on the efficiency of the compiler and the 
8335193267Sjkimcompiler options used during generation.
8336167802Sjkim
8337167802Sjkim  Previous Release:
8338167802Sjkim    Non-Debug Version:  81.0K Code, 17.8K Data,  98.8K Total
8339167802Sjkim    Debug Version:     161.4K Code, 65.7K Data, 227.1K Total
8340167802Sjkim  Current Release:
8341167802Sjkim    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
8342167802Sjkim    Debug Version:     161.6K Code, 65.7K Data, 227.3K Total
8343167802Sjkim
8344167802Sjkim
8345167802Sjkim2) iASL Compiler/Disassembler:
8346167802Sjkim
8347193267SjkimDisassembler: implemented support for symbolic resource descriptor 
8348253690Sjkimreferences. If a CreateXxxxField operator references a fixed offset 
8349253690Sjkimwithin 
8350241973Sjkima 
8351241973Sjkimresource descriptor, a name is assigned to the descriptor and the offset 
8352241973Sjkimis 
8353193267Sjkimtranslated to the appropriate resource tag and pathname. The addition of 
8354193267Sjkimthis support brings the disassembled code very close to the original ASL 
8355253690Sjkimsource code and helps eliminate run-time errors when the disassembled 
8356253690Sjkimcode 
8357193267Sjkimis modified (and recompiled) in such a way as to invalidate the original 
8358193267Sjkimfixed offsets.
8359167802Sjkim
8360253690SjkimImplemented support for a Descriptor Name as the last parameter to the 
8361253690SjkimASL 
8362193267SjkimRegister() macro. This parameter was inadvertently left out of the ACPI 
8363193267Sjkimspecification, and will be added for ACPI 3.0b.
8364167802Sjkim
8365193267SjkimFixed a problem where the use of the "_OSI" string (versus the full path 
8366193267Sjkim"\_OSI") caused an internal compiler error. ("No back ptr to op")
8367167802Sjkim
8368241973SjkimFixed a problem with the error message that occurs when an invalid string 
8369241973Sjkimis 
8370241973Sjkimused for a _HID object (such as one with an embedded asterisk: 
8371241973Sjkim"*PNP010A".) 
8372193267SjkimThe correct message is now displayed.
8373167802Sjkim
8374167802Sjkim----------------------------------------
8375167802Sjkim17 February 2006. Summary of changes for version 20060217:
8376167802Sjkim
8377167802Sjkim1) ACPI CA Core Subsystem:
8378167802Sjkim
8379241973SjkimImplemented a change to the IndexField support to match the behavior of 
8380241973Sjkimthe 
8381241973SjkimMicrosoft AML interpreter. The value written to the Index register is now 
8382241973Sjkima 
8383253690Sjkimbyte offset, no longer an index based upon the width of the Data 
8384253690Sjkimregister. 
8385193267SjkimThis should fix IndexField problems seen on some machines where the Data 
8386193267Sjkimregister is not exactly one byte wide. The ACPI specification will be 
8387193267Sjkimclarified on this point.
8388167802Sjkim
8389193267SjkimFixed a problem where several resource descriptor types could overrun the 
8390193267Sjkiminternal descriptor buffer due to size miscalculation: VendorShort, 
8391193267SjkimVendorLong, and Interrupt. This was noticed on IA64 machines, but could 
8392193267Sjkimaffect all platforms.
8393167802Sjkim
8394241973SjkimFixed a problem where individual resource descriptors were misaligned 
8395241973Sjkimwithin 
8396193267Sjkimthe internal buffer, causing alignment faults on IA64 platforms.
8397167802Sjkim
8398253690SjkimCode and Data Size: These are the sizes for the acpica.lib produced by 
8399253690Sjkimthe 
8400241973SjkimMicrosoft Visual C++ 6.0 32-bit compiler. The values do not include any 
8401241973SjkimACPI 
8402241973Sjkimdriver or OSPM code. The debug version of the code includes the debug 
8403241973Sjkimoutput 
8404193267Sjkimtrace mechanism and has a much larger code and data size. Note that these 
8405193267Sjkimvalues will vary depending on the efficiency of the compiler and the 
8406193267Sjkimcompiler options used during generation.
8407167802Sjkim
8408167802Sjkim  Previous Release:
8409167802Sjkim    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
8410167802Sjkim    Debug Version:     161.3K Code, 65.6K Data, 226.9K Total
8411167802Sjkim  Current Release:
8412167802Sjkim    Non-Debug Version:  81.0K Code, 17.8K Data,  98.8K Total
8413167802Sjkim    Debug Version:     161.4K Code, 65.7K Data, 227.1K Total
8414167802Sjkim
8415167802Sjkim
8416167802Sjkim2) iASL Compiler/Disassembler:
8417167802Sjkim
8418193267SjkimImplemented support for new reserved names: _WDG and _WED are Microsoft 
8419193267Sjkimextensions for Windows Instrumentation Management, _TDL is a new ACPI-
8420193267Sjkimdefined method (Throttling Depth Limit.)
8421167802Sjkim
8422193267SjkimFixed a problem where a zero-length VendorShort or VendorLong resource 
8423193267Sjkimdescriptor was incorrectly emitted as a descriptor of length one.
8424167802Sjkim
8425167802Sjkim----------------------------------------
8426167802Sjkim10 February 2006. Summary of changes for version 20060210:
8427167802Sjkim
8428167802Sjkim1) ACPI CA Core Subsystem:
8429167802Sjkim
8430193267SjkimRemoved a couple of extraneous ACPI_ERROR messages that appeared during 
8431193267Sjkimnormal execution. These became apparent after the conversion from 
8432193267SjkimACPI_DEBUG_PRINT.
8433167802Sjkim
8434241973SjkimFixed a problem where the CreateField operator could hang if the BitIndex 
8435241973Sjkimor 
8436193267SjkimNumBits parameter referred to a named object. (Valery Podrezov, BZ 5359)
8437167802Sjkim
8438193267SjkimFixed a problem where a DeRefOf operation on a buffer object incorrectly 
8439193267Sjkimfailed with an exception. This also fixes a couple of related RefOf and 
8440193267SjkimDeRefOf issues. (Valery Podrezov, BZ 5360/5392/5387)
8441167802Sjkim
8442241973SjkimFixed a problem where the AE_BUFFER_LIMIT exception was returned instead 
8443241973Sjkimof 
8444241973SjkimAE_STRING_LIMIT on an out-of-bounds Index() operation. (Valery Podrezov, 
8445241973SjkimBZ 
8446193267Sjkim5480)
8447167802Sjkim
8448253690SjkimImplemented a memory cleanup at the end of the execution of each 
8449253690Sjkimiteration 
8450241973Sjkimof an AML While() loop, preventing the accumulation of outstanding 
8451241973Sjkimobjects. 
8452193267Sjkim(Valery Podrezov, BZ 5427)
8453167802Sjkim
8454241973SjkimEliminated a chunk of duplicate code in the object resolution code. 
8455241973Sjkim(Valery 
8456193267SjkimPodrezov, BZ 5336)
8457167802Sjkim
8458167802SjkimFixed several warnings during the 64-bit code generation.
8459167802Sjkim
8460253690SjkimThe AcpiSrc source code conversion tool now inserts one line of 
8461253690Sjkimwhitespace 
8462241973Sjkimafter an if() statement that is followed immediately by a comment, 
8463241973Sjkimimproving 
8464193267Sjkimreadability of the Linux code.
8465167802Sjkim
8466193267SjkimCode and Data Size: The current and previous library sizes for the core 
8467193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8468253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8469253690SjkimThese 
8470241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8471241973Sjkimthe 
8472193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8473241973Sjkimand data size. Note that these values will vary depending on the 
8474241973Sjkimefficiency 
8475193267Sjkimof the compiler and the compiler options used during generation.
8476167802Sjkim
8477167802Sjkim  Previous Release:
8478167802Sjkim    Non-Debug Version:  81.0K Code, 17.9K Data,  98.9K Total
8479167802Sjkim    Debug Version:     161.3K Code, 65.7K Data, 227.0K Total
8480167802Sjkim  Current Release:
8481167802Sjkim    Non-Debug Version:  81.1K Code, 17.8K Data,  98.9K Total
8482167802Sjkim    Debug Version:     161.3K Code, 65.6K Data, 226.9K Total
8483167802Sjkim
8484167802Sjkim
8485167802Sjkim2) iASL Compiler/Disassembler:
8486167802Sjkim
8487241973SjkimFixed a problem with the disassembly of a BankField operator with a 
8488241973Sjkimcomplex 
8489193267Sjkimexpression for the BankValue parameter.
8490167802Sjkim
8491167802Sjkim----------------------------------------
8492167802Sjkim27 January 2006. Summary of changes for version 20060127:
8493167802Sjkim
8494167802Sjkim1) ACPI CA Core Subsystem:
8495167802Sjkim
8496253690SjkimImplemented support in the Resource Manager to allow unresolved 
8497253690Sjkimnamestring 
8498241973Sjkimreferences within resource package objects for the _PRT method. This 
8499241973Sjkimsupport 
8500193267Sjkimis in addition to the previously implemented unresolved reference support 
8501193267Sjkimwithin the AML parser. If the interpreter slack mode is enabled, these 
8502241973Sjkimunresolved references will be passed through to the caller as a NULL 
8503241973Sjkimpackage 
8504167802Sjkimentry.
8505167802Sjkim
8506193267SjkimImplemented and deployed new macros and functions for error and warning 
8507193267Sjkimmessages across the subsystem. These macros are simpler and generate less 
8508193267Sjkimcode than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, 
8509193267SjkimACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. The older 
8510193267Sjkimmacros remain defined to allow ACPI drivers time to migrate to the new 
8511193267Sjkimmacros.
8512167802Sjkim
8513253690SjkimImplemented the ACPI_CPU_FLAGS type to simplify host OS integration of 
8514253690Sjkimthe 
8515193267SjkimAcquire/Release Lock OSL interfaces.
8516167802Sjkim
8517193267SjkimFixed a problem where Alias ASL operators are sometimes not correctly 
8518193267Sjkimresolved, in both the interpreter and the iASL compiler.
8519167802Sjkim
8520241973SjkimFixed several problems with the implementation of the 
8521241973SjkimConcatenateResTemplate 
8522193267SjkimASL operator. As per the ACPI specification, zero length buffers are now 
8523193267Sjkimtreated as a single EndTag. One-length buffers always cause a fatal 
8524241973Sjkimexception. Non-zero length buffers that do not end with a full 2-byte 
8525241973SjkimEndTag 
8526167802Sjkimcause a fatal exception.
8527167802Sjkim
8528193267SjkimFixed a possible structure overwrite in the AcpiGetObjectInfo external 
8529193267Sjkiminterface. (With assistance from Thomas Renninger)
8530167802Sjkim
8531193267SjkimCode and Data Size: The current and previous library sizes for the core 
8532193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8533253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8534253690SjkimThese 
8535241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8536241973Sjkimthe 
8537193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8538241973Sjkimand data size. Note that these values will vary depending on the 
8539241973Sjkimefficiency 
8540193267Sjkimof the compiler and the compiler options used during generation.
8541167802Sjkim
8542167802Sjkim  Previous Release:
8543167802Sjkim    Non-Debug Version:  83.1K Code, 18.4K Data, 101.5K Total
8544167802Sjkim    Debug Version:     163.2K Code, 66.2K Data, 229.4K Total
8545167802Sjkim  Current Release:
8546167802Sjkim    Non-Debug Version:  81.0K Code, 17.9K Data,  98.9K Total
8547167802Sjkim    Debug Version:     161.3K Code, 65.7K Data, 227.0K Total
8548167802Sjkim
8549167802Sjkim
8550167802Sjkim2) iASL Compiler/Disassembler:
8551167802Sjkim
8552241973SjkimFixed an internal error that was generated for any forward references to 
8553241973SjkimASL 
8554193267SjkimAlias objects.
8555167802Sjkim
8556167802Sjkim----------------------------------------
8557167802Sjkim13 January 2006. Summary of changes for version 20060113:
8558167802Sjkim
8559167802Sjkim1) ACPI CA Core Subsystem:
8560167802Sjkim
8561193267SjkimAdded 2006 copyright to all module headers and signons. This affects 
8562193267Sjkimvirtually every file in the ACPICA core subsystem, iASL compiler, and the 
8563193267Sjkimutilities.
8564193267Sjkim 
8565253690SjkimEnhanced the ACPICA error reporting in order to simplify user migration 
8566253690Sjkimto 
8567193267Sjkimthe non-debug version of ACPICA. Replaced all instances of the 
8568253690SjkimACPI_DEBUG_PRINT macro invoked at the ACPI_DB_ERROR and ACPI_DB_WARN 
8569253690Sjkimdebug 
8570193267Sjkimlevels with the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros, 
8571241973Sjkimrespectively. This preserves all error and warning messages in the non-
8572241973Sjkimdebug 
8573193267Sjkimversion of the ACPICA code (this has been referred to as the "debug lite" 
8574193267Sjkimoption.) Over 200 cases were converted to create a total of over 380 
8575253690Sjkimerror/warning messages across the ACPICA code. This increases the code 
8576253690Sjkimand 
8577241973Sjkimdata size of the default non-debug version of the code somewhat (about 
8578241973Sjkim13K), 
8579193267Sjkimbut all error/warning reporting may be disabled if desired (and code 
8580193267Sjkimeliminated) by specifying the ACPI_NO_ERROR_MESSAGES compile-time 
8581241973Sjkimconfiguration option. The size of the debug version of ACPICA remains 
8582241973Sjkimabout 
8583193267Sjkimthe same.
8584167802Sjkim
8585193267SjkimFixed a memory leak within the AML Debugger "Set" command. One object was 
8586193267Sjkimnot properly deleted for every successful invocation of the command.
8587167802Sjkim
8588193267SjkimCode and Data Size: The current and previous library sizes for the core 
8589193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8590253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8591253690SjkimThese 
8592241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8593241973Sjkimthe 
8594193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8595241973Sjkimand data size. Note that these values will vary depending on the 
8596241973Sjkimefficiency 
8597193267Sjkimof the compiler and the compiler options used during generation.
8598167802Sjkim
8599167802Sjkim  Previous Release:
8600167802Sjkim    Non-Debug Version:  76.6K Code, 12.3K Data,  88.9K Total
8601167802Sjkim    Debug Version:     163.7K Code, 67.5K Data, 231.2K Total
8602167802Sjkim  Current Release:
8603167802Sjkim    Non-Debug Version:  83.1K Code, 18.4K Data, 101.5K Total
8604167802Sjkim    Debug Version:     163.2K Code, 66.2K Data, 229.4K Total
8605167802Sjkim
8606167802Sjkim
8607167802Sjkim2) iASL Compiler/Disassembler:
8608167802Sjkim
8609193267SjkimThe compiler now officially supports the ACPI 3.0a specification that was 
8610241973Sjkimreleased on December 30, 2005. (Specification is available at 
8611241973Sjkimwww.acpi.info)
8612167802Sjkim
8613167802Sjkim----------------------------------------
8614167802Sjkim16 December 2005. Summary of changes for version 20051216:
8615167802Sjkim
8616167802Sjkim1) ACPI CA Core Subsystem:
8617167802Sjkim
8618193267SjkimImplemented optional support to allow unresolved names within ASL Package 
8619193267Sjkimobjects. A null object is inserted in the package when a named reference 
8620193267Sjkimcannot be located in the current namespace. Enabled via the interpreter 
8621253690Sjkimslack flag, this should eliminate AE_NOT_FOUND exceptions seen on 
8622253690Sjkimmachines 
8623193267Sjkimthat contain such code.
8624167802Sjkim
8625241973SjkimImplemented an optimization to the initialization sequence that can 
8626241973Sjkimimprove 
8627241973Sjkimboot time. During ACPI device initialization, the _STA method is now run 
8628241973Sjkimif 
8629241973Sjkimand only if the _INI method exists. The _STA method is used to determine 
8630241973Sjkimif 
8631241973Sjkimthe device is present; An _INI can only be run if _STA returns present, 
8632241973Sjkimbut 
8633193267Sjkimit is a waste of time to run the _STA method if the _INI does not exist. 
8634167802Sjkim(Prototype and assistance from Dong Wei)
8635167802Sjkim
8636241973SjkimImplemented use of the C99 uintptr_t for the pointer casting macros if it 
8637241973Sjkimis 
8638253690Sjkimavailable in the current compiler. Otherwise, the default (void *) cast 
8639253690Sjkimis 
8640193267Sjkimused as before.
8641167802Sjkim
8642193267SjkimFixed some possible memory leaks found within the execution path of the 
8643193267SjkimBreak, Continue, If, and CreateField operators. (Valery Podrezov)
8644167802Sjkim
8645193267SjkimFixed a problem introduced in the 20051202 release where an exception is 
8646193267Sjkimgenerated during method execution if a control method attempts to declare 
8647193267Sjkimanother method.
8648167802Sjkim
8649193267SjkimMoved resource descriptor string constants that are used by both the AML 
8650193267Sjkimdisassembler and AML debugger to the common utilities directory so that 
8651193267Sjkimthese components are independent.
8652167802Sjkim
8653253690SjkimImplemented support in the AcpiExec utility (-e switch) to globally 
8654253690Sjkimignore 
8655193267Sjkimexceptions during control method execution (method is not aborted.)
8656167802Sjkim
8657193267SjkimAdded the rsinfo.c source file to the AcpiExec makefile for Linux/Unix 
8658193267Sjkimgeneration.
8659167802Sjkim
8660193267SjkimCode and Data Size: The current and previous library sizes for the core 
8661193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8662253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8663253690SjkimThese 
8664241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8665241973Sjkimthe 
8666193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8667241973Sjkimand data size. Note that these values will vary depending on the 
8668241973Sjkimefficiency 
8669193267Sjkimof the compiler and the compiler options used during generation.
8670167802Sjkim
8671167802Sjkim  Previous Release:
8672167802Sjkim    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
8673167802Sjkim    Debug Version:     163.2K Code, 67.4K Data, 230.6K Total
8674167802Sjkim  Current Release:
8675167802Sjkim    Non-Debug Version:  76.6K Code, 12.3K Data,  88.9K Total
8676167802Sjkim    Debug Version:     163.7K Code, 67.5K Data, 231.2K Total
8677167802Sjkim
8678167802Sjkim
8679167802Sjkim2) iASL Compiler/Disassembler:
8680167802Sjkim
8681241973SjkimFixed a problem where a CPU stack overflow fault could occur if a 
8682241973Sjkimrecursive 
8683193267Sjkimmethod call was made from within a Return statement.
8684167802Sjkim
8685167802Sjkim----------------------------------------
8686167802Sjkim02 December 2005. Summary of changes for version 20051202:
8687167802Sjkim
8688167802Sjkim1) ACPI CA Core Subsystem:
8689167802Sjkim
8690193267SjkimModified the parsing of control methods to no longer create namespace 
8691193267Sjkimobjects during the first pass of the parse. Objects are now created only 
8692253690Sjkimduring the execute phase, at the moment the namespace creation operator 
8693253690Sjkimis 
8694253690Sjkimencountered in the AML (Name, OperationRegion, CreateByteField, etc.) 
8695253690SjkimThis 
8696193267Sjkimshould eliminate ALREADY_EXISTS exceptions seen on some machines where 
8697241973Sjkimreentrant control methods are protected by an AML mutex. The mutex will 
8698241973Sjkimnow 
8699253690Sjkimcorrectly block multiple threads from attempting to create the same 
8700253690Sjkimobject 
8701193267Sjkimmore than once.
8702167802Sjkim
8703193267SjkimIncreased the number of available Owner Ids for namespace object tracking 
8704241973Sjkimfrom 32 to 255. This should eliminate the OWNER_ID_LIMIT exceptions seen 
8705241973Sjkimon 
8706241973Sjkimsome machines with a large number of ACPI tables (either static or 
8707241973Sjkimdynamic).
8708167802Sjkim
8709241973SjkimFixed a problem with the AcpiExec utility where a fault could occur when 
8710241973Sjkimthe 
8711193267Sjkim-b switch (batch mode) is used.
8712167802Sjkim
8713193267SjkimEnhanced the namespace dump routine to output the owner ID for each 
8714193267Sjkimnamespace object.
8715167802Sjkim
8716193267SjkimCode and Data Size: The current and previous library sizes for the core 
8717193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8718253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8719253690SjkimThese 
8720241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8721241973Sjkimthe 
8722193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8723241973Sjkimand data size. Note that these values will vary depending on the 
8724241973Sjkimefficiency 
8725193267Sjkimof the compiler and the compiler options used during generation.
8726167802Sjkim
8727167802Sjkim  Previous Release:
8728167802Sjkim    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
8729167802Sjkim    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
8730167802Sjkim  Current Release:
8731167802Sjkim    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
8732167802Sjkim    Debug Version:     163.2K Code, 67.4K Data, 230.6K Total
8733167802Sjkim
8734167802Sjkim
8735167802Sjkim2) iASL Compiler/Disassembler:
8736167802Sjkim
8737241973SjkimFixed a parse error during compilation of certain Switch/Case constructs. 
8738241973SjkimTo 
8739253690Sjkimsimplify the parse, the grammar now allows for multiple Default 
8740253690Sjkimstatements 
8741193267Sjkimand this error is now detected and flagged during the analysis phase.
8742167802Sjkim
8743193267SjkimDisassembler: The disassembly now includes the contents of the original 
8744193267Sjkimtable header within a comment at the start of the file. This includes the 
8745193267Sjkimname and version of the original ASL compiler.
8746167802Sjkim
8747167802Sjkim----------------------------------------
8748167802Sjkim17 November 2005. Summary of changes for version 20051117:
8749167802Sjkim
8750167802Sjkim1) ACPI CA Core Subsystem:
8751167802Sjkim
8752193267SjkimFixed a problem in the AML parser where the method thread count could be 
8753241973Sjkimdecremented below zero if any errors occurred during the method parse 
8754241973Sjkimphase. 
8755241973SjkimThis should eliminate AE_AML_METHOD_LIMIT exceptions seen on some 
8756241973Sjkimmachines. 
8757193267SjkimThis also fixed a related regression with the mechanism that detects and 
8758193267Sjkimcorrects methods that cannot properly handle reentrancy (related to the 
8759193267Sjkimdeployment of the new OwnerId mechanism.)
8760167802Sjkim
8761193267SjkimEliminated the pre-parsing of control methods (to detect errors) during 
8762241973Sjkimtable load. Related to the problem above, this was causing unwind issues 
8763241973Sjkimif 
8764241973Sjkimany errors occurred during the parse, and it seemed to be overkill. A 
8765241973Sjkimtable 
8766193267Sjkimload should not be aborted if there are problems with any single control 
8767193267Sjkimmethod, thus rendering this feature rather pointless.
8768167802Sjkim
8769241973SjkimFixed a problem with the new table-driven resource manager where an 
8770241973Sjkiminternal 
8771193267Sjkimbuffer overflow could occur for small resource templates.
8772167802Sjkim
8773241973SjkimImplemented a new external interface, AcpiGetVendorResource. This 
8774241973Sjkiminterface 
8775253690Sjkimwill find and return a vendor-defined resource descriptor within a _CRS 
8776253690Sjkimor 
8777241973Sjkim_PRS method via an ACPI 3.0 UUID match. With assistance from Bjorn 
8778241973SjkimHelgaas.
8779167802Sjkim
8780193267SjkimRemoved the length limit (200) on string objects as per the upcoming ACPI 
8781241973Sjkim3.0A specification. This affects the following areas of the interpreter: 
8782241973Sjkim1) 
8783253690Sjkimany implicit conversion of a Buffer to a String, 2) a String object 
8784253690Sjkimresult 
8785193267Sjkimof the ASL Concatentate operator, 3) the String object result of the ASL 
8786193267SjkimToString operator.
8787167802Sjkim
8788241973SjkimFixed a problem in the Windows OS interface layer (OSL) where a 
8789241973SjkimWAIT_FOREVER 
8790193267Sjkimon a semaphore object would incorrectly timeout. This allows the 
8791193267Sjkimmultithreading features of the AcpiExec utility to work properly under 
8792193267SjkimWindows.
8793167802Sjkim
8794193267SjkimUpdated the Linux makefiles for the iASL compiler and AcpiExec to include 
8795193267Sjkimthe recently added file named "utresrc.c".
8796167802Sjkim
8797193267SjkimCode and Data Size: The current and previous library sizes for the core 
8798193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8799253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8800253690SjkimThese 
8801241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8802241973Sjkimthe 
8803193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8804241973Sjkimand data size. Note that these values will vary depending on the 
8805241973Sjkimefficiency 
8806193267Sjkimof the compiler and the compiler options used during generation.
8807167802Sjkim
8808167802Sjkim  Previous Release:
8809167802Sjkim    Non-Debug Version:  76.2K Code, 12.3K Data,  88.5K Total
8810167802Sjkim    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
8811167802Sjkim  Current Release:
8812167802Sjkim    Non-Debug Version:  76.3K Code, 12.3K Data,  88.6K Total
8813167802Sjkim    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
8814167802Sjkim
8815167802Sjkim
8816167802Sjkim2) iASL Compiler/Disassembler:
8817167802Sjkim
8818193267SjkimRemoved the limit (200) on string objects as per the upcoming ACPI 3.0A 
8819241973Sjkimspecification. For the iASL compiler, this means that string literals 
8820241973Sjkimwithin 
8821193267Sjkimthe source ASL can be of any length. 
8822167802Sjkim
8823193267SjkimEnhanced the listing output to dump the AML code for resource descriptors 
8824241973Sjkimimmediately after the ASL code for each descriptor, instead of in a block 
8825241973Sjkimat 
8826193267Sjkimthe end of the entire resource template.
8827167802Sjkim
8828193267SjkimEnhanced the compiler debug output to dump the entire original parse tree 
8829241973Sjkimconstructed during the parse phase, before any transforms are applied to 
8830241973Sjkimthe 
8831193267Sjkimtree. The transformed tree is dumped also.
8832167802Sjkim
8833167802Sjkim----------------------------------------
8834167802Sjkim02 November 2005. Summary of changes for version 20051102:
8835167802Sjkim
8836167802Sjkim1) ACPI CA Core Subsystem:
8837167802Sjkim
8838253690SjkimModified the subsystem initialization sequence to improve GPE support. 
8839253690SjkimThe 
8840241973SjkimGPE initialization has been split into two parts in order to defer 
8841241973Sjkimexecution 
8842253690Sjkimof the _PRW methods (Power Resources for Wake) until after the hardware 
8843253690Sjkimis 
8844193267Sjkimfully initialized and the SCI handler is installed. This allows the _PRW 
8845241973Sjkimmethods to access fields protected by the Global Lock. This will fix 
8846241973Sjkimsystems 
8847193267Sjkimwhere a NO_GLOBAL_LOCK exception has been seen during initialization.
8848167802Sjkim
8849253690SjkimConverted the ACPI internal object disassemble and display code within 
8850253690Sjkimthe 
8851193267SjkimAML debugger to fully table-driven operation, reducing code size and 
8852193267Sjkimincreasing maintainability.
8853167802Sjkim
8854241973SjkimFixed a regression with the ConcatenateResTemplate() ASL operator 
8855241973Sjkimintroduced 
8856193267Sjkimin the 20051021 release.
8857167802Sjkim
8858193267SjkimImplemented support for "local" internal ACPI object types within the 
8859193267Sjkimdebugger "Object" command and the AcpiWalkNamespace external interfaces. 
8860241973SjkimThese local types include RegionFields, BankFields, IndexFields, Alias, 
8861241973Sjkimand 
8862193267Sjkimreference objects.
8863167802Sjkim
8864253690SjkimMoved common AML resource handling code into a new file, "utresrc.c". 
8865253690SjkimThis 
8866193267Sjkimcode is shared by both the Resource Manager and the AML Debugger.
8867167802Sjkim
8868193267SjkimCode and Data Size: The current and previous library sizes for the core 
8869193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8870253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8871253690SjkimThese 
8872241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8873241973Sjkimthe 
8874193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8875241973Sjkimand data size. Note that these values will vary depending on the 
8876241973Sjkimefficiency 
8877193267Sjkimof the compiler and the compiler options used during generation.
8878167802Sjkim
8879167802Sjkim  Previous Release:
8880167802Sjkim    Non-Debug Version:  76.1K Code, 12.2K Data,  88.3K Total
8881167802Sjkim    Debug Version:     163.5K Code, 67.0K Data, 230.5K Total
8882167802Sjkim  Current Release:
8883167802Sjkim    Non-Debug Version:  76.2K Code, 12.3K Data,  88.5K Total
8884167802Sjkim    Debug Version:     163.0K Code, 67.4K Data, 230.4K Total
8885167802Sjkim
8886167802Sjkim
8887167802Sjkim2) iASL Compiler/Disassembler:
8888167802Sjkim
8889241973SjkimFixed a problem with very large initializer lists (more than 4000 
8890241973Sjkimelements) 
8891193267Sjkimfor both Buffer and Package objects where the parse stack could overflow.
8892167802Sjkim
8893241973SjkimEnhanced the pre-compile source code scan for non-ASCII characters to 
8894241973Sjkimignore 
8895241973Sjkimcharacters within comment fields. The scan is now always performed and is 
8896241973Sjkimno 
8897193267Sjkimlonger optional, detecting invalid characters within a source file 
8898193267Sjkimimmediately rather than during the parse phase or later.
8899167802Sjkim
8900253690SjkimEnhanced the ASL grammar definition to force early reductions on all 
8901253690Sjkimlist-
8902193267Sjkimstyle grammar elements so that the overall parse stack usage is greatly 
8903241973Sjkimreduced. This should improve performance and reduce the possibility of 
8904241973Sjkimparse 
8905193267Sjkimstack overflow.
8906167802Sjkim
8907241973SjkimEliminated all reduce/reduce conflicts in the iASL parser generation. 
8908241973SjkimAlso, 
8909193267Sjkimwith the addition of a %expected statement, the compiler generates from 
8910193267Sjkimsource with no warnings.
8911167802Sjkim
8912193267SjkimFixed a possible segment fault in the disassembler if the input filename 
8913193267Sjkimdoes not contain a "dot" extension (Thomas Renninger).
8914167802Sjkim
8915167802Sjkim----------------------------------------
8916151937Sjkim21 October 2005. Summary of changes for version 20051021:
8917151937Sjkim
8918151937Sjkim1) ACPI CA Core Subsystem:
8919151937Sjkim
8920193267SjkimImplemented support for the EM64T and other x86-64 processors. This 
8921193267Sjkimessentially entails recognizing that these processors support non-aligned 
8922193267Sjkimmemory transfers. Previously, all 64-bit processors were assumed to lack 
8923193267Sjkimhardware support for non-aligned transfers.
8924151937Sjkim
8925193267SjkimCompleted conversion of the Resource Manager to nearly full table-driven 
8926193267Sjkimoperation. Specifically, the resource conversion code (convert AML to 
8927193267Sjkiminternal format and the reverse) and the debug code to dump internal 
8928241973Sjkimresource descriptors are fully table-driven, reducing code and data size 
8929241973Sjkimand 
8930193267Sjkimimproving maintainability.
8931151937Sjkim
8932253690SjkimThe OSL interfaces for Acquire and Release Lock now use a 64-bit flag 
8933253690Sjkimword 
8934253690Sjkimon 64-bit processors instead of a fixed 32-bit word. (With assistance 
8935253690Sjkimfrom 
8936193267SjkimAlexey Starikovskiy)
8937151937Sjkim
8938193267SjkimImplemented support within the resource conversion code for the Type-
8939193267SjkimSpecific byte within the various ACPI 3.0 *WordSpace macros.
8940151937Sjkim
8941241973SjkimFixed some issues within the resource conversion code for the type-
8942241973Sjkimspecific 
8943193267Sjkimflags for both Memory and I/O address resource descriptors. For Memory, 
8944193267Sjkimimplemented support for the MTP and TTP flags. For I/O, split the TRS and 
8945193267SjkimTTP flags into two separate fields.
8946151937Sjkim
8947193267SjkimCode and Data Size: The current and previous library sizes for the core 
8948193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
8949253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
8950253690SjkimThese 
8951241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
8952241973Sjkimthe 
8953193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
8954241973Sjkimand data size. Note that these values will vary depending on the 
8955241973Sjkimefficiency 
8956193267Sjkimof the compiler and the compiler options used during generation.
8957151937Sjkim
8958151937Sjkim  Previous Release:
8959151937Sjkim    Non-Debug Version:  77.1K Code, 12.1K Data,  89.2K Total
8960151937Sjkim    Debug Version:     168.0K Code, 68.3K Data, 236.3K Total
8961151937Sjkim  Current Release:
8962151937Sjkim    Non-Debug Version:  76.1K Code, 12.2K Data,  88.3K Total
8963151937Sjkim    Debug Version:     163.5K Code, 67.0K Data, 230.5K Total
8964151937Sjkim
8965151937Sjkim
8966167802Sjkim
8967151937Sjkim2) iASL Compiler/Disassembler:
8968151937Sjkim
8969253690SjkimRelaxed a compiler restriction that disallowed a ResourceIndex byte if 
8970253690Sjkimthe 
8971193267Sjkimcorresponding ResourceSource string was not also present in a resource 
8972193267Sjkimdescriptor declaration. This restriction caused problems with existing 
8973241973SjkimAML/ASL code that includes the Index byte without the string. When such 
8974241973SjkimAML 
8975193267Sjkimwas disassembled, it could not be compiled without modification. Further, 
8976241973Sjkimthe modified code created a resource template with a different size than 
8977241973Sjkimthe 
8978253690Sjkimoriginal, breaking code that used fixed offsets into the resource 
8979253690Sjkimtemplate 
8980193267Sjkimbuffer.
8981151937Sjkim
8982241973SjkimRemoved a recent feature of the disassembler to ignore a lone 
8983241973SjkimResourceIndex 
8984193267Sjkimbyte. This byte is now emitted if present so that the exact AML can be 
8985193267Sjkimreproduced when the disassembled code is recompiled.
8986151937Sjkim
8987193267SjkimImproved comments and text alignment for the resource descriptor code 
8988193267Sjkimemitted by the disassembler.
8989151937Sjkim
8990241973SjkimImplemented disassembler support for the ACPI 3.0 AccessSize field within 
8991241973Sjkima 
8992193267SjkimRegister() resource descriptor.
8993151937Sjkim
8994151937Sjkim----------------------------------------
8995151937Sjkim30 September 2005. Summary of changes for version 20050930:
8996151937Sjkim
8997151937Sjkim1) ACPI CA Core Subsystem:
8998151937Sjkim
8999193267SjkimCompleted a major overhaul of the Resource Manager code - specifically, 
9000241973Sjkimoptimizations in the area of the AML/internal resource conversion code. 
9001241973SjkimThe 
9002241973Sjkimcode has been optimized to simplify and eliminate duplicated code, CPU 
9003241973Sjkimstack 
9004193267Sjkimuse has been decreased by optimizing function parameters and local 
9005241973Sjkimvariables, and naming conventions across the manager have been 
9006241973Sjkimstandardized 
9007193267Sjkimfor clarity and ease of maintenance (this includes function, parameter, 
9008193267Sjkimvariable, and struct/typedef names.) The update may force changes in some 
9009193267Sjkimdriver code, depending on how resources are handled by the host OS.
9010151937Sjkim
9011193267SjkimAll Resource Manager dispatch and information tables have been moved to a 
9012193267Sjkimsingle location for clarity and ease of maintenance. One new file was 
9013193267Sjkimcreated, named "rsinfo.c".
9014151937Sjkim
9015193267SjkimThe ACPI return macros (return_ACPI_STATUS, etc.) have been modified to 
9016253690Sjkimguarantee that the argument is not evaluated twice, making them less 
9017253690Sjkimprone 
9018193267Sjkimto macro side-effects. However, since there exists the possibility of 
9019241973Sjkimadditional stack use if a particular compiler cannot optimize them (such 
9020241973Sjkimas 
9021241973Sjkimin the debug generation case), the original macros are optionally 
9022241973Sjkimavailable.  
9023193267SjkimNote that some invocations of the return_VALUE macro may now cause size 
9024241973Sjkimmismatch warnings; the return_UINT8 and return_UINT32 macros are provided 
9025241973Sjkimto 
9026193267Sjkimeliminate these. (From Randy Dunlap)
9027151937Sjkim
9028253690SjkimImplemented a new mechanism to enable debug tracing for individual 
9029253690Sjkimcontrol 
9030193267Sjkimmethods. A new external interface, AcpiDebugTrace, is provided to enable 
9031193267Sjkimthis mechanism. The intent is to allow the host OS to easily enable and 
9032193267Sjkimdisable tracing for problematic control methods. This interface can be 
9033193267Sjkimeasily exposed to a user or debugger interface if desired. See the file 
9034151937Sjkimpsxface.c for details.
9035151937Sjkim
9036193267SjkimAcpiUtCallocate will now return a valid pointer if a length of zero is 
9037193267Sjkimspecified - a length of one is used and a warning is issued. This matches 
9038193267Sjkimthe behavior of AcpiUtAllocate.
9039151937Sjkim
9040193267SjkimCode and Data Size: The current and previous library sizes for the core 
9041193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
9042253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
9043253690SjkimThese 
9044241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
9045241973Sjkimthe 
9046193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
9047241973Sjkimand data size. Note that these values will vary depending on the 
9048241973Sjkimefficiency 
9049193267Sjkimof the compiler and the compiler options used during generation.
9050151937Sjkim
9051151937Sjkim  Previous Release:
9052151937Sjkim    Non-Debug Version:  77.5K Code, 12.0K Data,  89.5K Total
9053151937Sjkim    Debug Version:     168.1K Code, 68.4K Data, 236.5K Total
9054151937Sjkim  Current Release:
9055151937Sjkim    Non-Debug Version:  77.1K Code, 12.1K Data,  89.2K Total
9056151937Sjkim    Debug Version:     168.0K Code, 68.3K Data, 236.3K Total
9057151937Sjkim
9058151937Sjkim
9059151937Sjkim2) iASL Compiler/Disassembler:
9060151937Sjkim
9061193267SjkimA remark is issued if the effective compile-time length of a package or 
9062193267Sjkimbuffer is zero. Previously, this was a warning.
9063151937Sjkim
9064151937Sjkim----------------------------------------
9065151937Sjkim16 September 2005. Summary of changes for version 20050916:
9066151937Sjkim
9067151937Sjkim1) ACPI CA Core Subsystem:
9068151937Sjkim
9069193267SjkimFixed a problem within the Resource Manager where support for the Generic 
9070241973SjkimRegister descriptor was not fully implemented. This descriptor is now 
9071241973Sjkimfully 
9072193267Sjkimrecognized, parsed, disassembled, and displayed.
9073151937Sjkim
9074193267SjkimCompletely restructured the Resource Manager code to utilize table-driven 
9075241973Sjkimdispatch and lookup, eliminating many of the large switch() statements. 
9076241973SjkimThis 
9077193267Sjkimreduces overall subsystem code size and code complexity. Affects the 
9078193267Sjkimresource parsing and construction, disassembly, and debug dump output.
9079151937Sjkim
9080193267SjkimCleaned up and restructured the debug dump output for all resource 
9081193267Sjkimdescriptors. Improved readability of the output and reduced code size.
9082151937Sjkim
9083193267SjkimFixed a problem where changes to internal data structures caused the 
9084193267Sjkimoptional ACPI_MUTEX_DEBUG code to fail compilation if specified.
9085151937Sjkim
9086193267SjkimCode and Data Size: The current and previous library sizes for the core 
9087193267Sjkimsubsystem are shown below. These are the code and data sizes for the 
9088253690Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. 
9089253690SjkimThese 
9090241973Sjkimvalues do not include any ACPI driver or OSPM code. The debug version of 
9091241973Sjkimthe 
9092193267Sjkimcode includes the debug output trace mechanism and has a much larger code 
9093241973Sjkimand data size. Note that these values will vary depending on the 
9094241973Sjkimefficiency 
9095193267Sjkimof the compiler and the compiler options used during generation.
9096151937Sjkim
9097151937Sjkim  Previous Release:
9098151937Sjkim    Non-Debug Version:  78.4K Code, 11.8K Data,  90.2K Total
9099151937Sjkim    Debug Version:     169.6K Code, 69.9K Data, 239.5K Total
9100151937Sjkim  Current Release:
9101151937Sjkim    Non-Debug Version:  77.5K Code, 12.0K Data,  89.5K Total
9102151937Sjkim    Debug Version:     168.1K Code, 68.4K Data, 236.5K Total
9103151937Sjkim
9104151937Sjkim
9105151937Sjkim2) iASL Compiler/Disassembler:
9106151937Sjkim
9107253690SjkimUpdated the disassembler to automatically insert an EndDependentFn() 
9108253690Sjkimmacro 
9109193267Sjkiminto the ASL stream if this macro is missing in the original AML code, 
9110193267Sjkimsimplifying compilation of the resulting ASL module.
9111151937Sjkim
9112193267SjkimFixed a problem in the disassembler where a disassembled ResourceSource 
9113241973Sjkimstring (within a large resource descriptor) was not surrounded by quotes 
9114241973Sjkimand 
9115193267Sjkimnot followed by a comma, causing errors when the resulting ASL module was 
9116193267Sjkimcompiled. Also, escape sequences within a ResourceSource string are now 
9117193267Sjkimhandled correctly (especially "\\")
9118151937Sjkim
9119151937Sjkim----------------------------------------
9120151937Sjkim02 September 2005. Summary of changes for version 20050902:
9121151937Sjkim
9122151937Sjkim1) ACPI CA Core Subsystem:
9123151937Sjkim
9124193267SjkimFixed a problem with the internal Owner ID allocation and deallocation 
9125193267Sjkimmechanisms for control method execution and recursive method invocation. 
9126193267SjkimThis should eliminate the OWNER_ID_LIMIT exceptions and "Invalid OwnerId" 
9127193267Sjkimmessages seen on some systems. Recursive method invocation depth is 
9128193267Sjkimcurrently limited to 255. (Alexey Starikovskiy)
9129151937Sjkim
9130193267SjkimCompletely eliminated all vestiges of support for the "module-level 
9131241973Sjkimexecutable code" until this support is fully implemented and debugged. 
9132241973SjkimThis 
9133193267Sjkimshould eliminate the NO_RETURN_VALUE exceptions seen during table load on 
9134193267Sjkimsome systems that invoke this support.
9135151937Sjkim
9136241973SjkimFixed a problem within the resource manager code where the transaction 
9137241973Sjkimflags 
9138193267Sjkimfor a 64-bit address descriptor were handled incorrectly in the type-
9139193267Sjkimspecific flag byte.
9140151937Sjkim
9141253690SjkimConsolidated duplicate code within the address descriptor resource 
9142253690Sjkimmanager 
9143193267Sjkimcode, reducing overall subsystem code size.
9144151937Sjkim
9145193267SjkimFixed a fault when using the AML debugger "disassemble" command to 
9146193267Sjkimdisassemble individual control methods.
9147151937Sjkim
9148193267SjkimRemoved references to the "release_current" directory within the Unix 
9149193267Sjkimrelease package.
9150151937Sjkim
9151193267SjkimCode and Data Size: The current and previous core subsystem library sizes 
9152193267Sjkimare shown below. These are the code and data sizes for the acpica.lib 
9153193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler. These values do not 
9154241973Sjkiminclude any ACPI driver or OSPM code. The debug version of the code 
9155241973Sjkimincludes 
9156253690Sjkimthe debug output trace mechanism and has a much larger code and data 
9157253690Sjkimsize. 
9158241973SjkimNote that these values will vary depending on the efficiency of the 
9159241973Sjkimcompiler 
9160193267Sjkimand the compiler options used during generation.
9161151937Sjkim
9162151937Sjkim  Previous Release:
9163151937Sjkim    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
9164151937Sjkim    Debug Version:     170.0K Code, 69.9K Data, 239.9K Total
9165151937Sjkim  Current Release:
9166151937Sjkim    Non-Debug Version:  78.4K Code, 11.8K Data,  90.2K Total
9167151937Sjkim    Debug Version:     169.6K Code, 69.9K Data, 239.5K Total
9168151937Sjkim
9169151937Sjkim
9170151937Sjkim2) iASL Compiler/Disassembler:
9171151937Sjkim
9172241973SjkimImplemented an error check for illegal duplicate values in the interrupt 
9173241973Sjkimand 
9174193267Sjkimdma lists for the following ASL macros: Dma(), Irq(), IrqNoFlags(), and 
9175193267SjkimInterrupt().
9176151937Sjkim
9177253690SjkimImplemented error checking for the Irq() and IrqNoFlags() macros to 
9178253690Sjkimdetect 
9179193267Sjkimtoo many values in the interrupt list (16 max) and invalid values in the 
9180193267Sjkimlist (range 0 - 15)
9181151937Sjkim
9182193267SjkimThe maximum length string literal within an ASL file is now restricted to 
9183193267Sjkim200 characters as per the ACPI specification.
9184151937Sjkim
9185193267SjkimFixed a fault when using the -ln option (generate namespace listing).
9186151937Sjkim
9187193267SjkimImplemented an error check to determine if a DescriptorName within a 
9188193267Sjkimresource descriptor has already been used within the current scope.
9189151937Sjkim
9190151937Sjkim----------------------------------------
9191151937Sjkim15 August 2005.  Summary of changes for version 20050815:
9192193267Sjkim 
9193151937Sjkim1) ACPI CA Core Subsystem:
9194193267Sjkim 
9195241973SjkimImplemented a full bytewise compare to determine if a table load request 
9196241973Sjkimis 
9197241973Sjkimattempting to load a duplicate table. The compare is performed if the 
9198241973Sjkimtable 
9199193267Sjkimsignatures and table lengths match. This will allow different tables with 
9200241973Sjkimthe same OEM Table ID and revision to be loaded - probably against the 
9201241973SjkimACPI 
9202193267Sjkimspecification, but discovered in the field nonetheless.
9203193267Sjkim 
9204193267SjkimAdded the changes.txt logfile to each of the zipped release packages.
9205193267Sjkim 
9206193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9207253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9208253690Sjkimproduced 
9209193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9210193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9211241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9212241973SjkimNote 
9213241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9214241973Sjkimand 
9215193267Sjkimthe compiler options used during generation.
9216193267Sjkim 
9217151937Sjkim  Previous Release:
9218151937Sjkim    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
9219151937Sjkim    Debug Version:     167.0K Code, 69.9K Data, 236.9K Total
9220151937Sjkim  Current Release:
9221151937Sjkim    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
9222151937Sjkim    Debug Version:     170.0K Code, 69.9K Data, 239.9K Total
9223193267Sjkim 
9224193267Sjkim 
9225151937Sjkim2) iASL Compiler/Disassembler:
9226193267Sjkim 
9227193267SjkimFixed a problem where incorrect AML code could be generated for Package 
9228193267Sjkimobjects if optimization is disabled (via the -oa switch).
9229193267Sjkim 
9230193267SjkimFixed a problem with where incorrect AML code is generated for variable-
9231253690Sjkimlength packages when the package length is not specified and the number 
9232253690Sjkimof 
9233193267Sjkiminitializer values is greater than 255.
9234193267Sjkim 
9235151937Sjkim
9236151937Sjkim----------------------------------------
9237151937Sjkim29 July 2005.  Summary of changes for version 20050729:
9238151937Sjkim
9239151937Sjkim1) ACPI CA Core Subsystem:
9240151937Sjkim
9241253690SjkimImplemented support to ignore an attempt to install/load a particular 
9242253690SjkimACPI 
9243193267Sjkimtable more than once. Apparently there exists BIOS code that repeatedly 
9244193267Sjkimattempts to load the same SSDT upon certain events. With assistance from 
9245193267SjkimVenkatesh Pallipadi.
9246151937Sjkim
9247193267SjkimRestructured the main interface to the AML parser in order to correctly 
9248241973Sjkimhandle all exceptional conditions. This will prevent leakage of the 
9249241973SjkimOwnerId 
9250241973Sjkimresource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on 
9251241973Sjkimsome 
9252193267Sjkimmachines. With assistance from Alexey Starikovskiy.
9253151937Sjkim
9254253690SjkimSupport for "module level code" has been disabled in this version due to 
9255253690Sjkima 
9256241973Sjkimnumber of issues that have appeared on various machines. The support can 
9257241973Sjkimbe 
9258193267Sjkimenabled by defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem 
9259241973Sjkimcompilation. When the issues are fully resolved, the code will be enabled 
9260241973Sjkimby 
9261151937Sjkimdefault again.
9262151937Sjkim
9263193267SjkimModified the internal functions for debug print support to define the 
9264253690SjkimFunctionName parameter as a (const char *) for compatibility with 
9265253690Sjkimcompiler 
9266193267Sjkimbuilt-in macros such as __FUNCTION__, etc.
9267151937Sjkim
9268151937SjkimLinted the entire ACPICA source tree for both 32-bit and 64-bit.
9269151937Sjkim
9270241973SjkimImplemented support to display an object count summary for the AML 
9271241973SjkimDebugger 
9272193267Sjkimcommands Object and Methods.
9273151937Sjkim
9274193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9275253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9276253690Sjkimproduced 
9277193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9278193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9279241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9280241973SjkimNote 
9281241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9282241973Sjkimand 
9283193267Sjkimthe compiler options used during generation.
9284151937Sjkim
9285151937Sjkim  Previous Release:
9286151937Sjkim    Non-Debug Version:  78.6K Code, 11.6K Data,  90.2K Total
9287151937Sjkim    Debug Version:     170.0K Code, 69.7K Data, 239.7K Total
9288151937Sjkim  Current Release:
9289151937Sjkim    Non-Debug Version:  78.6K Code, 11.7K Data,  90.3K Total
9290151937Sjkim    Debug Version:     167.0K Code, 69.9K Data, 236.9K Total
9291151937Sjkim
9292151937Sjkim
9293151937Sjkim2) iASL Compiler/Disassembler:
9294151937Sjkim
9295193267SjkimFixed a regression that appeared in the 20050708 version of the compiler 
9296241973Sjkimwhere an error message was inadvertently emitted for invocations of the 
9297241973Sjkim_OSI 
9298193267Sjkimreserved control method.
9299151937Sjkim
9300151937Sjkim----------------------------------------
9301151937Sjkim08 July 2005.  Summary of changes for version 20050708:
9302151937Sjkim
9303151937Sjkim1) ACPI CA Core Subsystem:
9304151937Sjkim
9305193267SjkimThe use of the CPU stack in the debug version of the subsystem has been 
9306193267Sjkimconsiderably reduced. Previously, a debug structure was declared in every 
9307193267Sjkimfunction that used the debug macros. This structure has been removed in 
9308193267Sjkimfavor of declaring the individual elements as parameters to the debug 
9309241973Sjkimfunctions. This reduces the cumulative stack use during nested execution 
9310241973Sjkimof 
9311241973SjkimACPI function calls at the cost of a small increase in the code size of 
9312241973Sjkimthe 
9313241973Sjkimdebug version of the subsystem. With assistance from Alexey Starikovskiy 
9314241973Sjkimand 
9315193267SjkimLen Brown.
9316151937Sjkim
9317193267SjkimAdded the ACPI_GET_FUNCTION_NAME macro to enable the compiler-dependent 
9318193267Sjkimheaders to define a macro that will return the current function name at 
9319241973Sjkimruntime (such as __FUNCTION__ or _func_, etc.) The function name is used 
9320241973Sjkimby 
9321193267Sjkimthe debug trace output. If ACPI_GET_FUNCTION_NAME is not defined in the 
9322241973Sjkimcompiler-dependent header, the function name is saved on the CPU stack 
9323241973Sjkim(one 
9324193267Sjkimpointer per function.) This mechanism is used because apparently there 
9325241973Sjkimexists no standard ANSI-C defined macro that that returns the function 
9326241973Sjkimname.
9327151937Sjkim
9328193267SjkimRedesigned and reimplemented the "Owner ID" mechanism used to track 
9329193267Sjkimnamespace objects created/deleted by ACPI tables and control method 
9330253690Sjkimexecution. A bitmap is now used to allocate and free the IDs, thus 
9331253690Sjkimsolving 
9332253690Sjkimthe wraparound problem present in the previous implementation. The size 
9333253690Sjkimof 
9334193267Sjkimthe namespace node descriptor was reduced by 2 bytes as a result (Alexey 
9335151937SjkimStarikovskiy).
9336151937Sjkim
9337241973SjkimRemoved the UINT32_BIT and UINT16_BIT types that were used for the 
9338241973Sjkimbitfield 
9339193267Sjkimflag definitions within the headers for the predefined ACPI tables. These 
9340241973Sjkimhave been replaced by UINT8_BIT in order to increase the code portability 
9341241973Sjkimof 
9342193267Sjkimthe subsystem. If the use of UINT8 remains a problem, we may be forced to 
9343193267Sjkimeliminate bitfields entirely because of a lack of portability.
9344151937Sjkim
9345241973SjkimEnhanced the performance of the AcpiUtUpdateObjectReference procedure. 
9346241973SjkimThis 
9347241973Sjkimis a frequently used function and this improvement increases the 
9348241973Sjkimperformance 
9349193267Sjkimof the entire subsystem (Alexey Starikovskiy).
9350151937Sjkim
9351193267SjkimFixed several possible memory leaks and the inverse - premature object 
9352193267Sjkimdeletion (Alexey Starikovskiy).
9353151937Sjkim
9354193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9355253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9356253690Sjkimproduced 
9357193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9358193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9359241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9360241973SjkimNote 
9361241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9362241973Sjkimand 
9363193267Sjkimthe compiler options used during generation.
9364151937Sjkim
9365151937Sjkim  Previous Release:
9366151937Sjkim    Non-Debug Version:  78.6K Code, 11.5K Data,  90.1K Total
9367151937Sjkim    Debug Version:     165.2K Code, 69.6K Data, 234.8K Total
9368151937Sjkim  Current Release:
9369151937Sjkim    Non-Debug Version:  78.6K Code, 11.6K Data,  90.2K Total
9370151937Sjkim    Debug Version:     170.0K Code, 69.7K Data, 239.7K Total
9371151937Sjkim
9372151937Sjkim----------------------------------------
9373151937Sjkim24 June 2005.  Summary of changes for version 20050624:
9374151937Sjkim
9375151937Sjkim1) ACPI CA Core Subsystem:
9376151937Sjkim
9377193267SjkimModified the new OSL cache interfaces to use ACPI_CACHE_T as the type for 
9378241973Sjkimthe host-defined cache object. This allows the OSL implementation to 
9379241973Sjkimdefine 
9380193267Sjkimand type this object in any manner desired, simplifying the OSL 
9381193267Sjkimimplementation. For example, ACPI_CACHE_T is defined as kmem_cache_t for 
9382193267SjkimLinux, and should be defined in the OS-specific header file for other 
9383193267Sjkimoperating systems as required.
9384151937Sjkim
9385193267SjkimChanged the interface to AcpiOsAcquireObject to directly return the 
9386193267Sjkimrequested object as the function return (instead of ACPI_STATUS.) This 
9387193267Sjkimchange was made for performance reasons, since this is the purpose of the 
9388193267Sjkiminterface in the first place. AcpiOsAcquireObject is now similar to the 
9389193267SjkimAcpiOsAllocate interface.
9390151937Sjkim
9391241973SjkimImplemented a new AML debugger command named Businfo. This command 
9392241973Sjkimdisplays 
9393241973Sjkiminformation about all devices that have an associate _PRT object. The 
9394241973Sjkim_ADR, 
9395193267Sjkim_HID, _UID, and _CID are displayed for these devices.
9396151937Sjkim
9397241973SjkimModified the initialization sequence in AcpiInitializeSubsystem to call 
9398241973Sjkimthe 
9399241973SjkimOSL interface AcpiOslInitialize first, before any local initialization. 
9400241973SjkimThis 
9401193267Sjkimchange was required because the global initialization now calls OSL 
9402193267Sjkiminterfaces.
9403151937Sjkim
9404241973SjkimEnhanced the Dump command to display the entire contents of Package 
9405241973Sjkimobjects 
9406193267Sjkim(including all sub-objects and their values.) 
9407151937Sjkim
9408193267SjkimRestructured the code base to split some files because of size and/or 
9409241973Sjkimbecause the code logically belonged in a separate file. New files are 
9410241973Sjkimlisted 
9411241973Sjkimbelow. All makefiles and project files included in the ACPI CA release 
9412241973Sjkimhave 
9413193267Sjkimbeen updated.
9414151937Sjkim    utilities/utcache.c           /* Local cache interfaces */
9415151937Sjkim    utilities/utmutex.c           /* Local mutex support */
9416151937Sjkim    utilities/utstate.c           /* State object support */
9417151937Sjkim    interpreter/parser/psloop.c   /* Main AML parse loop */
9418151937Sjkim
9419193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9420253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9421253690Sjkimproduced 
9422193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9423193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9424241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9425241973SjkimNote 
9426241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9427241973Sjkimand 
9428193267Sjkimthe compiler options used during generation.
9429151937Sjkim
9430151937Sjkim  Previous Release:
9431151937Sjkim    Non-Debug Version:  78.3K Code, 11.6K Data,  89.9K Total
9432151937Sjkim    Debug Version:     164.0K Code, 69.1K Data, 233.1K Total
9433151937Sjkim  Current Release:
9434151937Sjkim    Non-Debug Version:  78.6K Code, 11.5K Data,  90.1K Total
9435151937Sjkim    Debug Version:     165.2K Code, 69.6K Data, 234.8K Total
9436151937Sjkim
9437151937Sjkim
9438151937Sjkim2) iASL Compiler/Disassembler:
9439151937Sjkim
9440241973SjkimFixed a regression introduced in version 20050513 where the use of a 
9441241973SjkimPackage 
9442193267Sjkimobject within a Case() statement caused a compile time exception. The 
9443193267Sjkimoriginal behavior has been restored (a Match() operator is emitted.)
9444151937Sjkim
9445151937Sjkim----------------------------------------
9446151937Sjkim17 June 2005.  Summary of changes for version 20050617:
9447151937Sjkim
9448151937Sjkim1) ACPI CA Core Subsystem:
9449151937Sjkim
9450241973SjkimMoved the object cache operations into the OS interface layer (OSL) to 
9451241973Sjkimallow 
9452193267Sjkimthe host OS to handle these operations if desired (for example, the Linux 
9453253690SjkimOSL will invoke the slab allocator). This support is optional; the 
9454253690Sjkimcompile 
9455253690Sjkimtime define ACPI_USE_LOCAL_CACHE may be used to utilize the original 
9456253690Sjkimcache 
9457193267Sjkimcode in the ACPI CA core. The new OSL interfaces are shown below. See 
9458193267Sjkimutalloc.c for an example implementation, and acpiosxf.h for the exact 
9459193267Sjkiminterface definitions. With assistance from Alexey Starikovskiy.
9460151937Sjkim    AcpiOsCreateCache
9461151937Sjkim    AcpiOsDeleteCache
9462151937Sjkim    AcpiOsPurgeCache
9463151937Sjkim    AcpiOsAcquireObject
9464151937Sjkim    AcpiOsReleaseObject
9465151937Sjkim
9466241973SjkimModified the interfaces to AcpiOsAcquireLock and AcpiOsReleaseLock to 
9467241973Sjkimreturn 
9468193267Sjkimand restore a flags parameter. This fits better with many OS lock models. 
9469193267SjkimNote: the current execution state (interrupt handler or not) is no longer 
9470241973Sjkimpassed to these interfaces. If necessary, the OSL must determine this 
9471241973Sjkimstate 
9472193267Sjkimby itself, a simple and fast operation. With assistance from Alexey 
9473151937SjkimStarikovskiy.
9474151937Sjkim
9475193267SjkimFixed a problem in the ACPI table handling where a valid XSDT was assumed 
9476241973Sjkimpresent if the revision of the RSDP was 2 or greater. According to the 
9477241973SjkimACPI 
9478193267Sjkimspecification, the XSDT is optional in all cases, and the table manager 
9479193267Sjkimtherefore now checks for both an RSDP >=2 and a valid XSDT pointer. 
9480253690SjkimOtherwise, the RSDT pointer is used. Some ACPI 2.0 compliant BIOSs 
9481253690Sjkimcontain 
9482193267Sjkimonly the RSDT.
9483151937Sjkim
9484241973SjkimFixed an interpreter problem with the Mid() operator in the case of an 
9485241973Sjkiminput 
9486241973Sjkimstring where the resulting output string is of zero length. It now 
9487241973Sjkimcorrectly 
9488193267Sjkimreturns a valid, null terminated string object instead of a string object 
9489193267Sjkimwith a null pointer.
9490151937Sjkim
9491253690SjkimFixed a problem with the control method argument handling to allow a 
9492253690Sjkimstore 
9493241973Sjkimto an Arg object that already contains an object of type Device. The 
9494241973SjkimDevice 
9495193267Sjkimobject is now correctly overwritten. Previously, an error was returned.
9496151937Sjkim
9497167802Sjkim
9498241973SjkimEnhanced the debugger Find command to emit object values in addition to 
9499241973Sjkimthe 
9500241973Sjkimfound object pathnames. The output format is the same as the dump 
9501241973Sjkimnamespace 
9502193267Sjkimcommand.
9503151937Sjkim
9504253690SjkimEnhanced the debugger Set command. It now has the ability to set the 
9505253690Sjkimvalue 
9506241973Sjkimof any Named integer object in the namespace (Previously, only method 
9507241973Sjkimlocals 
9508193267Sjkimand args could be set.)
9509151937Sjkim
9510193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9511253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9512253690Sjkimproduced 
9513193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9514193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9515241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9516241973SjkimNote 
9517241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9518241973Sjkimand 
9519193267Sjkimthe compiler options used during generation.
9520151937Sjkim
9521151937Sjkim  Previous Release:
9522151937Sjkim    Non-Debug Version:  78.1K Code, 11.6K Data,  89.7K Total
9523151937Sjkim    Debug Version:     164.0K Code, 69.3K Data, 233.3K Total
9524151937Sjkim  Current Release:
9525151937Sjkim    Non-Debug Version:  78.3K Code, 11.6K Data,  89.9K Total
9526151937Sjkim    Debug Version:     164.0K Code, 69.1K Data, 233.1K Total
9527151937Sjkim
9528151937Sjkim
9529151937Sjkim2) iASL Compiler/Disassembler:
9530151937Sjkim
9531253690SjkimFixed a regression in the disassembler where if/else/while constructs 
9532253690Sjkimwere 
9533193267Sjkimoutput incorrectly. This problem was introduced in the previous release 
9534193267Sjkim(20050526). This problem also affected the single-step disassembly in the 
9535193267Sjkimdebugger.
9536151937Sjkim
9537241973SjkimFixed a problem where compiling the reserved _OSI method would randomly 
9538241973Sjkim(but 
9539193267Sjkimrarely) produce compile errors.
9540151937Sjkim
9541253690SjkimEnhanced the disassembler to emit compilable code in the face of 
9542253690Sjkimincorrect 
9543193267SjkimAML resource descriptors. If the optional ResourceSourceIndex is present, 
9544193267Sjkimbut the ResourceSource is not, do not emit the ResourceSourceIndex in the 
9545193267Sjkimdisassembly. Otherwise, the resulting code cannot be compiled without 
9546193267Sjkimerrors.
9547151937Sjkim
9548151937Sjkim----------------------------------------
9549151937Sjkim26 May 2005.  Summary of changes for version 20050526:
9550151937Sjkim
9551151937Sjkim1) ACPI CA Core Subsystem:
9552151937Sjkim
9553193267SjkimImplemented support to execute Type 1 and Type 2 AML opcodes appearing at 
9554253690Sjkimthe module level (not within a control method.) These opcodes are 
9555253690Sjkimexecuted 
9556241973Sjkimexactly once at the time the table is loaded. This type of code was legal 
9557241973Sjkimup 
9558241973Sjkimuntil the release of ACPI 2.0B (2002) and is now supported within ACPI CA 
9559241973Sjkimin 
9560241973Sjkimorder to provide backwards compatibility with earlier BIOS 
9561241973Sjkimimplementations. 
9562193267SjkimThis eliminates the "Encountered executable code at module level" warning 
9563193267Sjkimthat was previously generated upon detection of such code.
9564151937Sjkim
9565193267SjkimFixed a problem in the interpreter where an AE_NOT_FOUND exception could 
9566193267Sjkiminadvertently be generated during the lookup of namespace objects in the 
9567253690Sjkimsecond pass parse of ACPI tables and control methods. It appears that 
9568253690Sjkimthis 
9569241973Sjkimproblem could occur during the resolution of forward references to 
9570241973Sjkimnamespace 
9571193267Sjkimobjects.
9572151937Sjkim
9573193267SjkimAdded the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex function, 
9574193267Sjkimcorresponding to the same #ifdef in the AcpiUtAcquireMutex function. This 
9575193267Sjkimallows the deadlock detection debug code to be compiled out in the normal 
9576193267Sjkimcase, improving mutex performance (and overall subsystem performance) 
9577193267Sjkimconsiderably.
9578151937Sjkim
9579193267SjkimImplemented a handful of miscellaneous fixes for possible memory leaks on 
9580193267Sjkimerror conditions and error handling control paths. These fixes were 
9581193267Sjkimsuggested by FreeBSD and the Coverity Prevent source code analysis tool.
9582151937Sjkim
9583253690SjkimAdded a check for a null RSDT pointer in AcpiGetFirmwareTable 
9584253690Sjkim(tbxfroot.c) 
9585193267Sjkimto prevent a fault in this error case.
9586151937Sjkim
9587193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9588253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9589253690Sjkimproduced 
9590193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9591193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9592241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9593241973SjkimNote 
9594241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9595241973Sjkimand 
9596193267Sjkimthe compiler options used during generation.
9597151937Sjkim
9598151937Sjkim  Previous Release:
9599151937Sjkim    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
9600151937Sjkim    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
9601151937Sjkim  Current Release:
9602151937Sjkim    Non-Debug Version:  78.1K Code, 11.6K Data,  89.7K Total
9603151937Sjkim    Debug Version:     164.0K Code, 69.3K Data, 233.3K Total
9604151937Sjkim
9605151937Sjkim
9606151937Sjkim2) iASL Compiler/Disassembler:
9607151937Sjkim
9608193267SjkimImplemented support to allow Type 1 and Type 2 ASL operators to appear at 
9609193267Sjkimthe module level (not within a control method.) These operators will be 
9610253690Sjkimexecuted once at the time the table is loaded. This type of code was 
9611253690Sjkimlegal 
9612193267Sjkimup until the release of ACPI 2.0B (2002) and is now supported by the iASL 
9613253690Sjkimcompiler in order to provide backwards compatibility with earlier BIOS 
9614253690SjkimASL 
9615193267Sjkimcode.
9616151937Sjkim
9617193267SjkimThe ACPI integer width (specified via the table revision ID or the -r 
9618241973Sjkimoverride, 32 or 64 bits) is now used internally during compile-time 
9619241973Sjkimconstant 
9620193267Sjkimfolding to ensure that constants are truncated to 32 bits if necessary. 
9621241973SjkimPreviously, the revision ID value was only emitted in the AML table 
9622241973Sjkimheader.
9623151937Sjkim
9624241973SjkimAn error message is now generated for the Mutex and Method operators if 
9625241973Sjkimthe 
9626193267SjkimSyncLevel parameter is outside the legal range of 0 through 15.
9627151937Sjkim
9628241973SjkimFixed a problem with the Method operator ParameterTypes list handling 
9629241973Sjkim(ACPI 
9630241973Sjkim3.0). Previously, more than 2 types or 2 arguments generated a syntax 
9631241973Sjkimerror.  
9632193267SjkimThe actual underlying implementation of method argument typechecking is 
9633193267Sjkimstill under development, however.
9634151937Sjkim
9635151937Sjkim----------------------------------------
9636151937Sjkim13 May 2005.  Summary of changes for version 20050513:
9637151937Sjkim
9638151937Sjkim1) ACPI CA Core Subsystem:
9639151937Sjkim
9640241973SjkimImplemented support for PCI Express root bridges -- added support for 
9641241973Sjkimdevice 
9642193267SjkimPNP0A08 in the root bridge search within AcpiEvPciConfigRegionSetup.
9643151937Sjkim
9644241973SjkimThe interpreter now automatically truncates incoming 64-bit constants to 
9645241973Sjkim32 
9646241973Sjkimbits if currently executing out of a 32-bit ACPI table (Revision < 2). 
9647241973SjkimThis 
9648193267Sjkimalso affects the iASL compiler constant folding. (Note: as per below, the 
9649193267SjkimiASL compiler no longer allows 64-bit constants within 32-bit tables.)
9650151937Sjkim
9651193267SjkimFixed a problem where string and buffer objects with "static" pointers 
9652193267Sjkim(pointers to initialization data within an ACPI table) were not handled 
9653241973Sjkimconsistently. The internal object copy operation now always copies the 
9654241973Sjkimdata 
9655193267Sjkimto a newly allocated buffer, regardless of whether the source object is 
9656193267Sjkimstatic or not.
9657151937Sjkim
9658193267SjkimFixed a problem with the FromBCD operator where an implicit result 
9659253690Sjkimconversion was improperly performed while storing the result to the 
9660253690Sjkimtarget 
9661193267Sjkimoperand. Since this is an "explicit conversion" operator, the implicit 
9662193267Sjkimconversion should never be performed on the output.
9663151937Sjkim
9664193267SjkimFixed a problem with the CopyObject operator where a copy to an existing 
9665241973Sjkimnamed object did not always completely overwrite the existing object 
9666241973Sjkimstored 
9667253690Sjkimat name. Specifically, a buffer-to-buffer copy did not delete the 
9668253690Sjkimexisting 
9669193267Sjkimbuffer.
9670151937Sjkim
9671253690SjkimReplaced "InterruptLevel" with "InterruptNumber" in all GPE interfaces 
9672253690Sjkimand 
9673193267Sjkimstructs for consistency.
9674151937Sjkim
9675193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9676253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9677253690Sjkimproduced 
9678193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9679193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9680241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9681241973SjkimNote 
9682241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9683241973Sjkimand 
9684193267Sjkimthe compiler options used during generation.
9685151937Sjkim
9686151937Sjkim  Previous Release:
9687151937Sjkim    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
9688151937Sjkim    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
9689151937Sjkim  Current Release: (Same sizes)
9690151937Sjkim    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
9691151937Sjkim    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
9692151937Sjkim
9693151937Sjkim
9694151937Sjkim2) iASL Compiler/Disassembler:
9695151937Sjkim
9696241973SjkimThe compiler now emits a warning if an attempt is made to generate a 64-
9697241973Sjkimbit 
9698241973Sjkiminteger constant from within a 32-bit ACPI table (Revision < 2). The 
9699241973Sjkiminteger 
9700193267Sjkimis truncated to 32 bits.
9701151937Sjkim
9702193267SjkimFixed a problem with large package objects: if the static length of the 
9703193267Sjkimpackage is greater than 255, the "variable length package" opcode is 
9704193267Sjkimemitted. Previously, this caused an error. This requires an update to the 
9705241973SjkimACPI spec, since it currently (incorrectly) states that packages larger 
9706241973Sjkimthan 
9707193267Sjkim255 elements are not allowed.
9708151937Sjkim
9709241973SjkimThe disassembler now correctly handles variable length packages and 
9710241973Sjkimpackages 
9711193267Sjkimlarger than 255 elements.
9712151937Sjkim
9713151937Sjkim----------------------------------------
9714151937Sjkim08 April 2005.  Summary of changes for version 20050408:
9715151937Sjkim
9716151937Sjkim1) ACPI CA Core Subsystem:
9717151937Sjkim
9718193267SjkimFixed three cases in the interpreter where an "index" argument to an ASL 
9719193267Sjkimfunction was still (internally) 32 bits instead of the required 64 bits. 
9720193267SjkimThis was the Index argument to the Index, Mid, and Match operators.
9721151937Sjkim
9722241973SjkimThe "strupr" function is now permanently local (AcpiUtStrupr), since this 
9723241973Sjkimis 
9724193267Sjkimnot a POSIX-defined function and not present in most kernel-level C 
9725241973Sjkimlibraries. All references to the C library strupr function have been 
9726241973Sjkimremoved 
9727193267Sjkimfrom the headers.
9728151937Sjkim
9729241973SjkimCompleted the deployment of static functions/prototypes. All prototypes 
9730241973Sjkimwith 
9731241973Sjkimthe static attribute have been moved from the headers to the owning C 
9732241973Sjkimfile.
9733151937Sjkim
9734193267SjkimImplemented an extract option (-e) for the AcpiBin utility (AML binary 
9735253690Sjkimutility). This option allows the utility to extract individual ACPI 
9736253690Sjkimtables 
9737193267Sjkimfrom the output of AcpiDmp. It provides the same functionality of the 
9738193267Sjkimacpixtract.pl perl script without the worry of setting the correct perl 
9739241973Sjkimoptions. AcpiBin runs on Windows and has not yet been generated/validated 
9740241973Sjkimin 
9741193267Sjkimthe Linux/Unix environment (but should be soon).
9742193267Sjkim 
9743193267SjkimUpdated and fixed the table dump option for AcpiBin (-d). This option 
9744253690Sjkimconverts a single ACPI table to a hex/ascii file, similar to the output 
9745253690Sjkimof 
9746193267SjkimAcpiDmp.
9747151937Sjkim
9748193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9749253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9750253690Sjkimproduced 
9751193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9752193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9753241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9754241973SjkimNote 
9755241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9756241973Sjkimand 
9757193267Sjkimthe compiler options used during generation.
9758151937Sjkim
9759151937Sjkim  Previous Release:
9760151937Sjkim    Non-Debug Version:  78.0K Code, 11.6K Data,  89.6K Total
9761151937Sjkim    Debug Version:     163.5K Code, 69.3K Data, 232.8K Total
9762151937Sjkim  Current Release:
9763151937Sjkim    Non-Debug Version:  78.2K Code, 11.6K Data,  89.8K Total
9764151937Sjkim    Debug Version:     163.7K Code, 69.3K Data, 233.0K Total
9765151937Sjkim
9766151937Sjkim
9767151937Sjkim2) iASL Compiler/Disassembler:
9768151937Sjkim
9769241973SjkimDisassembler fix: Added a check to ensure that the table length found in 
9770241973Sjkimthe 
9771241973SjkimACPI table header within the input file is not longer than the actual 
9772241973Sjkiminput 
9773193267Sjkimfile size. This indicates some kind of file or table corruption.
9774151937Sjkim
9775151937Sjkim----------------------------------------
9776151937Sjkim29 March 2005.  Summary of changes for version 20050329:
9777151937Sjkim
9778151937Sjkim1) ACPI CA Core Subsystem:
9779151937Sjkim
9780241973SjkimAn error is now generated if an attempt is made to create a Buffer Field 
9781241973Sjkimof 
9782193267Sjkimlength zero (A CreateField with a length operand of zero.)
9783151937Sjkim
9784241973SjkimThe interpreter now issues a warning whenever executable code at the 
9785241973Sjkimmodule 
9786193267Sjkimlevel is detected during ACPI table load. This will give some idea of the 
9787193267Sjkimprevalence of this type of code.
9788151937Sjkim
9789193267SjkimImplemented support for references to named objects (other than control 
9790193267Sjkimmethods) within package objects.
9791151937Sjkim
9792241973SjkimEnhanced package object output for the debug object. Package objects are 
9793241973Sjkimnow 
9794193267Sjkimcompletely dumped, showing all elements.
9795151937Sjkim
9796193267SjkimEnhanced miscellaneous object output for the debug object. Any object can 
9797193267Sjkimnow be written to the debug object (for example, a device object can be 
9798193267Sjkimwritten, and the type of the object will be displayed.)
9799151937Sjkim
9800241973SjkimThe "static" qualifier has been added to all local functions across both 
9801241973Sjkimthe 
9802193267Sjkimcore subsystem and the iASL compiler.
9803151937Sjkim
9804193267SjkimThe number of "long" lines (> 80 chars) within the source has been 
9805193267Sjkimsignificantly reduced, by about 1/3.
9806151937Sjkim
9807193267SjkimCleaned up all header files to ensure that all CA/iASL functions are 
9808193267Sjkimprototyped (even static functions) and the formatting is consistent.
9809151937Sjkim
9810151937SjkimTwo new header files have been added, acopcode.h and acnames.h.
9811151937Sjkim
9812151937SjkimRemoved several obsolete functions that were no longer used.
9813151937Sjkim
9814193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9815253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9816253690Sjkimproduced 
9817193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9818193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9819241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9820241973SjkimNote 
9821241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9822241973Sjkimand 
9823193267Sjkimthe compiler options used during generation.
9824151937Sjkim
9825151937Sjkim  Previous Release:
9826151937Sjkim    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
9827151937Sjkim    Debug Version:     165.4K Code, 69.7K Data, 236.1K Total
9828151937Sjkim  Current Release:
9829151937Sjkim    Non-Debug Version:  78.0K Code, 11.6K Data,  89.6K Total
9830151937Sjkim    Debug Version:     163.5K Code, 69.3K Data, 232.8K Total
9831151937Sjkim
9832151937Sjkim
9833167802Sjkim
9834151937Sjkim2) iASL Compiler/Disassembler:
9835151937Sjkim
9836193267SjkimFixed a problem with the resource descriptor generation/support. For the 
9837241973SjkimResourceSourceIndex and the ResourceSource fields, both must be present, 
9838241973Sjkimor 
9839193267Sjkimboth must be not present - can't have one without the other.
9840151937Sjkim
9841241973SjkimThe compiler now returns non-zero from the main procedure if any errors 
9842241973Sjkimhave 
9843193267Sjkimoccurred during the compilation.
9844151937Sjkim
9845151937Sjkim
9846151937Sjkim----------------------------------------
9847151937Sjkim09 March 2005.  Summary of changes for version 20050309:
9848151937Sjkim
9849151937Sjkim1) ACPI CA Core Subsystem:
9850151937Sjkim
9851241973SjkimThe string-to-buffer implicit conversion code has been modified again 
9852241973Sjkimafter 
9853253690Sjkima change to the ACPI specification.  In order to match the behavior of 
9854253690Sjkimthe 
9855241973Sjkimother major ACPI implementation, the target buffer is no longer truncated 
9856241973Sjkimif 
9857193267Sjkimthe source string is smaller than an existing target buffer. This change 
9858193267Sjkimrequires an update to the ACPI spec, and should eliminate the recent 
9859151937SjkimAE_AML_BUFFER_LIMIT issues.
9860151937Sjkim
9861253690SjkimThe "implicit return" support was rewritten to a new algorithm that 
9862253690Sjkimsolves 
9863241973Sjkimthe general case. Rather than attempt to determine when a method is about 
9864241973Sjkimto 
9865253690Sjkimexit, the result of every ASL operator is saved momentarily until the 
9866253690Sjkimvery 
9867193267Sjkimnext ASL operator is executed. Therefore, no matter how the method exits, 
9868193267Sjkimthere will always be a saved implicit return value. This feature is only 
9869253690Sjkimenabled with the AcpiGbl_EnableInterpreterSlack flag, and should 
9870253690Sjkimeliminate 
9871193267SjkimAE_AML_NO_RETURN_VALUE errors when enabled.
9872151937Sjkim
9873253690SjkimImplemented implicit conversion support for the predicate (operand) of 
9874253690Sjkimthe 
9875241973SjkimIf, Else, and While operators. String and Buffer arguments are 
9876241973Sjkimautomatically 
9877193267Sjkimconverted to Integers.
9878151937Sjkim
9879193267SjkimChanged the string-to-integer conversion behavior to match the new ACPI 
9880193267Sjkimerrata: "If no integer object exists, a new integer is created. The ASCII 
9881193267Sjkimstring is interpreted as a hexadecimal constant. Each string character is 
9882193267Sjkiminterpreted as a hexadecimal value ('0'-'9', 'A'-'F', 'a', 'f'), starting 
9883241973Sjkimwith the first character as the most significant digit, and ending with 
9884241973Sjkimthe 
9885241973Sjkimfirst non-hexadecimal character or end-of-string." This means that the 
9886241973Sjkimfirst 
9887193267Sjkimnon-hex character terminates the conversion and this is the code that was 
9888193267Sjkimchanged.
9889151937Sjkim
9890253690SjkimFixed a problem where the ObjectType operator would fail (fault) when 
9891253690Sjkimused 
9892193267Sjkimon an Index of a Package which pointed to a null package element. The 
9893193267Sjkimoperator now properly returns zero (Uninitialized) in this case.
9894151937Sjkim
9895193267SjkimFixed a problem where the While operator used excessive memory by not 
9896241973Sjkimproperly popping the result stack during execution. There was no memory 
9897241973Sjkimleak 
9898193267Sjkimafter execution, however. (Code provided by Valery Podrezov.)
9899151937Sjkim
9900253690SjkimFixed a problem where references to control methods within Package 
9901253690Sjkimobjects 
9902193267Sjkimcaused the method to be invoked, instead of producing a reference object 
9903193267Sjkimpointing to the method.
9904151937Sjkim
9905253690SjkimRestructured and simplified the pswalk.c module (AcpiPsDeleteParseTree) 
9906253690Sjkimto 
9907193267Sjkimimprove performance and reduce code size. (Code provided by Alexey 
9908193267SjkimStarikovskiy.)
9909151937Sjkim
9910193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
9911253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
9912253690Sjkimproduced 
9913193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
9914193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
9915241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
9916241973SjkimNote 
9917241973Sjkimthat these values will vary depending on the efficiency of the compiler 
9918241973Sjkimand 
9919193267Sjkimthe compiler options used during generation.
9920151937Sjkim
9921151937Sjkim  Previous Release:
9922151937Sjkim    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
9923151937Sjkim    Debug Version:     165.4K Code, 69.6K Data, 236.0K Total
9924151937Sjkim  Current Release:
9925151937Sjkim    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
9926151937Sjkim    Debug Version:     165.4K Code, 69.7K Data, 236.1K Total
9927151937Sjkim
9928151937Sjkim
9929151937Sjkim2) iASL Compiler/Disassembler:
9930151937Sjkim
9931193267SjkimFixed a problem with the Return operator with no arguments. Since the AML 
9932241973Sjkimgrammar for the byte encoding requires an operand for the Return opcode, 
9933241973Sjkimthe 
9934193267Sjkimcompiler now emits a Return(Zero) for this case.  An ACPI specification 
9935193267Sjkimupdate has been written for this case.
9936151937Sjkim
9937193267SjkimFor tables other than the DSDT, namepath optimization is automatically 
9938241973Sjkimdisabled. This is because SSDTs can be loaded anywhere in the namespace, 
9939241973Sjkimthe 
9940193267Sjkimcompiler has no knowledge of where, and thus cannot optimize namepaths.
9941151937Sjkim
9942193267SjkimAdded "ProcessorObj" to the ObjectTypeKeyword list. This object type was 
9943193267Sjkiminadvertently omitted from the ACPI specification, and will require an 
9944193267Sjkimupdate to the spec.
9945151937Sjkim
9946241973SjkimThe source file scan for ASCII characters is now optional (-a). This 
9947241973Sjkimchange 
9948193267Sjkimwas made because some vendors place non-ascii characters within comments. 
9949193267SjkimHowever, the scan is simply a brute-force byte compare to ensure all 
9950193267Sjkimcharacters in the file are in the range 0x00 to 0x7F.
9951151937Sjkim
9952193267SjkimFixed a problem with the CondRefOf operator where the compiler was 
9953241973Sjkiminappropriately checking for the existence of the target. Since the point 
9954241973Sjkimof 
9955193267Sjkimthe operator is to check for the existence of the target at run-time, the 
9956193267Sjkimcompiler no longer checks for the target existence.
9957151937Sjkim
9958193267SjkimFixed a problem where errors generated from the internal AML interpreter 
9959193267Sjkimduring constant folding were not handled properly, causing a fault.
9960151937Sjkim
9961193267SjkimFixed a problem with overly aggressive range checking for the Stall 
9962241973Sjkimoperator. The valid range (max 255) is now only checked if the operand is 
9963241973Sjkimof 
9964193267Sjkimtype Integer. All other operand types cannot be statically checked.
9965151937Sjkim
9966253690SjkimFixed a problem where control method references within the RefOf, 
9967253690SjkimDeRefOf, 
9968241973Sjkimand ObjectType operators were not treated properly. They are now treated 
9969241973Sjkimas 
9970193267Sjkimactual references, not method invocations.
9971151937Sjkim
9972241973SjkimFixed and enhanced the "list namespace" option (-ln). This option was 
9973241973Sjkimbroken 
9974193267Sjkima number of releases ago.
9975151937Sjkim
9976241973SjkimImproved error handling for the Field, IndexField, and BankField 
9977241973Sjkimoperators. 
9978193267SjkimThe compiler now cleanly reports and recovers from errors in the field 
9979193267Sjkimcomponent (FieldUnit) list.
9980151937Sjkim
9981193267SjkimFixed a disassembler problem where the optional ResourceDescriptor fields 
9982193267SjkimTRS and TTP were not always handled correctly.
9983151937Sjkim
9984151937SjkimDisassembler - Comments in output now use "//" instead of "/*"
9985151937Sjkim
9986151937Sjkim----------------------------------------
9987151937Sjkim28 February 2005.  Summary of changes for version 20050228:
9988151937Sjkim
9989151937Sjkim1) ACPI CA Core Subsystem:
9990151937Sjkim
9991193267SjkimFixed a problem where the result of an Index() operator (an object 
9992253690Sjkimreference) must increment the reference count on the target object for 
9993253690Sjkimthe 
9994193267Sjkimlife of the object reference.
9995151937Sjkim
9996193267SjkimImplemented AML Interpreter and Debugger support for the new ACPI 3.0 
9997241973SjkimExtended Address (IO, Memory, Space), QwordSpace, DwordSpace, and 
9998241973SjkimWordSpace 
9999193267Sjkimresource descriptors.
10000151937Sjkim
10001193267SjkimImplemented support in the _OSI method for the ACPI 3.0 "Extended Address 
10002241973SjkimSpace Descriptor" string, indicating interpreter support for the 
10003241973Sjkimdescriptors 
10004193267Sjkimabove.
10005151937Sjkim
10006151937SjkimImplemented header support for the new ACPI 3.0 FADT flag bits.
10007151937Sjkim
10008241973SjkimImplemented header support for the new ACPI 3.0 PCI Express bits for the 
10009241973SjkimPM1 
10010193267Sjkimstatus/enable registers.
10011151937Sjkim
10012193267SjkimUpdated header support for the MADT processor local Apic struct and MADT 
10013193267Sjkimplatform interrupt source struct for new ACPI 3.0 fields.
10014151937Sjkim
10015151937SjkimImplemented header support for the SRAT and SLIT ACPI tables.
10016151937Sjkim
10017241973SjkimImplemented the -s switch in AcpiExec to enable the "InterpreterSlack" 
10018241973Sjkimflag 
10019193267Sjkimat runtime.
10020151937Sjkim
10021193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10022253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10023253690Sjkimproduced 
10024193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10025193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10026241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10027241973SjkimNote 
10028241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10029241973Sjkimand 
10030193267Sjkimthe compiler options used during generation.
10031151937Sjkim
10032151937Sjkim  Previous Release:
10033151937Sjkim    Non-Debug Version:  78.2K Code, 11.5K Data,  89.7K Total
10034151937Sjkim    Debug Version:     164.9K Code, 69.2K Data, 234.1K Total
10035151937Sjkim  Current Release:
10036151937Sjkim    Non-Debug Version:  78.3K Code, 11.5K Data,  89.8K Total
10037151937Sjkim    Debug Version:     165.4K Code, 69.6K Data, 236.0K Total
10038151937Sjkim
10039151937Sjkim
10040151937Sjkim2) iASL Compiler/Disassembler:
10041151937Sjkim
10042253690SjkimFixed a problem with the internal 64-bit String-to-integer conversion 
10043253690Sjkimwith 
10044193267Sjkimstrings less than two characters long.
10045151937Sjkim
10046193267SjkimFixed a problem with constant folding where the result of the Index() 
10047241973Sjkimoperator can not be considered a constant. This means that Index() cannot 
10048241973Sjkimbe 
10049193267Sjkima type3 opcode and this will require an update to the ACPI specification.
10050151937Sjkim
10051193267SjkimDisassembler: Implemented support for the TTP, MTP, and TRS resource 
10052241973Sjkimdescriptor fields. These fields were inadvertently ignored and not output 
10053241973Sjkimin 
10054193267Sjkimthe disassembly of the resource descriptor.
10055151937Sjkim
10056151937Sjkim
10057151937Sjkim ----------------------------------------
10058151937Sjkim11 February 2005.  Summary of changes for version 20050211:
10059151937Sjkim
10060151937Sjkim1) ACPI CA Core Subsystem:
10061151937Sjkim
10062193267SjkimImplemented ACPI 3.0 support for implicit conversion within the Match() 
10063241973Sjkimoperator. MatchObjects can now be of type integer, buffer, or string 
10064241973Sjkiminstead 
10065241973Sjkimof just type integer.  Package elements are implicitly converted to the 
10066241973Sjkimtype 
10067193267Sjkimof the MatchObject. This change aligns the behavior of Match() with the 
10068241973Sjkimbehavior of the other logical operators (LLess(), etc.) It also requires 
10069241973Sjkiman 
10070193267Sjkimerrata change to the ACPI specification as this support was intended for 
10071193267SjkimACPI 3.0, but was inadvertently omitted.
10072151937Sjkim
10073253690SjkimFixed a problem with the internal implicit "to buffer" conversion. 
10074253690SjkimStrings 
10075241973Sjkimthat are converted to buffers will cause buffer truncation if the string 
10076241973Sjkimis 
10077241973Sjkimsmaller than the target buffer. Integers that are converted to buffers 
10078241973Sjkimwill 
10079193267Sjkimnot cause buffer truncation, only zero extension (both as per the ACPI 
10080193267Sjkimspec.) The problem was introduced when code was added to truncate the 
10081241973Sjkimbuffer, but this should not be performed in all cases, only the string 
10082241973Sjkimcase.
10083151937Sjkim
10084241973SjkimFixed a problem with the Buffer and Package operators where the 
10085241973Sjkiminterpreter 
10086193267Sjkimwould get confused if two such operators were used as operands to an ASL 
10087193267Sjkimoperator (such as LLess(Buffer(1){0},Buffer(1){1}). The internal result 
10088241973Sjkimstack was not being popped after the execution of these operators, 
10089241973Sjkimresulting 
10090193267Sjkimin an AE_NO_RETURN_VALUE exception.
10091151937Sjkim
10092193267SjkimFixed a problem with constructs of the form Store(Index(...),...). The 
10093241973Sjkimreference object returned from Index was inadvertently resolved to an 
10094241973Sjkimactual 
10095241973Sjkimvalue. This problem was introduced in version 20050114 when the behavior 
10096241973Sjkimof 
10097193267SjkimStore() was modified to restrict the object types that can be used as the 
10098151937Sjkimsource operand (to match the ACPI specification.)
10099151937Sjkim
10100193267SjkimReduced excessive stack use within the AcpiGetObjectInfo procedure.
10101151937Sjkim
10102193267SjkimAdded a fix to aclinux.h to allow generation of AcpiExec on Linux.
10103151937Sjkim
10104193267SjkimUpdated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS struct.
10105151937Sjkim
10106193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10107253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10108253690Sjkimproduced 
10109193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10110193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10111241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10112241973SjkimNote 
10113241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10114241973Sjkimand 
10115193267Sjkimthe compiler options used during generation.
10116151937Sjkim
10117151937Sjkim  Previous Release:
10118151937Sjkim    Non-Debug Version:  78.1K Code, 11.5K Data,  89.6K Total
10119151937Sjkim    Debug Version:     164.8K Code, 69.2K Data, 234.0K Total
10120151937Sjkim  Current Release:
10121151937Sjkim    Non-Debug Version:  78.2K Code, 11.5K Data,  89.7K Total
10122151937Sjkim    Debug Version:     164.9K Code, 69.2K Data, 234.1K Total
10123151937Sjkim
10124151937Sjkim
10125151937Sjkim2) iASL Compiler/Disassembler:
10126151937Sjkim
10127193267SjkimFixed a code generation problem in the constant folding optimization code 
10128193267Sjkimwhere incorrect code was generated if a constant was reduced to a buffer 
10129193267Sjkimobject (i.e., a reduced type 5 opcode.)
10130151937Sjkim
10131193267SjkimFixed a typechecking problem for the ToBuffer operator. Caused by an 
10132193267Sjkimincorrect return type in the internal opcode information table.
10133151937Sjkim
10134151937Sjkim----------------------------------------
10135151937Sjkim25 January 2005.  Summary of changes for version 20050125:
10136151937Sjkim
10137151937Sjkim1) ACPI CA Core Subsystem:
10138151937Sjkim
10139193267SjkimFixed a recently introduced problem with the Global Lock where the 
10140193267Sjkimunderlying semaphore was not created.  This problem was introduced in 
10141193267Sjkimversion 20050114, and caused an AE_AML_NO_OPERAND exception during an 
10142193267SjkimAcquire() operation on _GL.
10143151937Sjkim
10144193267SjkimThe local object cache is now optional, and is disabled by default. Both 
10145193267SjkimAcpiExec and the iASL compiler enable the cache because they run in user 
10146253690Sjkimmode and this enhances their performance. #define 
10147253690SjkimACPI_ENABLE_OBJECT_CACHE 
10148193267Sjkimto enable the local cache.
10149151937Sjkim
10150241973SjkimFixed an issue in the internal function AcpiUtEvaluateObject concerning 
10151241973Sjkimthe 
10152241973Sjkimoptional "implicit return" support where an error was returned if no 
10153241973Sjkimreturn 
10154241973Sjkimobject was expected, but one was implicitly returned. AE_OK is now 
10155241973Sjkimreturned 
10156193267Sjkimin this case and the implicitly returned object is deleted. 
10157241973SjkimAcpiUtEvaluateObject is only occasionally used, and only to execute 
10158241973Sjkimreserved 
10159193267Sjkimmethods such as _STA and _INI where the return type is known up front.
10160151937Sjkim
10161241973SjkimFixed a few issues with the internal convert-to-integer code. It now 
10162241973Sjkimreturns 
10163193267Sjkiman error if an attempt is made to convert a null string, a string of only 
10164241973Sjkimblanks/tabs, or a zero-length buffer. This affects both implicit 
10165241973Sjkimconversion 
10166193267Sjkimand explicit conversion via the ToInteger() operator.
10167151937Sjkim
10168241973SjkimThe internal debug code in AcpiUtAcquireMutex has been commented out. It 
10169241973Sjkimis 
10170253690Sjkimnot needed for normal operation and should increase the performance of 
10171253690Sjkimthe 
10172253690Sjkimentire subsystem. The code remains in case it is needed for debug 
10173253690Sjkimpurposes 
10174193267Sjkimagain.
10175151937Sjkim
10176241973SjkimThe AcpiExec source and makefile are included in the Unix/Linux package 
10177241973Sjkimfor 
10178193267Sjkimthe first time.
10179151937Sjkim
10180193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10181253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10182253690Sjkimproduced 
10183193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10184193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10185241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10186241973SjkimNote 
10187241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10188241973Sjkimand 
10189193267Sjkimthe compiler options used during generation.
10190151937Sjkim
10191151937Sjkim  Previous Release:
10192151937Sjkim    Non-Debug Version:  78.4K Code,  11.5K Data,   89.9K Total
10193151937Sjkim    Debug Version:     165.4K Code,  69.4K Data,  234.8K Total
10194151937Sjkim  Current Release:
10195151937Sjkim    Non-Debug Version:  78.1K Code,  11.5K Data,   89.6K Total
10196151937Sjkim    Debug Version:     164.8K Code,  69.2K Data,  234.0K Total
10197151937Sjkim
10198151937Sjkim2) iASL Compiler/Disassembler:
10199151937Sjkim
10200241973SjkimSwitch/Case support: A warning is now issued if the type of the Switch 
10201241973Sjkimvalue 
10202193267Sjkimcannot be determined at compile time. For example, Switch(Arg0) will 
10203253690Sjkimgenerate the warning, and the type is assumed to be an integer. As per 
10204253690Sjkimthe 
10205241973SjkimACPI spec, use a construct such as Switch(ToInteger(Arg0)) to eliminate 
10206241973Sjkimthe 
10207193267Sjkimwarning.
10208151937Sjkim
10209193267SjkimSwitch/Case support: Implemented support for buffer and string objects as 
10210193267Sjkimthe switch value.  This is an ACPI 3.0 feature, now that LEqual supports 
10211193267Sjkimbuffers and strings.
10212151937Sjkim
10213241973SjkimSwitch/Case support: The emitted code for the LEqual() comparisons now 
10214241973Sjkimuses 
10215241973Sjkimthe switch value as the first operand, not the second. The case value is 
10216241973Sjkimnow 
10217193267Sjkimthe second operand, and this allows the case value to be implicitly 
10218193267Sjkimconverted to the type of the switch value, not the other way around.
10219151937Sjkim
10220241973SjkimSwitch/Case support: Temporary variables are now emitted immediately 
10221241973Sjkimwithin 
10222253690Sjkimthe control method, not at the global level. This means that there are 
10223253690Sjkimnow 
10224241973Sjkim36 temps available per-method, not 36 temps per-module as was the case 
10225241973Sjkimwith 
10226193267Sjkimthe earlier implementation (_T_0 through _T_9 and _T_A through _T_Z.)
10227151937Sjkim
10228151937Sjkim----------------------------------------
10229151937Sjkim14 January 2005.  Summary of changes for version 20050114:
10230151937Sjkim
10231193267SjkimAdded 2005 copyright to all module headers.  This affects every module in 
10232193267Sjkimthe core subsystem, iASL compiler, and the utilities.
10233151937Sjkim
10234151937Sjkim1) ACPI CA Core Subsystem:
10235151937Sjkim
10236193267SjkimFixed an issue with the String-to-Buffer conversion code where the string 
10237253690Sjkimnull terminator was not included in the buffer after conversion, but 
10238253690Sjkimthere 
10239241973Sjkimis existing ASL that assumes the string null terminator is included. This 
10240241973Sjkimis 
10241193267Sjkimthe root of the ACPI_AML_BUFFER_LIMIT regression. This problem was 
10242193267Sjkimintroduced in the previous version when the code was updated to correctly 
10243253690Sjkimset the converted buffer size as per the ACPI specification. The ACPI 
10244253690Sjkimspec 
10245241973Sjkimis ambiguous and will be updated to specify that the null terminator must 
10246241973Sjkimbe 
10247193267Sjkimincluded in the converted buffer. This also affects the ToBuffer() ASL 
10248193267Sjkimoperator.
10249151937Sjkim
10250193267SjkimFixed a problem with the Mid() ASL/AML operator where it did not work 
10251241973Sjkimcorrectly on Buffer objects. Newly created sub-buffers were not being 
10252241973Sjkimmarked 
10253193267Sjkimas initialized.
10254151937Sjkim
10255167802Sjkim
10256193267SjkimFixed a problem in AcpiTbFindTable where incorrect string compares were 
10257241973Sjkimperformed on the OemId and OemTableId table header fields.  These fields 
10258241973Sjkimare 
10259193267Sjkimnot null terminated, so strncmp is now used instead of strcmp.
10260151937Sjkim
10261193267SjkimImplemented a restriction on the Store() ASL/AML operator to align the 
10262241973Sjkimbehavior with the ACPI specification.  Previously, any object could be 
10263241973Sjkimused 
10264241973Sjkimas the source operand.  Now, the only objects that may be used are 
10265241973SjkimIntegers, 
10266193267SjkimBuffers, Strings, Packages, Object References, and DDB Handles.  If 
10267193267Sjkimnecessary, the original behavior can be restored by enabling the 
10268151937SjkimEnableInterpreterSlack flag.
10269151937Sjkim
10270241973SjkimEnhanced the optional "implicit return" support to allow an implicit 
10271241973Sjkimreturn 
10272193267Sjkimvalue from methods that are invoked externally via the AcpiEvaluateObject 
10273193267Sjkiminterface.  This enables implicit returns from the _STA and _INI methods, 
10274193267Sjkimfor example.
10275151937Sjkim
10276241973SjkimChanged the Revision() ASL/AML operator to return the current version of 
10277241973Sjkimthe 
10278241973SjkimAML interpreter, in the YYYYMMDD format. Previously, it incorrectly 
10279241973Sjkimreturned 
10280193267Sjkimthe supported ACPI version (This is the function of the _REV method).
10281151937Sjkim
10282241973SjkimUpdated the _REV predefined method to return the currently supported 
10283241973Sjkimversion 
10284193267Sjkimof ACPI, now 3.
10285151937Sjkim
10286151937SjkimImplemented batch mode option for the AcpiExec utility (-b).
10287151937Sjkim
10288193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10289253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10290253690Sjkimproduced 
10291193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10292193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10293241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10294241973SjkimNote 
10295241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10296241973Sjkimand 
10297193267Sjkimthe compiler options used during generation.
10298151937Sjkim
10299151937Sjkim  Previous Release:
10300151937Sjkim    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
10301151937Sjkim    Debug Version:     165.3K Code,  69.4K Data,  234.7K Total
10302151937Sjkim  Current Release:
10303151937Sjkim    Non-Debug Version:  78.4K Code,  11.5K Data,   89.9K Total
10304151937Sjkim    Debug Version:     165.4K Code,  69.4K Data,  234.8K Total
10305151937Sjkim
10306151937Sjkim----------------------------------------
10307151937Sjkim10 December 2004.  Summary of changes for version 20041210:
10308151937Sjkim
10309193267SjkimACPI 3.0 support is nearing completion in both the iASL compiler and the 
10310193267SjkimACPI CA core subsystem.
10311151937Sjkim
10312151937Sjkim1) ACPI CA Core Subsystem:
10313151937Sjkim
10314253690SjkimFixed a problem in the ToDecimalString operator where the resulting 
10315253690Sjkimstring 
10316193267Sjkimlength was incorrectly calculated. The length is now calculated exactly, 
10317193267Sjkimeliminating incorrect AE_STRING_LIMIT exceptions.
10318151937Sjkim
10319241973SjkimFixed a problem in the ToHexString operator to allow a maximum 200 
10320241973Sjkimcharacter 
10321193267Sjkimstring to be produced.
10322151937Sjkim
10323253690SjkimFixed a problem in the internal string-to-buffer and buffer-to-buffer 
10324253690Sjkimcopy 
10325193267Sjkimroutine where the length of the resulting buffer was not truncated to the 
10326193267Sjkimnew size (if the target buffer already existed).
10327151937Sjkim
10328193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10329253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10330253690Sjkimproduced 
10331193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10332193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10333241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10334241973SjkimNote 
10335241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10336241973Sjkimand 
10337193267Sjkimthe compiler options used during generation.
10338151937Sjkim
10339151937Sjkim  Previous Release:
10340151937Sjkim    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
10341151937Sjkim    Debug Version:     164.7K Code,  68.5K Data,  233.2K Total
10342151937Sjkim  Current Release:
10343151937Sjkim    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
10344151937Sjkim    Debug Version:     165.3K Code,  69.4K Data,  234.7K Total
10345151937Sjkim
10346151937Sjkim
10347151937Sjkim2) iASL Compiler/Disassembler:
10348151937Sjkim
10349193267SjkimImplemented the new ACPI 3.0 resource template macros - DWordSpace, 
10350193267SjkimExtendedIO, ExtendedMemory, ExtendedSpace, QWordSpace, and WordSpace. 
10351193267SjkimIncludes support in the disassembler.
10352151937Sjkim
10353241973SjkimImplemented support for the new (ACPI 3.0) parameter to the Register 
10354241973Sjkimmacro, 
10355193267SjkimAccessSize.
10356151937Sjkim
10357193267SjkimFixed a problem where the _HE resource name for the Interrupt macro was 
10358193267Sjkimreferencing bit 0 instead of bit 1.
10359151937Sjkim
10360193267SjkimImplemented check for maximum 255 interrupts in the Interrupt macro.
10361151937Sjkim
10362193267SjkimFixed a problem with the predefined resource descriptor names where 
10363193267Sjkimincorrect AML code was generated if the offset within the resource buffer 
10364193267Sjkimwas 0 or 1.  The optimizer shortened the AML code to a single byte opcode 
10365193267Sjkimbut did not update the surrounding package lengths.
10366151937Sjkim
10367253690SjkimChanges to the Dma macro:  All channels within the channel list must be 
10368253690Sjkimin 
10369193267Sjkimthe range 0-7.  Maximum 8 channels can be specified. BusMaster operand is 
10370193267Sjkimoptional (default is BusMaster).
10371151937Sjkim
10372193267SjkimImplemented check for maximum 7 data bytes for the VendorShort macro.
10373151937Sjkim
10374241973SjkimThe ReadWrite parameter is now optional for the Memory32 and similar 
10375241973Sjkimmacros.
10376151937Sjkim
10377151937Sjkim----------------------------------------
10378151937Sjkim03 December 2004.  Summary of changes for version 20041203:
10379151937Sjkim
10380151937Sjkim1) ACPI CA Core Subsystem:
10381151937Sjkim
10382241973SjkimThe low-level field insertion/extraction code (exfldio) has been 
10383241973Sjkimcompletely 
10384193267Sjkimrewritten to eliminate unnecessary complexity, bugs, and boundary 
10385193267Sjkimconditions.
10386151937Sjkim
10387241973SjkimFixed a problem in the ToInteger, ToBuffer, ToHexString, and 
10388241973SjkimToDecimalString 
10389193267Sjkimoperators where the input operand could be inadvertently deleted if no 
10390193267Sjkimconversion was necessary (e.g., if the input to ToInteger was an Integer 
10391193267Sjkimobject.)
10392151937Sjkim
10393241973SjkimFixed a problem with the ToDecimalString and ToHexString where an 
10394241973Sjkimincorrect 
10395193267Sjkimexception code was returned if the resulting string would be > 200 chars.  
10396193267SjkimAE_STRING_LIMIT is now returned.
10397151937Sjkim
10398193267SjkimFixed a problem with the Concatenate operator where AE_OK was always 
10399193267Sjkimreturned, even if the operation failed.
10400151937Sjkim
10401193267SjkimFixed a problem in oswinxf (used by AcpiExec and iASL) to allow > 128 
10402193267Sjkimsemaphores to be allocated.
10403151937Sjkim
10404193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10405253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10406253690Sjkimproduced 
10407193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10408193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10409241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10410241973SjkimNote 
10411241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10412241973Sjkimand 
10413193267Sjkimthe compiler options used during generation.
10414151937Sjkim
10415151937Sjkim  Previous Release:
10416151937Sjkim    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
10417151937Sjkim    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
10418151937Sjkim  Current Release:
10419151937Sjkim    Non-Debug Version:  78.3K Code,  11.5K Data,   89.8K Total
10420151937Sjkim    Debug Version:     164.7K Code,  68.5K Data,  233.2K Total
10421151937Sjkim
10422151937Sjkim
10423151937Sjkim2) iASL Compiler/Disassembler:
10424151937Sjkim
10425193267SjkimFixed typechecking for the ObjectType and SizeOf operators.  Problem was 
10426193267Sjkimrecently introduced in 20041119.
10427151937Sjkim
10428241973SjkimFixed a problem with the ToUUID macro where the upper nybble of each 
10429241973Sjkimbuffer 
10430193267Sjkimbyte was inadvertently set to zero.
10431151937Sjkim
10432151937Sjkim----------------------------------------
10433138287Smarks19 November 2004.  Summary of changes for version 20041119:
10434138287Smarks
10435138287Smarks1) ACPI CA Core Subsystem:
10436138287Smarks
10437241973SjkimFixed a problem in the internal ConvertToInteger routine where new 
10438241973Sjkimintegers 
10439241973Sjkimwere not truncated to 32 bits for 32-bit ACPI tables. This routine 
10440241973Sjkimconverts 
10441193267Sjkimbuffers and strings to integers.
10442138287Smarks
10443241973SjkimImplemented support to store a value to an Index() on a String object. 
10444241973SjkimThis 
10445193267Sjkimis an ACPI 2.0 feature that had not yet been implemented.
10446138287Smarks
10447241973SjkimImplemented new behavior for storing objects to individual package 
10448241973Sjkimelements 
10449241973Sjkim(via the Index() operator). The previous behavior was to invoke the 
10450241973Sjkimimplicit 
10451193267Sjkimconversion rules if an object was already present at the index.  The new 
10452241973Sjkimbehavior is to simply delete any existing object and directly store the 
10453241973Sjkimnew 
10454241973Sjkimobject. Although the ACPI specification seems unclear on this subject, 
10455241973Sjkimother 
10456193267SjkimACPI implementations behave in this manner.  (This is the root of the 
10457193267SjkimAE_BAD_HEX_CONSTANT issue.)
10458138287Smarks
10459241973SjkimModified the RSDP memory scan mechanism to support the extended checksum 
10460241973Sjkimfor 
10461193267SjkimACPI 2.0 (and above) RSDPs. Note that the search continues until a valid 
10462193267SjkimRSDP signature is found with a valid checksum.
10463138287Smarks
10464193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10465253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10466253690Sjkimproduced 
10467193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10468193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10469241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10470241973SjkimNote 
10471241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10472241973Sjkimand 
10473193267Sjkimthe compiler options used during generation.
10474138287Smarks
10475151937Sjkim  Previous Release:
10476151937Sjkim    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
10477151937Sjkim    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
10478151937Sjkim  Current Release:
10479151937Sjkim    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
10480151937Sjkim    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
10481138287Smarks
10482138287Smarks
10483138287Smarks2) iASL Compiler/Disassembler:
10484138287Smarks
10485138287SmarksFixed a missing semicolon in the aslcompiler.y file.
10486138287Smarks
10487138287Smarks----------------------------------------
10488138287Smarks05 November 2004.  Summary of changes for version 20041105:
10489138287Smarks
10490138287Smarks1) ACPI CA Core Subsystem:
10491138287Smarks
10492241973SjkimImplemented support for FADT revision 2.  This was an interim table 
10493241973Sjkim(between 
10494193267SjkimACPI 1.0 and ACPI 2.0) that adds support for the FADT reset register.
10495138287Smarks
10496193267SjkimImplemented optional support to allow uninitialized LocalX and ArgX 
10497241973Sjkimvariables in a control method.  The variables are initialized to an 
10498241973SjkimInteger 
10499193267Sjkimobject with a value of zero.  This support is enabled by setting the 
10500193267SjkimAcpiGbl_EnableInterpreterSlack flag to TRUE.
10501138287Smarks
10502253690SjkimImplemented support for Integer objects for the SizeOf operator.  Either 
10503253690Sjkim4 
10504253690Sjkimor 8 is returned, depending on the current integer size (32-bit or 64-
10505253690Sjkimbit, 
10506193267Sjkimdepending on the parent table revision).
10507138287Smarks
10508241973SjkimFixed a problem in the implementation of the SizeOf and ObjectType 
10509241973Sjkimoperators 
10510193267Sjkimwhere the operand was resolved to a value too early, causing incorrect 
10511193267Sjkimreturn values for some objects.
10512138287Smarks
10513138287SmarksFixed some possible memory leaks during exceptional conditions.
10514138287Smarks
10515193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10516253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10517253690Sjkimproduced 
10518193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10519193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10520241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10521241973SjkimNote 
10522241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10523241973Sjkimand 
10524193267Sjkimthe compiler options used during generation.
10525138287Smarks
10526138287Smarks  Previous Release:
10527138287Smarks    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
10528138287Smarks    Debug Version:     164.8K Code,  68.6K Data,  233.4K Total
10529138287Smarks  Current Release:
10530138287Smarks    Non-Debug Version:  78.5K Code,  11.5K Data,   90.0K Total
10531138287Smarks    Debug Version:     165.2K Code,  68.6K Data,  233.8K Total
10532138287Smarks
10533138287Smarks
10534138287Smarks2) iASL Compiler/Disassembler:
10535138287Smarks
10536138287SmarksImplemented support for all ACPI 3.0 reserved names and methods.
10537138287Smarks
10538193267SjkimImplemented all ACPI 3.0 grammar elements in the front-end, including 
10539193267Sjkimsupport for semicolons.
10540138287Smarks
10541138287SmarksImplemented the ACPI 3.0 Function() and ToUUID() macros
10542138287Smarks
10543193267SjkimFixed a problem in the disassembler where a Scope() operator would not be 
10544193267Sjkimemitted properly if the target of the scope was in another table.
10545138287Smarks
10546138287Smarks----------------------------------------
10547138287Smarks15 October 2004.  Summary of changes for version 20041015:
10548138287Smarks
10549193267SjkimNote:  ACPI CA is currently undergoing an in-depth and complete formal 
10550193267Sjkimevaluation to test/verify the following areas. Other suggestions are 
10551193267Sjkimwelcome. This will result in an increase in the frequency of releases and 
10552193267Sjkimthe number of bug fixes in the next few months.
10553138287Smarks  - Functional tests for all ASL/AML operators
10554138287Smarks  - All implicit/explicit type conversions
10555138287Smarks  - Bit fields and operation regions
10556138287Smarks  - 64-bit math support and 32-bit-only "truncated" math support
10557138287Smarks  - Exceptional conditions, both compiler and interpreter
10558138287Smarks  - Dynamic object deletion and memory leaks
10559138287Smarks  - ACPI 3.0 support when implemented
10560138287Smarks  - External interfaces to the ACPI subsystem
10561138287Smarks
10562138287Smarks
10563138287Smarks1) ACPI CA Core Subsystem:
10564138287Smarks
10565241973SjkimFixed two alignment issues on 64-bit platforms - within debug statements 
10566241973Sjkimin 
10567241973SjkimAcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed references to the 
10568241973SjkimAddress 
10569193267Sjkimfield within the non-aligned ACPI generic address structure.
10570138287Smarks
10571193267SjkimFixed a problem in the Increment and Decrement operators where incorrect 
10572193267Sjkimoperand resolution could result in the inadvertent modification of the 
10573193267Sjkimoriginal integer when the integer is passed into another method as an 
10574193267Sjkimargument and the arg is then incremented/decremented.
10575138287Smarks
10576241973SjkimFixed a problem in the FromBCD operator where the upper 32-bits of a 64-
10577241973Sjkimbit 
10578193267SjkimBCD number were truncated during conversion.
10579138287Smarks
10580241973SjkimFixed a problem in the ToDecimal operator where the length of the 
10581241973Sjkimresulting 
10582253690Sjkimstring could be set incorrectly too long if the input operand was a 
10583253690SjkimBuffer 
10584193267Sjkimobject.
10585138287Smarks
10586241973SjkimFixed a problem in the Logical operators (LLess, etc.) where a NULL byte 
10587241973Sjkim(0) 
10588193267Sjkimwithin a buffer would prematurely terminate a compare between buffer 
10589193267Sjkimobjects.
10590138287Smarks
10591193267SjkimAdded a check for string overflow (>200 characters as per the ACPI 
10592193267Sjkimspecification) during the Concatenate operator with two string operands.
10593138287Smarks
10594193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10595253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10596253690Sjkimproduced 
10597193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10598193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10599241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10600241973SjkimNote 
10601241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10602241973Sjkimand 
10603193267Sjkimthe compiler options used during generation.
10604138287Smarks
10605138287Smarks  Previous Release:
10606138287Smarks    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
10607138287Smarks    Debug Version:     164.6K Code,  68.5K Data,  233.1K Total
10608138287Smarks  Current Release:
10609138287Smarks    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
10610138287Smarks    Debug Version:     164.8K Code,  68.6K Data,  233.4K Total
10611138287Smarks
10612138287Smarks
10613167802Sjkim
10614138287Smarks2) iASL Compiler/Disassembler:
10615138287Smarks
10616193267SjkimAllow the use of the ObjectType operator on uninitialized Locals and Args 
10617193267Sjkim(returns 0 as per the ACPI specification).
10618138287Smarks
10619253690SjkimFixed a problem where the compiler would fault if there was a syntax 
10620253690Sjkimerror 
10621193267Sjkimin the FieldName of all of the various CreateXXXField operators.
10622138287Smarks
10623253690SjkimDisallow the use of lower case letters within the EISAID macro, as per 
10624253690Sjkimthe 
10625241973SjkimACPI specification.  All EISAID strings must be of the form "UUUNNNN" 
10626241973SjkimWhere 
10627193267SjkimU is an uppercase letter and N is a hex digit.
10628138287Smarks
10629138287Smarks
10630138287Smarks----------------------------------------
10631138287Smarks06 October 2004.  Summary of changes for version 20041006:
10632138287Smarks
10633138287Smarks1) ACPI CA Core Subsystem:
10634138287Smarks
10635193267SjkimImplemented support for the ACPI 3.0 Timer operator. This ASL function 
10636193267Sjkimimplements a 64-bit timer with 100 nanosecond granularity.
10637138287Smarks
10638193267SjkimDefined a new OSL interface, AcpiOsGetTimer. This interface is used to 
10639241973Sjkimimplement the ACPI 3.0 Timer operator.  This allows the host OS to 
10640241973Sjkimimplement 
10641253690Sjkimthe timer with the best clock available. Also, it keeps the core 
10642253690Sjkimsubsystem 
10643193267Sjkimout of the clock handling business, since the host OS (usually) performs 
10644193267Sjkimthis function.
10645138287Smarks
10646193267SjkimFixed an alignment issue on 64-bit platforms. The HwLowLevelRead(Write) 
10647193267Sjkimfunctions use a 64-bit address which is part of the packed ACPI Generic 
10648241973SjkimAddress Structure. Since the structure is non-aligned, the alignment 
10649241973Sjkimmacros 
10650193267Sjkimare now used to extract the address to a local variable before use.
10651138287Smarks
10652241973SjkimFixed a problem where the ToInteger operator assumed all input strings 
10653241973Sjkimwere 
10654253690Sjkimhexadecimal. The operator now handles both decimal strings and hex 
10655253690Sjkimstrings 
10656193267Sjkim(prefixed with "0x").
10657138287Smarks
10658193267SjkimFixed a problem where the string length in the string object created as a 
10659193267Sjkimresult of the internal ConvertToString procedure could be incorrect. This 
10660253690Sjkimpotentially affected all implicit conversions and also the 
10661253690SjkimToDecimalString 
10662193267Sjkimand ToHexString operators.
10663138287Smarks
10664193267SjkimFixed two problems in the ToString operator. If the length parameter was 
10665193267Sjkimzero, an incorrect string object was created and the value of the input 
10666193267Sjkimlength parameter was inadvertently changed from zero to Ones.
10667138287Smarks
10668241973SjkimFixed a problem where the optional ResourceSource string in the 
10669241973SjkimExtendedIRQ 
10670193267Sjkimresource macro was ignored.
10671138287Smarks
10672241973SjkimSimplified the interfaces to the internal division functions, reducing 
10673241973Sjkimcode 
10674193267Sjkimsize and complexity.
10675138287Smarks
10676193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10677253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10678253690Sjkimproduced 
10679193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10680193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10681241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10682241973SjkimNote 
10683241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10684241973Sjkimand 
10685193267Sjkimthe compiler options used during generation.
10686138287Smarks
10687138287Smarks  Previous Release:
10688138287Smarks    Non-Debug Version:  77.9K Code,  11.4K Data,   89.3K Total
10689138287Smarks    Debug Version:     164.5K Code,  68.3K Data,  232.8K Total
10690138287Smarks  Current Release:
10691138287Smarks    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
10692138287Smarks    Debug Version:     164.6K Code,  68.5K Data,  233.1K Total
10693138287Smarks
10694138287Smarks
10695138287Smarks2) iASL Compiler/Disassembler:
10696138287Smarks
10697138287SmarksImplemented support for the ACPI 3.0 Timer operator.
10698138287Smarks
10699241973SjkimFixed a problem where the Default() operator was inadvertently ignored in 
10700241973Sjkima 
10701193267SjkimSwitch/Case block.  This was a problem in the translation of the Switch 
10702193267Sjkimstatement to If...Else pairs.
10703138287Smarks
10704241973SjkimAdded support to allow a standalone Return operator, with no parentheses 
10705241973Sjkim(or 
10706193267Sjkimoperands).
10707138287Smarks
10708193267SjkimFixed a problem with code generation for the ElseIf operator where the 
10709193267Sjkimtranslated Else...If parse tree was improperly constructed leading to the 
10710193267Sjkimloss of some code.
10711138287Smarks
10712138287Smarks----------------------------------------
10713138287Smarks22 September 2004.  Summary of changes for version 20040922:
10714138287Smarks
10715138287Smarks1) ACPI CA Core Subsystem:
10716138287Smarks
10717241973SjkimFixed a problem with the implementation of the LNot() operator where 
10718241973Sjkim"Ones" 
10719241973Sjkimwas not returned for the TRUE case. Changed the code to return Ones 
10720241973Sjkiminstead 
10721241973Sjkimof (!Arg) which was usually 1. This change affects iASL constant folding 
10722241973Sjkimfor 
10723193267Sjkimthis operator also.
10724138287Smarks
10725253690SjkimFixed a problem in AcpiUtInitializeBuffer where an existing buffer was 
10726253690Sjkimnot 
10727193267Sjkiminitialized properly -- Now zero the entire buffer in this case where the 
10728193267Sjkimbuffer already exists.
10729138287Smarks
10730193267SjkimChanged the interface to AcpiOsSleep from (UINT32 Seconds, UINT32 
10731193267SjkimMilliseconds) to simply (ACPI_INTEGER Milliseconds). This simplifies all 
10732193267Sjkimrelated code considerably. This will require changes/updates to all OS 
10733193267Sjkiminterface layers (OSLs.)
10734138287Smarks
10735241973SjkimImplemented a new external interface, AcpiInstallExceptionHandler, to 
10736241973Sjkimallow 
10737241973Sjkima system exception handler to be installed. This handler is invoked upon 
10738241973Sjkimany 
10739193267Sjkimrun-time exception that occurs during control method execution.
10740138287Smarks
10741193267SjkimAdded support for the DSDT in AcpiTbFindTable. This allows the 
10742138287SmarksDataTableRegion() operator to access the local copy of the DSDT.
10743138287Smarks
10744193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10745253690Sjkimshown below. These are the code and data sizes for the acpica.lib 
10746253690Sjkimproduced 
10747193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10748193267Sjkimany ACPI driver or OSPM code. The debug version of the code includes the 
10749241973Sjkimdebug output trace mechanism and has a much larger code and data size. 
10750241973SjkimNote 
10751241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10752241973Sjkimand 
10753193267Sjkimthe compiler options used during generation.
10754138287Smarks
10755138287Smarks  Previous Release:
10756138287Smarks    Non-Debug Version:  77.8K Code,  11.4K Data,   89.2K Total
10757138287Smarks    Debug Version:     164.2K Code,  68.2K Data,  232.4K Total
10758138287Smarks  Current Release:
10759138287Smarks    Non-Debug Version:  77.9K Code,  11.4K Data,   89.3K Total
10760138287Smarks    Debug Version:     164.5K Code,  68.3K Data,  232.8K Total
10761138287Smarks
10762138287Smarks
10763138287Smarks2) iASL Compiler/Disassembler:
10764138287Smarks
10765193267SjkimFixed a problem with constant folding and the LNot operator. LNot was 
10766253690Sjkimreturning 1 in the TRUE case, not Ones as per the ACPI specification. 
10767253690SjkimThis 
10768193267Sjkimcould result in the generation of an incorrect folded/reduced constant.
10769138287Smarks
10770193267SjkimEnd-Of-File is now allowed within a "//"-style comment.  A parse error no 
10771253690Sjkimlonger occurs if such a comment is at the very end of the input ASL 
10772253690Sjkimsource 
10773193267Sjkimfile.
10774138287Smarks
10775193267SjkimImplemented the "-r" option to override the Revision in the table header. 
10776241973SjkimThe initial use of this option will be to simplify the evaluation of the 
10777241973SjkimAML 
10778241973Sjkiminterpreter by allowing a single ASL source module to be compiled for 
10779241973Sjkimeither 
10780193267Sjkim32-bit or 64-bit integers.
10781138287Smarks
10782138287Smarks
10783138287Smarks----------------------------------------
10784138287Smarks27 August 2004.  Summary of changes for version 20040827:
10785138287Smarks
10786138287Smarks1) ACPI CA Core Subsystem:
10787138287Smarks
10788193267Sjkim- Implemented support for implicit object conversion in the non-numeric 
10789253690Sjkimlogical operators (LEqual, LGreater, LGreaterEqual, LLess, LLessEqual, 
10790253690Sjkimand 
10791193267SjkimLNotEqual.)  Any combination of Integers/Strings/Buffers may now be used; 
10792253690Sjkimthe second operand is implicitly converted on the fly to match the type 
10793253690Sjkimof 
10794193267Sjkimthe first operand.  For example:
10795138287Smarks
10796138287Smarks    LEqual (Source1, Source2)
10797138287Smarks
10798241973SjkimSource1 and Source2 must each evaluate to an integer, a string, or a 
10799241973Sjkimbuffer. 
10800253690SjkimThe data type of Source1 dictates the required type of Source2. Source2 
10801253690Sjkimis 
10802193267Sjkimimplicitly converted if necessary to match the type of Source1.
10803138287Smarks
10804241973Sjkim- Updated and corrected the behavior of the string conversion support.  
10805241973SjkimThe 
10806193267Sjkimrules concerning conversion of buffers to strings (according to the ACPI 
10807193267Sjkimspecification) are as follows:
10808138287Smarks
10809193267SjkimToDecimalString - explicit byte-wise conversion of buffer to string of 
10810241973Sjkimdecimal values (0-255) separated by commas. ToHexString - explicit byte-
10811241973Sjkimwise 
10812193267Sjkimconversion of buffer to string of hex values (0-FF) separated by commas. 
10813241973SjkimToString - explicit byte-wise conversion of buffer to string.  Byte-by-
10814241973Sjkimbyte 
10815241973Sjkimcopy with no transform except NULL terminated. Any other implicit buffer-
10816241973Sjkimto-
10817253690Sjkimstring conversion - byte-wise conversion of buffer to string of hex 
10818253690Sjkimvalues 
10819193267Sjkim(0-FF) separated by spaces.
10820138287Smarks
10821138287Smarks- Fixed typo in definition of AcpiGbl_EnableInterpreterSlack.
10822138287Smarks
10823253690Sjkim- Fixed a problem in AcpiNsGetPathnameLength where the returned length 
10824253690Sjkimwas 
10825193267Sjkimone byte too short in the case of a node in the root scope.  This could 
10826193267Sjkimcause a fault during debug output.
10827138287Smarks
10828241973Sjkim- Code and Data Size: Current and previous core subsystem library sizes 
10829241973Sjkimare 
10830241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
10831241973Sjkimproduced 
10832193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10833193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
10834241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
10835241973SjkimNote 
10836241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10837241973Sjkimand 
10838193267Sjkimthe compiler options used during generation.
10839138287Smarks
10840138287Smarks  Previous Release:
10841138287Smarks    Non-Debug Version:  77.9K Code,  11.5K Data,   89.4K Total
10842138287Smarks    Debug Version:     164.1K Code,  68.3K Data,  232.4K Total
10843138287Smarks  Current Release:
10844138287Smarks    Non-Debug Version:  77.8K Code,  11.4K Data,   89.2K Total
10845138287Smarks    Debug Version:     164.2K Code,  68.2K Data,  232.4K Total
10846138287Smarks
10847138287Smarks
10848138287Smarks2) iASL Compiler/Disassembler:
10849138287Smarks
10850138287Smarks- Fixed a Linux generation error.
10851138287Smarks
10852138287Smarks
10853138287Smarks----------------------------------------
10854138287Smarks16 August 2004.  Summary of changes for version 20040816:
10855138287Smarks
10856138287Smarks1) ACPI CA Core Subsystem:
10857138287Smarks
10858193267SjkimDesigned and implemented support within the AML interpreter for the so-
10859253690Sjkimcalled "implicit return".  This support returns the result of the last 
10860253690SjkimASL 
10861193267Sjkimoperation within a control method, in the absence of an explicit Return() 
10862193267Sjkimoperator.  A few machines depend on this behavior, even though it is not 
10863253690Sjkimexplicitly supported by the ASL language.  It is optional support that 
10864253690Sjkimcan 
10865193267Sjkimbe enabled at runtime via the AcpiGbl_EnableInterpreterSlack flag.
10866138287Smarks
10867241973SjkimRemoved support for the PCI_Config address space from the internal low 
10868241973Sjkimlevel 
10869193267Sjkimhardware interfaces (AcpiHwLowLevelRead and AcpiHwLowLevelWrite).  This 
10870241973Sjkimsupport was not used internally, and would not work correctly anyway 
10871241973Sjkimbecause 
10872193267Sjkimthe PCI bus number and segment number were not supported.  There are 
10873241973Sjkimseparate interfaces for PCI configuration space access because of the 
10874241973Sjkimunique 
10875138287Smarksinterface.
10876138287Smarks
10877193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10878241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
10879241973Sjkimproduced 
10880193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10881193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
10882241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
10883241973SjkimNote 
10884241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10885241973Sjkimand 
10886193267Sjkimthe compiler options used during generation.
10887138287Smarks
10888138287Smarks  Previous Release:
10889138287Smarks    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
10890138287Smarks    Debug Version:     164.1K Code,  68.2K Data,  232.3K Total
10891138287Smarks  Current Release:
10892138287Smarks    Non-Debug Version:  77.9K Code,  11.5K Data,   89.4K Total
10893138287Smarks    Debug Version:     164.1K Code,  68.3K Data,  232.4K Total
10894138287Smarks
10895138287Smarks
10896138287Smarks2) iASL Compiler/Disassembler:
10897138287Smarks
10898193267SjkimFixed a problem where constants in ASL expressions at the root level (not 
10899193267Sjkimwithin a control method) could be inadvertently truncated during code 
10900193267Sjkimgeneration.  This problem was introduced in the 20040715 release.
10901138287Smarks
10902138287Smarks
10903138287Smarks----------------------------------------
10904138287Smarks15 July 2004.  Summary of changes for version 20040715:
10905138287Smarks
10906138287Smarks1) ACPI CA Core Subsystem:
10907138287Smarks
10908241973SjkimRestructured the internal HW GPE interfaces to pass/track the current 
10909241973Sjkimstate 
10910193267Sjkimof interrupts (enabled/disabled) in order to avoid possible deadlock and 
10911193267Sjkimincrease flexibility of the interfaces.
10912138287Smarks
10913241973SjkimImplemented a "lexicographical compare" for String and Buffer objects 
10914241973Sjkimwithin 
10915253690Sjkimthe logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual -
10916253690Sjkim- 
10917241973Sjkimas per further clarification to the ACPI specification.  Behavior is 
10918241973Sjkimsimilar 
10919193267Sjkimto C library "strcmp".
10920138287Smarks
10921193267SjkimCompleted a major reduction in CPU stack use for the AcpiGetFirmwareTable 
10922193267Sjkimexternal function.  In the 32-bit non-debug case, the stack use has been 
10923193267Sjkimreduced from 168 bytes to 32 bytes.
10924138287Smarks
10925241973SjkimDeployed a new run-time configuration flag, 
10926241973SjkimAcpiGbl_EnableInterpreterSlack, 
10927193267Sjkimwhose purpose is to allow the AML interpreter to forgive certain bad AML 
10928193267Sjkimconstructs.  Default setting is FALSE.
10929138287Smarks
10930241973SjkimImplemented the first use of AcpiGbl_EnableInterpreterSlack in the Field 
10931241973SjkimIO 
10932241973Sjkimsupport code.  If enabled, it allows field access to go beyond the end of 
10933241973Sjkima 
10934241973Sjkimregion definition if the field is within the region length rounded up to 
10935241973Sjkimthe 
10936193267Sjkimnext access width boundary (a common coding error.)
10937138287Smarks
10938193267SjkimRenamed OSD_HANDLER to ACPI_OSD_HANDLER, and OSD_EXECUTION_CALLBACK to 
10939241973SjkimACPI_OSD_EXEC_CALLBACK for consistency with other ACPI symbols.  Also, 
10940241973Sjkimthese 
10941193267Sjkimsymbols are lowercased by the latest version of the AcpiSrc tool.
10942138287Smarks
10943193267SjkimThe prototypes for the PCI interfaces in acpiosxf.h have been updated to 
10944193267Sjkimrename "Register" to simply "Reg" to prevent certain compilers from 
10945193267Sjkimcomplaining.
10946138287Smarks
10947193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
10948241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
10949241973Sjkimproduced 
10950193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
10951193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
10952241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
10953241973SjkimNote 
10954241973Sjkimthat these values will vary depending on the efficiency of the compiler 
10955241973Sjkimand 
10956193267Sjkimthe compiler options used during generation.
10957138287Smarks
10958138287Smarks  Previous Release:
10959138287Smarks    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
10960138287Smarks    Debug Version:     163.8K Code,  68.2K Data,  232.0K Total
10961138287Smarks  Current Release:
10962138287Smarks    Non-Debug Version:  78.0K Code,  11.5K Data,   89.5K Total
10963138287Smarks    Debug Version:     164.1K Code,  68.2K Data,  232.3K Total
10964138287Smarks
10965138287Smarks
10966138287Smarks2) iASL Compiler/Disassembler:
10967138287Smarks
10968193267SjkimImplemented full support for Package objects within the Case() operator.  
10969193267SjkimNote: The Break() operator is currently not supported within Case blocks 
10970241973Sjkim(TermLists) as there is some question about backward compatibility with 
10971241973SjkimACPI 
10972193267Sjkim1.0 interpreters.
10973138287Smarks
10974167802Sjkim
10975253690SjkimFixed a problem where complex terms were not supported properly within 
10976253690Sjkimthe 
10977193267SjkimSwitch() operator.
10978138287Smarks
10979193267SjkimEliminated extraneous warning for compiler-emitted reserved names of the 
10980193267Sjkimform "_T_x".  (Used in Switch/Case operators.)
10981138287Smarks
10982193267SjkimEliminated optimization messages for "_T_x" objects and small constants 
10983193267Sjkimwithin the DefinitionBlock operator.
10984138287Smarks
10985138287Smarks
10986138287Smarks----------------------------------------
10987138287Smarks15 June 2004.  Summary of changes for version 20040615:
10988138287Smarks
10989138287Smarks1) ACPI CA Core Subsystem:
10990138287Smarks
10991241973SjkimImplemented support for Buffer and String objects (as per ACPI 2.0) for 
10992241973Sjkimthe 
10993193267Sjkimfollowing ASL operators:  LEqual, LGreater, LLess, LGreaterEqual, and 
10994193267SjkimLLessEqual.
10995138287Smarks
10996193267SjkimAll directory names in the entire source package are lower case, as they 
10997193267Sjkimwere in earlier releases.
10998138287Smarks
10999241973SjkimImplemented "Disassemble" command in the AML debugger that will 
11000241973Sjkimdisassemble 
11001193267Sjkima single control method.
11002138287Smarks
11003193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11004241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11005241973Sjkimproduced 
11006193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11007193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11008241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11009241973SjkimNote 
11010241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11011241973Sjkimand 
11012193267Sjkimthe compiler options used during generation.
11013138287Smarks
11014138287Smarks  Previous Release:
11015138287Smarks    Non-Debug Version:  77.7K Code,  11.5K Data,   89.2K Total
11016138287Smarks    Debug Version:     163.3K Code,  67.2K Data,  230.5K Total
11017167802Sjkim
11018138287Smarks  Current Release:
11019138287Smarks    Non-Debug Version:  77.8K Code,  11.5K Data,   89.3K Total
11020138287Smarks    Debug Version:     163.8K Code,  68.2K Data,  232.0K Total
11021138287Smarks
11022138287Smarks
11023138287Smarks2) iASL Compiler/Disassembler:
11024138287Smarks
11025241973SjkimImplemented support for Buffer and String objects (as per ACPI 2.0) for 
11026241973Sjkimthe 
11027193267Sjkimfollowing ASL operators:  LEqual, LGreater, LLess, LGreaterEqual, and 
11028193267SjkimLLessEqual.
11029138287Smarks
11030193267SjkimAll directory names in the entire source package are lower case, as they 
11031193267Sjkimwere in earlier releases.
11032138287Smarks
11033193267SjkimFixed a fault when using the -g or -d<nofilename> options if the FADT was 
11034193267Sjkimnot found.
11035138287Smarks
11036241973SjkimFixed an issue with the Windows version of the compiler where later 
11037241973Sjkimversions 
11038193267Sjkimof Windows place the FADT in the registry under the name "FADT" and not 
11039193267Sjkim"FACP" as earlier versions did.  This applies when using the -g or -
11040193267Sjkimd<nofilename> options.  The compiler now looks for both strings as 
11041193267Sjkimnecessary.
11042138287Smarks
11043241973SjkimFixed a problem with compiler namepath optimization where a namepath 
11044241973Sjkimwithin 
11045241973Sjkimthe Scope() operator could not be optimized if the namepath was a subpath 
11046241973Sjkimof 
11047193267Sjkimthe current scope path.
11048138287Smarks
11049138287Smarks----------------------------------------
11050131440Smarks27 May 2004.  Summary of changes for version 20040527:
11051131440Smarks
11052131440Smarks1) ACPI CA Core Subsystem:
11053131440Smarks
11054241973SjkimCompleted a new design and implementation for EBDA (Extended BIOS Data 
11055241973SjkimArea) 
11056241973Sjkimsupport in the RSDP scan code.  The original code improperly scanned for 
11057241973Sjkimthe 
11058241973SjkimEBDA by simply scanning from memory location 0 to 0x400.  The correct 
11059241973Sjkimmethod 
11060193267Sjkimis to first obtain the EBDA pointer from within the BIOS data area, then 
11061253690Sjkimscan 1K of memory starting at the EBDA pointer.  There appear to be few 
11062253690Sjkimif 
11063131440Smarksany machines that place the RSDP in the EBDA, however.
11064131440Smarks
11065193267SjkimIntegrated a fix for a possible fault during evaluation of BufferField 
11066193267Sjkimarguments.  Obsolete code that was causing the problem was removed.
11067131440Smarks
11068193267SjkimFound and fixed a problem in the Field Support Code where data could be 
11069193267Sjkimcorrupted on a bit field read that starts on an aligned boundary but does 
11070193267Sjkimnot end on an aligned boundary.  Merged the read/write "datum length" 
11071193267Sjkimcalculation code into a common procedure.
11072131440Smarks
11073131440SmarksRolled in a couple of changes to the FreeBSD-specific header.
11074131440Smarks
11075167802Sjkim
11076193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11077241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11078241973Sjkimproduced 
11079193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11080193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11081241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11082241973SjkimNote 
11083241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11084241973Sjkimand 
11085193267Sjkimthe compiler options used during generation.
11086131440Smarks
11087131440Smarks  Previous Release:
11088131440Smarks    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
11089131440Smarks    Debug Version:     163.2K Code,  67.2K Data,  230.4K Total
11090131440Smarks  Current Release:
11091131440Smarks    Non-Debug Version:  77.7K Code,  11.5K Data,   89.2K Total
11092131440Smarks    Debug Version:     163.3K Code,  67.2K Data,  230.5K Total
11093131440Smarks
11094131440Smarks
11095131440Smarks2) iASL Compiler/Disassembler:
11096131440Smarks
11097253690SjkimFixed a generation warning produced by some overly-verbose compilers for 
11098253690Sjkima 
11099193267Sjkim64-bit constant.
11100131440Smarks
11101131440Smarks----------------------------------------
11102129684Snjl14 May 2004.  Summary of changes for version 20040514:
11103129684Snjl
11104129684Snjl1) ACPI CA Core Subsystem:
11105129684Snjl
11106193267SjkimFixed a problem where hardware GPE enable bits sometimes not set properly 
11107193267Sjkimduring and after GPE method execution.  Result of 04/27 changes.
11108129684Snjl
11109129684SnjlRemoved extra "clear all GPEs" when sleeping/waking.
11110129684Snjl
11111193267SjkimRemoved AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the single 
11112241973SjkimAcpiHwWriteGpeEnableReg. Changed a couple of calls to the functions above 
11113241973Sjkimto 
11114193267Sjkimthe new AcpiEv* calls as appropriate.
11115129684Snjl
11116241973SjkimACPI_OS_NAME was removed from the OS-specific headers.  The default name 
11117241973Sjkimis 
11118253690Sjkimnow "Microsoft Windows NT" for maximum compatibility.  However this can 
11119253690Sjkimbe 
11120193267Sjkimchanged by modifying the acconfig.h file.
11121129684Snjl
11122193267SjkimAllow a single invocation of AcpiInstallNotifyHandler for a handler that 
11123193267Sjkimtraps both types of notifies (System, Device).  Use ACPI_ALL_NOTIFY flag. 
11124129684Snjl
11125193267SjkimRun _INI methods on ThermalZone objects.  This is against the ACPI 
11126241973Sjkimspecification, but there is apparently ASL code in the field that has 
11127241973Sjkimthese 
11128193267Sjkim_INI methods, and apparently "other" AML interpreters execute them.
11129129684Snjl
11130193267SjkimPerformed a full 16/32/64 bit lint that resulted in some small changes.
11131129684Snjl
11132193267SjkimAdded a sleep simulation command to the AML debugger to test sleep code. 
11133129684Snjl
11134193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11135241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11136241973Sjkimproduced 
11137193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11138193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11139241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11140241973SjkimNote 
11141241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11142241973Sjkimand 
11143193267Sjkimthe compiler options used during generation.
11144129684Snjl
11145129684Snjl  Previous Release:
11146129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
11147129684Snjl    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
11148129684Snjl  Current Release:
11149129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
11150129684Snjl    Debug Version:     163.2K Code,  67.2K Data,  230.4K Total
11151129684Snjl
11152129684Snjl----------------------------------------
11153129684Snjl27 April 2004.  Summary of changes for version 20040427:
11154129684Snjl
11155129684Snjl1) ACPI CA Core Subsystem:
11156129684Snjl
11157193267SjkimCompleted a major overhaul of the GPE handling within ACPI CA.  There are 
11158241973Sjkimnow three types of GPEs:  wake-only, runtime-only, and combination 
11159241973Sjkimwake/run.  
11160193267SjkimThe only GPEs allowed to be combination wake/run are for button-style 
11161241973Sjkimdevices such as a control-method power button, control-method sleep 
11162241973Sjkimbutton, 
11163241973Sjkimor a notebook lid switch.  GPEs that have an _Lxx or _Exx method and are 
11164241973Sjkimnot 
11165193267Sjkimreferenced by any _PRW methods are marked for "runtime" and hardware 
11166253690Sjkimenabled.  Any GPE that is referenced by a _PRW method is marked for 
11167253690Sjkim"wake" 
11168193267Sjkim(and disabled at runtime).  However, at sleep time, only those GPEs that 
11169241973Sjkimhave been specifically enabled for wake via the AcpiEnableGpe interface 
11170241973Sjkimwill 
11171193267Sjkimactually be hardware enabled.
11172129684Snjl
11173241973SjkimA new external interface has been added, AcpiSetGpeType(), that is meant 
11174241973Sjkimto 
11175253690Sjkimbe used by device drivers to force a GPE to a particular type.  It will 
11176253690Sjkimbe 
11177193267Sjkimespecially useful for the drivers for the button devices mentioned above.
11178129684Snjl
11179193267SjkimCompleted restructuring of the ACPI CA initialization sequence so that 
11180241973Sjkimdefault operation region handlers are installed before GPEs are 
11181241973Sjkiminitialized 
11182253690Sjkimand the _PRW methods are executed.  This will prevent errors when the 
11183253690Sjkim_PRW 
11184193267Sjkimmethods attempt to access system memory or I/O space.
11185129684Snjl
11186241973SjkimGPE enable/disable no longer reads the GPE enable register.  We now keep 
11187241973Sjkimthe 
11188193267Sjkimenable info for runtime and wake separate and in the GPE_EVENT_INFO.  We 
11189193267Sjkimthus no longer depend on the hardware to maintain these bits.
11190129684Snjl
11191193267SjkimAlways clear the wake status and fixed/GPE status bits before sleep, even 
11192193267Sjkimfor state S5.
11193129684Snjl
11194193267SjkimImproved the AML debugger output for displaying the GPE blocks and their 
11195193267Sjkimcurrent status.
11196129684Snjl
11197241973SjkimAdded new strings for the _OSI method, of the form "Windows 2001 SPx" 
11198241973Sjkimwhere 
11199193267Sjkimx = 0,1,2,3,4.
11200129684Snjl
11201253690SjkimFixed a problem where the physical address was incorrectly calculated 
11202253690Sjkimwhen 
11203241973Sjkimthe Load() operator was used to directly load from an Operation Region 
11204241973Sjkim(vs. 
11205241973Sjkimloading from a Field object.)  Also added check for minimum table length 
11206241973Sjkimfor 
11207193267Sjkimthis case.
11208129684Snjl
11209193267SjkimFix for multiple mutex acquisition.  Restore original thread SyncLevel on 
11210193267Sjkimmutex release.
11211129684Snjl
11212193267SjkimAdded ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for 
11213129684Snjlconsistency with the other fields returned.
11214129684Snjl
11215193267SjkimShrunk the ACPI_GPE_EVENT_INFO structure by 40%.  There is one such 
11216193267Sjkimstructure for each GPE in the system, so the size of this structure is 
11217193267Sjkimimportant.
11218129684Snjl
11219241973SjkimCPU stack requirement reduction:  Cleaned up the method execution and 
11220241973Sjkimobject 
11221193267Sjkimevaluation paths so that now a parameter structure is passed, instead of 
11222193267Sjkimcopying the various method parameters over and over again.
11223129684Snjl
11224193267SjkimIn evregion.c:  Correctly exit and reenter the interpreter region if and 
11225241973Sjkimonly if dispatching an operation region request to a user-installed 
11226241973Sjkimhandler.  
11227193267SjkimDo not exit/reenter when dispatching to a default handler (e.g., default 
11228193267Sjkimsystem memory or I/O handlers)
11229129684Snjl
11230129684Snjl
11231253690SjkimNotes for updating drivers for the new GPE support.  The following 
11232253690Sjkimchanges 
11233241973Sjkimmust be made to ACPI-related device drivers that are attached to one or 
11234241973Sjkimmore 
11235241973SjkimGPEs: (This information will be added to the ACPI CA Programmer 
11236241973SjkimReference.)
11237129684Snjl
11238253690Sjkim1) AcpiInstallGpeHandler no longer automatically enables the GPE, you 
11239253690Sjkimmust 
11240193267Sjkimexplicitly call AcpiEnableGpe.
11241193267Sjkim2) There is a new interface called AcpiSetGpeType. This should be called 
11242193267Sjkimbefore enabling the GPE.  Also, this interface will automatically disable 
11243193267Sjkimthe GPE if it is currently enabled.
11244129684Snjl3) AcpiEnableGpe no longer supports a GPE type flag.
11245129684Snjl
11246129684SnjlSpecific drivers that must be changed:
11247129684Snjl1) EC driver:
11248193267Sjkim    AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED, 
11249129684SnjlAeGpeHandler, NULL);
11250129684Snjl    AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
11251129684Snjl    AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
11252129684Snjl
11253129684Snjl2) Button Drivers (Power, Lid, Sleep):
11254129684SnjlRun _PRW method under parent device
11255129684SnjlIf _PRW exists: /* This is a control-method button */
11256129684Snjl    Extract GPE number and possibly GpeDevice
11257129684Snjl    AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
11258129684Snjl    AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
11259129684Snjl
11260241973SjkimFor all other devices that have _PRWs, we automatically set the GPE type 
11261241973Sjkimto 
11262253690SjkimACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically (wake) enabled.  
11263253690SjkimThis 
11264253690Sjkimmust be done on a selective basis, usually requiring some kind of user 
11265253690Sjkimapp 
11266193267Sjkimto allow the user to pick the wake devices.
11267129684Snjl
11268129684Snjl
11269193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11270241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11271241973Sjkimproduced 
11272193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11273193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11274241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11275241973SjkimNote 
11276241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11277241973Sjkimand 
11278193267Sjkimthe compiler options used during generation.
11279129684Snjl
11280129684Snjl  Previous Release:
11281129684Snjl    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
11282129684Snjl    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
11283129684Snjl  Current Release:
11284167802Sjkim
11285129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
11286129684Snjl    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
11287129684Snjl
11288129684Snjl
11289129684Snjl
11290129684Snjl----------------------------------------
11291128212Snjl02 April 2004.  Summary of changes for version 20040402:
11292128212Snjl
11293128212Snjl1) ACPI CA Core Subsystem:
11294128212Snjl
11295193267SjkimFixed an interpreter problem where an indirect store through an ArgX 
11296193267Sjkimparameter was incorrectly applying the "implicit conversion rules" during 
11297241973Sjkimthe store.  From the ACPI specification: "If the target is a method local 
11298241973Sjkimor 
11299193267Sjkimargument (LocalX or ArgX), no conversion is performed and the result is 
11300193267Sjkimstored directly to the target".  The new behavior is to disable implicit 
11301193267Sjkimconversion during ALL stores to an ArgX.
11302128212Snjl
11303193267SjkimChanged the behavior of the _PRW method scan to ignore any and all errors 
11304193267Sjkimreturned by a given _PRW.  This prevents the scan from aborting from the 
11305193267Sjkimfailure of any single _PRW.
11306128212Snjl
11307241973SjkimMoved the runtime configuration parameters from the global init procedure 
11308241973Sjkimto 
11309193267Sjkimstatic variables in acglobal.h.  This will allow the host to override the 
11310193267Sjkimdefault values easily.
11311128212Snjl
11312193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11313241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11314241973Sjkimproduced 
11315193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11316193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11317241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11318241973SjkimNote 
11319241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11320241973Sjkimand 
11321193267Sjkimthe compiler options used during generation.
11322128212Snjl
11323128212Snjl  Previous Release:
11324128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
11325128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
11326128212Snjl  Current Release:
11327128212Snjl    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
11328128212Snjl    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
11329128212Snjl
11330128212Snjl
11331128212Snjl2) iASL Compiler/Disassembler:
11332128212Snjl
11333253690SjkimiASL now fully disassembles SSDTs.  However, External() statements are 
11334253690Sjkimnot 
11335193267Sjkimgenerated automatically for unresolved symbols at this time.  This is a 
11336193267Sjkimplanned feature for future implementation.
11337128212Snjl
11338241973SjkimFixed a scoping problem in the disassembler that occurs when the type of 
11339241973Sjkimthe 
11340193267Sjkimtarget of a Scope() operator is overridden.  This problem caused an 
11341193267Sjkimincorrectly nested internal namespace to be constructed.
11342128212Snjl
11343241973SjkimAny warnings or errors that are emitted during disassembly are now 
11344241973Sjkimcommented 
11345253690Sjkimout automatically so that the resulting file can be recompiled without 
11346253690Sjkimany 
11347193267Sjkimhand editing.
11348128212Snjl
11349128212Snjl----------------------------------------
11350128212Snjl26 March 2004.  Summary of changes for version 20040326:
11351128212Snjl
11352128212Snjl1) ACPI CA Core Subsystem:
11353128212Snjl
11354193267SjkimImplemented support for "wake" GPEs via interaction between GPEs and the 
11355193267Sjkim_PRW methods.  Every GPE that is pointed to by one or more _PRWs is 
11356193267Sjkimidentified as a WAKE GPE and by default will no longer be enabled at 
11357241973Sjkimruntime.  Previously, we were blindly enabling all GPEs with a 
11358241973Sjkimcorresponding 
11359241973Sjkim_Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway.  
11360241973SjkimWe 
11361193267Sjkimbelieve this has been the cause of thousands of "spurious" GPEs on some 
11362128212Snjlsystems.
11363128212Snjl
11364193267SjkimThis new GPE behavior is can be reverted to the original behavior (enable 
11365193267SjkimALL GPEs at runtime) via a runtime flag.
11366128212Snjl
11367193267SjkimFixed a problem where aliased control methods could not access objects 
11368193267Sjkimproperly.  The proper scope within the namespace was not initialized 
11369193267Sjkim(transferred to the target of the aliased method) before executing the 
11370193267Sjkimtarget method.
11371128212Snjl
11372253690SjkimFixed a potential race condition on internal object deletion on the 
11373253690Sjkimreturn 
11374193267Sjkimobject in AcpiEvaluateObject. 
11375128212Snjl
11376193267SjkimIntegrated a fix for resource descriptors where both _MEM and _MTP were 
11377193267Sjkimbeing extracted instead of just _MEM.  (i.e. bitmask was incorrectly too 
11378193267Sjkimwide, 0x0F instead of 0x03.)
11379128212Snjl
11380253690SjkimAdded a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, 
11381253690Sjkimpreventing 
11382241973Sjkima 
11383193267Sjkimfault in some cases.
11384128212Snjl
11385128212SnjlUpdated Notify() values for debug statements in evmisc.c
11386128212Snjl
11387193267SjkimReturn proper status from AcpiUtMutexInitialize, not just simply AE_OK.
11388128212Snjl
11389193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11390241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11391241973Sjkimproduced 
11392193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11393193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11394241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11395241973SjkimNote 
11396241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11397241973Sjkimand 
11398193267Sjkimthe compiler options used during generation.
11399128212Snjl
11400128212Snjl  Previous Release:
11401167802Sjkim
11402128212Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
11403128212Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
11404128212Snjl  Current Release:
11405128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
11406128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
11407128212Snjl
11408128212Snjl----------------------------------------
11409127175Snjl11 March 2004.  Summary of changes for version 20040311:
11410127175Snjl
11411127175Snjl1) ACPI CA Core Subsystem:
11412127175Snjl
11413193267SjkimFixed a problem where errors occurring during the parse phase of control 
11414193267Sjkimmethod execution did not abort cleanly.  For example, objects created and 
11415193267Sjkiminstalled in the namespace were not deleted.  This caused all subsequent 
11416193267Sjkiminvocations of the method to return the AE_ALREADY_EXISTS exception.
11417127175Snjl
11418241973SjkimImplemented a mechanism to force a control method to "Serialized" 
11419241973Sjkimexecution 
11420193267Sjkimif the method attempts to create namespace objects. (The root of the 
11421193267SjkimAE_ALREADY_EXISTS problem.)
11422127175Snjl
11423193267SjkimImplemented support for the predefined _OSI "internal" control method.  
11424253690SjkimInitial supported strings are "Linux", "Windows 2000", "Windows 2001", 
11425253690Sjkimand 
11426253690Sjkim"Windows 2001.1", and can be easily upgraded for new strings as 
11427253690Sjkimnecessary.  
11428193267SjkimThis feature will allow "other" operating systems to execute the fully 
11429193267Sjkimtested, "Windows" code path through the ASL code
11430127175Snjl
11431193267SjkimGlobal Lock Support:  Now allows multiple acquires and releases with any 
11432241973Sjkiminternal thread.  Removed concept of "owning thread" for this special 
11433241973Sjkimmutex.
11434127175Snjl
11435241973SjkimFixed two functions that were inappropriately declaring large objects on 
11436241973Sjkimthe 
11437241973SjkimCPU stack:  PsParseLoop, NsEvaluateRelative.  Reduces the stack usage 
11438241973Sjkimduring 
11439193267Sjkimmethod execution considerably.
11440127175Snjl
11441193267SjkimFixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the 
11442193267SjkimS4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT.
11443127175Snjl
11444193267SjkimFixed a problem where AcpiEvGpeDetect would fault if there were no GPEs 
11445193267Sjkimdefined on the machine.
11446127175Snjl
11447241973SjkimImplemented two runtime options:  One to force all control method 
11448241973Sjkimexecution 
11449253690Sjkimto "Serialized" to mimic Windows behavior, another to disable _OSI 
11450253690Sjkimsupport 
11451193267Sjkimif it causes problems on a given machine.
11452127175Snjl
11453193267SjkimCode and Data Size: Current and previous core subsystem library sizes are 
11454241973Sjkimshown below.  These are the code and data sizes for the acpica.lib 
11455241973Sjkimproduced 
11456193267Sjkimby the Microsoft Visual C++ 6.0 compiler, and these values do not include 
11457193267Sjkimany ACPI driver or OSPM code.  The debug version of the code includes the 
11458241973Sjkimdebug output trace mechanism and has a much larger code and data size.  
11459241973SjkimNote 
11460241973Sjkimthat these values will vary depending on the efficiency of the compiler 
11461241973Sjkimand 
11462193267Sjkimthe compiler options used during generation.
11463127175Snjl
11464127175Snjl  Previous Release:
11465127175Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
11466127175Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
11467127175Snjl  Current Release:
11468127175Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
11469127175Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
11470127175Snjl
11471127175Snjl2) iASL Compiler/Disassembler:
11472127175Snjl
11473193267SjkimFixed an array size problem for FreeBSD that would cause the compiler to 
11474193267Sjkimfault.
11475127175Snjl
11476127175Snjl----------------------------------------
11477126372Snjl20 February 2004.  Summary of changes for version 20040220:
11478126372Snjl
11479167802Sjkim
11480126372Snjl1) ACPI CA Core Subsystem:
11481126372Snjl
11482193267SjkimImplemented execution of _SxD methods for Device objects in the 
11483126372SnjlGetObjectInfo interface.
11484126372Snjl
11485126372SnjlFixed calls to _SST method to pass the correct arguments.
11486126372Snjl
11487126372SnjlAdded a call to _SST on wake to restore to "working" state.
11488126372Snjl
11489193267SjkimCheck for End-Of-Buffer failure case in the WalkResources interface.
11490126372Snjl
11491193267SjkimIntegrated fix for 64-bit alignment issue in acglobal.h by moving two 
11492193267Sjkimstructures to the beginning of the file.
11493126372Snjl
11494126372SnjlAfter wake, clear GPE status register(s) before enabling GPEs.
11495126372Snjl
11496241973SjkimAfter wake, clear/enable power button.  (Perhaps we should clear/enable 
11497241973Sjkimall 
11498193267Sjkimfixed events upon wake.)
11499126372Snjl
11500126372SnjlFixed a couple of possible memory leaks in the Namespace manager.
11501126372Snjl
11502126372SnjlIntegrated latest acnetbsd.h file.
11503126372Snjl
11504126372Snjl----------------------------------------
11505126372Snjl11 February 2004.  Summary of changes for version 20040211:
11506126372Snjl
11507167802Sjkim
11508126372Snjl1) ACPI CA Core Subsystem:
11509126372Snjl
11510193267SjkimCompleted investigation and implementation of the call-by-reference 
11511193267Sjkimmechanism for control method arguments.
11512126372Snjl
11513193267SjkimFixed a problem where a store of an object into an indexed package could 
11514193267Sjkimfail if the store occurs within a different method than the method that 
11515193267Sjkimcreated the package.
11516126372Snjl
11517241973SjkimFixed a problem where the ToDecimal operator could return incorrect 
11518241973Sjkimresults.
11519126372Snjl
11520241973SjkimFixed a problem where the CopyObject operator could fail on some of the 
11521241973Sjkimmore 
11522193267Sjkimobscure objects (e.g., Reference objects.)
11523126372Snjl
11524193267SjkimImproved the output of the Debug object to display buffer, package, and 
11525193267Sjkimindex objects.
11526126372Snjl
11527253690SjkimFixed a problem where constructs of the form "RefOf (ArgX)" did not 
11528253690Sjkimreturn 
11529193267Sjkimthe expected result.
11530126372Snjl
11531193267SjkimAdded permanent ACPI_REPORT_ERROR macros for all instances of the 
11532126372SnjlACPI_AML_INTERNAL exception.
11533126372Snjl
11534126372SnjlIntegrated latest version of acfreebsd.h
11535126372Snjl
11536126372Snjl----------------------------------------
11537126372Snjl16 January 2004.  Summary of changes for version 20040116:
11538126372Snjl
11539193267SjkimThe purpose of this release is primarily to update the copyright years in 
11540193267Sjkimeach module, thus causing a huge number of diffs.  There are a few small 
11541193267Sjkimfunctional changes, however.
11542126372Snjl
11543126372Snjl1) ACPI CA Core Subsystem:
11544126372Snjl
11545253690SjkimImproved error messages when there is a problem finding one or more of 
11546253690Sjkimthe 
11547193267Sjkimrequired base ACPI tables
11548126372Snjl
11549126372SnjlReintroduced the definition of APIC_HEADER in actbl.h
11550126372Snjl
11551126372SnjlChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
11552126372Snjl
11553126372SnjlRemoved extraneous reference to NewObj in dsmthdat.c
11554126372Snjl
11555126372Snjl2) iASL compiler
11556126372Snjl
11557241973SjkimFixed a problem introduced in December that disabled the correct 
11558241973Sjkimdisassembly 
11559193267Sjkimof Resource Templates
11560126372Snjl
11561126372Snjl
11562126372Snjl----------------------------------------
11563126372Snjl03 December 2003.  Summary of changes for version 20031203:
11564126372Snjl
11565126372Snjl1) ACPI CA Core Subsystem:
11566126372Snjl
11567126372SnjlChanged the initialization of Operation Regions during subsystem
11568126372Snjlinit to perform two entire walks of the ACPI namespace; The first
11569126372Snjlto initialize the regions themselves, the second to execute the
11570126372Snjl_REG methods.  This fixed some interdependencies across _REG
11571126372Snjlmethods found on some machines.
11572126372Snjl
11573126372SnjlFixed a problem where a Store(Local0, Local1) could simply update
11574126372Snjlthe object reference count, and not create a new copy of the
11575126372Snjlobject if the Local1 is uninitialized.
11576126372Snjl
11577126372SnjlImplemented support for the _SST reserved method during sleep
11578126372Snjltransitions.
11579126372Snjl
11580126372SnjlImplemented support to clear the SLP_TYP and SLP_EN bits when
11581126372Snjlwaking up, this is apparently required by some machines.
11582126372Snjl
11583193267SjkimWhen sleeping, clear the wake status only if SleepState is not S5.
11584126372Snjl
11585126372SnjlFixed a problem in AcpiRsExtendedIrqResource() where an incorrect
11586126372Snjlpointer arithmetic advanced a string pointer too far.
11587126372Snjl
11588126372SnjlFixed a problem in AcpiTbGetTablePtr() where a garbage pointer
11589126372Snjlcould be returned if the requested table has not been loaded.
11590126372Snjl
11591193267SjkimWithin the support for IRQ resources, restructured the handling of
11592126372Snjlthe active and edge/level bits.
11593126372Snjl
11594126372SnjlFixed a few problems in AcpiPsxExecute() where memory could be
11595126372Snjlleaked under certain error conditions.
11596126372Snjl
11597126372SnjlImproved error messages for the cases where the ACPI mode could
11598126372Snjlnot be entered.
11599126372Snjl
11600126372SnjlCode and Data Size: Current and previous core subsystem library
11601126372Snjlsizes are shown below.  These are the code and data sizes for the
11602126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
11603126372Snjlthese values do not include any ACPI driver or OSPM code.  The
11604126372Snjldebug version of the code includes the debug output trace
11605126372Snjlmechanism and has a much larger code and data size.  Note that
11606193267Sjkimthese values will vary depending on the efficiency of the compiler
11607126372Snjland the compiler options used during generation.
11608126372Snjl
11609126372Snjl  Previous Release (20031029):
11610126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
11611126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
11612126372Snjl  Current Release:
11613126372Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
11614126372Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
11615126372Snjl
11616126372Snjl2) iASL Compiler/Disassembler:
11617126372Snjl
11618126372SnjlImplemented a fix for the iASL disassembler where a bad index was
11619126372Snjlgenerated.  This was most noticeable on 64-bit platforms
11620126372Snjl
11621126372Snjl
11622126372Snjl----------------------------------------
11623126372Snjl29 October 2003.  Summary of changes for version 20031029:
11624126372Snjl
11625126372Snjl1) ACPI CA Core Subsystem:
11626126372Snjl
11627167802Sjkim
11628126372SnjlFixed a problem where a level-triggered GPE with an associated
11629126372Snjl_Lxx control method was incorrectly cleared twice.
11630126372Snjl
11631126372SnjlFixed a problem with the Field support code where an access can
11632126372Snjloccur beyond the end-of-region if the field is non-aligned but
11633126372Snjlextends to the very end of the parent region (resulted in an
11634126372SnjlAE_AML_REGION_LIMIT exception.)
11635126372Snjl
11636126372SnjlFixed a problem with ACPI Fixed Events where an RT Clock handler
11637193267Sjkimwould not get invoked on an RTC event.  The RTC event bitmasks for
11638126372Snjlthe PM1 registers were not being initialized properly.
11639126372Snjl
11640126372SnjlImplemented support for executing _STA and _INI methods for
11641126372SnjlProcessor objects.  Although this is currently not part of the
11642193267SjkimACPI specification, there is existing ASL code that depends on the
11643126372Snjlinit-time execution of these methods.
11644126372Snjl
11645126372SnjlImplemented and deployed a GetDescriptorName function to decode
11646126372Snjlthe various types of internal descriptors.  Guards against null
11647126372Snjldescriptors during debug output also.
11648126372Snjl
11649126372SnjlImplemented and deployed a GetNodeName function to extract the 4-
11650193267Sjkimcharacter namespace node name.  This function simplifies the debug
11651193267Sjkimand error output, as well as guarding against null pointers during
11652126372Snjloutput.
11653126372Snjl
11654126372SnjlImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to
11655126372Snjlsimplify the debug and error output of 64-bit integers.  This
11656126372Snjlmacro replaces the HIDWORD and LODWORD macros for dumping these
11657126372Snjlintegers.
11658126372Snjl
11659126372SnjlUpdated the implementation of the Stall() operator to only call
11660126372SnjlAcpiOsStall(), and also return an error if the operand is larger
11661126372Snjlthan 255.  This preserves the required behavior of not
11662126372Snjlrelinquishing the processor, as would happen if AcpiOsSleep() was
11663126372Snjlcalled for "long stalls".
11664126372Snjl
11665126372SnjlConstructs of the form "Store(LocalX,LocalX)" where LocalX is not
11666126372Snjlinitialized are now treated as NOOPs.
11667126372Snjl
11668126372SnjlCleaned up a handful of warnings during 64-bit generation.
11669126372Snjl
11670126372SnjlFixed a reported error where and incorrect GPE number was passed
11671126372Snjlto the GPE dispatch handler.  This value is only used for error
11672193267Sjkimoutput, however.  Used this opportunity to clean up and streamline
11673126372Snjlthe GPE dispatch code.
11674126372Snjl
11675126372SnjlCode and Data Size: Current and previous core subsystem library
11676126372Snjlsizes are shown below.  These are the code and data sizes for the
11677126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
11678126372Snjlthese values do not include any ACPI driver or OSPM code.  The
11679167802Sjkim
11680126372Snjldebug version of the code includes the debug output trace
11681126372Snjlmechanism and has a much larger code and data size.  Note that
11682193267Sjkimthese values will vary depending on the efficiency of the compiler
11683126372Snjland the compiler options used during generation.
11684126372Snjl
11685126372Snjl  Previous Release (20031002):
11686126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
11687126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
11688126372Snjl  Current Release:
11689126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
11690126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
11691126372Snjl
11692126372Snjl
11693126372Snjl2) iASL Compiler/Disassembler:
11694126372Snjl
11695193267SjkimUpdated the iASL compiler to return an error if the operand to the
11696126372SnjlStall() operator is larger than 255.
11697126372Snjl
11698126372Snjl
11699126372Snjl----------------------------------------
11700126372Snjl02 October 2003.  Summary of changes for version 20031002:
11701126372Snjl
11702126372Snjl
11703126372Snjl1) ACPI CA Core Subsystem:
11704126372Snjl
11705126372SnjlFixed a problem with Index Fields where the index was not
11706126372Snjlincremented for fields that require multiple writes to the
11707126372Snjlindex/data registers (Fields that are wider than the data
11708126372Snjlregister.)
11709126372Snjl
11710126372SnjlFixed a problem with all Field objects where a write could go
11711126372Snjlbeyond the end-of-field if the field was larger than the access
11712193267Sjkimgranularity and therefore required multiple writes to complete the
11713126372Snjlrequest.  An extra write beyond the end of the field could happen
11714126372Snjlinadvertently.
11715126372Snjl
11716126372SnjlFixed a problem with Index Fields where a BUFFER_OVERFLOW error
11717126372Snjlwould incorrectly be returned if the width of the Data Register
11718126372Snjlwas larger than the specified field access width.
11719126372Snjl
11720126372SnjlCompleted fixes for LoadTable() and Unload() and verified their
11721126372Snjloperation.  Implemented full support for the "DdbHandle" object
11722126372Snjlthroughout the ACPI CA subsystem.
11723126372Snjl
11724126372SnjlImplemented full support for the MADT and ECDT tables in the ACPI
11725126372SnjlCA header files.  Even though these tables are not directly
11726126372Snjlconsumed by ACPI CA, the header definitions are useful for ACPI
11727126372Snjldevice drivers.
11728126372Snjl
11729126372SnjlIntegrated resource descriptor fixes posted to the Linux ACPI
11730126372Snjllist.  This included checks for minimum descriptor length, and
11731126372Snjlsupport for trailing NULL strings within descriptors that have
11732126372Snjloptional string elements.
11733126372Snjl
11734126372SnjlCode and Data Size: Current and previous core subsystem library
11735126372Snjlsizes are shown below.  These are the code and data sizes for the
11736126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
11737126372Snjlthese values do not include any ACPI driver or OSPM code.  The
11738126372Snjldebug version of the code includes the debug output trace
11739126372Snjlmechanism and has a much larger code and data size.  Note that
11740193267Sjkimthese values will vary depending on the efficiency of the compiler
11741126372Snjland the compiler options used during generation.
11742126372Snjl
11743126372Snjl  Previous Release (20030918):
11744126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
11745126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
11746126372Snjl  Current Release:
11747126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
11748126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
11749126372Snjl
11750126372Snjl
11751126372Snjl2) iASL Compiler:
11752126372Snjl
11753126372SnjlImplemented detection of non-ASCII characters within the input
11754126372Snjlsource ASL file.  This catches attempts to compile binary (AML)
11755126372Snjlfiles early in the compile, with an informative error message.
11756126372Snjl
11757126372SnjlFixed a problem where the disassembler would fault if the output
11758193267Sjkimfilename could not be generated or if the output file could not be
11759126372Snjlopened.
11760126372Snjl
11761126372Snjl----------------------------------------
11762126372Snjl18 September 2003.  Summary of changes for version 20030918:
11763126372Snjl
11764126372Snjl
11765126372Snjl1) ACPI CA Core Subsystem:
11766126372Snjl
11767126372SnjlFound and fixed a longstanding problem with the late execution of
11768126372Snjlthe various deferred AML opcodes (such as Operation Regions,
11769126372SnjlBuffer Fields, Buffers, and Packages).  If the name string
11770126372Snjlspecified for the name of the new object placed the object in a
11771126372Snjlscope other than the current scope, the initialization/execution
11772126372Snjlof the opcode failed.  The solution to this problem was to
11773126372Snjlimplement a mechanism where the late execution of such opcodes
11774126372Snjldoes not attempt to lookup/create the name a second time in an
11775126372Snjlincorrect scope.  This fixes the "region size computed
11776126372Snjlincorrectly" problem.
11777126372Snjl
11778193267SjkimFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing a
11779126372SnjlGlobal Lock AE_BAD_PARAMETER error.
11780126372Snjl
11781126372SnjlFixed several 64-bit issues with prototypes, casting and data
11782126372Snjltypes.
11783126372Snjl
11784126372SnjlRemoved duplicate prototype from acdisasm.h
11785126372Snjl
11786126372SnjlFixed an issue involving EC Operation Region Detach (Shaohua Li)
11787126372Snjl
11788126372SnjlCode and Data Size: Current and previous core subsystem library
11789126372Snjlsizes are shown below.  These are the code and data sizes for the
11790126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
11791126372Snjlthese values do not include any ACPI driver or OSPM code.  The
11792126372Snjldebug version of the code includes the debug output trace
11793126372Snjlmechanism and has a much larger code and data size.  Note that
11794193267Sjkimthese values will vary depending on the efficiency of the compiler
11795126372Snjland the compiler options used during generation.
11796126372Snjl
11797126372Snjl  Previous Release:
11798167802Sjkim
11799126372Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
11800126372Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
11801126372Snjl  Current Release:
11802126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
11803126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
11804126372Snjl
11805126372Snjl
11806126372Snjl2) Linux:
11807126372Snjl
11808126372SnjlFixed the AcpiOsSleep implementation in osunixxf.c to pass the
11809126372Snjlcorrect sleep time in seconds.
11810126372Snjl
11811126372Snjl----------------------------------------
11812126372Snjl14 July 2003.  Summary of changes for version 20030619:
11813126372Snjl
11814126372Snjl1) ACPI CA Core Subsystem:
11815126372Snjl
11816126372SnjlParse SSDTs in order discovered, as opposed to reverse order
11817126372Snjl(Hrvoje Habjanic)
11818126372Snjl
11819126372SnjlFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
11820126372SnjlKlausner,
11821126372Snjl   Nate Lawson)
11822126372Snjl
11823126372Snjl
11824126372Snjl2) Linux:
11825126372Snjl
11826126372SnjlDynamically allocate SDT list (suggested by Andi Kleen)
11827126372Snjl
11828126372Snjlproc function return value cleanups (Andi Kleen)
11829126372Snjl
11830126372SnjlCorrectly handle NMI watchdog during long stalls (Andrew Morton)
11831126372Snjl
11832126372SnjlMake it so acpismp=force works (reported by Andrew Morton)
11833126372Snjl
11834126372Snjl
11835126372Snjl----------------------------------------
11836117521Snjl19 June 2003.  Summary of changes for version 20030619:
11837117521Snjl
11838117521Snjl1) ACPI CA Core Subsystem:
11839117521Snjl
11840193267SjkimFix To/FromBCD, eliminating the need for an arch-specific #define.
11841117521Snjl
11842117521SnjlDo not acquire a semaphore in the S5 shutdown path.
11843117521Snjl
11844117521SnjlFix ex_digits_needed for 0. (Takayoshi Kochi)
11845117521Snjl
11846117521SnjlFix sleep/stall code reversal. (Andi Kleen)
11847117521Snjl
11848117521SnjlRevert a change having to do with control method calling
11849117521Snjlsemantics.
11850117521Snjl
11851117521Snjl2) Linux:
11852117521Snjl
11853117521Snjlacpiphp update (Takayoshi Kochi)
11854117521Snjl
11855117521SnjlExport acpi_disabled for sonypi (Stelian Pop)
11856117521Snjl
11857117521SnjlMention acpismp=force in config help
11858117521Snjl
11859117521SnjlRe-add acpitable.c and acpismp=force. This improves backwards
11860167802Sjkim
11861193267Sjkimcompatibility and also cleans up the code to a significant degree.
11862117521Snjl
11863117521SnjlAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
11864117521Snjl
11865117521Snjl----------------------------------------
11866117521Snjl22 May 2003.  Summary of changes for version 20030522:
11867117521Snjl
11868117521Snjl1) ACPI CA Core Subsystem:
11869117521Snjl
11870117521SnjlFound and fixed a reported problem where an AE_NOT_FOUND error
11871117521Snjloccurred occasionally during _BST evaluation.  This turned out to
11872117521Snjlbe an Owner ID allocation issue where a called method did not get
11873193267Sjkima new ID assigned to it.  Eventually, (after 64k calls), the Owner
11874193267SjkimID UINT16 would wraparound so that the ID would be the same as the
11875126372Snjlcaller's and the called method would delete the caller's
11876117521Snjlnamespace.
11877117521Snjl
11878117521SnjlImplemented extended error reporting for control methods that are
11879117521Snjlaborted due to a run-time exception.  Output includes the exact
11880193267SjkimAML instruction that caused the method abort, a dump of the method
11881126372Snjllocals and arguments at the time of the abort, and a trace of all
11882126372Snjlnested control method calls.
11883117521Snjl
11884117521SnjlModified the interpreter to allow the creation of buffers of zero
11885117521Snjllength from the AML code. Implemented new code to ensure that no
11886117521Snjlattempt is made to actually allocate a memory buffer (of length
11887193267Sjkimzero) - instead, a simple buffer object with a NULL buffer pointer
11888126372Snjland length zero is created.  A warning is no longer issued when
11889126372Snjlthe AML attempts to create a zero-length buffer.
11890117521Snjl
11891117521SnjlImplemented a workaround for the "leading asterisk issue" in
11892117521Snjl_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
11893117521Snjlasterisk is automatically removed if present in any HID, UID, or
11894117521SnjlCID strings.  The iASL compiler will still flag this asterisk as
11895117521Snjlan error, however.
11896117521Snjl
11897193267SjkimImplemented full support for _CID methods that return a package of
11898193267Sjkimmultiple CIDs (Compatible IDs).  The AcpiGetObjectInfo() interface
11899126372Snjlnow additionally returns a device _CID list if present.  This
11900126372Snjlrequired a change to the external interface in order to pass an
11901126372SnjlACPI_BUFFER object as a parameter since the _CID list is of
11902117521Snjlvariable length.
11903117521Snjl
11904117521SnjlFixed a problem with the new AE_SAME_HANDLER exception where
11905117521Snjlhandler initialization code did not know about this exception.
11906117521Snjl
11907117521SnjlCode and Data Size: Current and previous core subsystem library
11908117521Snjlsizes are shown below.  These are the code and data sizes for the
11909117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
11910117521Snjlthese values do not include any ACPI driver or OSPM code.  The
11911117521Snjldebug version of the code includes the debug output trace
11912117521Snjlmechanism and has a much larger code and data size.  Note that
11913193267Sjkimthese values will vary depending on the efficiency of the compiler
11914126372Snjland the compiler options used during generation.
11915117521Snjl
11916117521Snjl  Previous Release (20030509):
11917117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
11918117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
11919117521Snjl  Current Release:
11920117521Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
11921117521Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
11922117521Snjl
11923117521Snjl
11924117521Snjl2) Linux:
11925117521Snjl
11926117521SnjlFixed a bug in which we would reinitialize the ACPI interrupt
11927193267Sjkimafter it was already working, thus disabling all ACPI and the IRQs
11928126372Snjlfor any other device sharing the interrupt. (Thanks to Stian
11929117521SnjlJordet)
11930117521Snjl
11931117521SnjlToshiba driver update (John Belmonte)
11932117521Snjl
11933117521SnjlReturn only 0 or 1 for our interrupt handler status (Andrew
11934117521SnjlMorton)
11935117521Snjl
11936117521Snjl
11937117521Snjl3) iASL Compiler:
11938117521Snjl
11939117521SnjlFixed a reported problem where multiple (nested) ElseIf()
11940117521Snjlstatements were not handled correctly by the compiler, resulting
11941117521Snjlin incorrect warnings and incorrect AML code.  This was a problem
11942117521Snjlin both the ASL parser and the code generator.
11943117521Snjl
11944117521Snjl
11945117521Snjl4) Documentation:
11946117521Snjl
11947193267SjkimAdded changes to existing interfaces, new exception codes, and new
11948126372Snjltext concerning reference count object management versus garbage
11949126372Snjlcollection.
11950117521Snjl
11951117521Snjl----------------------------------------
11952117521Snjl09 May 2003.  Summary of changes for version 20030509.
11953117521Snjl
11954117521Snjl
11955117521Snjl1) ACPI CA Core Subsystem:
11956117521Snjl
11957117521SnjlChanged the subsystem initialization sequence to hold off
11958193267Sjkiminstallation of address space handlers until the hardware has been
11959193267Sjkiminitialized and the system has entered ACPI mode.  This is because
11960126372Snjlthe installation of space handlers can cause _REG methods to be
11961193267Sjkimrun.  Previously, the _REG methods could potentially be run before
11962126372SnjlACPI mode was enabled.
11963117521Snjl
11964193267SjkimFixed some memory leak issues related to address space handler and
11965126372Snjlnotify handler installation.  There were some problems with the
11966126372Snjlreference count mechanism caused by the fact that the handler
11967117521Snjlobjects are shared across several namespace objects.
11968117521Snjl
11969117521SnjlFixed a reported problem where reference counts within the
11970117521Snjlnamespace were not properly updated when named objects created by
11971117521Snjlmethod execution were deleted.
11972117521Snjl
11973117521SnjlFixed a reported problem where multiple SSDTs caused a deletion
11974117521Snjlissue during subsystem termination.  Restructured the table data
11975117521Snjlstructures to simplify the linked lists and the related code.
11976117521Snjl
11977117521SnjlFixed a problem where the table ID associated with secondary
11978193267Sjkimtables (SSDTs) was not being propagated into the namespace objects
11979126372Snjlcreated by those tables.  This would only present a problem for
11980126372Snjltables that are unloaded at run-time, however.
11981117521Snjl
11982117521SnjlUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
11983117521Snjltype as the length parameter (instead of UINT32).
11984117521Snjl
11985117521SnjlSolved a long-standing problem where an ALREADY_EXISTS error
11986117521Snjlappears on various systems.  This problem could happen when there
11987117521Snjlare multiple PCI_Config operation regions under a single PCI root
11988117521Snjlbus.  This doesn't happen very frequently, but there are some
11989117521Snjlsystems that do this in the ASL.
11990117521Snjl
11991117521SnjlFixed a reported problem where the internal DeleteNode function
11992117521Snjlwas incorrectly handling the case where a namespace node was the
11993117521Snjlfirst in the parent's child list, and had additional peers (not
11994117521Snjlthe only child, but first in the list of children.)
11995117521Snjl
11996193267SjkimCode and Data Size: Current core subsystem library sizes are shown
11997126372Snjlbelow.  These are the code and data sizes for the acpica.lib
11998126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
11999126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12000126372Snjlversion of the code includes the debug output trace mechanism and
12001193267Sjkimhas a much larger code and data size.  Note that these values will
12002126372Snjlvary depending on the efficiency of the compiler and the compiler
12003126372Snjloptions used during generation.
12004117521Snjl
12005117521Snjl  Previous Release
12006117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
12007117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
12008117521Snjl  Current Release:
12009117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
12010117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
12011117521Snjl
12012117521Snjl
12013117521Snjl2) Linux:
12014117521Snjl
12015117521SnjlAllow ":" in OS override string (Ducrot Bruno)
12016117521Snjl
12017117521SnjlKobject fix (Greg KH)
12018117521Snjl
12019117521Snjl
12020117521Snjl3 iASL Compiler/Disassembler:
12021117521Snjl
12022117521SnjlFixed a problem in the generation of the C source code files (AML
12023117521Snjlis emitted in C source statements for BIOS inclusion) where the
12024193267SjkimAscii dump that appears within a C comment at the end of each line
12025126372Snjlcould cause a compile time error if the AML sequence happens to
12026126372Snjlhave an open comment or close comment sequence embedded.
12027117521Snjl
12028117521Snjl
12029117521Snjl----------------------------------------
12030117521Snjl24 April 2003.  Summary of changes for version 20030424.
12031117521Snjl
12032117521Snjl
12033117521Snjl1) ACPI CA Core Subsystem:
12034117521Snjl
12035117521SnjlSupport for big-endian systems has been implemented.  Most of the
12036193267Sjkimsupport has been invisibly added behind big-endian versions of the
12037126372SnjlACPI_MOVE_* macros.
12038117521Snjl
12039117521SnjlFixed a problem in AcpiHwDisableGpeBlock() and
12040117521SnjlAcpiHwClearGpeBlock() where an incorrect offset was passed to the
12041117521Snjllow level hardware write routine.  The offset parameter was
12042193267Sjkimactually eliminated from the low level read/write routines because
12043126372Snjlthey had become obsolete.
12044117521Snjl
12045117521SnjlFixed a problem where a handler object was deleted twice during
12046117521Snjlthe removal of a fixed event handler.
12047117521Snjl
12048117521Snjl
12049117521Snjl2) Linux:
12050117521Snjl
12051117521SnjlA fix for SMP systems with link devices was contributed by
12052167802Sjkim
12053117521SnjlCompaq's Dan Zink.
12054117521Snjl
12055117521Snjl(2.5) Return whether we handled the interrupt in our IRQ handler.
12056193267Sjkim(Linux ISRs no longer return void, so we can propagate the handler
12057126372Snjlreturn value from the ACPI CA core back to the OS.)
12058117521Snjl
12059117521Snjl
12060167802Sjkim
12061117521Snjl3) Documentation:
12062117521Snjl
12063117521SnjlThe ACPI CA Programmer Reference has been updated to reflect new
12064117521Snjlinterfaces and changes to existing interfaces.
12065117521Snjl
12066117521Snjl----------------------------------------
12067117521Snjl28 March 2003.  Summary of changes for version 20030328.
12068117521Snjl
12069117521Snjl1) ACPI CA Core Subsystem:
12070117521Snjl
12071117521SnjlThe GPE Block Device support has been completed.  New interfaces
12072117521Snjlare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
12073117521Snjlinterfaces (enable, disable, clear, getstatus) have been split
12074117521Snjlinto separate interfaces for Fixed Events and General Purpose
12075117521SnjlEvents (GPEs) in order to support GPE Block Devices properly.
12076117521Snjl
12077117521SnjlFixed a problem where the error message "Failed to acquire
12078117521Snjlsemaphore" would appear during operations on the embedded
12079117521Snjlcontroller (EC).
12080117521Snjl
12081193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12082126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12083126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12084126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12085126372Snjlversion of the code includes the debug output trace mechanism and
12086193267Sjkimhas a much larger code and data size.  Note that these values will
12087126372Snjlvary depending on the efficiency of the compiler and the compiler
12088126372Snjloptions used during generation.
12089117521Snjl
12090117521Snjl  Previous Release
12091117521Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
12092117521Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
12093117521Snjl  Current Release:
12094117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
12095117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
12096117521Snjl
12097117521Snjl
12098117521Snjl----------------------------------------
12099114237Snjl28 February 2003.  Summary of changes for version 20030228.
12100114237Snjl
12101114237Snjl
12102114237Snjl1) ACPI CA Core Subsystem:
12103114237Snjl
12104114237SnjlThe GPE handling and dispatch code has been completely overhauled
12105114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
12106114237SnjlThis affects internal data structures and code only; there should
12107114237Snjlbe no differences visible externally.  One new file has been
12108114237Snjladded, evgpeblk.c
12109114237Snjl
12110114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
12111114237Snjlfields that are used to determine the GPE block lengths.  The
12112114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
12113193267Sjkimstructures are ignored.  This is per the ACPI specification but it
12114126372Snjlisn't very clear.  The full 256 Block 0/1 GPEs are now supported
12115193267Sjkim(the use of REGISTER_BIT_WIDTH limited the number of GPEs to 128).
12116114237Snjl
12117114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
12118114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
12119114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
12120114237Snjlin fact be the cause of slow battery status response on some
12121114237Snjlsystems.)
12122114237Snjl
12123193267SjkimFixed a problem where a store of a NULL string to a package object
12124126372Snjlcould cause the premature deletion of the object.  This was seen
12125126372Snjlduring execution of the battery _BIF method on some systems,
12126126372Snjlresulting in no battery data being returned.
12127114237Snjl
12128114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
12129114237Snjllists.
12130114237Snjl
12131193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12132126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12133126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12134126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12135126372Snjlversion of the code includes the debug output trace mechanism and
12136193267Sjkimhas a much larger code and data size.  Note that these values will
12137126372Snjlvary depending on the efficiency of the compiler and the compiler
12138126372Snjloptions used during generation.
12139114237Snjl
12140114237Snjl  Previous Release
12141114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
12142114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
12143114237Snjl  Current Release:
12144114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
12145114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
12146114237Snjl
12147114237Snjl
12148114237Snjl2) Linux
12149114237Snjl
12150114237SnjlS3 fixes (Ole Rohne)
12151114237Snjl
12152114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
12153114237Snjl(Bjorn Helgaas)
12154114237Snjl
12155114237SnjlAdd S4BIOS support (Pavel Machek)
12156114237Snjl
12157114237SnjlMap in entire table before performing checksum (John Stultz)
12158114237Snjl
12159193267SjkimExpand the mem= cmdline to allow the specification of reserved and
12160126372SnjlACPI DATA blocks (Pavel Machek)
12161114237Snjl
12162114237SnjlNever use ACPI on VISWS
12163114237Snjl
12164114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
12165114237Snjl
12166114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
12167114237Snjlcausing us to think that some systems support C2 when they really
12168114237Snjldon't.
12169114237Snjl
12170114237SnjlDo not count processor objects for non-present CPUs (Thanks to
12171114237SnjlDominik Brodowski)
12172114237Snjl
12173114237Snjl
12174114237Snjl3) iASL Compiler:
12175114237Snjl
12176114237SnjlFixed a problem where ASL include files could not be found and
12177114237Snjlopened.
12178114237Snjl
12179114237SnjlAdded support for the _PDC reserved name.
12180114237Snjl
12181114237Snjl
12182117521Snjl----------------------------------------
12183114237Snjl22 January 2003.  Summary of changes for version 20030122.
12184114237Snjl
12185114237Snjl
12186114237Snjl1) ACPI CA Core Subsystem:
12187114237Snjl
12188114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
12189114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
12190193267Sjkimprogrammers believe that this is a NOOP.  Since this store doesn't
12191126372Snjldo anything anyway, the new prototype behavior will ignore this
12192126372Snjlerror.  This is a case where we can relax the strict checking in
12193126372Snjlthe interpreter in the name of compatibility.
12194114237Snjl
12195114237Snjl
12196114237Snjl2) Linux
12197114237Snjl
12198114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
12199114237SnjlLinux package for the first time.  This is the utility that is
12200193267Sjkimused to convert the ACPI CA base source code to the Linux version.
12201114237Snjl
12202114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
12203114237Snjl
12204114237Snjl(Both) Move more headers to include/acpi, and delete an unused
12205114237Snjlheader.
12206114237Snjl
12207114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
12208114237Snjl
12209114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
12210114237Snjl
12211114237Snjl(Both) Remove include of unused header (Adrian Bunk)
12212114237Snjl
12213114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
12214114237Snjlthe
12215193267Sjkimformer now also includes the latter, acpiphp.h only needs the one,
12216126372Snjlnow.
12217114237Snjl
12218193267Sjkim(2.5) Make it possible to select method of bios restoring after S3
12219114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
12220114237Snjl
12221114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
12222114237Snjl
12223114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
12224114237Snjl
12225114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
12226114237Snjl(Dominik Brodowski)
12227114237Snjl
12228114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
12229114237Snjl
12230114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
12231114237SnjlVisinoni)
12232114237Snjl
12233114237Snjl
12234114237Snjl3) iASL Compiler:
12235114237Snjl
12236114237SnjlAdded support to disassemble SSDT and PSDTs.
12237114237Snjl
12238114237SnjlImplemented support to obtain SSDTs from the Windows registry if
12239114237Snjlavailable.
12240114237Snjl
12241114237Snjl
12242102550Siwasaki----------------------------------------
12243114237Snjl09 January 2003.  Summary of changes for version 20030109.
12244114237Snjl
12245114237Snjl1) ACPI CA Core Subsystem:
12246114237Snjl
12247114237SnjlChanged the behavior of the internal Buffer-to-String conversion
12248193267Sjkimfunction.  The current ACPI specification states that the contents
12249126372Snjlof the buffer are "converted to a string of two-character
12250126372Snjlhexadecimal numbers, each separated by a space".  Unfortunately,
12251193267Sjkimthis definition is not backwards compatible with existing ACPI 1.0
12252193267Sjkimimplementations (although the behavior was not defined in the ACPI
12253126372Snjl1.0 specification).  The new behavior simply copies data from the
12254193267Sjkimbuffer to the string until a null character is found or the end of
12255126372Snjlthe buffer is reached.  The new String object is always null
12256126372Snjlterminated.  This problem was seen during the generation of _BIF
12257126372Snjlbattery data where incorrect strings were returned for battery
12258126372Snjltype, etc.  This will also require an errata to the ACPI
12259126372Snjlspecification.
12260114237Snjl
12261114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
12262114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
12263114237Snjl
12264114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
12265114237Snjlupdated to 2003.
12266114237Snjl
12267193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12268126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12269126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12270126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12271126372Snjlversion of the code includes the debug output trace mechanism and
12272193267Sjkimhas a much larger code and data size.  Note that these values will
12273126372Snjlvary depending on the efficiency of the compiler and the compiler
12274126372Snjloptions used during generation.
12275114237Snjl
12276114237Snjl  Previous Release
12277114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
12278114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
12279114237Snjl  Current Release:
12280114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
12281114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
12282114237Snjl
12283114237Snjl
12284114237Snjl2) Linux
12285114237Snjl
12286114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
12287114237Snjl
12288114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
12289114237Snjl
12290114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
12291114237Snjl
12292114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
12293114237Snjl
12294114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
12295114237Snjlof schedule_work()
12296114237Snjl
12297114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
12298114237Snjl
12299114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
12300114237Snjl
12301114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
12302114237Snjl
12303114237SnjlSeveral changes have been made to the source code translation
12304114237Snjlutility that generates the Linux Code in order to make the code
12305114237Snjlmore "Linux-like":
12306114237Snjl
12307114237SnjlAll typedefs on structs and unions have been removed in keeping
12308114237Snjlwith the Linux coding style.
12309114237Snjl
12310114237SnjlRemoved the non-Linux SourceSafe module revision number from each
12311114237Snjlmodule header.
12312114237Snjl
12313114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
12314114237SnjlDoubled the number of symbols that are lowercased.
12315114237Snjl
12316114237SnjlFixed a problem where identifiers within procedure headers and
12317114237Snjlwithin quotes were not fully lower cased (they were left with a
12318114237Snjlstarting capital.)
12319114237Snjl
12320114237SnjlSome C macros whose only purpose is to allow the generation of 16-
12321114237Snjlbit code are now completely removed in the Linux code, increasing
12322114237Snjlreadability and maintainability.
12323114237Snjl
12324114237Snjl----------------------------------------
12325114237Snjl
12326114237Snjl12 December 2002.  Summary of changes for version 20021212.
12327114237Snjl
12328114237Snjl
12329114237Snjl1) ACPI CA Core Subsystem:
12330114237Snjl
12331114237SnjlFixed a problem where the creation of a zero-length AML Buffer
12332114237Snjlwould cause a fault.
12333114237Snjl
12334193267SjkimFixed a problem where a Buffer object that pointed to a static AML
12335126372Snjlbuffer (in an ACPI table) could inadvertently be deleted, causing
12336126372Snjlmemory corruption.
12337114237Snjl
12338114237SnjlFixed a problem where a user buffer (passed in to the external
12339114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
12340114237Snjlsmall to complete the operation, causing memory corruption.
12341114237Snjl
12342114237SnjlFixed a problem in the Buffer-to-String conversion code where a
12343114237Snjlstring of length one was always returned, regardless of the size
12344114237Snjlof the input Buffer object.
12345114237Snjl
12346114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
12347114237Snjllack of need and lack of consistent use.
12348114237Snjl
12349193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12350126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12351126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12352126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12353126372Snjlversion of the code includes the debug output trace mechanism and
12354193267Sjkimhas a much larger code and data size.  Note that these values will
12355126372Snjlvary depending on the efficiency of the compiler and the compiler
12356126372Snjloptions used during generation.
12357114237Snjl
12358114237Snjl  Previous Release
12359114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
12360114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
12361114237Snjl  Current Release:
12362114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
12363114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
12364114237Snjl
12365114237Snjl
12366114237Snjl----------------------------------------
12367114237Snjl05 December 2002.  Summary of changes for version 20021205.
12368114237Snjl
12369114237Snjl1) ACPI CA Core Subsystem:
12370114237Snjl
12371114237SnjlFixed a problem where a store to a String or Buffer object could
12372114237Snjlcause corruption of the DSDT if the object type being stored was
12373114237Snjlthe same as the target object type and the length of the object
12374114237Snjlbeing stored was equal to or smaller than the original (existing)
12375114237Snjltarget object.  This was seen to cause corruption of battery _BIF
12376114237Snjlbuffers if the _BIF method modified the buffer on the fly.
12377114237Snjl
12378193267SjkimFixed a problem where an internal error was generated if a control
12379126372Snjlmethod invocation was used in an OperationRegion, Buffer, or
12380126372SnjlPackage declaration.  This was caused by the deferred parsing of
12381126372Snjlthe control method and thus the deferred creation of the internal
12382126372Snjlmethod object.  The solution to this problem was to create the
12383126372Snjlinternal method object at the moment the method is encountered in
12384126372Snjlthe first pass - so that subsequent references to the method will
12385126372Snjlable to obtain the required parameter count and thus properly
12386126372Snjlparse the method invocation.  This problem presented itself as an
12387126372SnjlAE_AML_INTERNAL during the pass 1 parse phase during table load.
12388114237Snjl
12389114237SnjlFixed a problem where the internal String object copy routine did
12390193267Sjkimnot always allocate sufficient memory for the target String object
12391126372Snjland caused memory corruption.  This problem was seen to cause
12392126372Snjl"Allocation already present in list!" errors as memory allocation
12393126372Snjlbecame corrupted.
12394114237Snjl
12395193267SjkimImplemented a new function for the evaluation of namespace objects
12396126372Snjlthat allows the specification of the allowable return object
12397126372Snjltypes.  This simplifies a lot of code that checks for a return
12398126372Snjlobject of one or more specific objects returned from the
12399114237Snjlevaluation (such as _STA, etc.)  This may become and external
12400114237Snjlfunction if it would be useful to ACPI-related drivers.
12401114237Snjl
12402114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
12403114237Snjlclarity.
12404114237Snjl
12405114237SnjlCompleted additional code restructuring to allow more modular
12406114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
12407114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
12408114237Snjl
12409114237SnjlImplemented an abort mechanism to terminate an executing control
12410193267Sjkimmethod via the AML debugger.  This feature is useful for debugging
12411126372Snjlcontrol methods that depend (wait) for specific hardware
12412126372Snjlresponses.
12413114237Snjl
12414193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12415126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12416126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12417126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12418126372Snjlversion of the code includes the debug output trace mechanism and
12419193267Sjkimhas a much larger code and data size.  Note that these values will
12420126372Snjlvary depending on the efficiency of the compiler and the compiler
12421126372Snjloptions used during generation.
12422114237Snjl
12423114237Snjl  Previous Release
12424114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
12425114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
12426114237Snjl  Current Release:
12427114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
12428114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
12429114237Snjl
12430114237Snjl
12431114237Snjl2) iASL Compiler/Disassembler
12432114237Snjl
12433114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
12434114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
12435114237SnjlSource Index" and "Resource Source" fields were not inserted into
12436114237Snjlthe correct location within the AML resource descriptor, creating
12437114237Snjlan invalid descriptor.
12438114237Snjl
12439193267SjkimFixed a disassembler problem for "Interrupt" resource descriptors.
12440126372SnjlThe optional "Resource Source Index" and "Resource Source" fields
12441126372Snjlwere ignored.
12442114237Snjl
12443114237Snjl
12444114237Snjl----------------------------------------
12445114237Snjl22 November 2002.  Summary of changes for version 20021122.
12446114237Snjl
12447114237Snjl
12448114237Snjl1) ACPI CA Core Subsystem:
12449114237Snjl
12450114237SnjlFixed a reported problem where an object stored to a Method Local
12451114237Snjlor Arg was not copied to a new object during the store - the
12452114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
12453114237Snjlall subsequent operations on the Local/Arg to also affect the
12454114237Snjloriginal source of the store operation.
12455114237Snjl
12456114237SnjlFixed a problem where a store operation to a Method Local or Arg
12457114237Snjlwas not completed properly if the Local/Arg contained a reference
12458114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
12459114237Snjlnamespace-node code is now used so that this case is handled
12460114237Snjlautomatically.
12461114237Snjl
12462193267SjkimFixed a problem where the internal object copy routine would cause
12463126372Snjla protection fault if the object being copied was a Package and
12464126372Snjlcontained either 1) a NULL package element or 2) a nested sub-
12465114237Snjlpackage.
12466114237Snjl
12467114237SnjlFixed a problem with the GPE initialization that resulted from an
12468114237Snjlambiguity in the ACPI specification.  One section of the
12469114237Snjlspecification states that both the address and length of the GPE
12470193267Sjkimblock must be zero if the block is not supported.  Another section
12471126372Snjlimplies that only the address need be zero if the block is not
12472193267Sjkimsupported.  The code has been changed so that both the address and
12473126372Snjlthe length must be non-zero to indicate a valid GPE block (i.e.,
12474126372Snjlif either the address or the length is zero, the GPE block is
12475126372Snjlinvalid.)
12476114237Snjl
12477193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12478126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12479126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12480126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12481126372Snjlversion of the code includes the debug output trace mechanism and
12482193267Sjkimhas a much larger code and data size.  Note that these values will
12483126372Snjlvary depending on the efficiency of the compiler and the compiler
12484126372Snjloptions used during generation.
12485114237Snjl
12486114237Snjl  Previous Release
12487114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
12488114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
12489114237Snjl  Current Release:
12490114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
12491114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
12492114237Snjl
12493114237Snjl
12494114237Snjl2) Linux
12495114237Snjl
12496114237SnjlCleaned up EC driver. Exported an external EC read/write
12497114237Snjlinterface. By going through this, other drivers (most notably
12498114237Snjlsonypi) will be able to serialize access to the EC.
12499114237Snjl
12500114237Snjl
12501114237Snjl3) iASL Compiler/Disassembler
12502114237Snjl
12503114237SnjlImplemented support to optionally generate include files for both
12504114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
12505114237Snjlautomatically creating include files that contain external
12506114237Snjldeclarations for the symbols that are created within the
12507167802Sjkim
12508114237Snjl(optionally generated) ASM and C AML source files.
12509114237Snjl
12510114237Snjl
12511114237Snjl----------------------------------------
12512107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
12513104470Siwasaki
12514107325Siwasaki1) ACPI CA Core Subsystem:
12515107325Siwasaki
12516114237SnjlFixed a memory leak problem where an error during resolution of
12517167802Sjkim
12518114237Snjlmethod arguments during a method invocation from another method
12519114237Snjlfailed to cleanup properly by deleting all successfully resolved
12520114237Snjlargument objects.
12521107325Siwasaki
12522114237SnjlFixed a problem where the target of the Index() operator was not
12523114237Snjlcorrectly constructed if the source object was a package.  This
12524114237Snjlproblem has not been detected because the use of a target operand
12525114237Snjlwith Index() is very rare.
12526107325Siwasaki
12527107325SiwasakiFixed a problem with the Index() operator where an attempt was
12528107325Siwasakimade to delete the operand objects twice.
12529107325Siwasaki
12530107325SiwasakiFixed a problem where an attempt was made to delete an operand
12531114237Snjltwice during execution of the CondRefOf() operator if the target
12532114237Snjldid not exist.
12533107325Siwasaki
12534114237SnjlImplemented the first of perhaps several internal create object
12535193267Sjkimfunctions that create and initialize a specific object type.  This
12536126372Snjlconsolidates duplicated code wherever the object is created, thus
12537126372Snjlshrinking the size of the subsystem.
12538107325Siwasaki
12539114237SnjlImplemented improved debug/error messages for errors that occur
12540114237Snjlduring nested method invocations.  All executing method pathnames
12541193267Sjkimare displayed (with the error) as the call stack is unwound - thus
12542126372Snjlsimplifying debug.
12543107325Siwasaki
12544107325SiwasakiFixed a problem introduced in the 10/02 release that caused
12545114237Snjlpremature deletion of a buffer object if a buffer was used as an
12546114237SnjlASL operand where an integer operand is required (Thus causing an
12547193267Sjkimimplicit object conversion from Buffer to Integer.)  The change in
12548126372Snjlthe 10/02 release was attempting to fix a memory leak (albeit
12549114237Snjlincorrectly.)
12550107325Siwasaki
12551193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12552126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12553126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12554126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12555126372Snjlversion of the code includes the debug output trace mechanism and
12556193267Sjkimhas a much larger code and data size.  Note that these values will
12557126372Snjlvary depending on the efficiency of the compiler and the compiler
12558126372Snjloptions used during generation.
12559107325Siwasaki
12560107325Siwasaki  Previous Release
12561107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
12562107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
12563107325Siwasaki  Current Release:
12564107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
12565107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
12566107325Siwasaki
12567107325Siwasaki
12568107325Siwasaki2) Linux
12569107325Siwasaki
12570114237SnjlChanged the implementation of the ACPI semaphores to use down()
12571114237Snjlinstead of down_interruptable().  It is important that the
12572114237Snjlexecution of ACPI control methods not be interrupted by signals.
12573114237SnjlMethods must run to completion, or the system may be left in an
12574114237Snjlunknown/unstable state.
12575107325Siwasaki
12576193267SjkimFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not set.
12577126372Snjl(Shawn Starr)
12578107325Siwasaki
12579107325Siwasaki
12580107325Siwasaki3) iASL Compiler/Disassembler
12581107325Siwasaki
12582107325Siwasaki
12583114237SnjlChanged the default location of output files.  All output files
12584114237Snjlare now placed in the current directory by default instead of in
12585114237Snjlthe directory of the source file.  This change may affect some
12586114237Snjlexisting makefiles, but it brings the behavior of the compiler in
12587114237Snjlline with other similar tools.  The location of the output files
12588114237Snjlcan be overridden with the -p command line switch.
12589107325Siwasaki
12590114237Snjl
12591107325Siwasaki----------------------------------------
12592107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
12593107325Siwasaki
12594107325Siwasaki
12595114237Snjl0) ACPI Specification 2.0B is released and is now available at:
12596114237Snjlhttp://www.acpi.info/index.html
12597107325Siwasaki
12598107325Siwasaki
12599107325Siwasaki1) ACPI CA Core Subsystem:
12600107325Siwasaki
12601107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
12602114237SnjlThis includes the early detection and handoff of the request to
12603114237Snjlthe SMBus region handler (avoiding all of the complex field
12604107325Siwasakisupport code), and support for the bidirectional return packet
12605107325Siwasakifrom an SMBus write operation.  This paves the way for the
12606107325Siwasakidevelopment of SMBus drivers in each host operating system.
12607107325Siwasaki
12608107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
12609107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
12610107325Siwasakispecification.  This had the side effect of causing ASL
12611107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
12612107325Siwasakiforever.  Changed all internal references to the ACPI timeout
12613193267Sjkimparameter to 16 bits to prevent future problems.  Changed the name
12614126372Snjlof WAIT_FOREVER to ACPI_WAIT_FOREVER.
12615107325Siwasaki
12616193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12617126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12618126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12619126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12620126372Snjlversion of the code includes the debug output trace mechanism and
12621193267Sjkimhas a much larger code and data size.  Note that these values will
12622126372Snjlvary depending on the efficiency of the compiler and the compiler
12623126372Snjloptions used during generation.
12624107325Siwasaki
12625107325Siwasaki  Previous Release
12626107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
12627107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
12628107325Siwasaki  Current Release:
12629107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
12630107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
12631107325Siwasaki
12632107325Siwasaki
12633107325Siwasaki2) Linux
12634107325Siwasaki
12635107325SiwasakiModule loading/unloading fixes (John Cagle)
12636107325Siwasaki
12637107325Siwasaki
12638107325Siwasaki3) iASL Compiler/Disassembler
12639107325Siwasaki
12640107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
12641107325Siwasaki
12642107325SiwasakiImplemented support for the disassembly of all SMBus protocol
12643107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
12644107325Siwasaki
12645107325Siwasaki----------------------------------------
12646107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
12647107325Siwasaki
12648107325Siwasaki
12649107325Siwasaki1) ACPI CA Core Subsystem:
12650107325Siwasaki
12651193267SjkimFixed a problem where platforms that have a GPE1 block but no GPE0
12652126372Snjlblock were not handled correctly.  This resulted in a "GPE
12653114237Snjloverlap" error message.  GPE0 is no longer required.
12654107325Siwasaki
12655107325SiwasakiRemoved code added in the previous release that inserted nodes
12656114237Snjlinto the namespace in alphabetical order.  This caused some side-
12657114237Snjleffects on various machines.  The root cause of the problem is
12658114237Snjlstill under investigation since in theory, the internal ordering
12659114237Snjlof the namespace nodes should not matter.
12660107325Siwasaki
12661107325Siwasaki
12662114237SnjlEnhanced error reporting for the case where a named object is not
12663114237Snjlfound during control method execution.  The full ACPI namepath
12664114237Snjl(name reference) of the object that was not found is displayed in
12665114237Snjlthis case.
12666107325Siwasaki
12667193267SjkimNote: as a result of the overhaul of the namespace object types in
12668126372Snjlthe previous release, the namespace nodes for the predefined
12669114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
12670114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
12671114237Snjlmanagement code but may affect code that walks the namespace tree
12672114237Snjllooking for specific object types.
12673114237Snjl
12674193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12675126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12676126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12677126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12678126372Snjlversion of the code includes the debug output trace mechanism and
12679193267Sjkimhas a much larger code and data size.  Note that these values will
12680126372Snjlvary depending on the efficiency of the compiler and the compiler
12681126372Snjloptions used during generation.
12682107325Siwasaki
12683107325Siwasaki  Previous Release
12684107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
12685107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
12686107325Siwasaki  Current Release:
12687107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
12688107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
12689107325Siwasaki
12690107325Siwasaki
12691107325Siwasaki2) Linux
12692107325Siwasaki
12693107325SiwasakiFixed a problem introduced in the previous release where the
12694193267SjkimProcessor and Thermal objects were not recognized and installed in
12695193267Sjkim/proc.  This was related to the scope type change described above.
12696107325Siwasaki
12697107325Siwasaki
12698107325Siwasaki3) iASL Compiler/Disassembler
12699107325Siwasaki
12700114237SnjlImplemented the -g option to get all of the required ACPI tables
12701114237Snjlfrom the registry and save them to files (Windows version of the
12702193267Sjkimcompiler only.)  The required tables are the FADT, FACS, and DSDT.
12703107325Siwasaki
12704114237SnjlAdded ACPI table checksum validation during table disassembly in
12705114237Snjlorder to catch corrupted tables.
12706107325Siwasaki
12707107325Siwasaki
12708107325Siwasaki----------------------------------------
12709107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
12710107325Siwasaki
12711107325Siwasaki1) ACPI CA Core Subsystem:
12712107325Siwasaki
12713114237SnjlImplemented a restriction on the Scope operator that the target
12714114237Snjlmust already exist in the namespace at the time the operator is
12715114237Snjlencountered (during table load or method execution).  In other
12716114237Snjlwords, forward references are not allowed and Scope() cannot
12717114237Snjlcreate a new object. This changes the previous behavior where the
12718193267Sjkiminterpreter would create the name if not found.  This new behavior
12719126372Snjlcorrectly enables the search-to-root algorithm during namespace
12720126372Snjllookup of the target name.  Because of this upsearch, this fixes
12721126372Snjlthe known Compaq _SB_.OKEC problem and makes both the AML
12722126372Snjlinterpreter and iASL compiler compatible with other ACPI
12723114237Snjlimplementations.
12724107325Siwasaki
12725114237SnjlCompleted a major overhaul of the internal ACPI object types for
12726114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
12727114237Snjlthese types had become obsolete with the introduction of the two-
12728114237Snjlpass namespace load.  This cleanup simplifies the code and makes
12729114237Snjlthe entire namespace load mechanism much clearer and easier to
12730114237Snjlunderstand.
12731107325Siwasaki
12732114237SnjlImproved debug output for tracking scope opening/closing to help
12733114237Snjldiagnose scoping issues.  The old scope name as well as the new
12734114237Snjlscope name are displayed.  Also improved error messages for
12735114237Snjlproblems with ASL Mutex objects and error messages for GPE
12736114237Snjlproblems.
12737107325Siwasaki
12738107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
12739107325Siwasaki
12740114237SnjlAll string output (for all namespace/object dumps) now uses the
12741193267Sjkimcommon ACPI string output procedure which handles escapes properly
12742126372Snjland does not emit non-printable characters.
12743107325Siwasaki
12744107325SiwasakiFixed some issues with constants in the 64-bit version of the
12745107325Siwasakilocal C library (utclib.c)
12746107325Siwasaki
12747107325Siwasaki
12748107325Siwasaki2) Linux
12749107325Siwasaki
12750107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
12751107325Siwasakiinterrupt level.
12752107325Siwasaki
12753107325Siwasaki
12754107325Siwasaki3) iASL Compiler/Disassembler
12755107325Siwasaki
12756193267SjkimImplemented ACPI 2.0B grammar change that disallows all Type 1 and
12757126372Snjl2 opcodes outside of a control method.  This means that the
12758114237Snjl"executable" operators (versus the "namespace" operators) cannot
12759193267Sjkimbe used at the table level; they can only be used within a control
12760126372Snjlmethod.
12761107325Siwasaki
12762107325SiwasakiImplemented the restriction on the Scope() operator where the
12763107325Siwasakitarget must already exist in the namespace at the time the
12764114237Snjloperator is encountered (during ASL compilation). In other words,
12765193267Sjkimforward references are not allowed and Scope() cannot create a new
12766126372Snjlobject.  This makes the iASL compiler compatible with other ACPI
12767193267Sjkimimplementations and makes the Scope() implementation adhere to the
12768126372SnjlACPI specification.
12769107325Siwasaki
12770193267SjkimFixed a problem where namepath optimization for the Alias operator
12771193267Sjkimwas optimizing the wrong path (of the two namepaths.)  This caused
12772126372Snjla "Missing alias link" error message.
12773107325Siwasaki
12774114237SnjlFixed a problem where an "unknown reserved name" warning could be
12775114237Snjlincorrectly generated for names like "_SB" when the trailing
12776114237Snjlunderscore is not used in the original ASL.
12777107325Siwasaki
12778107325SiwasakiFixed a problem where the reserved name check did not handle
12779114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
12780114237Snjlthe NamePath was examined instead of the last NameSeg.
12781107325Siwasaki
12782107325Siwasaki
12783107325Siwasaki----------------------------------------
12784107325Siwasaki
12785104470Siwasaki02 October 2002.  Summary of changes for this release.
12786104470Siwasaki
12787104470Siwasaki
12788104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
12789104470Siwasaki
12790104470SiwasakiFixed a problem where a store/copy of a string to an existing
12791193267Sjkimstring did not always set the string length properly in the String
12792126372Snjlobject.
12793104470Siwasaki
12794104470SiwasakiFixed a reported problem with the ToString operator where the
12795193267Sjkimbehavior was identical to the ToHexString operator instead of just
12796126372Snjlsimply converting a raw buffer to a string data type.
12797104470Siwasaki
12798104470SiwasakiFixed a problem where CopyObject and the other "explicit"
12799193267Sjkimconversion operators were not updating the internal namespace node
12800126372Snjltype as part of the store operation.
12801104470Siwasaki
12802104470SiwasakiFixed a memory leak during implicit source operand conversion
12803193267Sjkimwhere the original object was not deleted if it was converted to a
12804126372Snjlnew object of a different type.
12805104470Siwasaki
12806193267SjkimEnhanced error messages for all problems associated with namespace
12807193267Sjkimlookups.  Common procedure generates and prints the lookup name as
12808126372Snjlwell as the formatted status.
12809104470Siwasaki
12810104470SiwasakiCompleted implementation of a new design for the Alias support
12811193267Sjkimwithin the namespace.  The existing design did not handle the case
12812193267Sjkimwhere a new object was assigned to one of the two names due to the
12813193267Sjkimuse of an explicit conversion operator, resulting in the two names
12814126372Snjlpointing to two different objects.  The new design simply points
12815126372Snjlthe Alias name to the original name node - not to the object.
12816193267SjkimThis results in a level of indirection that must be handled in the
12817126372Snjlname resolution mechanism.
12818104470Siwasaki
12819193267SjkimCode and Data Size: Current core subsystem library sizes are shown
12820126372Snjlbelow.  These are the code and data sizes for the acpica.lib
12821126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
12822126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
12823126372Snjlversion of the code includes the debug output trace mechanism and
12824193267Sjkimhas a larger code and data size.  Note that these values will vary
12825126372Snjldepending on the efficiency of the compiler and the compiler
12826126372Snjloptions used during generation.
12827104470Siwasaki
12828104470Siwasaki  Previous Release
12829104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
12830104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
12831104470Siwasaki  Current Release:
12832104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
12833104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
12834104470Siwasaki
12835104470Siwasaki
12836104470Siwasaki2) Linux
12837104470Siwasaki
12838104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
12839104470SiwasakiNeumann)
12840104470Siwasaki
12841104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
12842104470Siwasaki
12843114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
12844104470Siwasaki
12845104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
12846104470Siwasaki
12847104470SiwasakiIA64 fixes. (David Mosberger)
12848104470Siwasaki
12849104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
12850104470Siwasaki
12851104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
12852104470SiwasakiBrodowski)
12853104470Siwasaki
12854104470Siwasaki
12855104470Siwasaki3) iASL Compiler/Disassembler
12856104470Siwasaki
12857104470SiwasakiClarified some warning/error messages.
12858104470Siwasaki
12859104470Siwasaki
12860104470Siwasaki----------------------------------------
12861104470Siwasaki18 September 2002.  Summary of changes for this release.
12862104470Siwasaki
12863104470Siwasaki
12864104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
12865104470Siwasaki
12866114237SnjlFixed a reported problem with reference chaining (via the Index()
12867193267Sjkimand RefOf() operators) in the ObjectType() and SizeOf() operators.
12868126372SnjlThe definition of these operators includes the dereferencing of
12869126372Snjlall chained references to return information on the base object.
12870104470Siwasaki
12871104470SiwasakiFixed a problem with stores to indexed package elements - the
12872104470Siwasakiexisting code would not complete the store if an "implicit
12873114237Snjlconversion" was not performed.  In other words, if the existing
12874114237Snjlobject (package element) was to be replaced completely, the code
12875114237Snjldidn't handle this case.
12876104470Siwasaki
12877104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
12878104470Siwasakitarget name to refer to an object of type Integer, String, or
12879104470SiwasakiBuffer, in addition to the scoping object types (Device,
12880104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
12881114237SnjlThis allows existing AML code that has workarounds for a bug in
12882193267SjkimWindows to function properly.  A warning is issued, however.  This
12883126372Snjlaffects both the AML interpreter and the iASL compiler. Below is
12884126372Snjlan example of this type of ASL code:
12885104470Siwasaki
12886104470Siwasaki      Name(DEB,0x00)
12887104470Siwasaki      Scope(DEB)
12888104470Siwasaki      {
12889104470Siwasaki
12890114237SnjlFixed some reported problems with 64-bit integer support in the
12891114237Snjllocal implementation of C library functions (clib.c)
12892104470Siwasaki
12893104470Siwasaki
12894104470Siwasaki2) Linux
12895104470Siwasaki
12896104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
12897104470Siwasakiundefined in non-SMP.
12898104470Siwasaki
12899114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
12900114237Snjlsystems that do not have an interrupt override entry in the MADT.
12901104470Siwasaki
12902104470Siwasaki2.5 big driver reorganization (Pat Mochel)
12903104470Siwasaki
12904104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
12905104470Siwasaki
12906104470SiwasakiNew blacklist entries (Andi Kleen)
12907104470Siwasaki
12908114237SnjlBlacklist improvements. Split blacklist code out into a separate
12909114237Snjlfile. Move checking the blacklist to very early. Previously, we
12910114237Snjlwould use ACPI tables, and then halfway through init, check the
12911114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
12912114237Snjlback to non-ACPI.
12913104470Siwasaki
12914104470Siwasaki
12915104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
12916104470Siwasaki
12917114237SnjlFixed a problem where the typechecking code didn't know that an
12918114237Snjlalias could point to a method.  In other words, aliases were not
12919114237Snjlbeing dereferenced during typechecking.
12920104470Siwasaki
12921104470Siwasaki
12922104470Siwasaki----------------------------------------
12923104470Siwasaki29 August 2002.  Summary of changes for this release.
12924104470Siwasaki
12925104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
12926104470Siwasaki
12927114237SnjlIf the target of a Scope() operator already exists, it must be an
12928114237Snjlobject type that actually opens a scope -- such as a Device,
12929193267SjkimMethod, Scope, etc.  This is a fatal runtime error.  Similar error
12930126372Snjlcheck has been added to the iASL compiler also.
12931104470Siwasaki
12932114237SnjlTightened up the namespace load to disallow multiple names in the
12933114237Snjlsame scope.  This previously was allowed if both objects were of
12934114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
12935114237Snjlname).
12936104470Siwasaki
12937104470Siwasaki
12938104470Siwasaki2) Linux
12939104470Siwasaki
12940104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
12941104470Siwasakipolarity.
12942104470Siwasaki
12943104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
12944104470Siwasaki
12945104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
12946104470Siwasakiinterpreter *or* the tables.
12947104470Siwasaki
12948193267SjkimAdded arch-neutral support for parsing SLIT and SRAT tables (Kochi
12949126372SnjlTakayoshi)
12950104470Siwasaki
12951104470Siwasaki
12952104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
12953104470Siwasaki
12954104470SiwasakiImplemented namepath optimization for name declarations.  For
12955104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
12956104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
12957104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
12958104470Siwasakireference path optimization first released in the previous
12959114237Snjlversion. This would seem to complete all possible optimizations
12960114237Snjlfor namepaths within the ASL/AML.
12961104470Siwasaki
12962114237SnjlIf the target of a Scope() operator already exists, it must be an
12963114237Snjlobject type that actually opens a scope -- such as a Device,
12964114237SnjlMethod, Scope, etc.
12965104470Siwasaki
12966114237SnjlImplemented a check and warning for unreachable code in the same
12967114237Snjlblock below a Return() statement.
12968104470Siwasaki
12969114237SnjlFixed a problem where the listing file was not generated if the
12970114237Snjlcompiler aborted if the maximum error count was exceeded (200).
12971104470Siwasaki
12972193267SjkimFixed a problem where the typechecking of method return values was
12973126372Snjlbroken.  This includes the check for a return value when the
12974114237Snjlmethod is invoked as a TermArg (a return value is expected.)
12975104470Siwasaki
12976104470SiwasakiFixed a reported problem where EOF conditions during a quoted
12977104470Siwasakistring or comment caused a fault.
12978104470Siwasaki
12979104470Siwasaki
12980104470Siwasaki----------------------------------------
12981102550Siwasaki15 August 2002.  Summary of changes for this release.
12982102550Siwasaki
12983102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
12984102550Siwasaki
12985114237SnjlFixed a reported problem where a Store to a method argument that
12986193267Sjkimcontains a reference did not perform the indirect store correctly.
12987126372SnjlThis problem was created during the conversion to the new
12988126372Snjlreference object model - the indirect store to a method argument
12989126372Snjlcode was not updated to reflect the new model.
12990102550Siwasaki
12991114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
12992193267Sjkimhandle corner cases, and improve code legibility (Kochi Takayoshi)
12993102550Siwasaki
12994102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
12995114237Snjlprefix.  The heavy use of the carat operator by the new namepath
12996193267Sjkimoptimization in the iASL compiler uncovered a problem with the AML
12997126372Snjlinterpreter handling of this prefix.  In the case where one or
12998126372Snjlmore carats precede a single nameseg, the nameseg was treated as
12999126372Snjlstandalone and the search rule (to root) was inadvertently
13000114237Snjlapplied.  This could cause both the iASL compiler and the
13001114237Snjlinterpreter to find the wrong object or to miss the error that
13002114237Snjlshould occur if the object does not exist at that exact pathname.
13003102550Siwasaki
13004114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
13005193267Sjkimload.  This was a relatively minor tweak to the table loading code
13006126372Snjl(a problem caused by the unexpected encounter with a method
13007193267Sjkiminvocation not within a control method), but it does not solve the
13008126372Snjloverall issue of the execution of AML code at the table level.
13009126372SnjlThis investigation is still ongoing.
13010102550Siwasaki
13011193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13012126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13013126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13014126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13015126372Snjlversion of the code includes the debug output trace mechanism and
13016193267Sjkimhas a larger code and data size.  Note that these values will vary
13017126372Snjldepending on the efficiency of the compiler and the compiler
13018126372Snjloptions used during generation.
13019102550Siwasaki
13020102550Siwasaki  Previous Release
13021104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
13022104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
13023102550Siwasaki  Current Release:
13024104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
13025104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
13026102550Siwasaki
13027102550Siwasaki
13028102550Siwasaki2) Linux
13029102550Siwasaki
13030102550SiwasakiRemove redundant slab.h include (Brad Hards)
13031102550Siwasaki
13032102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
13033102550Siwasaki
13034102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
13035102550Siwasaki
13036104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
13037104470SiwasakiMachek)
13038102550Siwasaki
13039102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
13040102550Siwasaki
13041102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
13042102550Siwasaki
13043102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
13044102550Siwasaki
13045102550Siwasaki
13046102550Siwasaki3) iASL Compiler/Disassembler
13047102550Siwasaki
13048114237SnjlReworked the compiler options to make them more consistent and to
13049114237Snjluse two-letter options where appropriate.  We were running out of
13050114237Snjlsensible letters.   This may break some makefiles, so check the
13051114237Snjlcurrent options list by invoking the compiler with no parameters.
13052102550Siwasaki
13053102550SiwasakiCompleted the design and implementation of the ASL namepath
13054114237Snjloptimization option for the compiler.  This option optimizes all
13055114237Snjlreferences to named objects to the shortest possible path.  The
13056193267Sjkimfirst attempt tries to utilize a single nameseg (4 characters) and
13057126372Snjlthe "search-to-root" algorithm used by the interpreter.  If that
13058126372Snjlcannot be used (because either the name is not in the search path
13059126372Snjlor there is a conflict with another object with the same name),
13060126372Snjlthe pathname is optimized using the carat prefix (usually a
13061126372Snjlshorter string than specifying the entire path from the root.)
13062102550Siwasaki
13063114237SnjlImplemented support to obtain the DSDT from the Windows registry
13064114237Snjl(when the disassembly option is specified with no input file).
13065114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
13066114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
13067114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
13068114237Snjlfunction in the DOS OSL to make the disassembler truly OS
13069114237Snjlindependent.
13070102550Siwasaki
13071114237SnjlImplemented a new option to disassemble and compile in one step.
13072114237SnjlWhen used without an input filename, this option will grab the
13073193267SjkimDSDT from the local machine, disassemble it, and compile it in one
13074126372Snjlstep.
13075102550Siwasaki
13076114237SnjlAdded a warning message for invalid escapes (a backslash followed
13077114237Snjlby any character other than the allowable escapes).  This catches
13078114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
13079167802Sjkim
13080193267SjkimAlso, there are numerous instances in the ACPI specification where
13081126372Snjlthis error occurs.
13082102550Siwasaki
13083104470SiwasakiAdded a compiler option to disable all optimizations.  This is
13084114237Snjlbasically the "compatibility mode" because by using this option,
13085114237Snjlthe AML code will come out exactly the same as other ASL
13086114237Snjlcompilers.
13087102550Siwasaki
13088114237SnjlAdded error messages for incorrectly ordered dependent resource
13089114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
13090114237Snjldependent resource list, nested dependent function macros (both
13091114237Snjlstart and end), and missing StartDependentFn macro.  These are
13092114237Snjlcommon errors that should be caught at compile time.
13093102550Siwasaki
13094114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
13095114237Snjlmust be included in the namespace for proper disassembly (because
13096114237Snjlthe disassembler must know the number of arguments.)
13097102550Siwasaki
13098104470SiwasakiAdded an "optimization" message type that is optional (off by
13099114237Snjldefault).  This message is used for all optimizations - including
13100193267Sjkimconstant folding, integer optimization, and namepath optimization.
13101102550Siwasaki
13102102550Siwasaki----------------------------------------
13103102550Siwasaki25 July 2002.  Summary of changes for this release.
13104102550Siwasaki
13105102550Siwasaki
13106102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
13107102550Siwasaki
13108114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
13109193267Sjkimcode and has been integrated into the iASL compiler (see below) as
13110126372Snjlwell as the single-step disassembly for the AML debugger and the
13111126372Snjldisassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
13112126372Snjlresource templates and macros are fully supported.  The
13113114237Snjldisassembler has been tested on over 30 different AML files,
13114114237Snjlproducing identical AML when the resulting disassembled ASL file
13115114237Snjlis recompiled with the same ASL compiler.
13116102550Siwasaki
13117114237SnjlModified the Resource Manager to allow zero interrupts and zero
13118114237Snjldma channels during the GetCurrentResources call.  This was
13119114237Snjlcausing problems on some platforms.
13120102550Siwasaki
13121114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
13122114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
13123114237Snjlinterfaces.
13124102550Siwasaki
13125193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13126126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13127126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13128126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13129126372Snjlversion of the code includes the debug output trace mechanism and
13130193267Sjkimhas a larger code and data size.  Note that these values will vary
13131126372Snjldepending on the efficiency of the compiler and the compiler
13132126372Snjloptions used during generation.
13133102550Siwasaki
13134102550Siwasaki  Previous Release
13135104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
13136104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
13137102550Siwasaki  Current Release:
13138104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
13139104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
13140102550Siwasaki
13141102550Siwasaki
13142102550Siwasaki2) Linux
13143102550Siwasaki
13144102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
13145102550Siwasaki
13146114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
13147114237Snjl(Richard Schaal)
13148102550Siwasaki
13149102550Siwasaki
13150102550Siwasaki3) iASL compiler
13151102550Siwasaki
13152114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
13153114237Snjloption invokes the disassembler  to completely disassemble an
13154114237Snjlinput AML file, producing as output a text ASL file with the
13155114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
13156114237Snjlsource files.)  A future enhancement will allow the disassembler
13157114237Snjlto obtain the BIOS DSDT from the registry under Windows.
13158102550Siwasaki
13159102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
13160102550Siwasakidescriptors where an invalid AML sequence was created.
13161102550Siwasaki
13162114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
13163114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
13164114237Snjlcausing reduction conflicts.
13165102550Siwasaki
13166104470SiwasakiFixed a problem where the Ones opcode could get converted to a
13167193267Sjkimvalue of zero if "Ones" was used where a byte, word or dword value
13168126372Snjlwas expected.  The 64-bit value is now truncated to the correct
13169126372Snjlsize with the correct value.
13170102550Siwasaki
13171102550Siwasaki
13172167802Sjkim
13173102550Siwasaki----------------------------------------
13174102550Siwasaki02 July 2002.  Summary of changes for this release.
13175102550Siwasaki
13176102550Siwasaki
13177102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
13178102550Siwasaki
13179114237SnjlThe Table Manager code has been restructured to add several new
13180114237Snjlfeatures.  Tables that are not required by the core subsystem
13181114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
13182193267Sjkimvalidated in any way and are returned from AcpiGetFirmwareTable if
13183126372Snjlrequested.  The AcpiOsTableOverride interface is now called for
13184126372Snjleach table that is loaded by the subsystem in order to allow the
13185126372Snjlhost to override any table it chooses.  Previously, only the DSDT
13186126372Snjlcould be overridden.  Added one new files, tbrsdt.c and
13187114237Snjltbgetall.c.
13188102550Siwasaki
13189193267SjkimFixed a problem with the conversion of internal package objects to
13190126372Snjlexternal objects (when a package is returned from a control
13191114237Snjlmethod.)  The return buffer length was set to zero instead of the
13192114237Snjlproper length of the package object.
13193102550Siwasaki
13194104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
13195114237Snjloperators when passing reference arguments to control methods.  A
13196114237Snjlnew type of Reference object is used internally for references
13197114237Snjlproduced by the RefOf operator.
13198102550Siwasaki
13199193267SjkimAdded additional error messages in the Resource Manager to explain
13200126372SnjlAE_BAD_DATA errors when they occur during resource parsing.
13201102550Siwasaki
13202104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
13203193267Sjkimfiner granularity initialization sequence.  These two calls should
13204126372Snjlbe called in this order: AcpiEnableSubsystem (flags),
13205114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
13206114237Snjlsame.
13207102550Siwasaki
13208102550Siwasaki
13209102550Siwasaki2) Linux
13210102550Siwasaki
13211114237SnjlUpdated the ACPI utilities module to understand the new style of
13212193267Sjkimfully resolved package objects that are now returned from the core
13213126372Snjlsubsystem.  This eliminates errors of the form:
13214102550Siwasaki
13215102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
13216102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
13217102550Siwasaki        Invalid element in package (not a device reference)
13218102550Siwasaki
13219102550SiwasakiThe method evaluation utility uses the new buffer allocation
13220102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
13221102550Siwasaki
13222102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
13223167802Sjkim
13224114237SnjlController before the namespace has been fully initialized, which
13225114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
13226114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
13227114237Snjllimited testing was performed of the added functionality.)
13228102550Siwasaki
13229102550SiwasakiFixed memory leaks in the EC driver.
13230102550Siwasaki
13231102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
13232102550Siwasaki
13233114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
13234114237Snjlno longer needed since acpi_evaluate_object can optionally
13235104470Siwasakiallocate memory for the return object.
13236102550Siwasaki
13237193267SjkimImplemented fix for keyboard hang when getting battery readings on
13238126372Snjlsome systems (Stephen White)
13239102550Siwasaki
13240102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
13241102550Siwasaki
13242114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
13243114237Snjlsupport
13244102550Siwasaki
13245102550Siwasaki----------------------------------------
13246102550Siwasaki11 June 2002.  Summary of changes for this release.
13247102550Siwasaki
13248102550Siwasaki
13249102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
13250102550Siwasaki
13251104470SiwasakiFixed a reported problem where constants such as Zero and One
13252114237Snjlappearing within _PRT packages were not handled correctly within
13253114237Snjlthe resource manager code.  Originally reported against the ASL
13254114237Snjlcompiler because the code generator now optimizes integers to
13255193267Sjkimtheir minimal AML representation (i.e. AML constants if possible.)
13256126372SnjlThe _PRT code now handles all AML constant opcodes correctly
13257126372Snjl(Zero, One, Ones, Revision).
13258102550Siwasaki
13259102550SiwasakiFixed a problem with the Concatenate operator in the AML
13260193267Sjkiminterpreter where a buffer result object was incorrectly marked as
13261126372Snjlnot fully evaluated, causing a run-time error of AE_AML_INTERNAL.
13262102550Siwasaki
13263104470SiwasakiAll package sub-objects are now fully resolved before they are
13264114237Snjlreturned from the external ACPI interfaces.  This means that name
13265114237Snjlstrings are resolved to object handles, and constant operators
13266114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
13267102550Siwasaki
13268102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
13269104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
13270104470Siwasakiwithin the AML stream. This has simplified and reduced the
13271104470Siwasakigenerated code size of the subsystem by eliminating about 10
13272104470Siwasakiswitch statements for these constants (which previously were
13273193267Sjkimcontained in Reference objects.)  The complicating issues are that
13274126372Snjlthe Zero opcode is used as a "placeholder" for unspecified
13275193267Sjkimoptional target operands and stores to constants are defined to be
13276126372Snjlno-ops.
13277102550Siwasaki
13278193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13279126372Snjlbelow. These are the code and data sizes for the acpica.lib
13280114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13281114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13282114237Snjlversion of the code includes the debug output trace mechanism and
13283193267Sjkimhas a larger code and data size.  Note that these values will vary
13284126372Snjldepending on the efficiency of the compiler and the compiler
13285114237Snjloptions used during generation.
13286102550Siwasaki
13287102550Siwasaki  Previous Release
13288104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
13289104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
13290102550Siwasaki  Current Release:
13291104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
13292104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
13293102550Siwasaki
13294102550Siwasaki
13295102550Siwasaki2) Linux
13296102550Siwasaki
13297167802Sjkim
13298104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
13299104470Siwasakibridges (Bjorn Helgaas).
13300102550Siwasaki
13301102550Siwasaki
13302102550Siwasaki3) iASL Compiler Version X2046:
13303102550Siwasaki
13304193267SjkimFixed a problem where the "_DDN" reserved name was defined to be a
13305126372Snjlcontrol method with one argument.  There are no arguments, and
13306114237Snjl_DDN does not have to be a control method.
13307102550Siwasaki
13308114237SnjlFixed a problem with the Linux version of the compiler where the
13309114237Snjlsource lines printed with error messages were the wrong lines.
13310114237SnjlThis turned out to be the "LF versus CR/LF" difference between
13311114237SnjlWindows and Unix.  This appears to be the longstanding issue
13312114237Snjlconcerning listing output and error messages.
13313102550Siwasaki
13314114237SnjlFixed a problem with the Linux version of compiler where opcode
13315114237Snjlnames within error messages were wrong.  This was caused by a
13316114237Snjlslight difference in the output of the Flex tool on Linux versus
13317114237SnjlWindows.
13318102550Siwasaki
13319193267SjkimFixed a problem with the Linux compiler where the hex output files
13320126372Snjlcontained some garbage data caused by an internal buffer overrun.
13321102550Siwasaki
13322102550Siwasaki
13323102550Siwasaki----------------------------------------
13324102550Siwasaki17 May 2002.  Summary of changes for this release.
13325102550Siwasaki
13326102550Siwasaki
13327102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
13328102550Siwasaki
13329102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
13330104470SiwasakiOmniBook where the FADT revision number and the table size are
13331193267Sjkiminconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The new
13332126372Snjlbehavior is to fallback to using only the ACPI 1.0 fields of the
13333126372SnjlFADT if the table is too small to be a ACPI 2.0 table as claimed
13334126372Snjlby the revision number.  Although this is a BIOS bug, this is a
13335126372Snjlcase where the workaround is simple enough and with no side
13336126372Snjleffects, so it seemed prudent to add it.  A warning message is
13337126372Snjlissued, however.
13338102550Siwasaki
13339193267SjkimImplemented minimum size checks for the fixed-length ACPI tables -
13340126372Snjl- the FADT and FACS, as well as consistency checks between the
13341114237Snjlrevision number and the table size.
13342102550Siwasaki
13343114237SnjlFixed a reported problem in the table override support where the
13344114237Snjlnew table pointer was incorrectly treated as a physical address
13345114237Snjlinstead of a logical address.
13346102550Siwasaki
13347114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
13348114237Snjlwith more descriptive codes.
13349102550Siwasaki
13350193267SjkimFixed a problem where an exception would occur if an ASL Field was
13351126372Snjldefined with no named Field Units underneath it (used by some
13352114237Snjlindex fields).
13353102550Siwasaki
13354193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13355126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13356126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13357126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13358126372Snjlversion of the code includes the debug output trace mechanism and
13359193267Sjkimhas a larger code and data size.  Note that these values will vary
13360126372Snjldepending on the efficiency of the compiler and the compiler
13361126372Snjloptions used during generation.
13362102550Siwasaki
13363102550Siwasaki  Previous Release
13364104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
13365104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
13366102550Siwasaki  Current Release:
13367104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
13368104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
13369102550Siwasaki
13370102550Siwasaki
13371102550Siwasaki
13372102550Siwasaki2) Linux
13373102550Siwasaki
13374114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
13375114237Snjl(Paul D. and Dominik Brodowski)
13376102550Siwasaki
13377102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
13378102550Siwasaki
13379102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
13380102550Siwasaki
13381102550SiwasakiFix "MHz" typo (Dominik Brodowski)
13382102550Siwasaki
13383102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
13384102550Siwasaki
13385102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
13386102550Siwasaki
13387102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
13388102550Siwasaki
13389102550Siwasaki3) iASL Compiler Version X2044:
13390102550Siwasaki
13391193267SjkimImplemented error checking for the string used in the EISAID macro
13392193267Sjkim(Usually used in the definition of the _HID object.)  The code now
13393126372Snjlstrictly enforces the PnP format - exactly 7 characters, 3
13394126372Snjluppercase letters and 4 hex digits.
13395102550Siwasaki
13396102550SiwasakiIf a raw string is used in the definition of the _HID object
13397102550Siwasaki(instead of the EISAID macro), the string must contain all
13398114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
13399114237Snjlof the asterisk.)
13400102550Siwasaki
13401114237SnjlImplemented checking for invalid use of ACPI reserved names for
13402114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
13403114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
13404114237SnjlPreviously, this check was only performed for control methods.
13405102550Siwasaki
13406114237SnjlImplemented an additional check on the Name operator to emit an
13407114237Snjlerror if a reserved name that must be implemented in ASL as a
13408114237Snjlcontrol method is used.  We know that a reserved name must be a
13409114237Snjlmethod if it is defined with input arguments.
13410102550Siwasaki
13411193267SjkimThe warning emitted when a namespace object reference is not found
13412126372Snjlduring the cross reference phase has been changed into an error.
13413193267SjkimThe "External" directive should be used for names defined in other
13414126372Snjlmodules.
13415102550Siwasaki
13416102550Siwasaki
13417102550Siwasaki4) Tools and Utilities
13418102550Siwasaki
13419114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
13420114237Snjltested.
13421102550Siwasaki
13422193267SjkimFixed a problem with the output of both acpidump and adump16 where
13423126372Snjlthe indentation of closing parentheses and brackets was not
13424167802Sjkim
13425114237Snjlaligned properly with the parent block.
13426102550Siwasaki
13427102550Siwasaki
13428102550Siwasaki----------------------------------------
13429102550Siwasaki03 May 2002.  Summary of changes for this release.
13430102550Siwasaki
13431102550Siwasaki
13432102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
13433102550Siwasaki
13434114237SnjlAdded support a new OSL interface that allows the host operating
13435167802Sjkim
13436114237Snjlsystem software to override the DSDT found in the firmware -
13437193267SjkimAcpiOsTableOverride.  With this interface, the OSL can examine the
13438126372Snjlversion of the firmware DSDT and replace it with a different one
13439126372Snjlif desired.
13440102550Siwasaki
13441114237SnjlAdded new external interfaces for accessing ACPI registers from
13442114237Snjldevice drivers and other system software - AcpiGetRegister and
13443114237SnjlAcpiSetRegister.  This was simply an externalization of the
13444114237Snjlexisting AcpiHwBitRegister interfaces.
13445102550Siwasaki
13446104470SiwasakiFixed a regression introduced in the previous build where the
13447104470SiwasakiASL/AML CreateField operator always returned an error,
13448102550Siwasaki"destination must be a NS Node".
13449102550Siwasaki
13450114237SnjlExtended the maximum time (before failure) to successfully enable
13451114237SnjlACPI mode to 3 seconds.
13452102550Siwasaki
13453193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13454126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13455126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13456126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13457126372Snjlversion of the code includes the debug output trace mechanism and
13458193267Sjkimhas a larger code and data size.  Note that these values will vary
13459126372Snjldepending on the efficiency of the compiler and the compiler
13460126372Snjloptions used during generation.
13461102550Siwasaki
13462102550Siwasaki  Previous Release
13463104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
13464104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
13465102550Siwasaki  Current Release:
13466104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
13467104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
13468102550Siwasaki
13469102550Siwasaki
13470102550Siwasaki2) Linux
13471102550Siwasaki
13472104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
13473193267Sjkimfree. While 3 out of 4 of our in-house systems work fine, the last
13474126372Snjlone still hangs when testing the LAPIC timer.
13475102550Siwasaki
13476114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
13477114237Snjlname.
13478102550Siwasaki
13479102550SiwasakiAdded warning on boot for Presario 711FR.
13480102550Siwasaki
13481102550SiwasakiSleep improvements (Pavel Machek)
13482102550Siwasaki
13483102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
13484102550Siwasaki
13485102550SiwasakiIA64: Fixed memory map functions (JI Lee)
13486102550Siwasaki
13487102550Siwasaki
13488102550Siwasaki3) iASL Compiler Version X2043:
13489102550Siwasaki
13490114237SnjlAdded support to allow the compiler to be integrated into the MS
13491114237SnjlVC++ development environment for one-button compilation of single
13492114237Snjlfiles or entire projects -- with error-to-source-line mapping.
13493102550Siwasaki
13494104470SiwasakiImplemented support for compile-time constant folding for the
13495104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
13496104470Siwasakispecification.  This allows the ASL writer to use expressions
13497104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
13498114237Snjlevaluate to constants at compile time and will also simplify the
13499114237Snjlemitted AML in any such sub-expressions that can be folded
13500104470Siwasaki(evaluated at compile-time.)  This increases the size of the
13501104470Siwasakicompiler significantly because a portion of the ACPI CA AML
13502104470Siwasakiinterpreter is included within the compiler in order to pre-
13503104470Siwasakievaluate constant expressions.
13504102550Siwasaki
13505114237Snjl
13506102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
13507114237Snjlcompiler to fault.  (This macro is used in conjunction with the
13508114237Snjl_STR reserved name.)
13509102550Siwasaki
13510114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
13511114237SnjlOnes opcodes where possible to further reduce the size of integer
13512114237Snjlconstants and thus reduce the overall size of the generated AML
13513114237Snjlcode.
13514102550Siwasaki
13515193267SjkimImplemented error checking for new reserved terms for ACPI version
13516126372Snjl2.0A.
13517102550Siwasaki
13518104470SiwasakiImplemented the -qr option to display the current list of ACPI
13519104470Siwasakireserved names known to the compiler.
13520102550Siwasaki
13521104470SiwasakiImplemented the -qc option to display the current list of ASL
13522104470Siwasakioperators that are allowed within constant expressions and can
13523193267Sjkimtherefore be folded at compile time if the operands are constants.
13524102550Siwasaki
13525102550Siwasaki
13526102550Siwasaki4) Documentation
13527102550Siwasaki
13528193267SjkimUpdated the Programmer's Reference for new interfaces, data types,
13529126372Snjland memory allocation model options.
13530102550Siwasaki
13531114237SnjlUpdated the iASL Compiler User Reference to apply new format and
13532114237Snjladd information about new features and options.
13533102550Siwasaki
13534102550Siwasaki----------------------------------------
13535102550Siwasaki19 April 2002.  Summary of changes for this release.
13536102550Siwasaki
13537102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
13538102550Siwasaki
13539114237SnjlThe source code base for the Core Subsystem has been completely
13540114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
13541114237Snjlversions.  The Lint option files used are included in the
13542114237Snjl/acpi/generate/lint directory.
13543102550Siwasaki
13544102550SiwasakiImplemented enhanced status/error checking across the entire
13545114237SnjlHardware manager subsystem.  Any hardware errors (reported from
13546114237Snjlthe OSL) are now bubbled up and will abort a running control
13547114237Snjlmethod.
13548102550Siwasaki
13549167802Sjkim
13550114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
13551114237Snjlwas stored only with control method nodes, causing a fault when
13552114237Snjlnon-control method code was executed during table loading.  The
13553114237Snjlsolution implemented uses a global variable to indicate table
13554114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
13555114237Snjlnot support mixed integer widths across different ACPI tables
13556114237Snjl(DSDT, SSDT).
13557102550Siwasaki
13558114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
13559114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
13560114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
13561114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
13562193267SjkimACPI 2.0 X field is zero (even though the table revision indicates
13563193267Sjkima full ACPI 2.0 table.)  The ACPI specification will be updated to
13564126372Snjlclarify this issue.
13565102550Siwasaki
13566104470SiwasakiFixed a problem with the SystemMemory operation region handler
13567104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
13568104470Siwasakispecified access width was larger than a byte.  This caused
13569104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
13570193267Sjkimaccessed with the width specified.  On systems that do not support
13571193267Sjkimnon-aligned transfers, a check is made to guarantee proper address
13572126372Snjlalignment before proceeding in order to avoid an AML-caused
13573126372Snjlalignment fault within the kernel.
13574102550Siwasaki
13575102550Siwasaki
13576114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
13577114237Snjlof the 4-byte Irq field was extracted.
13578102550Siwasaki
13579114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
13580114237Snjlfunction was out of date and required a rewrite.
13581114237Snjl
13582193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13583126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13584126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13585126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13586126372Snjlversion of the code includes the debug output trace mechanism and
13587193267Sjkimhas a larger code and data size.  Note that these values will vary
13588126372Snjldepending on the efficiency of the compiler and the compiler
13589126372Snjloptions used during generation.
13590102550Siwasaki
13591102550Siwasaki  Previous Release
13592104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
13593104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
13594102550Siwasaki  Current Release:
13595104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
13596104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
13597102550Siwasaki
13598102550Siwasaki
13599102550Siwasaki2) Linux
13600102550Siwasaki
13601102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
13602102550Siwasaki
13603102550Siwasaki
13604102550Siwasaki3) iASL Compiler Version X2042:
13605102550Siwasaki
13606104470SiwasakiImplemented an additional compile-time error check for a field
13607104470Siwasakiunit whose size + minimum access width would cause a run-time
13608114237Snjlaccess beyond the end-of-region.  Previously, only the field size
13609114237Snjlitself was checked.
13610102550Siwasaki
13611104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
13612104470Siwasakiobject in preparation for compile-time evaluation of the type
13613104470Siwasaki3/4/5 ASL operators.
13614102550Siwasaki
13615102550Siwasaki
13616102550Siwasaki----------------------------------------
13617102550SiwasakiSummary of changes for this release: 03_29_02
13618102550Siwasaki
13619102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
13620102550Siwasaki
13621104470SiwasakiImplemented support for late evaluation of TermArg operands to
13622193267SjkimBuffer and Package objects.  This allows complex expressions to be
13623126372Snjlused in the declarations of these object types.
13624102550Siwasaki
13625193267SjkimFixed an ACPI 1.0 compatibility issue when reading Fields. In ACPI
13626126372Snjl1.0, if the field was larger than 32 bits, it was returned as a
13627126372Snjlbuffer - otherwise it was returned as an integer.  In ACPI 2.0,
13628193267Sjkimthe field is returned as a buffer only if the field is larger than
13629126372Snjl64 bits.  The TableRevision is now considered when making this
13630126372Snjlconversion to avoid incompatibility with existing ASL code.
13631102550Siwasaki
13632104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
13633114237Snjlallows an RSDP with either a logical or physical address.  With
13634114237Snjlthis support, the host OS can now override all ACPI tables with
13635114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
13636114237Snjlsupport to allow a common data type for both physical and logical
13637114237Snjlpointers internally.  This required a change to the
13638114237SnjlAcpiOsGetRootPointer interface.
13639102550Siwasaki
13640193267SjkimImplemented the use of ACPI 2.0 Generic Address Structures for all
13641193267SjkimGPE, Fixed Event, and PM Timer I/O.  This allows the use of memory
13642126372Snjlmapped I/O for these ACPI features.
13643102550Siwasaki
13644102550SiwasakiInitialization now ignores not only non-required tables (All
13645114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
13646114237Snjlnot validate the table headers of unrecognized tables.
13647102550Siwasaki
13648102550SiwasakiFixed a problem where a notify handler could only be
13649102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
13650167802Sjkim
13651102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
13652102550SiwasakiThermal.
13653102550Siwasaki
13654114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
13655193267Sjkimcritical information is returned when this debug level is enabled.
13656102550Siwasaki
13657193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13658126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13659126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13660126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13661126372Snjlversion of the code includes the debug output trace mechanism and
13662193267Sjkimhas a larger code and data size.  Note that these values will vary
13663126372Snjldepending on the efficiency of the compiler and the compiler
13664126372Snjloptions used during generation.
13665102550Siwasaki
13666102550Siwasaki  Previous Release
13667104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
13668104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
13669102550Siwasaki  Current Release:
13670104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
13671104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
13672102550Siwasaki
13673102550Siwasaki
13674102550Siwasaki2) Linux:
13675102550Siwasaki
13676114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
13677114237Snjl2.0-based processor performance control (e.g. Intel(R)
13678114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
13679114237Snjlthe Intel "applet" interface are not supported through this.  The
13680114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
13681114237Snjl[Note that basic policy for controlling performance state
13682114237Snjltransitions will be included in the next version of ospmd.]  The
13683114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
13684114237Snjlerrata handling underwent a complete overhaul (big thanks to
13685114237SnjlDominik Brodowski).
13686102550Siwasaki
13687114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
13688114237Snjlbased devices in the ACPI namespace are now dynamically bound
13689114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
13690114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
13691114237Snjlsubordinate PCI bridges.
13692102550Siwasaki
13693104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
13694104470Siwasakientries defined underneath PCI bridges.
13695102550Siwasaki
13696104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
13697104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
13698102550Siwasaki
13699114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
13700114237Snjl(acpi.c, mpparse.c) -- stay tuned.
13701102550Siwasaki
13702102550SiwasakiAdded back visual differentiation between fixed-feature and
13703114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
13704114237Snjlbutton/power/PWRF) to simplify button identification.
13705102550Siwasaki
13706114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
13707114237Snjlany "_THIS_MODULE defined but not used" messages.
13708102550Siwasaki
13709102550SiwasakiCan now shut down the system using "magic sysrq" key.
13710102550Siwasaki
13711102550Siwasaki
13712102550Siwasaki3) iASL Compiler version 2041:
13713102550Siwasaki
13714104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
13715104470Siwasakiconstants were not reported.
13716102550Siwasaki
13717193267SjkimImplemented a fix for the General Register template Address field.
13718126372SnjlThis field was 8 bits when it should be 64.
13719102550Siwasaki
13720193267SjkimFixed a problem where errors/warnings were no longer being emitted
13721126372Snjlwithin the listing output file.
13722102550Siwasaki
13723114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
13724114237Snjlexactly 4 characters, alphanumeric only.
13725102550Siwasaki
13726102550Siwasaki
13727102550Siwasaki
13728102550Siwasaki
13729102550Siwasaki----------------------------------------
13730102550SiwasakiSummary of changes for this release: 03_08_02
13731102550Siwasaki
13732102550Siwasaki
13733102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
13734102550Siwasaki
13735114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
13736193267Sjkimkeyword could cause an interpreter error due to attempting to read
13737126372Snjlor write beyond the end of the parent Operation Region.
13738102550Siwasaki
13739193267SjkimFixed a problem in the SystemMemory Operation Region handler where
13740126372Snjlan attempt was made to map memory beyond the end of the region.
13741126372SnjlThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
13742126372Snjlerrors on some Linux systems.
13743102550Siwasaki
13744114237SnjlFixed a problem where the interpreter/namespace "search to root"
13745114237Snjlalgorithm was not functioning for some object types.  Relaxed the
13746114237Snjlinternal restriction on the search to allow upsearches for all
13747114237Snjlexternal object types as well as most internal types.
13748102550Siwasaki
13749102550Siwasaki
13750102550Siwasaki2) Linux:
13751102550Siwasaki
13752193267SjkimWe now use safe_halt() macro versus individual calls to sti | hlt.
13753102550Siwasaki
13754193267SjkimWriting to the processor limit interface should now work. "echo 1"
13755126372Snjlwill increase the limit, 2 will decrease, and 0 will reset to the
13756167802Sjkim
13757126372Snjldefault.
13758102550Siwasaki
13759102550Siwasaki
13760102550Siwasaki3) ASL compiler:
13761102550Siwasaki
13762102550SiwasakiFixed segfault on Linux version.
13763102550Siwasaki
13764102550Siwasaki
13765102550Siwasaki----------------------------------------
13766102550SiwasakiSummary of changes for this release: 02_25_02
13767102550Siwasaki
13768102550Siwasaki1) ACPI CA Core Subsystem:
13769102550Siwasaki
13770102550Siwasaki
13771102550SiwasakiFixed a problem where the GPE bit masks were not initialized
13772102550Siwasakiproperly, causing erratic GPE behavior.
13773102550Siwasaki
13774193267SjkimImplemented limited support for multiple calling conventions.  The
13775126372Snjlcode can be generated with either the VPL (variable parameter
13776114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
13777114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
13778114237Snjlwhen generated with FPL.
13779102550Siwasaki
13780102550Siwasaki
13781102550Siwasaki2) Linux
13782102550Siwasaki
13783114237SnjlRe-add some /proc/acpi/event functionality that was lost during
13784114237Snjlthe rewrite
13785102550Siwasaki
13786193267SjkimResolved issue with /proc events for fixed-feature buttons showing
13787126372Snjlup as the system device.
13788102550Siwasaki
13789193267SjkimFixed checks on C2/C3 latencies to be inclusive of maximum values.
13790102550Siwasaki
13791114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
13792102550Siwasaki
13793114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
13794102550Siwasaki
13795104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
13796104470Siwasakihysterisis.
13797102550Siwasaki
13798102550SiwasakiRestructured PRT support.
13799102550Siwasaki
13800102550Siwasaki
13801102550Siwasaki----------------------------------------
13802102550SiwasakiSummary of changes for this label: 02_14_02
13803102550Siwasaki
13804102550Siwasaki
13805102550Siwasaki1) ACPI CA Core Subsystem:
13806102550Siwasaki
13807114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
13808114237SnjlFADT tables.
13809102550Siwasaki
13810114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
13811193267Sjkimbeen removed.  All 64-bit platforms should be migrated to the ACPI
13812193267Sjkim2.0 tables.  The actbl71.h header has been removed from the source
13813126372Snjltree.
13814102550Siwasaki
13815114237SnjlAll C macros defined within the subsystem have been prefixed with
13816114237Snjl"ACPI_" to avoid collision with other system include files.
13817102550Siwasaki
13818193267SjkimRemoved the return value for the two AcpiOsPrint interfaces, since
13819126372Snjlit is never used and causes lint warnings for ignoring the return
13820126372Snjlvalue.
13821102550Siwasaki
13822104470SiwasakiAdded error checking to all internal mutex acquire and release
13823104470Siwasakicalls.  Although a failure from one of these interfaces is
13824104470Siwasakiprobably a fatal system error, these checks will cause the
13825114237Snjlimmediate abort of the currently executing method or interface.
13826102550Siwasaki
13827114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
13828193267Sjkimfault.  This was a side effect of the deployment of the new memory
13829126372Snjlallocation model.
13830102550Siwasaki
13831193267SjkimFixed a couple of problems with the Global Lock support introduced
13832193267Sjkimin the last major build.  The "common" (1.0/2.0) internal FACS was
13833126372Snjlbeing overwritten with the FACS signature and clobbering the
13834126372SnjlGlobal Lock pointer.  Also, the actual firmware FACS was being
13835126372Snjlunmapped after construction of the "common" FACS, preventing
13836126372Snjlaccess to the actual Global Lock field within it.  The "common"
13837126372Snjlinternal FACS is no longer installed as an actual ACPI table; it
13838126372Snjlis used simply as a global.
13839102550Siwasaki
13840193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13841126372Snjlbelow.  These are the code and data sizes for the acpica.lib
13842126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13843126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13844126372Snjlversion of the code includes the debug output trace mechanism and
13845193267Sjkimhas a larger code and data size.  Note that these values will vary
13846126372Snjldepending on the efficiency of the compiler and the compiler
13847126372Snjloptions used during generation.
13848102550Siwasaki
13849102550Siwasaki  Previous Release (02_07_01)
13850104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
13851104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
13852102550Siwasaki  Current Release:
13853104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
13854104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
13855102550Siwasaki
13856102550Siwasaki
13857102550Siwasaki2) Linux
13858102550Siwasaki
13859102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
13860102550Siwasakichanges described above.
13861102550Siwasaki
13862114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
13863114237Snjlproper poll functionality.
13864102550Siwasaki
13865102550SiwasakiFixed and restructured power management (acpi_bus).
13866102550Siwasaki
13867193267SjkimOnly create /proc "view by type" when devices of that class exist.
13868102550Siwasaki
13869104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
13870102550Siwasaki
13871102550SiwasakiImproved thermal zone code.
13872102550Siwasaki
13873102550Siwasaki
13874102550Siwasaki3) ASL Compiler, version X2039:
13875102550Siwasaki
13876114237Snjl
13877114237SnjlImplemented the new compiler restriction on ASL String hex/octal
13878193267Sjkimescapes to non-null, ASCII values.  An error results if an invalid
13879126372Snjlvalue is used.  (This will require an ACPI 2.0 specification
13880126372Snjlchange.)
13881102550Siwasaki
13882193267SjkimAML object labels that are output to the optional C and ASM source
13883126372Snjlare now prefixed with both the ACPI table signature and table ID
13884126372Snjlto help guarantee uniqueness within a large BIOS project.
13885102550Siwasaki
13886102550Siwasaki
13887102550Siwasaki----------------------------------------
13888102550SiwasakiSummary of changes for this label: 02_01_02
13889102550Siwasaki
13890102550Siwasaki1) ACPI CA Core Subsystem:
13891102550Siwasaki
13892114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
13893114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
13894114237Snjlother changes for ACPI 2.0 support are complete.  With
13895193267Sjkimsimultaneous code and data optimizations throughout the subsystem,
13896126372SnjlACPI 2.0 support has been implemented with almost no additional
13897126372Snjlcost in terms of code and data size.
13898102550Siwasaki
13899114237SnjlImplemented a new mechanism for allocation of return buffers.  If
13900114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
13901114237Snjlbe allocated on behalf of the caller.  Consolidated all return
13902114237Snjlbuffer validation and allocation to a common procedure.  Return
13903193267Sjkimbuffers will be allocated via the primary OSL allocation interface
13904193267Sjkimsince it appears that a separate pool is not needed by most users.
13905126372SnjlIf a separate pool is required for these buffers, the caller can
13906126372Snjlstill use the original mechanism and pre-allocate the buffer(s).
13907102550Siwasaki
13908102550SiwasakiImplemented support for string operands within the DerefOf
13909102550Siwasakioperator.
13910102550Siwasaki
13911114237SnjlRestructured the Hardware and Event managers to be table driven,
13912114237Snjlsimplifying the source code and reducing the amount of generated
13913114237Snjlcode.
13914102550Siwasaki
13915102550SiwasakiSplit the common read/write low-level ACPI register bitfield
13916104470Siwasakiprocedure into a separate read and write, simplifying the code
13917104470Siwasakiconsiderably.
13918102550Siwasaki
13919114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
13920114237Snjlused only a handful of times and didn't have enough critical mass
13921193267Sjkimfor a separate interface.  Replaced with a common calloc procedure
13922126372Snjlin the core.
13923102550Siwasaki
13924104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
13925104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
13926114237SnjlReorganized the GPE information and shrunk a large array that was
13927114237Snjloriginally large enough to hold info for all possible GPEs (256)
13928114237Snjlto simply large enough to hold all GPEs up to the largest GPE
13929114237Snjlnumber on the machine.
13930102550Siwasaki
13931114237SnjlFixed a reported problem with resource structure alignment on 64-
13932114237Snjlbit platforms.
13933102550Siwasaki
13934102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
13935102550Siwasakiinterfaces to not require any flags for the common case of
13936102550Siwasakienabling/disabling a GPE.
13937102550Siwasaki
13938104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
13939102550Siwasaki
13940114237SnjlMost TBDs in comments within the source code have been resolved
13941114237Snjland eliminated.
13942102550Siwasaki
13943167802Sjkim
13944102550SiwasakiFixed a problem in the interpreter where a standalone parent
13945102550Siwasakiprefix (^) was not handled correctly in the interpreter and
13946102550Siwasakidebugger.
13947102550Siwasaki
13948102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
13949102550Siwasaki
13950193267SjkimImplemented Field support in the ASL Load operator.  This allows a
13951126372Snjltable to be loaded from a named field, in addition to loading a
13952114237Snjltable directly from an Operation Region.
13953102550Siwasaki
13954193267SjkimImplemented timeout and handle support in the external Global Lock
13955126372Snjlinterfaces.
13956102550Siwasaki
13957114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
13958193267Sjkimlonger being generated correctly during the dump of named objects.
13959102550Siwasaki
13960102550SiwasakiModified the AML debugger to give a full display of if/while
13961102550Siwasakipredicates instead of just one AML opcode at a time.  (The
13962193267Sjkimpredicate can have several nested ASL statements.)  The old method
13963126372Snjlwas confusing during single stepping.
13964102550Siwasaki
13965193267SjkimCode and Data Size: Current core subsystem library sizes are shown
13966126372Snjlbelow. These are the code and data sizes for the acpica.lib
13967114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
13968114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
13969114237Snjlversion of the code includes the debug output trace mechanism and
13970193267Sjkimhas a larger code and data size.  Note that these values will vary
13971126372Snjldepending on the efficiency of the compiler and the compiler
13972114237Snjloptions used during generation.
13973102550Siwasaki
13974102550Siwasaki  Previous Release (12_18_01)
13975114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
13976114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
13977102550Siwasaki   Current Release:
13978114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
13979114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
13980102550Siwasaki
13981102550Siwasaki2) Linux
13982102550Siwasaki
13983104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
13984104470Siwasakidriver)
13985102550Siwasaki
13986102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
13987102550Siwasaki
13988102550SiwasakiNew thermal policy (Thermal driver)
13989102550Siwasaki
13990102550SiwasakiMany updates to /proc
13991102550Siwasaki
13992102550SiwasakiBattery "low" event support (Battery driver)
13993102550Siwasaki
13994104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
13995102550Siwasaki
13996104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
13997102550Siwasaki
13998102550SiwasakiMenuconfig options redesigned
13999102550Siwasaki
14000102550Siwasaki3) ASL Compiler, version X2037:
14001102550Siwasaki
14002193267SjkimImplemented several new output features to simplify integration of
14003126372SnjlAML code into  firmware: 1) Output the AML in C source code with
14004193267Sjkimlabels for each named ASL object.  The    original ASL source code
14005193267Sjkimis interleaved as C comments. 2) Output the AML in ASM source code
14006126372Snjlwith labels and interleaved ASL    source. 3) Output the AML in
14007126372Snjlraw hex table form, in either C or ASM.
14008102550Siwasaki
14009102550SiwasakiImplemented support for optional string parameters to the
14010102550SiwasakiLoadTable operator.
14011102550Siwasaki
14012104470SiwasakiCompleted support for embedded escape sequences within string
14013114237Snjlliterals.  The compiler now supports all single character escapes
14014114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
14015114237Snjlnull byte into a string literal (via the hex/octal escape) causes
14016114237Snjlthe string to be immediately terminated.  A warning is issued.
14017102550Siwasaki
14018104470SiwasakiFixed a problem where incorrect AML was generated for the case
14019104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
14020102550Siwasaki
14021102550Siwasaki) with no trailing name segments.
14022102550Siwasaki
14023102550SiwasakiThe compiler has been successfully generated with a 64-bit C
14024102550Siwasakicompiler.
14025102550Siwasaki
14026102550Siwasaki
14027102550Siwasaki
14028102550Siwasaki
14029102550Siwasaki----------------------------------------
14030102550SiwasakiSummary of changes for this label: 12_18_01
14031102550Siwasaki
14032102550Siwasaki1) Linux
14033102550Siwasaki
14034114237SnjlEnhanced blacklist with reason and severity fields. Any table's
14035114237Snjlsignature may now be used to identify a blacklisted system.
14036102550Siwasaki
14037114237SnjlCall _PIC control method to inform the firmware which interrupt
14038114237Snjlmodel the OS is using. Turn on any disabled link devices.
14039102550Siwasaki
14040102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
14041102550Siwasaki
14042102550Siwasaki 2) ACPI CA Core Subsystem:
14043102550Siwasaki
14044193267SjkimImplemented ACPI 2.0 semantics for the "Break" operator (Exit from
14045126372Snjlwhile loop)
14046102550Siwasaki
14047102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
14048102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
14049193267Sjkimoperators.  All new ACPI 2.0 operators are now implemented in both
14050193267Sjkimthe ASL compiler and the AML interpreter.  The only remaining ACPI
14051126372Snjl2.0 task is support for the String data type in the DerefOf
14052193267Sjkimoperator.  Fixed a problem with AcquireMutex where the status code
14053126372Snjlwas lost if the caller had to actually wait for the mutex.
14054102550Siwasaki
14055104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
14056102550Siwasaki
14057193267SjkimCompleted implementation of the external Global Lock interfaces --
14058126372SnjlAcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
14059126372SnjlHandler parameters were added.
14060102550Siwasaki
14061102550SiwasakiCompleted another pass at removing warnings and issues when
14062114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
14063114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
14064114237Snjladd and subtract (diff) macros have changed considerably.
14065102550Siwasaki
14066167802Sjkim
14067114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
14068114237Snjl64-bit platforms, 32-bits on all others.  This type is used
14069193267Sjkimwherever memory allocation and/or the C sizeof() operator is used,
14070126372Snjland affects the OSL memory allocation interfaces AcpiOsAllocate
14071126372Snjland AcpiOsCallocate.
14072102550Siwasaki
14073102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
14074102550Siwasaki
14075193267SjkimCode and Data Size: Current core subsystem library sizes are shown
14076126372Snjlbelow. These are the code and data sizes for the acpica.lib
14077114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
14078114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
14079114237Snjlversion of the code includes the debug output trace mechanism and
14080114237Snjlhas a larger code and data size. Note that these values will vary
14081114237Snjldepending on the efficiency of the compiler and the compiler
14082114237Snjloptions used during generation.
14083102550Siwasaki
14084102550Siwasaki  Previous Release (12_05_01)
14085114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
14086114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
14087102550Siwasaki   Current Release:
14088114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
14089114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
14090102550Siwasaki
14091102550Siwasaki 3) ASL Compiler, version X2034:
14092102550Siwasaki
14093114237SnjlNow checks for (and generates an error if detected) the use of a
14094114237SnjlBreak or Continue statement without an enclosing While statement.
14095102550Siwasaki
14096167802Sjkim
14097102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
14098102550Siwasakicompiler.
14099102550Siwasaki
14100102550Siwasaki ----------------------------------------
14101102550SiwasakiSummary of changes for this label: 12_05_01
14102102550Siwasaki
14103102550Siwasaki 1) ACPI CA Core Subsystem:
14104102550Siwasaki
14105102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
14106104470Siwasakioperator creates a new copy of an object (and is also used to
14107193267Sjkimbypass the "implicit conversion" mechanism of the Store operator.)
14108102550Siwasaki
14109102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
14110102550Siwasakiimplemented.  The change is that performing a SizeOf on a
14111114237Snjlreference object causes an automatic dereference of the object to
14112114237Snjltha actual value before the size is evaluated. This behavior was
14113114237Snjlundefined in ACPI 1.0.
14114102550Siwasaki
14115114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
14116114237Snjlhave been implemented.  The interrupt polarity and mode are now
14117114237Snjlindependently set.
14118102550Siwasaki
14119114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
14120114237Snjlappearing in Package objects were not properly converted to
14121114237Snjlintegers when the internal Package was converted to an external
14122114237Snjlobject (via the AcpiEvaluateObject interface.)
14123102550Siwasaki
14124114237SnjlFixed a problem with the namespace object deletion mechanism for
14125114237Snjlobjects created by control methods.  There were two parts to this
14126193267Sjkimproblem: 1) Objects created during the initialization phase method
14127193267Sjkimparse were not being deleted, and 2) The object owner ID mechanism
14128126372Snjlto track objects was broken.
14129102550Siwasaki
14130114237SnjlFixed a problem where the use of the ASL Scope operator within a
14131114237Snjlcontrol method would result in an invalid opcode exception.
14132102550Siwasaki
14133114237SnjlFixed a problem introduced in the previous label where the buffer
14134114237Snjllength required for the _PRT structure was not being returned
14135114237Snjlcorrectly.
14136102550Siwasaki
14137193267SjkimCode and Data Size: Current core subsystem library sizes are shown
14138126372Snjlbelow. These are the code and data sizes for the acpica.lib
14139114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
14140114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
14141114237Snjlversion of the code includes the debug output trace mechanism and
14142193267Sjkimhas a larger code and data size.  Note that these values will vary
14143126372Snjldepending on the efficiency of the compiler and the compiler
14144114237Snjloptions used during generation.
14145102550Siwasaki
14146102550Siwasaki  Previous Release (11_20_01)
14147114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
14148114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
14149102550Siwasaki
14150102550Siwasaki  Current Release:
14151114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
14152114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
14153102550Siwasaki
14154102550Siwasaki 2) Linux:
14155102550Siwasaki
14156102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
14157102550Siwasaki
14158104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
14159114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
14160114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
14161114237Snjlentries are treated as if they were static (not yet
14162114237Snjlreconfigurable).  Architecture- specific code to use this data is
14163114237Snjlabsent on IA32 but should be available shortly.
14164102550Siwasaki
14165114237SnjlChanged the initialization sequence to start the ACPI interpreter
14166114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
14167114237Snjlin init/main.c.  This ordering is required to support PRT and
14168114237Snjlfacilitate other (future) enhancement.  A side effect is that the
14169193267SjkimACPI bus driver and certain device drivers can no longer be loaded
14170126372Snjlas modules.
14171102550Siwasaki
14172104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
14173104470SiwasakiRouting support to be included without the ACPI Bus and other
14174104470Siwasakidevice drivers.
14175102550Siwasaki
14176102550Siwasaki 3) ASL Compiler, version X2033:
14177102550Siwasaki
14178102550SiwasakiFixed some issues with the use of the new CopyObject and
14179102550SiwasakiDataTableRegion operators.  Both are fully functional.
14180102550Siwasaki
14181102550Siwasaki ----------------------------------------
14182102550SiwasakiSummary of changes for this label: 11_20_01
14183102550Siwasaki
14184102550Siwasaki 20 November 2001.  Summary of changes for this release.
14185102550Siwasaki
14186102550Siwasaki 1) ACPI CA Core Subsystem:
14187102550Siwasaki
14188104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
14189193267SjkimInteger, String, or Buffer to an Index of a Buffer will store only
14190126372Snjlthe least-significant byte of the source to the Indexed buffer
14191126372Snjlbyte.  Multiple writes are not performed.
14192102550Siwasaki
14193104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
14194104470Siwasakioperator was not recorded correctly into the field object.
14195102550Siwasaki
14196102550SiwasakiFixed a problem where ASL Event objects were created in a
14197114237Snjlsignalled state. Events are now created in an unsignalled state.
14198102550Siwasaki
14199114237SnjlThe internal object cache is now purged after table loading and
14200114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
14201114237Snjlthe assumption that object use is greatest during the parse phase
14202193267Sjkimof the entire table (versus the run-time use of individual control
14203126372Snjlmethods.)
14204102550Siwasaki
14205102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
14206102550Siwasaki
14207193267SjkimCode and Data Size: Code and Data optimizations have permitted new
14208126372Snjlfeature development with an actual reduction in the library size.
14209126372SnjlCurrent core subsystem library sizes are shown below.  These are
14210126372Snjlthe code and data sizes for the acpica.lib produced by the
14211193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not include
14212126372Snjlany ACPI driver or OSPM code.  The debug version of the code
14213126372Snjlincludes the debug output trace mechanism and has a larger code
14214126372Snjland data size.  Note that these values will vary depending on the
14215126372Snjlefficiency of the compiler and the compiler options used during
14216126372Snjlgeneration.
14217102550Siwasaki
14218102550Siwasaki  Previous Release (11_09_01):
14219114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
14220114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
14221102550Siwasaki
14222102550Siwasaki  Current Release:
14223114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
14224114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
14225102550Siwasaki
14226102550Siwasaki 2) Linux:
14227102550Siwasaki
14228114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
14229114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
14230114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
14231114237Snjlnear future.  This functionality replaces
14232114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
14233114237Snjl2.4.15-preX release.  To enable this feature you must add
14234114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
14235193267Sjkimfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is in
14236126372Snjlthe works...
14237102550Siwasaki
14238114237SnjlRestructured the configuration options to allow boot-time table
14239114237Snjlparsing support without inclusion of the ACPI Interpreter (and
14240114237Snjlother) code.
14241102550Siwasaki
14242193267SjkimNOTE: This release does not include fixes for the reported events,
14243126372Snjlpower-down, and thermal passive cooling issues (coming soon).
14244102550Siwasaki
14245102550Siwasaki 3) ASL Compiler:
14246102550Siwasaki
14247114237SnjlAdded additional typechecking for Fields within restricted access
14248114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
14249114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
14250114237Snjldeclared with the BufferAcc access type.
14251102550Siwasaki
14252114237SnjlFixed a problem where the listing file output of control methods
14253114237Snjlno longer interleaved the actual AML code with the ASL source
14254114237Snjlcode.
14255102550Siwasaki
14256102550Siwasaki
14257102550Siwasaki
14258167802Sjkim
14259102550Siwasaki----------------------------------------
14260102550SiwasakiSummary of changes for this label: 11_09_01
14261102550Siwasaki
14262102550Siwasaki1) ACPI CA Core Subsystem:
14263102550Siwasaki
14264114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
14265193267SjkimBuffer, String, or Integer source operand that is smaller than the
14266126372Snjltarget field. In these cases, the source operand is zero-extended
14267126372Snjlto fill the target field.
14268102550Siwasaki
14269104470SiwasakiFixed a problem where a Field starting bit offset (within the
14270104470Siwasakiparent operation region) was calculated incorrectly if the
14271167802Sjkim
14272104470Siwasakialignment of the field differed from the access width.  This
14273114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
14274114237Snjlpossibly other fields that use the "AccessAny" keyword.
14275102550Siwasaki
14276114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
14277114237Snjlstores through method arguments did not operate correctly.
14278102550Siwasaki
14279102550Siwasaki2) Linux:
14280102550Siwasaki
14281102550SiwasakiImplemented boot-time ACPI table parsing support
14282114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
14283114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
14284114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
14285193267Sjkimprocessors, memory, and interrupts during setup_arch().  Note that
14286126372Snjlthis patch does not include the required architecture-specific
14287126372Snjlchanges required to apply this information -- subsequent patches
14288126372Snjlwill be posted for both IA32 and IA64 to achieve this.
14289102550Siwasaki
14290114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
14291114237SnjlMochel. This allows IA32 systems to transition to/from various
14292114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
14293114237Snjldriver model and power-manageable drivers will prevent its
14294114237Snjl(successful) use on most systems.
14295102550Siwasaki
14296114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
14297193267Sjkimsubmenu, unified IA32 and IA64 options, added new "Boot using ACPI
14298126372Snjltables" option, etc.
14299102550Siwasaki
14300114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
14301114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
14302114237Snjltransactions.
14303102550Siwasaki
14304102550Siwasaki ----------------------------------------
14305102550SiwasakiSummary of changes for this label: 11_02_01
14306102550Siwasaki
14307102550Siwasaki1) ACPI CA Core Subsystem:
14308102550Siwasaki
14309102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
14310102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
14311102550Siwasakiimplemented.
14312102550Siwasaki
14313114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
14314114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
14315193267SjkimPciConfiguration(), Read/Write Memory(), and Read/Write Port() now
14316126372Snjlaccept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
14317193267Sjkimthe value parameter for the address space handler interface is now
14318193267Sjkiman ACPI_INTEGER.  OSL implementations of these interfaces must now
14319126372Snjlhandle the case where the Width parameter is 64.
14320102550Siwasaki
14321104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
14322104470Siwasakidisassembly for IndexFields was not supported correctly.
14323102550Siwasaki
14324102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
14325104470Siwasakisupported. During field access, a check is performed to ensure
14326114237Snjlthat the value written to an Index or Bank register is not out of
14327114237Snjlthe range of the register.  The Index (or Bank) register is
14328114237Snjlwritten before each access to the field data. Future support will
14329114237Snjlinclude allowing individual IndexFields to be wider than the
14330114237SnjlDataRegister width.
14331102550Siwasaki
14332114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
14333114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
14334114237Snjla boundary case that occurred when a DWORD field was written to a
14335114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
14336114237Snjlinterpreter to write one datum too many.
14337102550Siwasaki
14338102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
14339114237Snjlstarting bit address of a field was incorrectly calculated if the
14340114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
14341114237SnjlQwordAcc).
14342102550Siwasaki
14343104470SiwasakiFields: Fixed a problem where forward references to individual
14344193267SjkimFieldUnits (individual Field names within a Field definition) were
14345126372Snjlnot resolved during the AML table load.
14346102550Siwasaki
14347104470SiwasakiFields: Fixed a problem where forward references from a Field
14348104470Siwasakidefinition to the parent Operation Region definition were not
14349104470Siwasakiresolved during the AML table load.
14350104470Siwasaki
14351114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
14352114237Snjlduring AML table load.
14353102550Siwasaki
14354193267SjkimAcpi Interfaces: Fixed a problem where the AcpiGetName() interface
14355126372Snjlreturned an incorrect name for the root node.
14356102550Siwasaki
14357193267SjkimCode and Data Size: Code and Data optimizations have permitted new
14358126372Snjlfeature development with an actual reduction in the library size.
14359126372SnjlCurrent core subsystem library sizes are shown below.  These are
14360126372Snjlthe code and data sizes for the acpica.lib produced by the
14361193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not include
14362126372Snjlany ACPI driver or OSPM code.  The debug version of the code
14363126372Snjlincludes the debug output trace mechanism and has a larger code
14364126372Snjland data size.  Note that these values will vary depending on the
14365126372Snjlefficiency of the compiler and the compiler options used during
14366126372Snjlgeneration.
14367102550Siwasaki
14368102550Siwasaki  Previous Release (10_18_01):
14369114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
14370114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
14371102550Siwasaki
14372102550Siwasaki  Current Release:
14373114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
14374114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
14375102550Siwasaki
14376102550Siwasaki 2) Linux:
14377102550Siwasaki
14378102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
14379102550SiwasakiMODULE_LICENSE("GPL") to all modules.
14380102550Siwasaki
14381102550Siwasaki 3) ASL Compiler version X2030:
14382102550Siwasaki
14383104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
14384104470Siwasakiflagged as errors.
14385102550Siwasaki
14386102550Siwasaki 4) Documentation:
14387102550Siwasaki
14388104470SiwasakiProgrammer Reference updated to reflect OSL and address space
14389104470Siwasakihandler interface changes described above.
14390102550Siwasaki
14391102550Siwasaki----------------------------------------
14392102550SiwasakiSummary of changes for this label: 10_18_01
14393102550Siwasaki
14394102550SiwasakiACPI CA Core Subsystem:
14395102550Siwasaki
14396193267SjkimFixed a problem with the internal object reference count mechanism
14397126372Snjlthat occasionally caused premature object deletion. This resolves
14398126372Snjlall of the outstanding problem reports where an object is deleted
14399193267Sjkimin the middle of an interpreter evaluation.  Although this problem
14400126372Snjlonly showed up in rather obscure cases, the solution to the
14401126372Snjlproblem involved an adjustment of all reference counts involving
14402126372Snjlobjects attached to namespace nodes.
14403102550Siwasaki
14404102550SiwasakiFixed a problem with Field support in the interpreter where
14405114237Snjlwriting to an aligned field whose length is an exact multiple (2
14406193267Sjkimor greater) of the field access granularity would cause an attempt
14407126372Snjlto write beyond the end of the field.
14408102550Siwasaki
14409102550SiwasakiThe top level AML opcode execution functions within the
14410102550Siwasakiinterpreter have been renamed with a more meaningful and
14411102550Siwasakiconsistent naming convention.  The modules exmonad.c and
14412102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
14413102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
14414102550Siwasaki
14415114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
14416102550Siwasaki
14417114237SnjlFixed a problem where the AML debugger was causing some internal
14418114237Snjlobjects to not be deleted during subsystem termination.
14419102550Siwasaki
14420104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
14421104470Siwasakiwhere the subsystem would fault if the named object to be
14422104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
14423102550Siwasaki
14424102550SiwasakiFixed a problem with IndexFields and BankFields where the
14425114237Snjlsubsystem would fault if the index, data, or bank registers were
14426114237Snjlnot defined in the same scope as the field itself.
14427102550Siwasaki
14428104470SiwasakiAdded printf format string checking for compilers that support
14429104470Siwasakithis feature.  Corrected more than 50 instances of issues with
14430104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
14431104470Siwasakithroughout the core subsystem code.
14432102550Siwasaki
14433104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
14434193267Sjkimimplemented in the core - the value "2" since the ACPI 2.0 support
14435126372Snjlis more than 50% implemented.
14436102550Siwasaki
14437114237SnjlEnhanced the output of the AML debugger "dump namespace" command
14438114237Snjlto output in a more human-readable form.
14439102550Siwasaki
14440114237SnjlCurrent core subsystem library code sizes are shown below.  These
14441167802Sjkim
14442114237Snjlare the code and data sizes for the acpica.lib produced by the
14443193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not include
14444126372Snjlany ACPI driver or OSPM code.  The debug version of the code
14445126372Snjlincludes the full debug trace mechanism -- leading to a much
14446167802Sjkim
14447114237Snjllarger code and data size.  Note that these values will vary
14448114237Snjldepending on the efficiency of the compiler and the compiler
14449114237Snjloptions used during generation.
14450102550Siwasaki
14451102550Siwasaki     Previous Label (09_20_01):
14452114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
14453114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
14454102550Siwasaki
14455102550Siwasaki     This Label:
14456102550Siwasaki
14457114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
14458114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
14459114237Snjl
14460102550SiwasakiLinux:
14461102550Siwasaki
14462104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
14463104470Siwasakiknown ASL/AML problems.
14464102550Siwasaki
14465193267SjkimEnhanced the /proc interface for the thermal zone driver and added
14466126372Snjlsupport for _HOT (the critical suspend trip point).  The 'info'
14467193267Sjkimfile now includes threshold/policy information, and allows setting
14468126372Snjlof _SCP (cooling preference) and _TZP (polling frequency) values
14469193267Sjkimto the 'info' file. Examples: "echo tzp=5 > info" sets the polling
14470126372Snjlfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling
14471126372Snjlpreference to the passive/quiet mode (if supported by the ASL).
14472102550Siwasaki
14473104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
14474104470Siwasakiwhen loading the control method battery driver.
14475102550Siwasaki
14476102550Siwasaki ----------------------------------------
14477102550SiwasakiSummary of changes for this label: 09_20_01
14478102550Siwasaki
14479102550Siwasaki ACPI CA Core Subsystem:
14480102550Siwasaki
14481104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
14482104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
14483114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
14484114237Snjlsleeps.)
14485102550Siwasaki
14486104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
14487104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
14488104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
14489104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
14490102550Siwasaki
14491114237SnjlA local double-precision divide/modulo module has been added to
14492114237Snjlenhance portability to OS kernels where a 64-bit math library is
14493114237Snjlnot available.  The new module is "utmath.c".
14494102550Siwasaki
14495104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
14496114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
14497114237Snjl2K at 1860  bytes (1.82k)
14498102550Siwasaki
14499114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
14500193267Sjkimroot table pointer was not mapped into a logical address properly.
14501102550Siwasaki
14502193267SjkimFixed a problem where a NULL pointer was being dereferenced in the
14503126372Snjlinterpreter code for the ASL Notify operator.
14504102550Siwasaki
14505102550SiwasakiFixed a problem where the use of the ASL Revision operator
14506114237Snjlreturned an error. This operator now returns the current version
14507114237Snjlof the ACPI CA core subsystem.
14508102550Siwasaki
14509114237SnjlFixed a problem where objects passed as control method parameters
14510114237Snjlto AcpiEvaluateObject were always deleted at method termination.
14511114237SnjlHowever, these objects may end up being stored into the namespace
14512114237Snjlby the called method.  The object reference count mechanism was
14513114237Snjlapplied to these objects instead of a force delete.
14514102550Siwasaki
14515114237SnjlFixed a problem where static strings or buffers (contained in the
14516114237SnjlAML code) that are declared as package elements within the ASL
14517114237Snjlcode could cause a fault because the interpreter would attempt to
14518114237Snjldelete them.  These objects are now marked with the "static
14519114237Snjlobject" flag to prevent any attempt to delete them.
14520102550Siwasaki
14521114237SnjlImplemented an interpreter optimization to use operands directly
14522114237Snjlfrom the state object instead of extracting the operands to local
14523114237Snjlvariables.  This reduces stack use and code size, and improves
14524114237Snjlperformance.
14525102550Siwasaki
14526193267SjkimThe module exxface.c was eliminated as it was an unnecessary extra
14527126372Snjllayer of code.
14528102550Siwasaki
14529114237SnjlCurrent core subsystem library code sizes are shown below.  These
14530114237Snjlare the code and data sizes for the acpica.lib produced by the
14531193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not include
14532126372Snjlany ACPI driver or OSPM code.  The debug version of the code
14533126372Snjlincludes the full debug trace mechanism -- leading to a much
14534114237Snjllarger code and data size.  Note that these values will vary
14535114237Snjldepending on the efficiency of the compiler and the compiler
14536114237Snjloptions used during generation.
14537102550Siwasaki
14538102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
14539114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
14540114237SnjlTotal  (Previously 195K)
14541102550Siwasaki
14542102550SiwasakiLinux:
14543102550Siwasaki
14544114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
14545114237SnjlInteger objects are now 64 bits wide
14546102550Siwasaki
14547114237SnjlAll Acpi data types and structures are now in lower case.  Only
14548114237SnjlAcpi macros are upper case for differentiation.
14549102550Siwasaki
14550102550Siwasaki Documentation:
14551102550Siwasaki
14552102550SiwasakiChanges to the external interfaces as described above.
14553102550Siwasaki
14554102550Siwasaki ----------------------------------------
14555102550SiwasakiSummary of changes for this label: 08_31_01
14556102550Siwasaki
14557102550Siwasaki ACPI CA Core Subsystem:
14558102550Siwasaki
14559114237SnjlA bug with interpreter implementation of the ASL Divide operator
14560114237Snjlwas found and fixed.  The implicit function return value (not the
14561114237Snjlexplicit store operands) was returning the remainder instead of
14562114237Snjlthe quotient.  This was a longstanding bug and it fixes several
14563114237Snjlknown outstanding issues on various platforms.
14564102550Siwasaki
14565104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
14566193267Sjkimbeen further optimized for size.  There are 700 invocations of the
14567126372SnjlDEBUG_PRINT macro alone, so each optimization reduces the size of
14568126372Snjlthe debug version of the subsystem significantly.
14569102550Siwasaki
14570114237SnjlA stack trace mechanism has been implemented.  The maximum stack
14571193267Sjkimusage is about 2K on 32-bit platforms.  The debugger command "stat
14572126372Snjlstack" will display the current maximum stack usage.
14573102550Siwasaki
14574114237SnjlAll public symbols and global variables within the subsystem are
14575114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
14576114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
14577114237Snjlwith other kernel subsystems.
14578102550Siwasaki
14579114237SnjlMost of the internal fixed lookup tables have been moved into the
14580114237Snjlcode segment via the const operator.
14581102550Siwasaki
14582104470SiwasakiSeveral enhancements have been made to the interpreter to both
14583104470Siwasakireduce the code size and improve performance.
14584102550Siwasaki
14585114237SnjlCurrent core subsystem library code sizes are shown below.  These
14586114237Snjlare the code and data sizes for the acpica.lib produced by the
14587193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not include
14588126372Snjlany ACPI driver or OSPM code.  The debug version of the code
14589126372Snjlincludes the full debug trace mechanism which contains over 700
14590126372Snjlinvocations of the DEBUG_PRINT macro, 500 function entry macro
14591126372Snjlinvocations, and over 900 function exit macro invocations --
14592126372Snjlleading to a much larger code and data size.  Note that these
14593114237Snjlvalues will vary depending on the efficiency of the compiler and
14594114237Snjlthe compiler options used during generation.
14595102550Siwasaki
14596102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
14597102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
14598102550Siwasaki
14599102550Siwasaki Linux:
14600102550Siwasaki
14601104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
14602102550Siwasaki
14603102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
14604102550Siwasaki
14605102550Siwasaki ASL Compiler, version X2026:
14606102550Siwasaki
14607104470SiwasakiFixed a problem introduced in the previous label where the AML
14608167802Sjkim
14609104470Siwasakicode emitted for package objects produced packages with zero
14610104470Siwasakilength.
14611102550Siwasaki
14612102550Siwasaki ----------------------------------------
14613102550SiwasakiSummary of changes for this label: 08_16_01
14614102550Siwasaki
14615102550SiwasakiACPI CA Core Subsystem:
14616102550Siwasaki
14617114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
14618114237SnjlAML interpreter (These are already supported by the Intel ASL
14619193267Sjkimcompiler):  ToDecimalString, ToHexString, ToString, ToInteger, and
14620126372SnjlToBuffer.  Support for 64-bit AML constants is implemented in the
14621126372SnjlAML parser, debugger, and disassembler.
14622102550Siwasaki
14623114237SnjlThe internal memory tracking mechanism (leak detection code) has
14624114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
14625114237Snjlblock is no longer allocated for each memory allocation), and now
14626114237Snjlsupports all of the internal object caches.
14627102550Siwasaki
14628114237SnjlThe data structures and code for the internal object caches have
14629114237Snjlbeen coelesced and optimized so that there is a single cache and
14630114237Snjlmemory list data structure and a single group of functions that
14631114237Snjlimplement generic cache management.  This has reduced the code
14632114237Snjlsize in both the debug and release versions of the subsystem.
14633102550Siwasaki
14634193267SjkimThe DEBUG_PRINT macro(s) have been optimized for size and replaced
14635126372Snjlby ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
14636126372Snjldifferent, because it generates a single call to an internal
14637126372Snjlfunction.  This results in a savings of about 90 bytes per
14638193267Sjkiminvocation, resulting in an overall code and data savings of about
14639126372Snjl16% in the debug version of the subsystem.
14640102550Siwasaki
14641102550Siwasaki Linux:
14642102550Siwasaki
14643114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
14644114237Snjlmachines.
14645102550Siwasaki
14646102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
14647102550Siwasaki
14648102550SiwasakiFurther tweaked source code Linuxization.
14649102550Siwasaki
14650102550SiwasakiOther minor fixes.
14651102550Siwasaki
14652102550Siwasaki ASL Compiler:
14653102550Siwasaki
14654114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
14655102550Siwasaki
14656114237SnjlFixed a problem where the optional length parameter for the ACPI
14657114237Snjl2.0 ToString operator.
14658102550Siwasaki
14659114237SnjlFixed multiple extraneous error messages when a syntax error is
14660114237Snjldetected within the declaration line of a control method.
14661102550Siwasaki
14662102550Siwasaki ----------------------------------------
14663102550SiwasakiSummary of changes for this label: 07_17_01
14664102550Siwasaki
14665102550SiwasakiACPI CA Core Subsystem:
14666102550Siwasaki
14667104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
14668193267SjkimACPI table via the ACPI signature.  The interface can be called at
14669126372Snjlany time during kernel initialization, even before the kernel
14670193267Sjkimvirtual memory manager is initialized and paging is enabled.  This
14671126372Snjlallows kernel subsystems to obtain ACPI tables very early, even
14672126372Snjlbefore the ACPI CA subsystem is initialized.
14673102550Siwasaki
14674104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
14675104470Siwasakicould be resolved to the incorrect address under the following
14676114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
14677114237Snjlparent operation region is not defined on a DWORD boundary.
14678102550Siwasaki
14679114237SnjlFixed a problem where the interpreter is not being locked during
14680114237Snjlnamespace initialization (during execution of the _INI control
14681114237Snjlmethods), causing an error when an attempt is made to release it
14682114237Snjllater.
14683102550Siwasaki
14684104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
14685114237Snjlongoing throughout the rest of this year.  In this label, The Mod
14686114237Snjloperator is implemented.
14687102550Siwasaki
14688102550SiwasakiAdded a new data type to contain full PCI addresses named
14689193267SjkimACPI_PCI_ID. This structure contains the PCI Segment, Bus, Device,
14690126372Snjland Function values.
14691102550Siwasaki
14692102550Siwasaki Linux:
14693102550Siwasaki
14694102550SiwasakiEnhanced the Linux version of the source code to change most
14695102550Siwasakicapitalized ACPI type names to lowercase. For example, all
14696114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
14697114237Snjlresult in a large diff, but the change is strictly cosmetic and
14698114237Snjlaligns the CA code closer to the Linux coding standard.
14699102550Siwasaki
14700102550SiwasakiOSL Interfaces:
14701102550Siwasaki
14702193267SjkimThe interfaces to the PCI configuration space have been changed to
14703193267Sjkimadd the PCI Segment number and to split the single 32-bit combined
14704126372SnjlDeviceFunction field into two 16-bit fields.  This was
14705114237Snjlaccomplished by moving the four values that define an address in
14706114237SnjlPCI configuration space (segment, bus, device, and function) to
14707114237Snjlthe new ACPI_PCI_ID structure.
14708102550Siwasaki
14709104470SiwasakiThe changes to the PCI configuration space interfaces led to a
14710104470Siwasakireexamination of the complete set of address space access
14711114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
14712114237Snjlinterfaces have proven difficult to maintain (any small change
14713193267Sjkimmust be propagated across at least 6 interfaces) and do not easily
14714193267Sjkimallow for future expansion to 64 bits if necessary.  Also, on some
14715126372Snjlsystems, it would not be appropriate to demultiplex the access
14716126372Snjlwidth (8, 16, 32,or 64) before calling the OSL if the
14717114237Snjlcorresponding native OS interfaces contain a similar access width
14718114237Snjlparameter.  For these reasons, the 18 address space interfaces
14719114237Snjlhave been replaced by these 6 new ones:
14720102550Siwasaki
14721102550SiwasakiAcpiOsReadPciConfiguration
14722102550SiwasakiAcpiOsWritePciConfiguration
14723102550SiwasakiAcpiOsReadMemory
14724102550SiwasakiAcpiOsWriteMemory
14725102550SiwasakiAcpiOsReadPort
14726102550SiwasakiAcpiOsWritePort
14727102550Siwasaki
14728114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
14729114237Snjlto perform the platform and/or OS-specific actions necessary to
14730114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
14731114237Snjlinterface will simply call down to the CA core to perform the low-
14732114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
14733114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
14734167802Sjkim
14735114237Snjlremain OS and platform independent.
14736102550Siwasaki
14737104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
14738114237Snjl"function code and pointer" interface for various miscellaneous
14739114237Snjlsignals and notifications that must be made to the host OS.   The
14740114237Snjlfirst such signals are intended to support the ASL Fatal and
14741114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
14742114237Snjlinterface has been obsoleted.
14743102550Siwasaki
14744102550SiwasakiThe definition of the AcpiFormatException interface has been
14745114237Snjlchanged to simplify its use.  The caller no longer must supply a
14746114237Snjlbuffer to the call; A pointer to a const string is now returned
14747114237Snjldirectly.  This allows the call to be easily used in printf
14748114237Snjlstatements, etc. since the caller does not have to manage a local
14749114237Snjlbuffer.
14750102550Siwasaki
14751114237Snjl
14752102550Siwasaki ASL Compiler, Version X2025:
14753102550Siwasaki
14754114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
14755114237Snjland are fully functional.  They will work with all ACPI 1.0
14756193267Sjkiminterpreters, since the operators are simply translated to If/Else
14757126372Snjlpairs.
14758102550Siwasaki
14759104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
14760104470Siwasakiwith 1.0 interpreters, for the same reason.
14761102550Siwasaki
14762114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
14763114237Snjlpackages have a separate opcode, and their size is determined by
14764114237Snjlthe interpreter at run-time.
14765102550Siwasaki
14766193267SjkimDocumentation The ACPI CA Programmer Reference has been updated to
14767126372Snjlreflect the new interfaces and changes to existing interfaces.
14768102550Siwasaki
14769102550Siwasaki ------------------------------------------
14770102550SiwasakiSummary of changes for this label: 06_15_01
14771102550Siwasaki
14772102550Siwasaki ACPI CA Core Subsystem:
14773102550Siwasaki
14774102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
14775114237Snjlobject would get its byte address inadvertently rounded down to
14776114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
14777102550Siwasaki
14778102550Siwasaki ASL Compiler, version X2024:
14779102550Siwasaki
14780114237SnjlFixed a problem where the Switch() operator would either fault or
14781114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
14782114237Snjl2.0 operator is not yet implemented.
14783102550Siwasaki
14784114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
14785114237Snjltimings.
14786102550Siwasaki
14787114237SnjlImplementation of the CreateField operator automatically converts
14788114237Snjla reference to a named field within a resource descriptor from a
14789114237Snjlbyte offset to a bit offset if required.
14790102550Siwasaki
14791102550SiwasakiAdded some missing named fields from the resource descriptor
14792193267Sjkimsupport. These are the names that are automatically created by the
14793126372Snjlcompiler to reference fields within a descriptor.  They are only
14794126372Snjlvalid at compile time and are not passed through to the AML
14795114237Snjlinterpreter.
14796102550Siwasaki
14797104470SiwasakiResource descriptor named fields are now typed as Integers and
14798104470Siwasakisubject to compile-time typechecking when used in expressions.
14799102550Siwasaki
14800102550Siwasaki ------------------------------------------
14801102550SiwasakiSummary of changes for this label: 05_18_01
14802102550Siwasaki
14803102550Siwasaki ACPI CA Core Subsystem:
14804102550Siwasaki
14805114237SnjlFixed a couple of problems in the Field support code where bits
14806193267Sjkimfrom adjacent fields could be returned along with the proper field
14807126372Snjlbits. Restructured the field support code to improve performance,
14808126372Snjlreadability and maintainability.
14809102550Siwasaki
14810114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
14811114237Snjlinto the output, saving hundreds of copies of procedure name
14812114237Snjlstrings within the source, shrinking the memory footprint of the
14813114237Snjldebug version of the core subsystem.
14814102550Siwasaki
14815102550Siwasaki Source Code Structure:
14816102550Siwasaki
14817104470SiwasakiThe source code directory tree was restructured to reflect the
14818114237Snjlcurrent organization of the component architecture.  Some files
14819114237Snjland directories have been moved and/or renamed.
14820102550Siwasaki
14821102550Siwasaki Linux:
14822102550Siwasaki
14823102550SiwasakiFixed leaking kacpidpc processes.
14824102550Siwasaki
14825102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
14826102550Siwasakiopened.
14827102550Siwasaki
14828102550Siwasaki ASL Compiler, version X2020:
14829102550Siwasaki
14830114237SnjlMemory allocation performance enhancement - over 24X compile time
14831114237Snjlimprovement on large ASL files.  Parse nodes and namestring
14832114237Snjlbuffers are now allocated from a large internal compiler buffer.
14833102550Siwasaki
14834102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
14835102550Siwasakispecified
14836102550Siwasaki
14837193267SjkimThe "-d" debug output option now sends all output to the .DBG file
14838126372Snjlinstead of the console.
14839102550Siwasaki
14840102550Siwasaki"External" second parameter is now optional
14841102550Siwasaki
14842102550Siwasaki"ElseIf" syntax now properly allows the predicate
14843102550Siwasaki
14844102550SiwasakiLast operand to "Load" now recognized as a Target operand
14845102550Siwasaki
14846102550SiwasakiDebug object can now be used anywhere as a normal object.
14847102550Siwasaki
14848102550SiwasakiResourceTemplate now returns an object of type BUFFER
14849102550Siwasaki
14850102550SiwasakiEISAID now returns an object of type INTEGER
14851102550Siwasaki
14852102550Siwasaki"Index" now works with a STRING operand
14853102550Siwasaki
14854102550Siwasaki"LoadTable" now accepts optional parameters
14855102550Siwasaki
14856102550Siwasaki"ToString" length parameter is now optional
14857102550Siwasaki
14858102550Siwasaki"Interrupt (ResourceType," parse error fixed.
14859102550Siwasaki
14860104470Siwasaki"Register" with a user-defined region space parse error fixed
14861102550Siwasaki
14862114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
14863114237Snjlfixed
14864102550Siwasaki
14865102550Siwasaki"Revision" is now an object of type INTEGER.
14866102550Siwasaki
14867102550Siwasaki
14868102550Siwasaki
14869102550Siwasaki------------------------------------------
14870102550SiwasakiSummary of changes for this label: 05_02_01
14871102550Siwasaki
14872102550SiwasakiLinux:
14873102550Siwasaki
14874102550Siwasaki/proc/acpi/event now blocks properly.
14875102550Siwasaki
14876102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
14877102550Siwasaki/proc/acpi/dsdt.
14878102550Siwasaki
14879102550Siwasaki ACPI CA Core Subsystem:
14880102550Siwasaki
14881193267SjkimFixed a problem introduced in the previous label where some of the
14882126372Snjl"small" resource descriptor types were not recognized.
14883102550Siwasaki
14884193267SjkimImproved error messages for the case where an ASL Field is outside
14885126372Snjlthe range of the parent operation region.
14886102550Siwasaki
14887102550Siwasaki ASL Compiler, version X2018:
14888102550Siwasaki
14889167802Sjkim
14890193267SjkimAdded error detection for ASL Fields that extend beyond the length
14891126372Snjlof the parent operation region (only if the length of the region
14892126372Snjlis known at compile time.)  This includes fields that have a
14893126372Snjlminimum access width that is smaller than the parent region, and
14894126372Snjlindividual field units that are partially or entirely beyond the
14895126372Snjlextent of the parent.
14896102550Siwasaki
14897102550Siwasaki
14898102550Siwasaki
14899102550Siwasaki------------------------------------------
14900102550SiwasakiSummary of changes for this label: 04_27_01
14901102550Siwasaki
14902102550Siwasaki ACPI CA Core Subsystem:
14903102550Siwasaki
14904193267SjkimFixed a problem where the namespace mutex could be released at the
14905126372Snjlwrong time during execution of AcpiRemoveAddressSpaceHandler.
14906102550Siwasaki
14907104470SiwasakiAdded optional thread ID output for debug traces, to simplify
14908114237Snjldebugging of multiple threads.  Added context switch notification
14909114237Snjlwhen the debug code realizes that a different thread is now
14910114237Snjlexecuting ACPI code.
14911102550Siwasaki
14912114237SnjlSome additional external data types have been prefixed with the
14913114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
14914193267SjkimThe data types affected are the external callback typedefs - e.g.,
14915167802Sjkim
14916126372SnjlWALK_CALLBACK becomes ACPI_WALK_CALLBACK.
14917102550Siwasaki
14918102550Siwasaki Linux:
14919102550Siwasaki
14920102550SiwasakiFixed an issue with the OSL semaphore implementation where a
14921102550Siwasakithread was waking up with an error from receiving a SIGCHLD
14922102550Siwasakisignal.
14923102550Siwasaki
14924114237SnjlLinux version of ACPI CA now uses the system C library for string
14925114237Snjlmanipulation routines instead of a local implementation.
14926102550Siwasaki
14927102550SiwasakiCleaned up comments and removed TBDs.
14928102550Siwasaki
14929102550Siwasaki ASL Compiler, version X2017:
14930102550Siwasaki
14931102550SiwasakiEnhanced error detection and reporting for all file I/O
14932102550Siwasakioperations.
14933102550Siwasaki
14934102550Siwasaki Documentation:
14935102550Siwasaki
14936102550SiwasakiProgrammer Reference updated to version 1.06.
14937102550Siwasaki
14938102550Siwasaki
14939102550Siwasaki
14940102550Siwasaki------------------------------------------
14941102550SiwasakiSummary of changes for this label: 04_13_01
14942102550Siwasaki
14943102550Siwasaki ACPI CA Core Subsystem:
14944102550Siwasaki
14945102550SiwasakiRestructured support for BufferFields and RegionFields.
14946104470SiwasakiBankFields support is now fully operational.  All known 32-bit
14947114237Snjllimitations on field sizes have been removed.  Both BufferFields
14948114237Snjland (Operation) RegionFields are now supported by the same field
14949114237Snjlmanagement code.
14950102550Siwasaki
14951114237SnjlResource support now supports QWORD address and IO resources. The
14952114237Snjl16/32/64 bit address structures and the Extended IRQ structure
14953114237Snjlhave been changed to properly handle Source Resource strings.
14954102550Siwasaki
14955114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
14956193267Sjkimcondition internally and must never be returned by AcpiOsThreadId.
14957126372SnjlThis reserved value was changed from 0 since Unix systems allow a
14958126372Snjlthread ID of 0.
14959102550Siwasaki
14960102550SiwasakiLinux:
14961102550Siwasaki
14962102550SiwasakiDriver code reorganized to enhance portability
14963102550Siwasaki
14964102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
14965102550Siwasaki
14966102550SiwasakiFixed the EC driver to honor _GLK.
14967102550Siwasaki
14968102550SiwasakiASL Compiler, version X2016:
14969102550Siwasaki
14970114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
14971114237Snjladdress space was set to 0, not 0x7f as it should be.
14972102550Siwasaki
14973102550Siwasaki ------------------------------------------
14974102550SiwasakiSummary of changes for this label: 03_13_01
14975102550Siwasaki
14976102550Siwasaki ACPI CA Core Subsystem:
14977102550Siwasaki
14978104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
14979104470Siwasakipresent.
14980102550Siwasaki
14981193267SjkimNotify handler fix - notifies are deferred until the parent method
14982126372Snjlcompletes execution.  This fixes the "mutex already acquired"
14983126372Snjlissue seen occasionally.
14984102550Siwasaki
14985104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
14986114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
14987114237Snjlconvert "result-to-target-type" implementation has been removed
14988114237Snjlfor stores to method Args and Locals.  Source operand conversion
14989114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
14990114237Snjlspecification pending.
14991102550Siwasaki
14992104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
14993104470Siwasakilength.
14994102550Siwasaki
14995102550SiwasakiFix for compiler warnings for 64-bit compiles.
14996102550Siwasaki
14997102550Siwasaki Linux:
14998102550Siwasaki
14999102550Siwasaki/proc output aligned for easier parsing.
15000102550Siwasaki
15001102550SiwasakiRelease-version compile problem fixed.
15002102550Siwasaki
15003104470SiwasakiNew kernel configuration options documented in Configure.help.
15004102550Siwasaki
15005102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
15006102550Siwasakicontext" message.
15007102550Siwasaki
15008102550Siwasaki OSPM:
15009102550Siwasaki
15010102550SiwasakiPower resource driver integrated with bus manager.
15011102550Siwasaki
15012102550SiwasakiFixed kernel fault during active cooling for thermal zones.
15013102550Siwasaki
15014102550SiwasakiSource Code:
15015102550Siwasaki
15016102550SiwasakiThe source code tree has been restructured.
15017102550Siwasaki
15018102550Siwasaki
15019102550Siwasaki
15020102550Siwasaki------------------------------------------
15021102550SiwasakiSummary of changes for this label: 03_02_01
15022102550Siwasaki
15023102550Siwasaki Linux OS Services Layer (OSL):
15024102550Siwasaki
15025102550SiwasakiMajor revision of all Linux-specific code.
15026102550Siwasaki
15027102550SiwasakiModularized all ACPI-specific drivers.
15028102550Siwasaki
15029102550SiwasakiAdded new thermal zone and power resource drivers.
15030102550Siwasaki
15031114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
15032102550Siwasaki
15033102550SiwasakiNew kernel configuration options.
15034102550Siwasaki
15035102550Siwasaki Linux known issues:
15036102550Siwasaki
15037114237SnjlNew kernel configuration options not documented in Configure.help
15038114237Snjlyet.
15039102550Siwasaki
15040114237Snjl
15041102550SiwasakiModule dependencies not currently implemented. If used, they
15042102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
15043102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
15044102550Siwasaki
15045102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
15046102550Siwasaki
15047102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
15048102550Siwasaki
15049104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
15050104470Siwasakimessage.
15051102550Siwasaki
15052104470SiwasakiSome systems may fail with "execution mutex already acquired"
15053104470Siwasakimessage.
15054102550Siwasaki
15055102550Siwasaki ACPI CA Core Subsystem:
15056102550Siwasaki
15057114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
15058193267Sjkimfor the  deadlock detection code. Defined to return a non-zero, 32-
15059126372Snjlbit thread ID for the currently executing thread.  May be a non-
15060126372Snjlzero constant integer on single-thread systems.
15061102550Siwasaki
15062193267SjkimImplemented deadlock detection for internal subsystem mutexes.  We
15063126372Snjlmay add conditional compilation for this code (debug only) later.
15064102550Siwasaki
15065104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
15066114237Snjlincludes multiple acquires/releases by owner and support for the
15067167802Sjkim
15068114237SnjlMutex SyncLevel parameter.
15069102550Siwasaki
15070102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
15071104470SiwasakiMutexes that have been acquired but not released when a thread
15072114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
15073114237Snjl("All mutexes must be released when an invocation exits") and
15074114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
15075114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
15076114237Snjlcontinues to misbehave (which it will).
15077102550Siwasaki
15078104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
15079104470Siwasakisupport.
15080102550Siwasaki
15081104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
15082114237Snjlspec does in fact allow recursive method calls.)  The number of
15083114237Snjlrecursive calls is subject to the restrictions imposed by the
15084114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
15085104470Siwasakiparameter.
15086102550Siwasaki
15087102550SiwasakiImplemented support for the SyncLevel parameter for control
15088102550Siwasakimethods (ACPI 2.0 feature)
15089102550Siwasaki
15090114237SnjlFixed a deadlock problem when multiple threads attempted to use
15091114237Snjlthe interpreter.
15092102550Siwasaki
15093102550SiwasakiFixed a problem where the string length of a String package
15094102550Siwasakielement was not always set in a package returned from
15095102550SiwasakiAcpiEvaluateObject.
15096102550Siwasaki
15097114237SnjlFixed a problem where the length of a String package element was
15098114237Snjlnot always included in the length of the overall package returned
15099114237Snjlfrom AcpiEvaluateObject.
15100102550Siwasaki
15101102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
15102102550Siwasakimanager.  This manager keeps a list of all outstanding
15103193267Sjkimallocations, and can therefore detect memory leaks and attempts to
15104126372Snjlfree memory blocks more than once. Useful for code such as the
15105114237Snjlpower manager, etc.  May not be appropriate for device drivers.
15106114237SnjlPerformance with the debug code enabled is slow.
15107102550Siwasaki
15108102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
15109102550Siwasaki
15110102550Siwasaki ASL Compiler Version X2015:
15111102550Siwasaki
15112102550SiwasakiIntegrated changes to allow the compiler to be generated on
15113102550Siwasakimultiple platforms.
15114102550Siwasaki
15115102550SiwasakiLinux makefile added to generate the compiler on Linux
15116102550Siwasaki
15117102550Siwasaki Source Code:
15118102550Siwasaki
15119102550SiwasakiAll platform-specific headers have been moved to their own
15120102550Siwasakisubdirectory, Include/Platform.
15121102550Siwasaki
15122102550SiwasakiNew source file added, Interpreter/ammutex.c
15123102550Siwasaki
15124102550SiwasakiNew header file, Include/acstruct.h
15125102550Siwasaki
15126102550Siwasaki Documentation:
15127102550Siwasaki
15128114237SnjlThe programmer reference has been updated for the following new
15129114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
15130102550Siwasaki
15131102550Siwasaki ------------------------------------------
15132102550SiwasakiSummary of changes for this label: 02_08_01
15133102550Siwasaki
15134102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
15135193267Sjkimincorrectly returned if the return resource buffer was larger than
15136126372Snjlthe actual data (in the resource interfaces).
15137102550Siwasaki
15138114237SnjlReferences to named objects within packages are resolved to the
15139167802Sjkim
15140114237Snjlfull pathname string before packages are returned directly (via
15141114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
15142114237Snjlinterfaces.
15143102550Siwasaki
15144102550SiwasakiLinux OS Services Layer (OSL):
15145102550Siwasaki
15146102550SiwasakiImproved /proc battery interface.
15147102550Siwasaki
15148102550Siwasaki
15149104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
15150102550Siwasaki
15151102550SiwasakiASL Compiler Version X2014:
15152102550Siwasaki
15153114237SnjlAll defined method arguments can now be used as local variables,
15154114237Snjlincluding the ones that are not actually passed in as parameters.
15155114237SnjlThe compiler tracks initialization of the arguments and issues an
15156114237Snjlexception if they are used without prior assignment (just like
15157114237Snjllocals).
15158102550Siwasaki
15159193267SjkimThe -o option now specifies a filename prefix that is used for all
15160126372Snjloutput files, including the AML output file.  Otherwise, the
15161114237Snjldefault behavior is as follows:  1) the AML goes to the file
15162114237Snjlspecified in the DSDT.  2) all other output files use the input
15163114237Snjlsource filename as the base.
15164102550Siwasaki
15165102550Siwasaki ------------------------------------------
15166102550SiwasakiSummary of changes for this label: 01_25_01
15167102550Siwasaki
15168114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
15169114237Snjlstore support within the  interpreter.  This includes support for
15170114237Snjlthe Store operator as well  as any ASL operators that include a
15171114237Snjltarget operand.
15172102550Siwasaki
15173102550SiwasakiPartially implemented support for Implicit Result-to-Target
15174114237Snjlconversion. This is when a result object is converted on the fly
15175114237Snjlto the type of  an existing target object.  Completion of this
15176114237Snjlsupport is pending  further analysis of the ACPI specification
15177114237Snjlconcerning this matter.
15178102550Siwasaki
15179114237SnjlCPU-specific code has been removed from the subsystem (hardware
15180114237Snjldirectory).
15181102550Siwasaki
15182102550SiwasakiNew Power Management Timer functions added
15183102550Siwasaki
15184114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
15185114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
15186102550Siwasaki
15187102550SiwasakiFixed C2 and C3 latency calculations.
15188102550Siwasaki
15189102550Siwasaki
15190114237SnjlWe no longer use the compilation date for the version message on
15191193267Sjkiminitialization, but retrieve the version from AcpiGetSystemInfo().
15192102550Siwasaki
15193102550SiwasakiIncorporated for fix Sony VAIO machines.
15194102550Siwasaki
15195104470SiwasakiDocumentation:  The Programmer Reference has been updated and
15196104470Siwasakireformatted.
15197102550Siwasaki
15198102550Siwasaki
15199102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
15200102550Siwasakinumbering and error reporting could get out  of sync in the
15201102550Siwasakipresence of multiple include files.
15202102550Siwasaki
15203102550Siwasaki ------------------------------------------
15204102550SiwasakiSummary of changes for this label: 01_15_01
15205102550Siwasaki
15206102550SiwasakiCore ACPI CA Subsystem:
15207102550Siwasaki
15208114237SnjlImplemented support for type conversions in the execution of the
15209114237SnjlASL  Concatenate operator (The second operand is converted to
15210114237Snjlmatch the type  of the first operand before concatenation.)
15211102550Siwasaki
15212102550SiwasakiSupport for implicit source operand conversion is partially
15213114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
15214114237SnjlString are freely  interchangeable for most ASL operators and are
15215114237Snjlconverted by the interpreter  on the fly as required.  Implicit
15216114237SnjlTarget operand conversion (where the  result is converted to the
15217114237Snjltarget type before storing) is not yet implemented.
15218102550Siwasaki
15219102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
15220102550Siwasaki
15221193267SjkimProblem fixed where a field read on an aligned field could cause a
15222126372Snjlread  past the end of the field.
15223102550Siwasaki
15224114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
15225114237Snjldoes not return a value, but the caller expects one.  (The ASL
15226114237Snjlcompiler flags this as a warning.)
15227102550Siwasaki
15228102550SiwasakiASL Compiler:
15229102550Siwasaki
15230102550SiwasakiVersion X2011:
15231102550Siwasaki1. Static typechecking of all operands is implemented. This
15232193267Sjkimprevents the use of invalid objects (such as using a Package where
15233126372Snjlan Integer is required) at compile time instead of at interpreter
15234126372Snjlrun-time.
15235114237Snjl2. The ASL source line is printed with ALL errors and warnings.
15236102550Siwasaki3. Bug fix for source EOF without final linefeed.
15237193267Sjkim4. Debug option is split into a parse trace and a namespace trace.
15238102550Siwasaki5. Namespace output option (-n) includes initial values for
15239102550Siwasakiintegers and strings.
15240102550Siwasaki6. Parse-only option added for quick syntax checking.
15241102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
15242102550Siwasaki
15243102550SiwasakiVersion X2012:
15244102550Siwasaki1. Relaxed typechecking to allow interchangeability between
15245114237Snjlstrings, integers, and buffers.  These types are now converted by
15246114237Snjlthe interpreter at runtime.
15247114237Snjl2. Compiler reports time taken by each internal subsystem in the
15248114237Snjldebug         output file.
15249102550Siwasaki
15250102550Siwasaki
15251102550Siwasaki ------------------------------------------
15252102550SiwasakiSummary of changes for this label: 12_14_00
15253102550Siwasaki
15254102550SiwasakiASL Compiler:
15255102550Siwasaki
15256104470SiwasakiThis is the first official release of the compiler. Since the
15257104470Siwasakicompiler requires elements of the Core Subsystem, this label
15258104470Siwasakisynchronizes everything.
15259102550Siwasaki
15260102550Siwasaki------------------------------------------
15261102550SiwasakiSummary of changes for this label: 12_08_00
15262102550Siwasaki
15263102550Siwasaki
15264114237SnjlFixed a problem where named references within the ASL definition
15265114237Snjlof both OperationRegions and CreateXXXFields did not work
15266114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
15267114237Snjlinitialization of the region/field. This is similar (but not
15268114237Snjlrelated internally) to the problem that was fixed in the last
15269114237Snjllabel.
15270114237Snjl
15271102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
15272102550Siwasakifunctions ToBCD and FromBCD.
15273102550Siwasaki
15274102550SiwasakiUpdated all legal headers to include "2000" in the copyright
15275102550Siwasakiyears.
15276102550Siwasaki
15277102550Siwasaki ------------------------------------------
15278102550SiwasakiSummary of changes for this label: 12_01_00
15279102550Siwasaki
15280193267SjkimFixed a problem where method invocations within the ASL definition
15281126372Snjlof both OperationRegions and CreateXXXFields did not work
15282126372Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
15283114237Snjlinitialization of the region/field:
15284102550Siwasaki
15285114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
15286114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
15287114237Snjl(0x3005)
15288102550Siwasaki
15289102550SiwasakiFixed a problem where operators with more than one nested
15290104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
15291114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
15292114237Snjlproblem that has gone unnoticed until now.
15293102550Siwasaki
15294102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
15295102550Siwasaki
15296114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
15297114237Snjlprevious build (The prefix part of a relative path was handled
15298114237Snjlincorrectly).
15299102550Siwasaki
15300114237SnjlFixed a problem where Operation Region initialization failed if
15301114237Snjlthe operation region name was a "namepath" instead of a simple
15302114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
15303102550Siwasaki
15304114237SnjlFixed a problem where an assignment to a local variable via the
15305114237Snjlindirect RefOf mechanism only worked for the first such
15306102550Siwasakiassignment.  Subsequent assignments were ignored.
15307102550Siwasaki
15308102550Siwasaki ------------------------------------------
15309102550SiwasakiSummary of changes for this label: 11_15_00
15310102550Siwasaki
15311193267SjkimACPI 2.0 table support with backwards support for ACPI 1.0 and the
15312193267Sjkim0.71 extensions.  Note: although we can read ACPI 2.0 BIOS tables,
15313126372Snjlthe AML  interpreter does NOT have support for the new 2.0 ASL
15314126372Snjlgrammar terms at this time.
15315102550Siwasaki
15316193267SjkimAll ACPI hardware access is via the GAS structures in the ACPI 2.0
15317126372SnjlFADT.
15318102550Siwasaki
15319193267SjkimAll physical memory addresses across all platforms are now 64 bits
15320126372Snjlwide. Logical address width remains dependent on the platform
15321126372Snjl(i.e., "void *").
15322102550Siwasaki
15323114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
15324102550Siwasaki
15325114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
15326114237Snjl2.0 specification.
15327102550Siwasaki
15328104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
15329104470Siwasakirevision number less than 2 use 32-bit integers only.
15330102550Siwasaki
15331114237SnjlFixed a problem where the evaluation of OpRegion operands did not
15332114237Snjlalways resolve them to numbers properly.
15333102550Siwasaki
15334102550Siwasaki------------------------------------------
15335102550SiwasakiSummary of changes for this label: 10_20_00
15336102550Siwasaki
15337114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
15338114237SnjlCBN_ OpRegions when the _STA returns 0x8.
15339102550Siwasaki
15340104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
15341104470Siwasakivalues before a package object is returned
15342102550Siwasaki
15343104470SiwasakiFix for method call as predicate to if/while construct causing
15344104470Siwasakiincorrect if/while behavior
15345102550Siwasaki
15346114237SnjlFix for Else block package lengths sometimes calculated wrong (if
15347114237Snjlblock > 63 bytes)
15348102550Siwasaki
15349102550SiwasakiFix for Processor object length field, was always zero
15350102550Siwasaki
15351102550SiwasakiTable load abort if FACP sanity check fails
15352102550Siwasaki
15353102550SiwasakiFix for problem with Scope(name) if name already exists
15354102550Siwasaki
15355102550SiwasakiWarning emitted if a named object referenced cannot be found
15356102550Siwasaki(resolved) during method execution.
15357102550Siwasaki
15358102550Siwasaki
15359102550Siwasaki
15360102550Siwasaki
15361102550Siwasaki
15362102550Siwasaki------------------------------------------
15363102550SiwasakiSummary of changes for this label: 9_29_00
15364102550Siwasaki
15365114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
15366114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
15367114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
15368114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
15369114237SnjlAcpiLoadTables
15370102550Siwasaki
15371193267SjkimNote: These interface changes require changes to all existing OSDs
15372102550Siwasaki
15373114237SnjlThe PCI_Config default address space handler is always installed
15374114237Snjlat the root namespace object.
15375102550Siwasaki
15376102550Siwasaki-------------------------------------------
15377102550SiwasakiSummary of changes for this label: 09_15_00
15378102550Siwasaki
15379102550SiwasakiThe new initialization architecture is implemented.  New
15380114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
15381114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
15382167802Sjkim
15383114237Snjl(Namespace is automatically loaded when a table is loaded)
15384102550Siwasaki
15385193267SjkimThe ACPI_OPERAND_OBJECT has been optimized to shrink its size from
15386126372Snjl52 bytes to 32 bytes.  There is usually one of these for every
15387126372Snjlnamespace object, so the memory savings is significant.
15388102550Siwasaki
15389114237SnjlImplemented just-in-time evaluation of the CreateField operators.
15390102550Siwasaki
15391102550SiwasakiBug fixes for IA-64 support have been integrated.
15392102550Siwasaki
15393102550SiwasakiAdditional code review comments have been implemented
15394102550Siwasaki
15395193267SjkimThe so-called "third pass parse" has been replaced by a final walk
15396193267Sjkimthrough the namespace to initialize all operation regions (address
15397126372Snjlspaces) and fields that have not yet been initialized during the
15398126372Snjlexecution of the various _INI and REG methods.
15399102550Siwasaki
15400102550SiwasakiNew file - namespace/nsinit.c
15401102550Siwasaki
15402102550Siwasaki-------------------------------------------
15403102550SiwasakiSummary of changes for this label: 09_01_00
15404102550Siwasaki
15405193267SjkimNamespace manager data structures have been reworked to change the
15406126372Snjlprimary  object from a table to a single object.  This has
15407193267Sjkimresulted in dynamic memory  savings of 3X within the namespace and
15408126372Snjl2X overall in the ACPI CA subsystem.
15409102550Siwasaki
15410102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
15411102550Siwasakiinadvertently left  commented out.
15412102550Siwasaki
15413114237SnjlReduced the warning count when generating the source with the GCC
15414114237Snjlcompiler.
15415102550Siwasaki
15416102550SiwasakiRevision numbers added to each module header showing the
15417104470SiwasakiSourceSafe version of the file.  Please refer to this version
15418114237Snjlnumber when giving us feedback or comments on individual modules.
15419102550Siwasaki
15420114237SnjlThe main object types within the subsystem have been renamed to
15421114237Snjlclarify their  purpose:
15422102550Siwasaki
15423102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
15424102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
15425102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
15426102550Siwasaki
15427114237SnjlNOTE: no changes to the initialization sequence are included in
15428114237Snjlthis label.
15429102550Siwasaki
15430102550Siwasaki-------------------------------------------
15431102550SiwasakiSummary of changes for this label: 08_23_00
15432102550Siwasaki
15433102550SiwasakiFixed problem where TerminateControlMethod was being called
15434102550Siwasakimultiple times per  method
15435102550Siwasaki
15436193267SjkimFixed debugger problem where single stepping caused a semaphore to
15437126372Snjlbe  oversignalled
15438102550Siwasaki
15439104470SiwasakiImproved performance through additional parse object caching -
15440104470Siwasakiadded  ACPI_EXTENDED_OP type
15441102550Siwasaki
15442102550Siwasaki-------------------------------------------
15443102550SiwasakiSummary of changes for this label: 08_10_00
15444102550Siwasaki
15445102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
15446102550Siwasakicomplete parse trees  for ACPI tables and control methods.
15447114237SnjlInstead, parse subtrees are created and  then deleted as soon as
15448193267Sjkimthey are processed (Either entered into the namespace or  executed
15449126372Snjlby the interpreter).  This reduces the use of dynamic kernel
15450126372Snjlmemory  significantly. (about 10X)
15451102550Siwasaki
15452114237SnjlException codes broken into classes and renumbered.  Be sure to
15453114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
15454114237Snjlhave to renumber the codes  again now that they are split into
15455114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
15456114237Snjlinternal).
15457102550Siwasaki
15458104470SiwasakiFixed some additional alignment issues in the Resource Manager
15459104470Siwasakisubcomponent
15460102550Siwasaki
15461114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
15462114237Snjlseveral places  where mutexes/semaphores were being unlocked
15463114237Snjlwithout a corresponding lock  operation.  There are no known
15464114237Snjlsemaphore or mutex "leaks" at this time.
15465102550Siwasaki
15466114237SnjlFixed the case where an ASL Return operator is used to return an
15467114237Snjlunnamed  package.
15468102550Siwasaki
15469102550Siwasaki-------------------------------------------
15470102550SiwasakiSummary of changes for this label: 07_28_00
15471102550Siwasaki
15472102550SiwasakiFixed a problem with the way addresses were calculated in
15473114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
15474114237Snjlmanifested itself when a Field was  created with WordAccess or
15475193267SjkimDwordAccess, but the field unit defined within the  Field was less
15476167802Sjkim
15477126372Snjlthan a Word or Dword.
15478102550Siwasaki
15479102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
15480104470Siwasakioperands off of the  operand stack to display information. The
15481114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
15482114237Snjlaccessing an operand stack with two or more  operands.
15483102550Siwasaki
15484114237SnjlFixed a problem with the PCI configuration space handlers where
15485114237Snjlcontext was  getting confused between accesses. This required a
15486114237Snjlchange to the generic address  space handler and address space
15487193267Sjkimsetup definitions. Handlers now get both a  global handler context
15488126372Snjl(this is the one passed in by the user when executing
15489114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
15490114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
15491114237Snjl_BBN values associated with a  specific region). The generic
15492114237Snjlfunction definitions have changed to the  following:
15493102550Siwasaki
15494114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
15495114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
15496104470Siwasaki*HandlerContext, // This used to be void *Context void
15497102550Siwasaki*RegionContext); // This is an additional parameter
15498102550Siwasaki
15499102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
15500102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
15501102550Siwasaki**RegionContext); // This used to be **ReturnContext
15502102550Siwasaki
15503102550Siwasaki-------------------------------------------
15504102550SiwasakiSummary of changes for this label: 07_21_00
15505102550Siwasaki
15506102550SiwasakiMajor file consolidation and rename.  All files within the
15507193267Sjkiminterpreter have been  renamed as well as most header files.  This
15508126372Snjlwas done to prevent collisions with  existing files in the host
15509126372SnjlOSs -- filenames such as "config.h" and "global.h"  seem to be
15510126372Snjlquite common.  The VC project files have been updated.  All
15511114237Snjlmakefiles  will require modification.
15512102550Siwasaki
15513114237SnjlThe parser/interpreter integration continues in Phase 5 with the
15514114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
15515114237Snjltwice) for each table;  This  avoids the construction of a huge
15516114237Snjlparse tree and therefore reduces the amount of  dynamic memory
15517114237Snjlrequired by the subsystem.  Greater use of the parse object cache
15518114237Snjlmeans that performance is unaffected.
15519102550Siwasaki
15520102550SiwasakiMany comments from the two code reviews have been rolled in.
15521102550Siwasaki
15522102550SiwasakiThe 64-bit alignment support is complete.
15523102550Siwasaki
15524102550Siwasaki-------------------------------------------
15525102550SiwasakiSummary of changes for this label: 06_30_00
15526102550Siwasaki
15527114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
15528114237Snjlwe've added  support in the source code for 80 column output
15529114237Snjldevices.  The code is now mostly  constrained to 80 columns or
15530114237Snjlless to support environments and editors that 1)  cannot display
15531114237Snjlor print more than 80 characters on a single line, and 2) cannot
15532114237Snjldisable line wrapping.
15533102550Siwasaki
15534104470SiwasakiA major restructuring of the namespace data structure has been
15535104470Siwasakicompleted.  The  result is 1) cleaner and more
15536114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
15537114237Snjlin the dynamic memory requirement for each named ACPI  object
15538114237Snjl(almost half).
15539102550Siwasaki
15540102550Siwasaki-------------------------------------------
15541102550SiwasakiSummary of changes for this label: 06_23_00
15542102550Siwasaki
15543114237SnjlLinux support has been added.  In order to obtain approval to get
15544114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
15545114237Snjlquite a few changes to the  base subsystem that will affect all
15546114237Snjlusers (all the changes are generic and OS- independent).  The
15547114237Snjleffects of these global changes have been somewhat far  reaching.
15548114237SnjlFiles have been merged and/or renamed and interfaces have been
15549114237Snjlrenamed.   The major changes are described below.
15550102550Siwasaki
15551102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
15552102550Siwasakipollution/confusion  within our target kernels.  All OSD
15553114237Snjlinterfaces must be modified to match the new  naming convention.
15554102550Siwasaki
15555193267SjkimFiles merged across the subsystem.  A number of the smaller source
15556126372Snjland header  files have been merged to reduce the file count and
15557126372Snjlincrease the density of the  existing files.  There are too many
15558126372Snjlto list here.  In general, makefiles that  call out individual
15559126372Snjlfiles will require rebuilding.
15560102550Siwasaki
15561104470SiwasakiInterpreter files renamed.  All interpreter files now have the
15562104470Siwasakiprefix am*  instead of ie* and is*.
15563102550Siwasaki
15564104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
15565114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
15566114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
15567114237Snjl"external interface" or xface or xf in the  filenames.j
15568102550Siwasaki
15569102550Siwasaki
15570114237SnjlAll manifest constants have been forced to upper case (some were
15571193267Sjkimmixed case.)   Also, the string "ACPI_" has been prepended to many
15572126372Snjl(not all) of the constants,  typedefs, and structs.
15573102550Siwasaki
15574102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
15575102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
15576102550Siwasaki
15577102550SiwasakiAll other globals within the subsystem are now prefixed with
15578102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
15579114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
15580193267Sjkimtwo-letter abbreviation for the subcomponent  remains after "Acpi"
15581126372Snjl- for example, CmCallocate became AcpiCmCallocate.
15582102550Siwasaki
15583102550SiwasakiAdded a source code translation/conversion utility.  Used to
15584114237Snjlgenerate the Linux  source code, it can be modified to generate
15585114237Snjlother types of source as well. Can  also be used to cleanup
15586114237Snjlexisting source by removing extraneous spaces and blank  lines.
15587114237SnjlFound in tools/acpisrc/*
15588102550Siwasaki
15589102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
15590102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
15591102550Siwasaki
15592114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
15593114237SnjlWhen set to  one, this indicates that the caller wants to use the
15594167802Sjkim
15595114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
15596114237Snjlboth types.  However, implementers of this  call may want to use
15597114237Snjldifferent OS primitives depending on the type of semaphore
15598114237Snjlrequested.  For example, some operating systems provide separate
15599167802Sjkim
15600193267Sjkim"mutex" and  "semaphore" interfaces - where the mutex interface is
15601126372Snjlmuch faster because it  doesn't have all the overhead of a full
15602126372Snjlsemaphore implementation.
15603102550Siwasaki
15604104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
15605114237Snjladdress space can  block forever if it is the first access to the
15606114237Snjlspace.
15607102550Siwasaki
15608102550Siwasaki-------------------------------------------
15609102550SiwasakiSummary of changes for this label: 06_02_00
15610102550Siwasaki
15611102550SiwasakiSupport for environments that cannot handle unaligned data
15612114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
15613193267Sjkimhandler technology namely  SAL/EFI and the IA-64 Linux kernel) has
15614126372Snjlbeen added (via configurable macros) in  these three areas: -
15615114237SnjlTransfer of data from the raw AML byte stream is done via byte
15616193267Sjkimmoves instead of    word/dword/qword moves. - External objects are
15617126372Snjlaligned within the user buffer, including package   elements (sub-
15618193267Sjkimobjects). - Conversion of name strings to UINT32 Acpi Names is now
15619126372Snjldone byte-wise.
15620102550Siwasaki
15621102550SiwasakiThe Store operator was modified to mimic Microsoft's
15622102550Siwasakiimplementation when storing  to a Buffer Field.
15623102550Siwasaki
15624102550SiwasakiAdded a check of the BM_STS bit before entering C3.
15625102550Siwasaki
15626114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
15627114237Snjlfile, cmeval.c  subsumes the functionality.
15628102550Siwasaki
15629102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
15630102550Siwasakimakefile is under  the acpiexec directory.
15631