Rev 1498 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1498 | serge | 1 | ---------------------------------------- |
2216 | Serge | 2 | 23 June 2011. Summary of changes for version 20110623: |
3 | |||
4 | 1) ACPI CA Core Subsystem: |
||
5 | |||
6 | Updated the predefined name repair mechanism to not attempt repair of a _TSS |
||
7 | return object if a _PSS object is present. We can only sort the _TSS return |
||
8 | package if there is no _PSS within the same scope. This is because if _PSS is |
||
9 | present, the ACPI specification dictates that the _TSS Power Dissipation field |
||
10 | is to be ignored, and therefore some BIOSs leave garbage values in the _TSS |
||
11 | Power field(s). In this case, it is best to just return the _TSS package as- |
||
12 | is. Reported by, and fixed with assistance from Fenghua Yu. |
||
13 | |||
14 | Added an option to globally disable the control method return value validation |
||
15 | and repair. This runtime option can be used to disable return value repair if |
||
16 | this is causing a problem on a particular machine. Also added an option to |
||
17 | AcpiExec (-dr) to set this disable flag. |
||
18 | |||
19 | All makefiles and project files: Major changes to improve generation of ACPICA |
||
20 | tools. ACPICA BZ 912: |
||
21 | Reduce default optimization levels to improve compatibility |
||
22 | For Linux, add strict-aliasing=0 for gcc 4 |
||
23 | Cleanup and simplify use of command line defines |
||
24 | Cleanup multithread library support |
||
25 | Improve usage messages |
||
26 | |||
27 | Linux-specific header: update handling of THREAD_ID and pthread. For the 32- |
||
28 | bit case, improve casting to eliminate possible warnings, especially with the |
||
29 | acpica tools. |
||
30 | |||
31 | Example Code and Data Size: These are the sizes for the OS-independent |
||
32 | acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug |
||
33 | version of the code includes the debug output trace mechanism and has a much |
||
34 | larger code and data size. |
||
35 | |||
36 | Previous Release (VC 9.0): |
||
37 | Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total |
||
38 | Debug Version: 165.6K Code, 68.4K Data, 234.0K Total |
||
39 | Current Release (VC 9.0): |
||
40 | Non-Debug Version: 90.2K Code, 23.9K Data, 114.1K Total |
||
41 | Debug Version: 165.6K Code, 68.4K Data, 234.0K Total |
||
42 | |||
43 | 2) iASL Compiler/Disassembler and Tools: |
||
44 | |||
45 | With this release, a new utility named "acpihelp" has been added to the ACPICA |
||
46 | package. This utility summarizes the ACPI specification chapters for the ASL |
||
47 | and AML languages. It generates under Linux/Unix as well as Windows, and |
||
48 | provides the following functionality: |
||
49 | Find/display ASL operator(s) -- with description and syntax. |
||
50 | Find/display ASL keyword(s) -- with exact spelling and descriptions. |
||
51 | Find/display ACPI predefined name(s) -- with description, number |
||
52 | of arguments, and the return value data type. |
||
53 | Find/display AML opcode name(s) -- with opcode, arguments, and grammar. |
||
54 | Decode/display AML opcode -- with opcode name, arguments, and grammar. |
||
55 | |||
56 | Service Layers: Make multi-thread support configurable. Conditionally compile |
||
57 | the multi-thread support so that threading libraries will not be linked if not |
||
58 | necessary. The only tool that requires multi-thread support is AcpiExec. |
||
59 | |||
60 | iASL: Update yyerrror/AslCompilerError for "const" errors. Newer versions of |
||
61 | Bison appear to want the interface to yyerror to be a const char * (or at |
||
62 | least this is a problem when generating iASL on some systems.) ACPICA BZ 923 |
||
63 | Pierre Lejeune. |
||
64 | |||
65 | Tools: Fix for systems where O_BINARY is not defined. Only used for Windows |
||
66 | versions of the tools. |
||
67 | |||
68 | ---------------------------------------- |
||
69 | 27 May 2011. Summary of changes for version 20110527: |
||
70 | |||
71 | 1) ACPI CA Core Subsystem: |
||
72 | |||
73 | ASL Load() operator: Reinstate most restrictions on the incoming ACPI table |
||
74 | signature. Now, only allow SSDT, OEMx, and a null signature. History: |
||
75 | 1) Originally, we checked the table signature for "SSDT" or "PSDT". |
||
76 | (PSDT is now obsolete.) |
||
77 | 2) We added support for OEMx tables, signature "OEM" plus a fourth |
||
78 | "don't care" character. |
||
79 | 3) Valid tables were encountered with a null signature, so we just |
||
80 | gave up on validating the signature, (05/2008). |
||
81 | 4) We encountered non-AML tables such as the MADT, which caused |
||
82 | interpreter errors and kernel faults. So now, we once again allow |
||
83 | only SSDT, OEMx, and now, also a null signature. (05/2011). |
||
84 | |||
85 | Added the missing _TDL predefined name to the global name list in order to |
||
86 | enable validation. Affects both the core ACPICA code and the iASL compiler. |
||
87 | |||
88 | Example Code and Data Size: These are the sizes for the OS-independent |
||
89 | acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug |
||
90 | version of the code includes the debug output trace mechanism and has a much |
||
91 | larger code and data size. |
||
92 | |||
93 | Previous Release (VC 9.0): |
||
94 | Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total |
||
95 | Debug Version: 164.5K Code, 68.0K Data, 232.5K Total |
||
96 | Current Release (VC 9.0): |
||
97 | Non-Debug Version: 90.1K Code, 23.9K Data, 114.0K Total |
||
98 | Debug Version: 165.6K Code, 68.4K Data, 234.0K Total |
||
99 | |||
100 | 2) iASL Compiler/Disassembler and Tools: |
||
101 | |||
102 | Debugger/AcpiExec: Implemented support for "complex" method arguments on the |
||
103 | debugger command line. This adds support beyond simple integers -- including |
||
104 | Strings, Buffers, and Packages. Includes support for nested packages. |
||
105 | Increased the default command line buffer size to accommodate these arguments. |
||
106 | See the ACPICA reference for details and syntax. ACPICA BZ 917. |
||
107 | |||
108 | Debugger/AcpiExec: Implemented support for "default" method arguments for the |
||
109 | Execute/Debug command. Now, the debugger will always invoke a control method |
||
110 | with the required number of arguments -- even if the command line specifies |
||
111 | none or insufficient arguments. It uses default integer values for any missing |
||
112 | arguments. Also fixes a bug where only six method arguments maximum were |
||
113 | supported instead of the required seven. |
||
114 | |||
115 | Debugger/AcpiExec: Add a maximum buffer length parameter to AcpiOsGetLine and |
||
116 | also return status in order to prevent buffer overruns. See the ACPICA |
||
117 | reference for details and syntax. ACPICA BZ 921 |
||
118 | |||
119 | iASL: Cleaned up support for Berkeley yacc. A general cleanup of code and |
||
120 | makefiles to simplify support for the two different but similar parser |
||
121 | generators, bison and yacc. |
||
122 | |||
123 | Updated the generic unix makefile for gcc 4. The default gcc version is now |
||
124 | expected to be 4 or greater, since options specific to gcc 4 are used. |
||
125 | |||
126 | ---------------------------------------- |
||
127 | 13 April 2011. Summary of changes for version 20110413: |
||
128 | |||
129 | 1) ACPI CA Core Subsystem: |
||
130 | |||
131 | Implemented support to execute a so-called "orphan" _REG method under the EC |
||
132 | device. This change will force the execution of a _REG method underneath the |
||
133 | EC |
||
134 | device even if there is no corresponding operation region of type |
||
135 | EmbeddedControl. Fixes a problem seen on some machines and apparently is |
||
136 | compatible with Windows behavior. ACPICA BZ 875. |
||
137 | |||
138 | Added more predefined methods that are eligible for automatic NULL package |
||
139 | element removal. This change adds another group of predefined names to the |
||
140 | list |
||
141 | of names that can be repaired by having NULL package elements dynamically |
||
142 | removed. This group are those methods that return a single variable-length |
||
143 | package containing simple data types such as integers, buffers, strings. This |
||
144 | includes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx, _PSL, |
||
145 | _Sx, |
||
146 | and _TZD. ACPICA BZ 914. |
||
147 | |||
148 | Split and segregated all internal global lock functions to a new file, |
||
149 | evglock.c. |
||
150 | |||
151 | Updated internal address SpaceID for DataTable regions. Moved this internal |
||
152 | space |
||
153 | id in preparation for ACPI 5.0 changes that will include some new space IDs. |
||
154 | This |
||
155 | change should not affect user/host code. |
||
156 | |||
157 | Example Code and Data Size: These are the sizes for the OS-independent |
||
158 | acpica.lib |
||
159 | produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of |
||
160 | the code includes the debug output trace mechanism and has a much larger code |
||
161 | and |
||
162 | data size. |
||
163 | |||
164 | Previous Release (VC 9.0): |
||
165 | Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total |
||
166 | Debug Version: 164.2K Code, 67.9K Data, 232.1K Total |
||
167 | Current Release (VC 9.0): |
||
168 | Non-Debug Version: 90.0K Code, 23.8K Data, 113.8K Total |
||
169 | Debug Version: 164.5K Code, 68.0K Data, 232.5K Total |
||
170 | |||
171 | 2) iASL Compiler/Disassembler and Tools: |
||
172 | |||
173 | iASL/DTC: Major update for new grammar features. Allow generic data types in |
||
174 | custom ACPI tables. Field names are now optional. Any line can be split to |
||
175 | multiple lines using the continuation char (\). Large buffers now use line- |
||
176 | continuation character(s) and no colon on the continuation lines. See the |
||
177 | grammar |
||
178 | update in the iASL compiler reference. ACPI BZ 910,911. Lin Ming, Bob Moore. |
||
179 | |||
180 | iASL: Mark ASL "Return()" and the simple "Return" as "Null" return statements. |
||
181 | Since the parser stuffs a "zero" as the return value for these statements (due |
||
182 | to |
||
183 | the underlying AML grammar), they were seen as "return with value" by the iASL |
||
184 | semantic checking. They are now seen correctly as "null" return statements. |
||
185 | |||
186 | iASL: Check if a_REG declaration has a corresponding Operation Region. Adds a |
||
187 | check for each _REG to ensure that there is in fact a corresponding operation |
||
188 | region declaration in the same scope. If not, the _REG method is not very |
||
189 | useful |
||
190 | since it probably won't be executed. ACPICA BZ 915. |
||
191 | |||
192 | iASL/DTC: Finish support for expression evaluation. Added a new expression |
||
193 | parser |
||
194 | that implements c-style operator precedence and parenthesization. ACPICA |
||
195 | bugzilla |
||
196 | 908. |
||
197 | |||
198 | Disassembler/DTC: Remove support for () and <> style comments in data tables. |
||
199 | Now |
||
200 | that DTC has full expression support, we don't want to have comment strings |
||
201 | that |
||
202 | start with a parentheses or a less-than symbol. Now, only the standard /* and |
||
203 | // |
||
204 | comments are supported, as well as the bracket [] comments. |
||
205 | |||
206 | AcpiXtract: Fix for RSDP and dynamic SSDT extraction. These tables have |
||
207 | "unusual" |
||
208 | headers in the acpidump file. Update the header validation to support these |
||
209 | tables. Problem introduced in previous AcpiXtract version in the change to |
||
210 | support "wrong checksum" error messages emitted by acpidump utility. |
||
211 | |||
212 | iASL: Add a * option to generate all template files (as a synonym for ALL) as |
||
213 | in |
||
214 | "iasl -T *" or "iasl -T ALL". |
||
215 | |||
216 | iASL/DTC: Do not abort compiler on fatal errors. We do not want to completely |
||
217 | abort the compiler on "fatal" errors, simply should abort the current compile. |
||
218 | This allows multiple compiles with a single (possibly wildcard) compiler |
||
219 | invocation. |
||
220 | |||
221 | ---------------------------------------- |
||
222 | 16 March 2011. Summary of changes for version 20110316: |
||
223 | |||
224 | 1) ACPI CA Core Subsystem: |
||
225 | |||
226 | Fixed a problem caused by a _PRW method appearing at the namespace root scope |
||
227 | during the setup of wake GPEs. A fault could occur if a _PRW directly under |
||
228 | the |
||
229 | root object was passed to the AcpiSetupGpeForWake interface. Lin Ming. |
||
230 | |||
231 | Implemented support for "spurious" Global Lock interrupts. On some systems, a |
||
232 | global lock interrupt can occur without the pending flag being set. Upon a GL |
||
233 | interrupt, we now ensure that a thread is actually waiting for the lock before |
||
234 | signaling GL availability. Rafael Wysocki, Bob Moore. |
||
235 | |||
236 | Example Code and Data Size: These are the sizes for the OS-independent |
||
237 | acpica.lib |
||
238 | produced by the Microsoft Visual C++ 9.0 32-bit compiler. The debug version of |
||
239 | the code includes the debug output trace mechanism and has a much larger code |
||
240 | and |
||
241 | data size. |
||
242 | |||
243 | Previous Release (VC 9.0): |
||
244 | Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total |
||
245 | Debug Version: 163.9K Code, 67.5K Data, 231.4K Total |
||
246 | Current Release (VC 9.0): |
||
247 | Non-Debug Version: 89.8K Code, 23.8K Data, 113.6K Total |
||
248 | Debug Version: 164.2K Code, 67.9K Data, 232.1K Total |
||
249 | |||
250 | 2) iASL Compiler/Disassembler and Tools: |
||
251 | |||
252 | Implemented full support for the "SLIC" ACPI table. Includes support in the |
||
253 | header files, disassembler, table compiler, and template generator. Bob Moore, |
||
254 | Lin Ming. |
||
255 | |||
256 | AcpiXtract: Correctly handle embedded comments and messages from AcpiDump. |
||
257 | Apparently some or all versions of acpidump will occasionally emit a comment |
||
258 | like |
||
259 | "Wrong checksum", etc., into the dump file. This was causing problems for |
||
260 | AcpiXtract. ACPICA BZ 905. |
||
261 | |||
262 | iASL: Fix the Linux makefile by removing an inadvertent double file inclusion. |
||
263 | ACPICA BZ 913. |
||
264 | |||
265 | AcpiExec: Update installation of operation region handlers. Install one |
||
266 | handler |
||
267 | for a user-defined address space. This is used by the ASL test suite (ASLTS). |
||
268 | |||
269 | ---------------------------------------- |
||
270 | 11 February 2011. Summary of changes for version 20110211: |
||
271 | |||
272 | 1) ACPI CA Core Subsystem: |
||
273 | |||
274 | Added a mechanism to defer _REG methods for some early-installed handlers. |
||
275 | Most user handlers should be installed before call to AcpiEnableSubsystem. |
||
276 | However, Event handlers and region handlers should be installed after |
||
277 | AcpiInitializeObjects. Override handlers for the "default" regions should be |
||
278 | installed early, however. This change executes all _REG methods for the |
||
279 | default regions (Memory/IO/PCI/DataTable) simultaneously to prevent any |
||
280 | chicken/egg issues between them. ACPICA BZ 848. |
||
281 | |||
282 | Implemented an optimization for GPE detection. This optimization will simply |
||
283 | ignore GPE registers that contain no enabled GPEs -- there is no need to |
||
284 | read the register since this information is available internally. This |
||
285 | becomes more important on machines with a large GPE space. ACPICA bugzilla |
||
286 | 884. Lin Ming. Suggestion from Joe Liu. |
||
287 | |||
288 | Removed all use of the highly unreliable FADT revision field. The revision |
||
289 | number in the FADT has been found to be completely unreliable and cannot be |
||
290 | trusted. Only the actual table length can be used to infer the version. This |
||
291 | change updates the ACPICA core and the disassembler so that both no longer |
||
292 | even look at the FADT version and instead depend solely upon the FADT |
||
293 | length. |
||
294 | |||
295 | Fix an unresolved name issue for the no-debug and no-error-message source |
||
296 | generation cases. The _AcpiModuleName was left undefined in these cases, but |
||
297 | it is actually needed as a parameter to some interfaces. Define |
||
298 | _AcpiModuleName as a null string in these cases. ACPICA Bugzilla 888. |
||
299 | |||
300 | Split several large files (makefiles and project files updated) |
||
301 | utglobal.c -> utdecode.c |
||
302 | dbcomds.c -> dbmethod.c dbnames.c |
||
303 | dsopcode.c -> dsargs.c dscontrol.c |
||
304 | dsload.c -> dsload2.c |
||
305 | aslanalyze.c -> aslbtypes.c aslwalks.c |
||
306 | |||
307 | Example Code and Data Size: These are the sizes for the OS-independent |
||
308 | acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The |
||
309 | debug version of the code includes the debug output trace mechanism and has |
||
310 | a much larger code and data size. |
||
311 | |||
312 | Previous Release (VC 9.0): |
||
313 | Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total |
||
314 | Debug Version: 163.9K Code, 67.5K Data, 231.4K Total |
||
315 | Current Release (VC 9.0): |
||
316 | Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total |
||
317 | Debug Version: 163.9K Code, 67.5K Data, 231.4K Total |
||
318 | |||
319 | 2) iASL Compiler/Disassembler and Tools: |
||
320 | |||
321 | iASL: Implemented the predefined macros __LINE__, __FILE__, and __DATE__. |
||
322 | These are useful C-style macros with the standard definitions. ACPICA |
||
323 | bugzilla 898. |
||
324 | |||
325 | iASL/DTC: Added support for integer expressions and labels. Support for full |
||
326 | expressions for all integer fields in all ACPI tables. Support for labels in |
||
327 | "generic" portions of tables such as UEFI. See the iASL reference manual. |
||
328 | |||
329 | Debugger: Added a command to display the status of global handlers. The |
||
330 | "handlers" command will display op region, fixed event, and miscellaneous |
||
331 | global handlers. installation status -- and for op regions, whether default |
||
332 | or user-installed handler will be used. |
||
333 | |||
334 | iASL: Warn if reserved method incorrectly returns a value. Many predefined |
||
335 | names are defined such that they do not return a value. If implemented as a |
||
336 | method, issue a warning if such a name explicitly returns a value. ACPICA |
||
337 | Bugzilla 855. |
||
338 | |||
339 | iASL: Added detection of GPE method name conflicts. Detects a conflict where |
||
340 | there are two GPE methods of the form _Lxy and _Exy in the same scope. (For |
||
341 | example, _L1D and _E1D in the same scope.) ACPICA bugzilla 848. |
||
342 | |||
343 | iASL/DTC: Fixed a couple input scanner issues with comments and line |
||
344 | numbers. Comment remover could get confused and miss a comment ending. Fixed |
||
345 | a problem with line counter maintenance. |
||
346 | |||
347 | iASL/DTC: Reduced the severity of some errors from fatal to error. There is |
||
348 | no need to abort on simple errors within a field definition. |
||
349 | |||
350 | Debugger: Simplified the output of the help command. All help output now in |
||
351 | a single screen, instead of help subcommands. ACPICA Bugzilla 897. |
||
352 | |||
353 | ---------------------------------------- |
||
354 | 12 January 2011. Summary of changes for version 20110112: |
||
355 | |||
356 | 1) ACPI CA Core Subsystem: |
||
357 | |||
358 | Fixed a race condition between method execution and namespace walks that can |
||
359 | possibly cause a fault. The problem was apparently introduced in version |
||
360 | 20100528 as a result of a performance optimization that reduces the number of |
||
361 | namespace walks upon method exit by using the delete_namespace_subtree |
||
362 | function instead of the delete_namespace_by_owner function used previously. |
||
363 | Bug is a missing namespace lock in the delete_namespace_subtree function. |
||
364 | dana.myers@oracle.com |
||
365 | |||
366 | Fixed several issues and a possible fault with the automatic "serialized" |
||
367 | method support. History: This support changes a method to "serialized" on the |
||
368 | fly if the method generates an AE_ALREADY_EXISTS error, indicating the |
||
369 | possibility that it cannot handle reentrancy. This fix repairs a couple of |
||
370 | issues seen in the field, especially on machines with many cores: |
||
371 | |||
372 | 1) Delete method children only upon the exit of the last thread, |
||
373 | so as to not delete objects out from under other running threads |
||
374 | (and possibly causing a fault.) |
||
375 | 2) Set the "serialized" bit for the method only upon the exit of the |
||
376 | Last thread, so as to not cause deadlock when running threads |
||
377 | attempt to exit. |
||
378 | 3) Cleanup the use of the AML "MethodFlags" and internal method flags |
||
379 | so that there is no longer any confusion between the two. |
||
380 | |||
381 | Lin Ming, Bob Moore. Reported by dana.myers@oracle.com. |
||
382 | |||
383 | Debugger: Now lock the namespace for duration of a namespace dump. Prevents |
||
384 | issues if the namespace is changing dynamically underneath the debugger. |
||
385 | Especially affects temporary namespace nodes, since the debugger displays |
||
386 | these also. |
||
387 | |||
388 | Updated the ordering of include files. The ACPICA headers should appear |
||
389 | before any compiler-specific headers (stdio.h, etc.) so that acenv.h can set |
||
390 | any necessary compiler-specific defines, etc. Affects the ACPI-related tools |
||
391 | and utilities. |
||
392 | |||
393 | Updated all ACPICA copyrights and signons to 2011. Added the 2011 copyright |
||
394 | to all module headers and signons, including the Linux header. This affects |
||
395 | virtually every file in the ACPICA core subsystem, iASL compiler, and all |
||
396 | utilities. |
||
397 | |||
398 | Added project files for MS Visual Studio 2008 (VC++ 9.0). The original |
||
399 | project files for VC++ 6.0 are now obsolete. New project files can be found |
||
400 | under acpica/generate/msvc9. See acpica/generate/msvc9/readme.txt for |
||
401 | details. |
||
402 | |||
403 | Example Code and Data Size: These are the sizes for the OS-independent |
||
404 | acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The |
||
405 | debug version of the code includes the debug output trace mechanism and has a |
||
406 | much larger code and data size. |
||
407 | |||
408 | Previous Release (VC 6.0): |
||
409 | Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total |
||
410 | Debug Version: 166.6K Code, 52.1K Data, 218.7K Total |
||
411 | Current Release (VC 9.0): |
||
412 | Non-Debug Version: 89.7K Code, 23.7K Data, 113.4K Total |
||
413 | Debug Version: 163.9K Code, 67.5K Data, 231.4K Total |
||
414 | |||
415 | 2) iASL Compiler/Disassembler and Tools: |
||
416 | |||
417 | iASL: Added generic data types to the Data Table compiler. Add "generic" data |
||
418 | types such as UINT32, String, Unicode, etc., to simplify the generation of |
||
419 | platform-defined tables such as UEFI. Lin Ming. |
||
420 | |||
421 | iASL: Added listing support for the Data Table Compiler. Adds listing support |
||
422 | (-l) to display actual binary output for each line of input code. |
||
423 | |||
424 | ---------------------------------------- |
||
425 | 09 December 2010. Summary of changes for version 20101209: |
||
426 | |||
427 | 1) ACPI CA Core Subsystem: |
||
428 | |||
429 | Completed the major overhaul of the GPE support code that was begun in July |
||
430 | 2010. Major features include: removal of _PRW execution in ACPICA (host |
||
431 | executes _PRWs anyway), cleanup of "wake" GPE interfaces and processing, |
||
432 | changes to existing interfaces, simplification of GPE handler operation, and |
||
433 | a handful of new interfaces: |
||
434 | |||
435 | AcpiUpdateAllGpes |
||
436 | AcpiFinishGpe |
||
437 | AcpiSetupGpeForWake |
||
438 | AcpiSetGpeWakeMask |
||
439 | One new file, evxfgpe.c to consolidate all external GPE interfaces. |
||
440 | |||
441 | See the ACPICA Programmer Reference for full details and programming |
||
442 | information. See the new section 4.4 "General Purpose Event (GPE) Support" |
||
443 | for a full overview, and section 8.7 "ACPI General Purpose Event Management" |
||
444 | for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin Ming, |
||
445 | Bob Moore, Rafael Wysocki. |
||
446 | |||
447 | Implemented a new GPE feature for Windows compatibility, the "Implicit Wake |
||
448 | GPE Notify". This feature will automatically issue a Notify(2) on a device |
||
449 | when a Wake GPE is received if there is no corresponding GPE method or |
||
450 | handler. ACPICA BZ 870. |
||
451 | |||
452 | Fixed a problem with the Scope() operator during table parse and load phase. |
||
453 | During load phase (table load or method execution), the scope operator should |
||
454 | not enter the target into the namespace. Instead, it should open a new scope |
||
455 | at the target location. Linux BZ 19462, ACPICA BZ 882. |
||
456 | |||
457 | Example Code and Data Size: These are the sizes for the OS-independent |
||
458 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
459 | debug version of the code includes the debug output trace mechanism and has a |
||
460 | much larger code and data size. |
||
461 | |||
462 | Previous Release: |
||
463 | Non-Debug Version: 89.8K Code, 18.9K Data, 108.7K Total |
||
464 | Debug Version: 166.6K Code, 52.1K Data, 218.7K Total |
||
465 | Current Release: |
||
466 | Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total |
||
467 | Debug Version: 166.3K Code, 52.1K Data, 218.4K Total |
||
468 | |||
469 | 2) iASL Compiler/Disassembler and Tools: |
||
470 | |||
471 | iASL: Relax the alphanumeric restriction on _CID strings. These strings are |
||
472 | "bus-specific" per the ACPI specification, and therefore any characters are |
||
473 | acceptable. The only checks that can be performed are for a null string and |
||
474 | perhaps for a leading asterisk. ACPICA BZ 886. |
||
475 | |||
476 | iASL: Fixed a problem where a syntax error that caused a premature EOF |
||
477 | condition on the source file emitted a very confusing error message. The |
||
478 | premature EOF is now detected correctly. ACPICA BZ 891. |
||
479 | |||
480 | Disassembler: Decode the AccessSize within a Generic Address Structure (byte |
||
481 | access, word access, etc.) Note, this field does not allow arbitrary bit |
||
482 | access, the size is encoded as 1=byte, 2=word, 3=dword, and 4=qword. |
||
483 | |||
484 | New: AcpiNames utility - Example namespace dump utility. Shows an example of |
||
485 | ACPICA configuration for a minimal namespace dump utility. Uses table and |
||
486 | namespace managers, but no AML interpreter. Does not add any functionality |
||
487 | over AcpiExec, it is a subset of AcpiExec. The purpose is to show how to |
||
488 | partition and configure ACPICA. ACPICA BZ 883. |
||
489 | |||
490 | AML Debugger: Increased the debugger buffer size for method return objects. |
||
491 | Was 4K, increased to 16K. Also enhanced error messages for debugger method |
||
492 | execution, including the buffer overflow case. |
||
493 | |||
494 | ---------------------------------------- |
||
495 | 13 October 2010. Summary of changes for version 20101013: |
||
496 | |||
497 | 1) ACPI CA Core Subsystem: |
||
498 | |||
499 | Added support to clear the PCIEXP_WAKE event. When clearing ACPI events, now |
||
500 | clear the PCIEXP_WAKE_STS bit in the ACPI PM1 Status Register, via |
||
501 | HwClearAcpiStatus. Original change from Colin King. ACPICA BZ 880. |
||
502 | |||
503 | Changed the type of the predefined namespace object _TZ from ThermalZone to |
||
504 | Device. This was found to be confusing to the host software that processes |
||
505 | the various thermal zones, since _TZ is not really a ThermalZone. However, a |
||
506 | Notify() can still be performed on it. ACPICA BZ 876. Suggestion from Rui |
||
507 | Zhang. |
||
508 | |||
509 | Added Windows Vista SP2 to the list of supported _OSI strings. The actual |
||
510 | string is "Windows 2006 SP2". |
||
511 | |||
512 | Eliminated duplicate code in AcpiUtExecute* functions. Now that the nsrepair |
||
513 | code automatically repairs _HID-related strings, this type of code is no |
||
514 | longer needed in Execute_HID, Execute_CID, and Execute_UID. ACPICA BZ 878. |
||
515 | |||
516 | Example Code and Data Size: These are the sizes for the OS-independent |
||
517 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
518 | debug version of the code includes the debug output trace mechanism and has a |
||
519 | much larger code and data size. |
||
520 | |||
521 | Previous Release: |
||
522 | Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total |
||
523 | Debug Version: 166.3K Code, 52.1K Data, 218.4K Total |
||
524 | Current Release: |
||
525 | Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total |
||
526 | Debug Version: 166.3K Code, 52.1K Data, 218.4K Total |
||
527 | |||
528 | 2) iASL Compiler/Disassembler and Tools: |
||
529 | |||
530 | iASL: Implemented additional compile-time validation for _HID strings. The |
||
531 | non-hex prefix (such as "PNP" or "ACPI") must be uppercase, and the length of |
||
532 | the string must be exactly seven or eight characters. For both _HID and _CID |
||
533 | strings, all characters must be alphanumeric. ACPICA BZ 874. |
||
534 | |||
535 | iASL: Allow certain "null" resource descriptors. Some BIOS code creates |
||
536 | descriptors that are mostly or all zeros, with the expectation that they will |
||
537 | be filled in at runtime. iASL now allows this as long as there is a "resource |
||
538 | tag" (name) associated with the descriptor, which gives the ASL a handle |
||
539 | needed to modify the descriptor. ACPICA BZ 873. |
||
540 | |||
541 | Added single-thread support to the generic Unix application OSL. Primarily |
||
542 | for iASL support, this change removes the use of semaphores in the single- |
||
543 | threaded ACPICA tools/applications - increasing performance. The |
||
544 | _MULTI_THREADED option was replaced by the (reverse) ACPI_SINGLE_THREADED |
||
545 | option. ACPICA BZ 879. |
||
546 | |||
547 | AcpiExec: several fixes for the 64-bit version. Adds XSDT support and support |
||
548 | for 64-bit DSDT/FACS addresses in the FADT. Lin Ming. |
||
549 | |||
550 | iASL: Moved all compiler messages to a new file, aslmessages.h. |
||
551 | |||
552 | ---------------------------------------- |
||
553 | 15 September 2010. Summary of changes for version 20100915: |
||
554 | |||
555 | 1) ACPI CA Core Subsystem: |
||
556 | |||
557 | Removed the AcpiOsDerivePciId OSL interface. The various host implementations |
||
558 | of this function were not OS-dependent and are now obsolete and can be |
||
559 | removed from all host OSLs. This function has been replaced by |
||
560 | AcpiHwDerivePciId, which is now part of the ACPICA core code. |
||
561 | AcpiHwDerivePciId has been implemented without recursion. Adds one new |
||
562 | module, hwpci.c. ACPICA BZ 857. |
||
563 | |||
564 | Implemented a dynamic repair for _HID and _CID strings. The following |
||
565 | problems are now repaired at runtime: 1) Remove a leading asterisk in the |
||
566 | string, and 2) the entire string is uppercased. Both repairs are in |
||
567 | accordance with the ACPI specification and will simplify host driver code. |
||
568 | ACPICA BZ 871. |
||
569 | |||
570 | The ACPI_THREAD_ID type is no longer configurable, internally it is now |
||
571 | always UINT64. This simplifies the ACPICA code, especially any printf output. |
||
572 | UINT64 is the only common data type for all thread_id types across all |
||
573 | operating systems. It is now up to the host OSL to cast the native thread_id |
||
574 | type to UINT64 before returning the value to ACPICA (via AcpiOsGetThreadId). |
||
575 | Lin Ming, Bob Moore. |
||
576 | |||
577 | Added the ACPI_INLINE type to enhance the ACPICA configuration. The "inline" |
||
578 | keyword is not standard across compilers, and this type allows inline to be |
||
579 | configured on a per-compiler basis. Lin Ming. |
||
580 | |||
581 | Made the system global AcpiGbl_SystemAwakeAndRunning publically available. |
||
582 | Added an extern for this boolean in acpixf.h. Some hosts utilize this value |
||
583 | during suspend/restore operations. ACPICA BZ 869. |
||
584 | |||
585 | All code that implements error/warning messages with the "ACPI:" prefix has |
||
586 | been moved to a new module, utxferror.c. |
||
587 | |||
588 | The UINT64_OVERLAY was moved to utmath.c, which is the only module where it |
||
589 | is used. ACPICA BZ 829. Lin Ming, Bob Moore. |
||
590 | |||
591 | Example Code and Data Size: These are the sizes for the OS-independent |
||
592 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
593 | debug version of the code includes the debug output trace mechanism and has a |
||
594 | much larger code and data size. |
||
595 | |||
596 | Previous Release: |
||
597 | Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total |
||
598 | Debug Version: 165.1K Code, 51.9K Data, 217.0K Total |
||
599 | Current Release: |
||
600 | Non-Debug Version: 89.9K Code, 19.0K Data, 108.9K Total |
||
601 | Debug Version: 166.3K Code, 52.1K Data, 218.4K Total |
||
602 | |||
603 | 2) iASL Compiler/Disassembler and Tools: |
||
604 | |||
605 | iASL/Disassembler: Write ACPI errors to stderr instead of the output file. |
||
606 | This keeps the output files free of random error messages that may originate |
||
607 | from within the namespace/interpreter code. Used this opportunity to merge |
||
608 | all ACPI:-style messages into a single new module, utxferror.c. ACPICA BZ |
||
609 | 866. Lin Ming, Bob Moore. |
||
610 | |||
611 | Tools: update some printfs for ansi warnings on size_t. Handle width change |
||
612 | of size_t on 32-bit versus 64-bit generations. Lin Ming. |
||
613 | |||
614 | ---------------------------------------- |
||
615 | 06 August 2010. Summary of changes for version 20100806: |
||
616 | |||
617 | 1) ACPI CA Core Subsystem: |
||
618 | |||
619 | Designed and implemented a new host interface to the _OSI support code. This |
||
620 | will allow the host to dynamically add or remove multiple _OSI strings, as |
||
621 | well as install an optional handler that is called for each _OSI invocation. |
||
622 | Also added a new AML debugger command, 'osi' to display and modify the global |
||
623 | _OSI string table, and test support in the AcpiExec utility. See the ACPICA |
||
624 | reference manual for full details. Lin Ming, Bob Moore. ACPICA BZ 836. |
||
625 | New Functions: |
||
626 | AcpiInstallInterface - Add an _OSI string. |
||
627 | AcpiRemoveInterface - Delete an _OSI string. |
||
628 | AcpiInstallInterfaceHandler - Install optional _OSI handler. |
||
629 | Obsolete Functions: |
||
630 | AcpiOsValidateInterface - no longer used. |
||
631 | New Files: |
||
632 | source/components/utilities/utosi.c |
||
633 | |||
634 | Re-introduced the support to enable multi-byte transfers for Embedded |
||
635 | Controller (EC) operation regions. A reported problem was found to be a bug |
||
636 | in the host OS, not in the multi-byte support. Previously, the maximum data |
||
637 | size passed to the EC operation region handler was a single byte. There are |
||
638 | often EC Fields larger than one byte that need to be transferred, and it is |
||
639 | useful for the EC driver to lock these as a single transaction. This change |
||
640 | enables single transfers larger than 8 bits. This effectively changes the |
||
641 | access to the EC space from ByteAcc to AnyAcc, and will probably require |
||
642 | changes to the host OS Embedded Controller driver to enable 16/32/64/256-bit |
||
643 | transfers in addition to 8-bit transfers. Alexey Starikovskiy, Lin Ming. |
||
644 | |||
645 | Fixed a problem with the prototype for AcpiOsReadPciConfiguration. The |
||
646 | prototype in acpiosxf.h had the output value pointer as a (void *). |
||
647 | It should be a (UINT64 *). This may affect some host OSL code. |
||
648 | |||
649 | Fixed a couple problems with the recently modified Linux makefiles for iASL |
||
650 | and AcpiExec. These new makefiles place the generated object files in the |
||
651 | local directory so that there can be no collisions between the files that are |
||
652 | shared between them that are compiled with different options. |
||
653 | |||
654 | Example Code and Data Size: These are the sizes for the OS-independent |
||
655 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
656 | debug version of the code includes the debug output trace mechanism and has a |
||
657 | much larger code and data size. |
||
658 | |||
659 | Previous Release: |
||
660 | Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total |
||
661 | Debug Version: 164.0K Code, 51.5K Data, 215.5K Total |
||
662 | Current Release: |
||
663 | Non-Debug Version: 89.1K Code, 19.0K Data, 108.1K Total |
||
664 | Debug Version: 165.1K Code, 51.9K Data, 217.0K Total |
||
665 | |||
666 | 2) iASL Compiler/Disassembler and Tools: |
||
667 | |||
668 | iASL/Disassembler: Added a new option (-da, "disassemble all") to load the |
||
669 | namespace from and disassemble an entire group of AML files. Useful for |
||
670 | loading all of the AML tables for a given machine (DSDT, SSDT1...SSDTn) and |
||
671 | disassembling with one simple command. ACPICA BZ 865. Lin Ming. |
||
672 | |||
673 | iASL: Allow multiple invocations of -e option. This change allows multiple |
||
674 | uses of -e on the command line: "-e ssdt1.dat -e ssdt2.dat". ACPICA BZ 834. |
||
675 | Lin Ming. |
||
676 | |||
677 | ---------------------------------------- |
||
678 | 02 July 2010. Summary of changes for version 20100702: |
||
679 | |||
680 | 1) ACPI CA Core Subsystem: |
||
681 | |||
682 | Implemented several updates to the recently added GPE reference count |
||
683 | support. The model for "wake" GPEs is changing to give the host OS complete |
||
684 | control of these GPEs. Eventually, the ACPICA core will not execute any _PRW |
||
685 | methods, since the host already must execute them. Also, additional changes |
||
686 | were made to help ensure that the reference counts are kept in proper |
||
687 | synchronization with reality. Rafael J. Wysocki. |
||
688 | |||
689 | 1) Ensure that GPEs are not enabled twice during initialization. |
||
690 | 2) Ensure that GPE enable masks stay in sync with the reference count. |
||
691 | 3) Do not inadvertently enable GPEs when writing GPE registers. |
||
692 | 4) Remove the internal wake reference counter and add new AcpiGpeWakeup |
||
693 | interface. This interface will set or clear individual GPEs for wakeup. |
||
694 | 5) Remove GpeType argument from AcpiEnable and AcpiDisable. These interfaces |
||
695 | are now used for "runtime" GPEs only. |
||
696 | |||
697 | Changed the behavior of the GPE install/remove handler interfaces. The GPE is |
||
698 | no longer disabled during this process, as it was found to cause problems on |
||
699 | some machines. Rafael J. Wysocki. |
||
700 | |||
701 | Reverted a change introduced in version 20100528 to enable Embedded |
||
702 | Controller multi-byte transfers. This change was found to cause problems with |
||
703 | Index Fields and possibly Bank Fields. It will be reintroduced when these |
||
704 | problems have been resolved. |
||
705 | |||
706 | Fixed a problem with references to Alias objects within Package Objects. A |
||
707 | reference to an Alias within the definition of a Package was not always |
||
708 | resolved properly. Aliases to objects like Processors, Thermal zones, etc. |
||
709 | were resolved to the actual object instead of a reference to the object as it |
||
710 | should be. Package objects are only allowed to contain integer, string, |
||
711 | buffer, package, and reference objects. Redhat bugzilla 608648. |
||
712 | |||
713 | Example Code and Data Size: These are the sizes for the OS-independent |
||
714 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
715 | debug version of the code includes the debug output trace mechanism and has a |
||
716 | much larger code and data size. |
||
717 | |||
718 | Previous Release: |
||
719 | Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total |
||
720 | Debug Version: 164.1K Code, 51.5K Data, 215.6K Total |
||
721 | Current Release: |
||
722 | Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total |
||
723 | Debug Version: 164.0K Code, 51.5K Data, 215.5K Total |
||
724 | |||
725 | 2) iASL Compiler/Disassembler and Tools: |
||
726 | |||
727 | iASL: Implemented a new compiler subsystem to allow definition and |
||
728 | compilation of the non-AML ACPI tables such as FADT, MADT, SRAT, etc. These |
||
729 | are called "ACPI Data Tables", and the new compiler is the "Data Table |
||
730 | Compiler". This compiler is intended to simplify the existing error-prone |
||
731 | process of creating these tables for the BIOS, as well as allowing the |
||
732 | disassembly, modification, recompilation, and override of existing ACPI data |
||
733 | tables. See the iASL User Guide for detailed information. |
||
734 | |||
735 | iASL: Implemented a new Template Generator option in support of the new Data |
||
736 | Table Compiler. This option will create examples of all known ACPI tables |
||
737 | that can be used as the basis for table development. See the iASL |
||
738 | documentation and the -T option. |
||
739 | |||
740 | Disassembler and headers: Added support for the WDDT ACPI table (Watchdog |
||
741 | Descriptor Table). |
||
742 | |||
743 | Updated the Linux makefiles for iASL and AcpiExec to place the generated |
||
744 | object files in the local directory so that there can be no collisions |
||
745 | between the shared files between them that are generated with different |
||
746 | options. |
||
747 | |||
748 | Added support for Mac OS X in the Unix OSL used for iASL and AcpiExec. Use |
||
749 | the #define __APPLE__ to enable this support. |
||
750 | |||
751 | ---------------------------------------- |
||
1498 | serge | 752 | 28 May 2010. Summary of changes for version 20100528: |
753 | |||
754 | Note: The ACPI 4.0a specification was released on April 5, 2010 and is |
||
755 | available at www.acpi.info. This is primarily an errata release. |
||
756 | |||
757 | 1) ACPI CA Core Subsystem: |
||
758 | |||
759 | Undefined ACPI tables: We are looking for the definitions for the following |
||
760 | ACPI tables that have been seen in the field: ATKG, IEIT, GSCI. |
||
761 | |||
762 | Implemented support to enable multi-byte transfers for Embedded Controller |
||
763 | (EC) operation regions. Previously, the maximum data size passed to the EC |
||
764 | operation region handler was a single byte. There are often EC Fields larger |
||
765 | than one byte that need to be transferred, and it is useful for the EC driver |
||
766 | to lock these as a single transaction. This change enables single transfers |
||
767 | larger than 8 bits. This effectively changes the access to the EC space from |
||
768 | ByteAcc to AnyAcc, and will probably require changes to the host OS Embedded |
||
769 | Controller driver to enable 16/32/64/256-bit transfers in addition to 8-bit |
||
770 | transfers. Alexey Starikovskiy, Lin Ming |
||
771 | |||
772 | Implemented a performance enhancement for namespace search and access. This |
||
773 | change enhances the performance of namespace searches and walks by adding a |
||
774 | backpointer to the parent in each namespace node. On large namespaces, this |
||
775 | change can improve overall ACPI performance by up to 9X. Adding a pointer to |
||
776 | each namespace node increases the overall size of the internal namespace by |
||
777 | about 5%, since each namespace entry usually consists of both a namespace |
||
778 | node and an ACPI operand object. However, this is the first growth of the |
||
779 | namespace in ten years. ACPICA bugzilla 817. Alexey Starikovskiy. |
||
780 | |||
781 | Implemented a performance optimization that reduces the number of namespace |
||
782 | walks. On control method exit, only walk the namespace if the method is known |
||
783 | to have created namespace objects outside of its local scope. Previously, the |
||
784 | entire namespace was traversed on each control method exit. This change can |
||
785 | improve overall ACPI performance by up to 3X. Alexey Starikovskiy, Bob Moore. |
||
786 | |||
787 | Added support to truncate I/O addresses to 16 bits for Windows compatibility. |
||
788 | Some ASL code has been seen in the field that inadvertently has bits set |
||
789 | above bit 15. This feature is optional and is enabled if the BIOS requests |
||
790 | any Windows OSI strings. It can also be enabled by the host OS. Matthew |
||
791 | Garrett, Bob Moore. |
||
792 | |||
793 | Added support to limit the maximum time for the ASL Sleep() operator. To |
||
794 | prevent accidental deep sleeps, limit the maximum time that Sleep() will |
||
795 | actually sleep. Configurable, the default maximum is two seconds. ACPICA |
||
796 | bugzilla 854. |
||
797 | |||
798 | Added run-time validation support for the _WDG and_WED Microsoft predefined |
||
799 | methods. These objects are defined by "Windows Instrumentation", and are not |
||
800 | part of the ACPI spec. ACPICA BZ 860. |
||
801 | |||
802 | Expanded all statistic counters used during namespace and device |
||
803 | initialization from 16 to 32 bits in order to support very large namespaces. |
||
804 | |||
805 | Replaced all instances of %d in printf format specifiers with %u since nearly |
||
806 | all integers in ACPICA are unsigned. |
||
807 | |||
808 | Fixed the exception namestring for AE_WAKE_ONLY_GPE. Was incorrectly returned |
||
809 | as AE_NO_HANDLER. |
||
810 | |||
811 | Example Code and Data Size: These are the sizes for the OS-independent |
||
812 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
813 | debug version of the code includes the debug output trace mechanism and has a |
||
814 | much larger code and data size. |
||
815 | |||
816 | Previous Release: |
||
817 | Non-Debug Version: 88.4K Code, 18.8K Data, 107.2K Total |
||
818 | Debug Version: 164.2K Code, 51.5K Data, 215.7K Total |
||
819 | Current Release: |
||
820 | Non-Debug Version: 88.3K Code, 18.8K Data, 107.1K Total |
||
821 | Debug Version: 164.1K Code, 51.5K Data, 215.6K Total |
||
822 | |||
823 | 2) iASL Compiler/Disassembler and Tools: |
||
824 | |||
825 | iASL: Added compiler support for the _WDG and_WED Microsoft predefined |
||
826 | methods. These objects are defined by "Windows Instrumentation", and are not |
||
827 | part of the ACPI spec. ACPICA BZ 860. |
||
828 | |||
829 | AcpiExec: added option to disable the memory tracking mechanism. The -dt |
||
830 | option will disable the tracking mechanism, which improves performance |
||
831 | considerably. |
||
832 | |||
833 | AcpiExec: Restructured the command line options into -d (disable) and -e |
||
834 | (enable) options. |
||
835 | |||
836 | ---------------------------------------- |
||
837 | 28 April 2010. Summary of changes for version 20100428: |
||
838 | |||
839 | 1) ACPI CA Core Subsystem: |
||
840 | |||
841 | Implemented GPE support for dynamically loaded ACPI tables. For all GPEs, |
||
842 | including FADT-based and GPE Block Devices, execute any _PRW methods in the |
||
843 | new table, and process any _Lxx/_Exx GPE methods in the new table. Any |
||
844 | runtime GPE that is referenced by an _Lxx/_Exx method in the new table is |
||
845 | immediately enabled. Handles the FADT-defined GPEs as well as GPE Block |
||
846 | Devices. Provides compatibility with other ACPI implementations. Two new |
||
847 | files added, evgpeinit.c and evgpeutil.c. ACPICA BZ 833. Lin Ming, Bob Moore. |
||
848 | |||
849 | Fixed a regression introduced in version 20100331 within the table manager |
||
850 | where initial table loading could fail. This was introduced in the fix for |
||
851 | AcpiReallocateRootTable. Also, renamed some of fields in the table manager |
||
852 | data structures to clarify their meaning and use. |
||
853 | |||
854 | Fixed a possible allocation overrun during internal object copy in |
||
855 | AcpiUtCopySimpleObject. The original code did not correctly handle the case |
||
856 | where the object to be copied was a namespace node. Lin Ming. ACPICA BZ 847. |
||
857 | |||
858 | Updated the allocation dump routine, AcpiUtDumpAllocation and fixed a |
||
859 | possible access beyond end-of-allocation. Also, now fully validate descriptor |
||
860 | (size and type) before output. Lin Ming, Bob Moore. ACPICA BZ 847 |
||
861 | |||
862 | Example Code and Data Size: These are the sizes for the OS-independent |
||
863 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
864 | debug version of the code includes the debug output trace mechanism and has a |
||
865 | much larger code and data size. |
||
866 | |||
867 | Previous Release: |
||
868 | Non-Debug Version: 87.9K Code, 18.6K Data, 106.5K Total |
||
869 | Debug Version: 163.5K Code, 51.3K Data, 214.8K Total |
||
870 | Current Release: |
||
871 | Non-Debug Version: 88.4K Code, 18.8K Data, 107.2K Total |
||
872 | Debug Version: 164.2K Code, 51.5K Data, 215.7K Total |
||
873 | |||
874 | 2) iASL Compiler/Disassembler and Tools: |
||
875 | |||
876 | iASL: Implemented Min/Max/Len/Gran validation for address resource |
||
877 | descriptors. This change implements validation for the address fields that |
||
878 | are common to all address-type resource descriptors. These checks are |
||
879 | implemented: Checks for valid Min/Max, length within the Min/Max window, |
||
880 | valid granularity, Min/Max a multiple of granularity, and _MIF/_MAF as per |
||
881 | table 6-40 in the ACPI 4.0a specification. Also split the large aslrestype1.c |
||
882 | and aslrestype2.c files into five new files. ACPICA BZ 840. |
||
883 | |||
884 | iASL: Added support for the _Wxx predefined names. This support was missing |
||
885 | and these names were not recognized by the compiler as valid predefined |
||
886 | names. ACPICA BZ 851. |
||
887 | |||
888 | iASL: Added an error for all predefined names that are defined to return no |
||
889 | value and thus must be implemented as Control Methods. These include all of |
||
890 | the _Lxx, _Exx, _Wxx, and _Qxx names, as well as some other miscellaneous |
||
891 | names such as _DIS, _INI, _IRC, _OFF, _ON, and _PSx. ACPICA BZ 850, 856. |
||
892 | |||
893 | iASL: Implemented the -ts option to emit hex AML data in ASL format, as an |
||
894 | ASL Buffer. Allows ACPI tables to be easily included within ASL files, to be |
||
895 | dynamically loaded via the Load() operator. Also cleaned up output for the - |
||
896 | ta and -tc options. ACPICA BZ 853. |
||
897 | |||
898 | Tests: Added a new file with examples of extended iASL error checking. |
||
899 | Demonstrates the advanced error checking ability of the iASL compiler. |
||
900 | Available at tests/misc/badcode.asl. |
||
901 | |||
902 | ---------------------------------------- |
||
903 | 31 March 2010. Summary of changes for version 20100331: |
||
904 | |||
905 | 1) ACPI CA Core Subsystem: |
||
906 | |||
907 | Completed a major update for the GPE support in order to improve support for |
||
908 | shared GPEs and to simplify both host OS and ACPICA code. Added a reference |
||
909 | count mechanism to support shared GPEs that require multiple device drivers. |
||
910 | Several external interfaces have changed. One external interface has been |
||
911 | removed. One new external interface was added. Most of the GPE external |
||
912 | interfaces now use the GPE spinlock instead of the events mutex (and the |
||
913 | Flags parameter for many GPE interfaces has been removed.) See the updated |
||
914 | ACPICA Programmer Reference for details. Matthew Garrett, Bob Moore, Rafael |
||
915 | Wysocki. ACPICA BZ 831. |
||
916 | |||
917 | Changed: |
||
918 | AcpiEnableGpe, AcpiDisableGpe, AcpiClearGpe, AcpiGetGpeStatus |
||
919 | Removed: |
||
920 | AcpiSetGpeType |
||
921 | New: |
||
922 | AcpiSetGpe |
||
923 | |||
924 | Implemented write support for DataTable operation regions. These regions are |
||
925 | defined via the DataTableRegion() operator. Previously, only read support was |
||
926 | implemented. The ACPI specification allows DataTableRegions to be read/write, |
||
927 | however. |
||
928 | |||
929 | Implemented a new subsystem option to force a copy of the DSDT to local |
||
930 | memory. Optionally copy the entire DSDT to local memory (instead of simply |
||
931 | mapping it.) There are some (albeit very rare) BIOSs that corrupt or replace |
||
932 | the original DSDT, creating the need for this option. Default is FALSE, do |
||
933 | not copy the DSDT. |
||
934 | |||
935 | Implemented detection of a corrupted or replaced DSDT. This change adds |
||
936 | support to detect a DSDT that has been corrupted and/or replaced from outside |
||
937 | the OS (by firmware). This is typically catastrophic for the system, but has |
||
938 | been seen on some machines. Once this problem has been detected, the DSDT |
||
939 | copy option can be enabled via system configuration. Lin Ming, Bob Moore. |
||
940 | |||
941 | Fixed two problems with AcpiReallocateRootTable during the root table copy. |
||
942 | When copying the root table to the new allocation, the length used was |
||
943 | incorrect. The new size was used instead of the current table size, meaning |
||
944 | too much data was copied. Also, the count of available slots for ACPI tables |
||
945 | was not set correctly. Alexey Starikovskiy, Bob Moore. |
||
946 | |||
947 | Example Code and Data Size: These are the sizes for the OS-independent |
||
948 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
949 | debug version of the code includes the debug output trace mechanism and has a |
||
950 | much larger code and data size. |
||
951 | |||
952 | Previous Release: |
||
953 | Non-Debug Version: 87.5K Code, 18.4K Data, 105.9K Total |
||
954 | Debug Version: 163.4K Code, 51.1K Data, 214.5K Total |
||
955 | Current Release: |
||
956 | Non-Debug Version: 87.9K Code, 18.6K Data, 106.5K Total |
||
957 | Debug Version: 163.5K Code, 51.3K Data, 214.8K Total |
||
958 | |||
959 | 2) iASL Compiler/Disassembler and Tools: |
||
960 | |||
961 | iASL: Implement limited typechecking for values returned from predefined |
||
962 | control methods. The type of any returned static (unnamed) object is now |
||
963 | validated. For example, Return(1). ACPICA BZ 786. |
||
964 | |||
965 | iASL: Fixed a predefined name object verification regression. Fixes a problem |
||
966 | introduced in version 20100304. An error is incorrectly generated if a |
||
967 | predefined name is declared as a static named object with a value defined |
||
968 | using the keywords "Zero", "One", or "Ones". Lin Ming. |
||
969 | |||
970 | iASL: Added Windows 7 support for the -g option (get local ACPI tables) by |
||
971 | reducing the requested registry access rights. ACPICA BZ 842. |
||
972 | |||
973 | Disassembler: fixed a possible fault when generating External() statements. |
||
974 | Introduced in commit ae7d6fd: Properly handle externals with parent-prefix |
||
975 | (carat). Fixes a string length allocation calculation. Lin Ming. |
||
976 | |||
977 | ---------------------------------------- |
||
978 | 04 March 2010. Summary of changes for version 20100304: |
||
979 | |||
980 | 1) ACPI CA Core Subsystem: |
||
981 | |||
982 | Fixed a possible problem with the AML Mutex handling function |
||
983 | AcpiExReleaseMutex where the function could fault under the very rare |
||
984 | condition when the interpreter has blocked, the interpreter lock is released, |
||
985 | the interpreter is then reentered via the same thread, and attempts to |
||
986 | acquire an AML mutex that was previously acquired. FreeBSD report 140979. Lin |
||
987 | Ming. |
||
988 | |||
989 | Implemented additional configuration support for the AML "Debug Object". |
||
990 | Output from the debug object can now be enabled via a global variable, |
||
991 | AcpiGbl_EnableAmlDebugObject. This will assist with remote machine debugging. |
||
992 | This debug output is now available in the release version of ACPICA instead |
||
993 | of just the debug version. Also, the entire debug output module can now be |
||
994 | configured out of the ACPICA build if desired. One new file added, |
||
995 | executer/exdebug.c. Lin Ming, Bob Moore. |
||
996 | |||
997 | Added header support for the ACPI MCHI table (Management Controller Host |
||
998 | Interface Table). This table was added in ACPI 4.0, but the defining document |
||
999 | has only recently become available. |
||
1000 | |||
1001 | Standardized output of integer values for ACPICA warnings/errors. Always use |
||
1002 | 0x prefix for hex output, always use %u for unsigned integer decimal output. |
||
1003 | Affects ACPI_INFO, ACPI_ERROR, ACPI_EXCEPTION, and ACPI_WARNING (about 400 |
||
1004 | invocations.) These invocations were converted from the original |
||
1005 | ACPI_DEBUG_PRINT invocations and were not consistent. ACPICA BZ 835. |
||
1006 | |||
1007 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1008 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1009 | debug version of the code includes the debug output trace mechanism and has a |
||
1010 | much larger code and data size. |
||
1011 | |||
1012 | Previous Release: |
||
1013 | Non-Debug Version: 87.1K Code, 18.0K Data, 105.1K Total |
||
1014 | Debug Version: 163.5K Code, 50.9K Data, 214.4K Total |
||
1015 | Current Release: |
||
1016 | Non-Debug Version: 87.5K Code, 18.4K Data, 105.9K Total |
||
1017 | Debug Version: 163.4K Code, 51.1K Data, 214.5K Total |
||
1018 | |||
1019 | 2) iASL Compiler/Disassembler and Tools: |
||
1020 | |||
1021 | iASL: Implemented typechecking support for static (non-control method) |
||
1022 | predefined named objects that are declared with the Name() operator. For |
||
1023 | example, the type of this object is now validated to be of type Integer: |
||
1024 | Name(_BBN, 1). This change migrates the compiler to using the core predefined |
||
1025 | name table instead of maintaining a local version. Added a new file, |
||
1026 | aslpredef.c. ACPICA BZ 832. |
||
1027 | |||
1028 | Disassembler: Added support for the ACPI 4.0 MCHI table. |
||
1029 | |||
1030 | ---------------------------------------- |
||
1031 | 21 January 2010. Summary of changes for version 20100121: |
||
1032 | |||
1033 | 1) ACPI CA Core Subsystem: |
||
1034 | |||
1035 | Added the 2010 copyright to all module headers and signons. This affects |
||
1036 | virtually every file in the ACPICA core subsystem, the iASL compiler, the |
||
1037 | tools/utilities, and the test suites. |
||
1038 | |||
1039 | Implemented a change to the AcpiGetDevices interface to eliminate unnecessary |
||
1040 | invocations of the _STA method. In the case where a specific _HID is |
||
1041 | requested, do not run _STA until a _HID match is found. This eliminates |
||
1042 | potentially dozens of _STA calls during a search for a particular device/HID, |
||
1043 | which in turn can improve boot times. ACPICA BZ 828. Lin Ming. |
||
1044 | |||
1045 | Implemented an additional repair for predefined method return values. Attempt |
||
1046 | to repair unexpected NULL elements within returned Package objects. Create an |
||
1047 | Integer of value zero, a NULL String, or a zero-length Buffer as appropriate. |
||
1048 | ACPICA BZ 818. Lin Ming, Bob Moore. |
||
1049 | |||
1050 | Removed the obsolete ACPI_INTEGER data type. This type was introduced as the |
||
1051 | code was migrated from ACPI 1.0 (with 32-bit AML integers) to ACPI 2.0 (with |
||
1052 | 64-bit AML integers). It is now obsolete and this change removes it from the |
||
1053 | ACPICA code base, replaced by UINT64. The original typedef has been retained |
||
1054 | for now for compatibility with existing device driver code. ACPICA BZ 824. |
||
1055 | |||
1056 | Removed the unused UINT32_STRUCT type, and the obsolete Integer64 field in |
||
1057 | the parse tree object. |
||
1058 | |||
1059 | Added additional warning options for the gcc-4 generation. Updated the source |
||
1060 | accordingly. This includes some code restructuring to eliminate unreachable |
||
1061 | code, elimination of some gotos, elimination of unused return values, some |
||
1062 | additional casting, and removal of redundant declarations. |
||
1063 | |||
1064 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1065 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1066 | debug version of the code includes the debug output trace mechanism and has a |
||
1067 | much larger code and data size. |
||
1068 | |||
1069 | Previous Release: |
||
1070 | Non-Debug Version: 87.0K Code, 18.0K Data, 105.0K Total |
||
1071 | Debug Version: 163.4K Code, 50.8K Data, 214.2K Total |
||
1072 | Current Release: |
||
1073 | Non-Debug Version: 87.1K Code, 18.0K Data, 105.1K Total |
||
1074 | Debug Version: 163.5K Code, 50.9K Data, 214.4K Total |
||
1075 | |||
1076 | 2) iASL Compiler/Disassembler and Tools: |
||
1077 | |||
1078 | No functional changes for this release. |
||
1079 | |||
1080 | ---------------------------------------- |
||
1081 | 14 December 2009. Summary of changes for version 20091214: |
||
1082 | |||
1083 | 1) ACPI CA Core Subsystem: |
||
1084 | |||
1085 | Enhanced automatic data type conversions for predefined name repairs. This |
||
1086 | change expands the automatic repairs/conversions for predefined name return |
||
1087 | values to make Integers, Strings, and Buffers fully interchangeable. Also, a |
||
1088 | Buffer can be converted to a Package of Integers if necessary. The nsrepair.c |
||
1089 | module was completely restructured. Lin Ming, Bob Moore. |
||
1090 | |||
1091 | Implemented automatic removal of null package elements during predefined name |
||
1092 | repairs. This change will automatically remove embedded and trailing NULL |
||
1093 | package elements from returned package objects that are defined to contain a |
||
1094 | variable number of sub-packages. The driver is then presented with a package |
||
1095 | with no null elements to deal with. ACPICA BZ 819. |
||
1096 | |||
1097 | Implemented a repair for the predefined _FDE and _GTM names. The expected |
||
1098 | return value for both names is a Buffer of 5 DWORDs. This repair fixes two |
||
1099 | possible problems (both seen in the field), where a package of integers is |
||
1100 | returned, or a buffer of BYTEs is returned. With assistance from Jung-uk Kim. |
||
1101 | |||
1102 | Implemented additional module-level code support. This change will properly |
||
1103 | execute module-level code that is not at the root of the namespace (under a |
||
1104 | Device object, etc.). Now executes the code within the current scope instead |
||
1105 | of the root. ACPICA BZ 762. Lin Ming. |
||
1106 | |||
1107 | Fixed possible mutex acquisition errors when running _REG methods. Fixes a |
||
1108 | problem where mutex errors can occur when running a _REG method that is in |
||
1109 | the same scope as a method-defined operation region or an operation region |
||
1110 | under a module-level IF block. This type of code is rare, so the problem has |
||
1111 | not been seen before. ACPICA BZ 826. Lin Ming, Bob Moore. |
||
1112 | |||
1113 | Fixed a possible memory leak during module-level code execution. An object |
||
1114 | could be leaked for each block of executed module-level code if the |
||
1115 | interpreter slack mode is enabled This change deletes any implicitly returned |
||
1116 | object from the module-level code block. Lin Ming. |
||
1117 | |||
1118 | Removed messages for successful predefined repair(s). The repair mechanism |
||
1119 | was considered too wordy. Now, messages are only unconditionally emitted if |
||
1120 | the return object cannot be repaired. Existing messages for successful |
||
1121 | repairs were converted to ACPI_DEBUG_PRINT messages for now. ACPICA BZ 827. |
||
1122 | |||
1123 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1124 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1125 | debug version of the code includes the debug output trace mechanism and has a |
||
1126 | much larger code and data size. |
||
1127 | |||
1128 | Previous Release: |
||
1129 | Non-Debug Version: 86.6K Code, 18.2K Data, 104.8K Total |
||
1130 | Debug Version: 162.7K Code, 50.8K Data, 213.5K Total |
||
1131 | Current Release: |
||
1132 | Non-Debug Version: 87.0K Code, 18.0K Data, 105.0K Total |
||
1133 | Debug Version: 163.4K Code, 50.8K Data, 214.2K Total |
||
1134 | |||
1135 | 2) iASL Compiler/Disassembler and Tools: |
||
1136 | |||
1137 | iASL: Fixed a regression introduced in 20091112 where intermediate .SRC files |
||
1138 | were no longer automatically removed at the termination of the compile. |
||
1139 | |||
1140 | acpiexec: Implemented the -f option to specify default region fill value. |
||
1141 | This option specifies the value used to initialize buffers that simulate |
||
1142 | operation regions. Default value is zero. Useful for debugging problems that |
||
1143 | depend on a specific initial value for a region or field. |
||
1144 | |||
1145 | ---------------------------------------- |
||
1146 | 12 November 2009. Summary of changes for version 20091112: |
||
1147 | |||
1148 | 1) ACPI CA Core Subsystem: |
||
1149 | |||
1150 | Implemented a post-order callback to AcpiWalkNamespace. The existing |
||
1151 | interface only has a pre-order callback. This change adds an additional |
||
1152 | parameter for a post-order callback which will be more useful for bus scans. |
||
1153 | ACPICA BZ 779. Lin Ming. Updated the ACPICA Programmer Reference. |
||
1154 | |||
1155 | Modified the behavior of the operation region memory mapping cache for |
||
1156 | SystemMemory. Ensure that the memory mappings created for operation regions |
||
1157 | do not cross 4K page boundaries. Crossing a page boundary while mapping |
||
1158 | regions can cause kernel warnings on some hosts if the pages have different |
||
1159 | attributes. Such regions are probably BIOS bugs, and this is the workaround. |
||
1160 | Linux BZ 14445. Lin Ming. |
||
1161 | |||
1162 | Implemented an automatic repair for predefined methods that must return |
||
1163 | sorted lists. This change will repair (by sorting) packages returned by _ALR, |
||
1164 | _PSS, and _TSS. Drivers can now assume that the packages are correctly sorted |
||
1165 | and do not contain NULL package elements. Adds one new file, |
||
1166 | namespace/nsrepair2.c. ACPICA BZ 784. Lin Ming, Bob Moore. |
||
1167 | |||
1168 | Fixed a possible fault during predefined name validation if a return Package |
||
1169 | object contains NULL elements. Also adds a warning if a NULL element is |
||
1170 | followed by any non-null elements. ACPICA BZ 813, 814. Future enhancement may |
||
1171 | include repair or removal of all such NULL elements where possible. |
||
1172 | |||
1173 | Implemented additional module-level executable AML code support. This change |
||
1174 | will execute module-level code that is not at the root of the namespace |
||
1175 | (under a Device object, etc.) at table load time. Module-level executable AML |
||
1176 | code has been illegal since ACPI 2.0. ACPICA BZ 762. Lin Ming. |
||
1177 | |||
1178 | Implemented a new internal function to create Integer objects. This function |
||
1179 | simplifies miscellaneous object creation code. ACPICA BZ 823. |
||
1180 | |||
1181 | Reduced the severity of predefined repair messages, Warning to Info. Since |
||
1182 | the object was successfully repaired, a warning is too severe. Reduced to an |
||
1183 | info message for now. These messages may eventually be changed to debug-only. |
||
1184 | ACPICA BZ 812. |
||
1185 | |||
1186 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1187 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1188 | debug version of the code includes the debug output trace mechanism and has a |
||
1189 | much larger code and data size. |
||
1190 | |||
1191 | Previous Release: |
||
1192 | Non-Debug Version: 85.8K Code, 18.0K Data, 103.8K Total |
||
1193 | Debug Version: 161.8K Code, 50.6K Data, 212.4K Total |
||
1194 | Current Release: |
||
1195 | Non-Debug Version: 86.6K Code, 18.2K Data, 104.8K Total |
||
1196 | Debug Version: 162.7K Code, 50.8K Data, 213.5K Total |
||
1197 | |||
1198 | 2) iASL Compiler/Disassembler and Tools: |
||
1199 | |||
1200 | iASL: Implemented Switch() with While(1) so that Break works correctly. This |
||
1201 | change correctly implements the Switch operator with a surrounding While(1) |
||
1202 | so that the Break operator works as expected. ACPICA BZ 461. Lin Ming. |
||
1203 | |||
1204 | iASL: Added a message if a package initializer list is shorter than package |
||
1205 | length. Adds a new remark for a Package() declaration if an initializer list |
||
1206 | exists, but is shorter than the declared length of the package. Although |
||
1207 | technically legal, this is probably a coding error and it is seen in the |
||
1208 | field. ACPICA BZ 815. Lin Ming, Bob Moore. |
||
1209 | |||
1210 | iASL: Fixed a problem where the compiler could fault after the maximum number |
||
1211 | of errors was reached (200). |
||
1212 | |||
1213 | acpixtract: Fixed a possible warning for pointer cast if the compiler warning |
||
1214 | level set very high. |
||
1215 | |||
1216 | ---------------------------------------- |
||
1217 | 13 October 2009. Summary of changes for version 20091013: |
||
1218 | |||
1219 | 1) ACPI CA Core Subsystem: |
||
1220 | |||
1221 | Fixed a problem where an Operation Region _REG method could be executed more |
||
1222 | than once. If a custom address space handler is installed by the host before |
||
1223 | the "initialize operation regions" phase of the ACPICA initialization, any |
||
1224 | _REG methods for that address space could be executed twice. This change |
||
1225 | fixes the problem. ACPICA BZ 427. Lin Ming. |
||
1226 | |||
1227 | Fixed a possible memory leak for the Scope() ASL operator. When the exact |
||
1228 | invocation of "Scope(\)" is executed (change scope to root), one internal |
||
1229 | operand object was leaked. Lin Ming. |
||
1230 | |||
1231 | Implemented a run-time repair for the _MAT predefined method. If the _MAT |
||
1232 | return value is defined as a Field object in the AML, and the field |
||
1233 | size is less than or equal to the default width of an integer (32 or 64),_MAT |
||
1234 | can incorrectly return an Integer instead of a Buffer. ACPICA now |
||
1235 | automatically repairs this problem. ACPICA BZ 810. |
||
1236 | |||
1237 | Implemented a run-time repair for the _BIF and _BIX predefined methods. The |
||
1238 | "OEM Information" field is often incorrectly returned as an Integer with |
||
1239 | value zero if the field is not supported by the platform. This is due to an |
||
1240 | ambiguity in the ACPI specification. The field should always be a string. |
||
1241 | ACPICA now automatically repairs this problem by returning a NULL string |
||
1242 | within the returned Package. ACPICA BZ 807. |
||
1243 | |||
1244 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1245 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1246 | debug version of the code includes the debug output trace mechanism and has a |
||
1247 | much larger code and data size. |
||
1248 | |||
1249 | Previous Release: |
||
1250 | Non-Debug Version: 85.6K Code, 18.0K Data, 103.6K Total |
||
1251 | Debug Version: 161.7K Code, 50.9K Data, 212.6K Total |
||
1252 | Current Release: |
||
1253 | Non-Debug Version: 85.8K Code, 18.0K Data, 103.8K Total |
||
1254 | Debug Version: 161.8K Code, 50.6K Data, 212.4K Total |
||
1255 | |||
1256 | 2) iASL Compiler/Disassembler and Tools: |
||
1257 | |||
1258 | Disassembler: Fixed a problem where references to external symbols that |
||
1259 | contained one or more parent-prefixes (carats) were not handled correctly, |
||
1260 | possibly causing a fault. ACPICA BZ 806. Lin Ming. |
||
1261 | |||
1262 | Disassembler: Restructured the code so that all functions that handle |
||
1263 | external symbols are in a single module. One new file is added, |
||
1264 | common/dmextern.c. |
||
1265 | |||
1266 | AML Debugger: Added a max count argument for the Batch command (which |
||
1267 | executes multiple predefined methods within the namespace.) |
||
1268 | |||
1269 | iASL: Updated the compiler documentation (User Reference.) Available at |
||
1270 | http://www.acpica.org/documentation/. ACPICA BZ 750. |
||
1271 | |||
1272 | AcpiXtract: Updated for Lint and other formatting changes. Close all open |
||
1273 | files. |
||
1274 | |||
1275 | ---------------------------------------- |
||
1276 | 03 September 2009. Summary of changes for version 20090903: |
||
1277 | |||
1278 | 1) ACPI CA Core Subsystem: |
||
1279 | |||
1280 | For Windows Vista compatibility, added the automatic execution of an _INI |
||
1281 | method located at the namespace root (\_INI). This method is executed at |
||
1282 | table load time. This support is in addition to the automatic execution of |
||
1283 | \_SB._INI. Lin Ming. |
||
1284 | |||
1285 | Fixed a possible memory leak in the interpreter for AML package objects if |
||
1286 | the package initializer list is longer than the defined size of the package. |
||
1287 | This apparently can only happen if the BIOS changes the package size on the |
||
1288 | fly (seen in a _PSS object), as ASL compilers do not allow this. The |
||
1289 | interpreter will truncate the package to the defined size (and issue an error |
||
1290 | message), but previously could leave the extra objects undeleted if they were |
||
1291 | pre-created during the argument processing (such is the case if the package |
||
1292 | consists of a number of sub-packages as in the _PSS.) ACPICA BZ 805. |
||
1293 | |||
1294 | Fixed a problem seen when a Buffer or String is stored to itself via ASL. |
||
1295 | This has been reported in the field. Previously, ACPICA would zero out the |
||
1296 | buffer/string. Now, the operation is treated as a noop. Provides Windows |
||
1297 | compatibility. ACPICA BZ 803. Lin Ming. |
||
1298 | |||
1299 | Removed an extraneous error message for ASL constructs of the form |
||
1300 | Store(LocalX,LocalX) when LocalX is uninitialized. These curious statements |
||
1301 | are seen in many BIOSs and are once again treated as NOOPs and no error is |
||
1302 | emitted when they are encountered. ACPICA BZ 785. |
||
1303 | |||
1304 | Fixed an extraneous warning message if a _DSM reserved method returns a |
||
1305 | Package object. _DSM can return any type of object, so validation on the |
||
1306 | return type cannot be performed. ACPICA BZ 802. |
||
1307 | |||
1308 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1309 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1310 | debug version of the code includes the debug output trace mechanism and has a |
||
1311 | much larger code and data size. |
||
1312 | |||
1313 | Previous Release: |
||
1314 | Non-Debug Version: 85.5K Code, 18.0K Data, 103.5K Total |
||
1315 | Debug Version: 161.6K Code, 50.9K Data, 212.5K Total |
||
1316 | Current Release: |
||
1317 | Non-Debug Version: 85.6K Code, 18.0K Data, 103.6K Total |
||
1318 | Debug Version: 161.7K Code, 50.9K Data, 212.6K Total |
||
1319 | |||
1320 | 2) iASL Compiler/Disassembler and Tools: |
||
1321 | |||
1322 | iASL: Fixed a problem with the use of the Alias operator and Resource |
||
1323 | Templates. The correct alias is now constructed and no error is emitted. |
||
1324 | ACPICA BZ 738. |
||
1325 | |||
1326 | iASL: Implemented the -I option to specify additional search directories for |
||
1327 | include files. Allows multiple additional search paths for include files. |
||
1328 | Directories are searched in the order specified on the command line (after |
||
1329 | the local directory is searched.) ACPICA BZ 800. |
||
1330 | |||
1331 | iASL: Fixed a problem where the full pathname for include files was not |
||
1332 | emitted for warnings/errors. This caused the IDE support to not work |
||
1333 | properly. ACPICA BZ 765. |
||
1334 | |||
1335 | iASL: Implemented the -@ option to specify a Windows-style response file |
||
1336 | containing additional command line options. ACPICA BZ 801. |
||
1337 | |||
1338 | AcpiExec: Added support to load multiple AML files simultaneously (such as a |
||
1339 | DSDT and multiple SSDTs). Also added support for wildcards within the AML |
||
1340 | pathname. These features allow all machine tables to be easily loaded and |
||
1341 | debugged together. ACPICA BZ 804. |
||
1342 | |||
1343 | Disassembler: Added missing support for disassembly of HEST table Error Bank |
||
1344 | subtables. |
||
1345 | |||
1346 | ---------------------------------------- |
||
1347 | 30 July 2009. Summary of changes for version 20090730: |
||
1348 | |||
1349 | The ACPI 4.0 implementation for ACPICA is complete with this release. |
||
1350 | |||
1351 | 1) ACPI CA Core Subsystem: |
||
1352 | |||
1353 | ACPI 4.0: Added header file support for all new and changed ACPI tables. |
||
1354 | Completely new tables are: IBFT, IVRS, MSCT, and WAET. Tables that are new |
||
1355 | for ACPI 4.0, but have previously been supported in ACPICA are: CPEP, BERT, |
||
1356 | EINJ, ERST, and HEST. Other newly supported tables are: UEFI and WDAT. There |
||
1357 | have been some ACPI 4.0 changes to other existing tables. Split the large |
||
1358 | actbl1.h header into the existing actbl2.h header. ACPICA BZ 774. |
||
1359 | |||
1360 | ACPI 4.0: Implemented predefined name validation for all new names. There are |
||
1361 | 31 new names in ACPI 4.0. The predefined validation module was split into two |
||
1362 | files. The new file is namespace/nsrepair.c. ACPICA BZ 770. |
||
1363 | |||
1364 | Implemented support for so-called "module-level executable code". This is |
||
1365 | executable AML code that exists outside of any control method and is intended |
||
1366 | to be executed at table load time. Although illegal since ACPI 2.0, this type |
||
1367 | of code still exists and is apparently still being created. Blocks of this |
||
1368 | code are now detected and executed as intended. Currently, the code blocks |
||
1369 | must exist under either an If, Else, or While construct; these are the |
||
1370 | typical cases seen in the field. ACPICA BZ 762. Lin Ming. |
||
1371 | |||
1372 | Implemented an automatic dynamic repair for predefined names that return |
||
1373 | nested Package objects. This applies to predefined names that are defined to |
||
1374 | return a variable-length Package of sub-packages. If the number of sub- |
||
1375 | packages is one, BIOS code is occasionally seen that creates a simple single |
||
1376 | package with no sub-packages. This code attempts to fix the problem by |
||
1377 | wrapping a new package object around the existing package. These methods can |
||
1378 | be repaired: _ALR, _CSD, _HPX, _MLS, _PRT, _PSS, _TRT, and _TSS. ACPICA BZ |
||
1379 | 790. |
||
1380 | |||
1381 | Fixed a regression introduced in 20090625 for the AcpiGetDevices interface. |
||
1382 | The _HID/_CID matching was broken and no longer matched IDs correctly. ACPICA |
||
1383 | BZ 793. |
||
1384 | |||
1385 | Fixed a problem with AcpiReset where the reset would silently fail if the |
||
1386 | register was one of the protected I/O ports. AcpiReset now bypasses the port |
||
1387 | validation mechanism. This may eventually be driven into the AcpiRead/Write |
||
1388 | interfaces. |
||
1389 | |||
1390 | Fixed a regression related to the recent update of the AcpiRead/Write |
||
1391 | interfaces. A sleep/suspend could fail if the optional PM2 Control register |
||
1392 | does not exist during an attempt to write the Bus Master Arbitration bit. |
||
1393 | (However, some hosts already delete the code that writes this bit, and the |
||
1394 | code may in fact be obsolete at this date.) ACPICA BZ 799. |
||
1395 | |||
1396 | Fixed a problem where AcpiTerminate could fault if inadvertently called twice |
||
1397 | in succession. ACPICA BZ 795. |
||
1398 | |||
1399 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1400 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1401 | debug version of the code includes the debug output trace mechanism and has a |
||
1402 | much larger code and data size. |
||
1403 | |||
1404 | Previous Release: |
||
1405 | Non-Debug Version: 84.7K Code, 17.8K Data, 102.5K Total |
||
1406 | Debug Version: 160.5K Code, 50.6K Data, 211.1K Total |
||
1407 | Current Release: |
||
1408 | Non-Debug Version: 85.5K Code, 18.0K Data, 103.5K Total |
||
1409 | Debug Version: 161.6K Code, 50.9K Data, 212.5K Total |
||
1410 | |||
1411 | 2) iASL Compiler/Disassembler and Tools: |
||
1412 | |||
1413 | ACPI 4.0: Implemented disassembler support for all new ACPI tables and |
||
1414 | changes to existing tables. ACPICA BZ 775. |
||
1415 | |||
1416 | ---------------------------------------- |
||
1417 | 25 June 2009. Summary of changes for version 20090625: |
||
1418 | |||
1419 | The ACPI 4.0 Specification was released on June 16 and is available at |
||
1420 | www.acpi.info. ACPICA implementation of ACPI 4.0 is underway and will |
||
1421 | continue for the next few releases. |
||
1422 | |||
1423 | 1) ACPI CA Core Subsystem: |
||
1424 | |||
1425 | ACPI 4.0: Implemented interpreter support for the IPMI operation region |
||
1426 | address space. Includes support for bi-directional data buffers and an IPMI |
||
1427 | address space handler (to be installed by an IPMI device driver.) ACPICA BZ |
||
1428 | 773. Lin Ming. |
||
1429 | |||
1430 | ACPI 4.0: Added changes for existing ACPI tables - FACS and SRAT. Includes |
||
1431 | support in both the header files and the disassembler. |
||
1432 | |||
1433 | Completed a major update for the AcpiGetObjectInfo external interface. |
||
1434 | Changes include: |
||
1435 | - Support for variable, unlimited length HID, UID, and CID strings. |
||
1436 | - Support Processor objects the same as Devices (HID,UID,CID,ADR,STA, etc.) |
||
1437 | - Call the _SxW power methods on behalf of a device object. |
||
1438 | - Determine if a device is a PCI root bridge. |
||
1439 | - Change the ACPI_BUFFER parameter to ACPI_DEVICE_INFO. |
||
1440 | These changes will require an update to all callers of this interface. See |
||
1441 | the updated ACPICA Programmer Reference for details. One new source file has |
||
1442 | been added - utilities/utids.c. ACPICA BZ 368, 780. |
||
1443 | |||
1444 | Updated the AcpiRead and AcpiWrite external interfaces to support 64-bit |
||
1445 | transfers. The Value parameter has been extended from 32 bits to 64 bits in |
||
1446 | order to support new ACPI 4.0 tables. These changes will require an update to |
||
1447 | all callers of these interfaces. See the ACPICA Programmer Reference for |
||
1448 | details. ACPICA BZ 768. |
||
1449 | |||
1450 | Fixed several problems with AcpiAttachData. The handler was not invoked when |
||
1451 | the host node was deleted. The data sub-object was not automatically deleted |
||
1452 | when the host node was deleted. The interface to the handler had an unused |
||
1453 | parameter, this was removed. ACPICA BZ 778. |
||
1454 | |||
1455 | Enhanced the function that dumps ACPI table headers. All non-printable |
||
1456 | characters in the string fields are now replaced with '?' (Signature, OemId, |
||
1457 | OemTableId, and CompilerId.) ACPI tables with non-printable characters in |
||
1458 | these fields are occasionally seen in the field. ACPICA BZ 788. |
||
1459 | |||
1460 | Fixed a problem with predefined method repair code where the code that |
||
1461 | attempts to repair/convert an object of incorrect type is only executed on |
||
1462 | the first time the predefined method is called. The mechanism that disables |
||
1463 | warnings on subsequent calls was interfering with the repair mechanism. |
||
1464 | ACPICA BZ 781. |
||
1465 | |||
1466 | Fixed a possible memory leak in the predefined validation/repair code when a |
||
1467 | buffer is automatically converted to an expected string object. |
||
1468 | |||
1469 | Removed obsolete 16-bit files from the distribution and from the current git |
||
1470 | tree head. ACPICA BZ 776. |
||
1471 | |||
1472 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1473 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1474 | debug version of the code includes the debug output trace mechanism and has a |
||
1475 | much larger code and data size. |
||
1476 | |||
1477 | Previous Release: |
||
1478 | Non-Debug Version: 83.4K Code, 17.5K Data, 100.9K Total |
||
1479 | Debug Version: 158.9K Code, 50.0K Data, 208.9K Total |
||
1480 | Current Release: |
||
1481 | Non-Debug Version: 84.7K Code, 17.8K Data, 102.5K Total |
||
1482 | Debug Version: 160.5K Code, 50.6K Data, 211.1K Total |
||
1483 | |||
1484 | 2) iASL Compiler/Disassembler and Tools: |
||
1485 | |||
1486 | ACPI 4.0: iASL and Disassembler - implemented support for the new IPMI |
||
1487 | operation region keyword. ACPICA BZ 771, 772. Lin Ming. |
||
1488 | |||
1489 | ACPI 4.0: iASL - implemented compile-time validation support for all new |
||
1490 | predefined names and control methods (31 total). ACPICA BZ 769. |
||
1491 | |||
1492 | ---------------------------------------- |
||
1493 | 21 May 2009. Summary of changes for version 20090521: |
||
1494 | |||
1495 | 1) ACPI CA Core Subsystem: |
||
1496 | |||
1497 | Disabled the preservation of the SCI enable bit in the PM1 control register. |
||
1498 | The SCI enable bit (bit 0, SCI_EN) is defined by the ACPI specification to be |
||
1499 | a "preserved" bit - "OSPM always preserves this bit position", section |
||
1500 | 4.7.3.2.1. However, some machines fail if this bit is in fact preserved |
||
1501 | because the bit needs to be explicitly set by the OS as a workaround. No |
||
1502 | machines fail if the bit is not preserved. Therefore, ACPICA no longer |
||
1503 | attempts to preserve this bit. |
||
1504 | |||
1505 | Fixed a problem in AcpiRsGetPciRoutingTableLength where an invalid or |
||
1506 | incorrectly formed _PRT package could cause a fault. Added validation to |
||
1507 | ensure that each package element is actually a sub-package. |
||
1508 | |||
1509 | Implemented a new interface to install or override a single control method, |
||
1510 | AcpiInstallMethod. This interface is useful when debugging in order to repair |
||
1511 | an existing method or to install a missing method without having to override |
||
1512 | the entire ACPI table. See the ACPICA Programmer Reference for use and |
||
1513 | examples. Lin Ming, Bob Moore. |
||
1514 | |||
1515 | Fixed several reference count issues with the DdbHandle object that is |
||
1516 | created from a Load or LoadTable operator. Prevent premature deletion of the |
||
1517 | object. Also, mark the object as invalid once the table has been unloaded. |
||
1518 | This is needed because the handle itself may not be deleted after the table |
||
1519 | unload, depending on whether it has been stored in a named object by the |
||
1520 | caller. Lin Ming. |
||
1521 | |||
1522 | Fixed a problem with Mutex Sync Levels. Fixed a problem where if multiple |
||
1523 | mutexes of the same sync level are acquired but then not released in strict |
||
1524 | opposite order, the internally maintained Current Sync Level becomes confused |
||
1525 | and can cause subsequent execution errors. ACPICA BZ 471. |
||
1526 | |||
1527 | Changed the allowable release order for ASL mutex objects. The ACPI 4.0 |
||
1528 | specification has been changed to make the SyncLevel for mutex objects more |
||
1529 | useful. When releasing a mutex, the SyncLevel of the mutex must now be the |
||
1530 | same as the current sync level. This makes more sense than the previous rule |
||
1531 | (SyncLevel less than or equal). This change updates the code to match the |
||
1532 | specification. |
||
1533 | |||
1534 | Fixed a problem with the local version of the AcpiOsPurgeCache function. The |
||
1535 | (local) cache must be locked during all cache object deletions. Andrew |
||
1536 | Baumann. |
||
1537 | |||
1538 | Updated the Load operator to use operation region interfaces. This replaces |
||
1539 | direct memory mapping with region access calls. Now, all region accesses go |
||
1540 | through the installed region handler as they should. |
||
1541 | |||
1542 | Simplified and optimized the NsGetNextNode function. Reduced parameter count |
||
1543 | and reduced code for this frequently used function. |
||
1544 | |||
1545 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1546 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1547 | debug version of the code includes the debug output trace mechanism and has a |
||
1548 | much larger code and data size. |
||
1549 | |||
1550 | Previous Release: |
||
1551 | Non-Debug Version: 82.8K Code, 17.5K Data, 100.3K Total |
||
1552 | Debug Version: 158.0K Code, 49.9K Data, 207.9K Total |
||
1553 | Current Release: |
||
1554 | Non-Debug Version: 83.4K Code, 17.5K Data, 100.9K Total |
||
1555 | Debug Version: 158.9K Code, 50.0K Data, 208.9K Total |
||
1556 | |||
1557 | 2) iASL Compiler/Disassembler and Tools: |
||
1558 | |||
1559 | Disassembler: Fixed some issues with DMAR, HEST, MADT tables. Some problems |
||
1560 | with sub-table disassembly and handling invalid sub-tables. Attempt recovery |
||
1561 | after an invalid sub-table ID. |
||
1562 | |||
1563 | ---------------------------------------- |
||
1564 | 22 April 2009. Summary of changes for version 20090422: |
||
1565 | |||
1566 | 1) ACPI CA Core Subsystem: |
||
1567 | |||
1568 | Fixed a compatibility issue with the recently released I/O port protection |
||
1569 | mechanism. For windows compatibility, 1) On a port protection violation, |
||
1570 | simply ignore the request and do not return an exception (allow the control |
||
1571 | method to continue execution.) 2) If only part of the request overlaps a |
||
1572 | protected port, read/write the individual ports that are not protected. Linux |
||
1573 | BZ 13036. Lin Ming |
||
1574 | |||
1575 | Enhanced the execution of the ASL/AML BreakPoint operator so that it actually |
||
1576 | breaks into the AML debugger if the debugger is present. This matches the |
||
1577 | ACPI-defined behavior. |
||
1578 | |||
1579 | Fixed several possible warnings related to the use of the configurable |
||
1580 | ACPI_THREAD_ID. This type can now be configured as either an integer or a |
||
1581 | pointer with no warnings. Also fixes several warnings in printf-like |
||
1582 | statements for the 64-bit build when the type is configured as a pointer. |
||
1583 | ACPICA BZ 766, 767. |
||
1584 | |||
1585 | Fixed a number of possible warnings when compiling with gcc 4+ (depending on |
||
1586 | warning options.) Examples include printf formats, aliasing, unused globals, |
||
1587 | missing prototypes, missing switch default statements, use of non-ANSI |
||
1588 | library functions, use of non-ANSI constructs. See generate/unix/Makefile for |
||
1589 | a list of warning options used with gcc 3 and 4. ACPICA BZ 735. |
||
1590 | |||
1591 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1592 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1593 | debug version of the code includes the debug output trace mechanism and has a |
||
1594 | much larger code and data size. |
||
1595 | |||
1596 | Previous Release: |
||
1597 | Non-Debug Version: 82.6K Code, 17.6K Data, 100.2K Total |
||
1598 | Debug Version: 157.7K Code, 49.9K Data, 207.6K Total |
||
1599 | Current Release: |
||
1600 | Non-Debug Version: 82.8K Code, 17.5K Data, 100.3K Total |
||
1601 | Debug Version: 158.0K Code, 49.9K Data, 207.9K Total |
||
1602 | |||
1603 | 2) iASL Compiler/Disassembler and Tools: |
||
1604 | |||
1605 | iASL: Fixed a generation warning from Bison 2.3 and fixed several warnings on |
||
1606 | the 64-bit build. |
||
1607 | |||
1608 | iASL: Fixed a problem where the Unix/Linux versions of the compiler could not |
||
1609 | correctly digest Windows/DOS formatted files (with CR/LF). |
||
1610 | |||
1611 | iASL: Added a new option for "quiet mode" (-va) that produces only the |
||
1612 | compilation summary, not individual errors and warnings. Useful for large |
||
1613 | batch compilations. |
||
1614 | |||
1615 | AcpiExec: Implemented a new option (-z) to enable a forced semaphore/mutex |
||
1616 | timeout that can be used to detect hang conditions during execution of AML |
||
1617 | code (includes both internal semaphores and AML-defined mutexes and events.) |
||
1618 | |||
1619 | Added new makefiles for the generation of acpica in a generic unix-like |
||
1620 | environment. These makefiles are intended to generate the acpica tools and |
||
1621 | utilities from the original acpica git source tree structure. |
||
1622 | |||
1623 | Test Suites: Updated and cleaned up the documentation files. Updated the |
||
1624 | copyrights to 2009, affecting all source files. Use the new version of iASL |
||
1625 | with quiet mode. Increased the number of available semaphores in the Windows |
||
1626 | OSL, allowing the aslts to execute fully on Windows. For the Unix OSL, added |
||
1627 | an alternate implementation of the semaphore timeout to allow aslts to |
||
1628 | execute fully on Cygwin. |
||
1629 | |||
1630 | ---------------------------------------- |
||
1631 | 20 March 2009. Summary of changes for version 20090320: |
||
1632 | |||
1633 | 1) ACPI CA Core Subsystem: |
||
1634 | |||
1635 | Fixed a possible race condition between AcpiWalkNamespace and dynamic table |
||
1636 | unloads. Added a reader/writer locking mechanism to allow multiple concurrent |
||
1637 | namespace walks (readers), but block a dynamic table unload until it can gain |
||
1638 | exclusive write access to the namespace. This fixes a problem where a table |
||
1639 | unload could (possibly catastrophically) delete the portion of the namespace |
||
1640 | that is currently being examined by a walk. Adds a new file, utlock.c, that |
||
1641 | implements the reader/writer lock mechanism. ACPICA BZ 749. |
||
1642 | |||
1643 | Fixed a regression introduced in version 20090220 where a change to the FADT |
||
1644 | handling could cause the ACPICA subsystem to access non-existent I/O ports. |
||
1645 | |||
1646 | Modified the handling of FADT register and table (FACS/DSDT) addresses. The |
||
1647 | FADT can contain both 32-bit and 64-bit versions of these addresses. |
||
1648 | Previously, the 64-bit versions were favored, meaning that if both 32 and 64 |
||
1649 | versions were valid, but not equal, the 64-bit version was used. This was |
||
1650 | found to cause some machines to fail. Now, in this case, the 32-bit version |
||
1651 | is used instead. This now matches the Windows behavior. |
||
1652 | |||
1653 | Implemented a new mechanism to protect certain I/O ports. Provides Microsoft |
||
1654 | compatibility and protects the standard PC I/O ports from access via AML |
||
1655 | code. Adds a new file, hwvalid.c |
||
1656 | |||
1657 | Fixed a possible extraneous warning message from the FADT support. The |
||
1658 | message warns of a 32/64 length mismatch between the legacy and GAS |
||
1659 | definitions for a register. |
||
1660 | |||
1661 | Removed the obsolete AcpiOsValidateAddress OSL interface. This interface is |
||
1662 | made obsolete by the port protection mechanism above. It was previously used |
||
1663 | to validate the entire address range of an operation region, which could be |
||
1664 | incorrect if the range included illegal ports, but fields within the |
||
1665 | operation region did not actually access those ports. Validation is now |
||
1666 | performed on a per-field basis instead of the entire region. |
||
1667 | |||
1668 | Modified the handling of the PM1 Status Register ignored bit (bit 11.) |
||
1669 | Ignored bits must be "preserved" according to the ACPI spec. Usually, this |
||
1670 | means a read/modify/write when writing to the register. However, for status |
||
1671 | registers, writing a one means clear the event. Writing a zero means preserve |
||
1672 | the event (do not clear.) This behavior is clarified in the ACPI 4.0 spec, |
||
1673 | and the ACPICA code now simply always writes a zero to the ignored bit. |
||
1674 | |||
1675 | Modified the handling of ignored bits for the PM1 A/B Control Registers. As |
||
1676 | per the ACPI specification, for the control registers, preserve |
||
1677 | (read/modify/write) all bits that are defined as either reserved or ignored. |
||
1678 | |||
1679 | Updated the handling of write-only bits in the PM1 A/B Control Registers. |
||
1680 | When reading the register, zero the write-only bits as per the ACPI spec. |
||
1681 | ACPICA BZ 443. Lin Ming. |
||
1682 | |||
1683 | Removed "Linux" from the list of supported _OSI strings. Linux no longer |
||
1684 | wants to reply true to this request. The Windows strings are the only paths |
||
1685 | through the AML that are tested and known to work properly. |
||
1686 | |||
1687 | Previous Release: |
||
1688 | Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total |
||
1689 | Debug Version: 156.9K Code, 49.8K Data, 206.7K Total |
||
1690 | Current Release: |
||
1691 | Non-Debug Version: 82.6K Code, 17.6K Data, 100.2K Total |
||
1692 | Debug Version: 157.7K Code, 49.9K Data, 207.6K Total |
||
1693 | |||
1694 | 2) iASL Compiler/Disassembler and Tools: |
||
1695 | |||
1696 | Acpiexec: Split the large aeexec.c file into two new files, aehandlers.c and |
||
1697 | aetables.c |
||
1698 | |||
1699 | ---------------------------------------- |
||
1700 | 20 February 2009. Summary of changes for version 20090220: |
||
1701 | |||
1702 | 1) ACPI CA Core Subsystem: |
||
1703 | |||
1704 | Optimized the ACPI register locking. Removed locking for reads from the ACPI |
||
1705 | bit registers in PM1 Status, Enable, Control, and PM2 Control. The lock is |
||
1706 | not required when reading the single-bit registers. The |
||
1707 | AcpiGetRegisterUnlocked function is no longer needed and has been removed. |
||
1708 | This will improve performance for reads on these registers. ACPICA BZ 760. |
||
1709 | |||
1710 | Fixed the parameter validation for AcpiRead/Write. Now return |
||
1711 | AE_BAD_PARAMETER if the input register pointer is null, and AE_BAD_ADDRESS if |
||
1712 | the register has an address of zero. Previously, these cases simply returned |
||
1713 | AE_OK. For optional registers such as PM1B status/enable/control, the caller |
||
1714 | should check for a valid register address before calling. ACPICA BZ 748. |
||
1715 | |||
1716 | Renamed the external ACPI bit register access functions. Renamed |
||
1717 | AcpiGetRegister and AcpiSetRegister to clarify the purpose of these |
||
1718 | functions. The new names are AcpiReadBitRegister and AcpiWriteBitRegister. |
||
1719 | Also, restructured the code for these functions by simplifying the code path |
||
1720 | and condensing duplicate code to reduce code size. |
||
1721 | |||
1722 | Added new functions to transparently handle the possibly split PM1 A/B |
||
1723 | registers. AcpiHwReadMultiple and AcpiHwWriteMultiple. These two functions |
||
1724 | now handle the split registers for PM1 Status, Enable, and Control. ACPICA BZ |
||
1725 | 746. |
||
1726 | |||
1727 | Added a function to handle the PM1 control registers, AcpiHwWritePm1Control. |
||
1728 | This function writes both of the PM1 control registers (A/B). These registers |
||
1729 | are different than the PM1 A/B status and enable registers in that different |
||
1730 | values can be written to the A/B registers. Most notably, the SLP_TYP bits |
||
1731 | can be different, as per the values returned from the _Sx predefined methods. |
||
1732 | |||
1733 | Removed an extra register write within AcpiHwClearAcpiStatus. This function |
||
1734 | was writing an optional PM1B status register twice. The existing call to the |
||
1735 | low-level AcpiHwRegisterWrite automatically handles a possibly split PM1 A/B |
||
1736 | register. ACPICA BZ 751. |
||
1737 | |||
1738 | Split out the PM1 Status registers from the FADT. Added new globals for these |
||
1739 | registers (A/B), similar to the way the PM1 Enable registers are handled. |
||
1740 | Instead of overloading the FADT Event Register blocks. This makes the code |
||
1741 | clearer and less prone to error. |
||
1742 | |||
1743 | Fixed the warning message for when the platform contains too many ACPI tables |
||
1744 | for the default size of the global root table data structure. The calculation |
||
1745 | for the truncation value was incorrect. |
||
1746 | |||
1747 | Removed the ACPI_GET_OBJECT_TYPE macro. Removed all instances of this |
||
1748 | obsolete macro, since it is now a simple reference to ->common.type. There |
||
1749 | were about 150 invocations of the macro across 41 files. ACPICA BZ 755. |
||
1750 | |||
1751 | Removed the redundant ACPI_BITREG_SLEEP_TYPE_B. This type is the same as |
||
1752 | TYPE_A. Removed this and all related instances. Renamed SLEEP_TYPE_A to |
||
1753 | simply SLEEP_TYPE. ACPICA BZ 754. |
||
1754 | |||
1755 | Conditionally compile the AcpiSetFirmwareWakingVector64 function. This |
||
1756 | function is only needed on 64-bit host operating systems and is thus not |
||
1757 | included for 32-bit hosts. |
||
1758 | |||
1759 | Debug output: print the input and result for invocations of the _OSI reserved |
||
1760 | control method via the ACPI_LV_INFO debug level. Also, reduced some of the |
||
1761 | verbosity of this debug level. Len Brown. |
||
1762 | |||
1763 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1764 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1765 | debug version of the code includes the debug output trace mechanism and has a |
||
1766 | much larger code and data size. |
||
1767 | |||
1768 | Previous Release: |
||
1769 | Non-Debug Version: 82.3K Code, 17.5K Data, 99.8K Total |
||
1770 | Debug Version: 157.3K Code, 49.8K Data, 207.1K Total |
||
1771 | Current Release: |
||
1772 | Non-Debug Version: 82.0K Code, 17.5K Data, 99.5K Total |
||
1773 | Debug Version: 156.9K Code, 49.8K Data, 206.7K Total |
||
1774 | |||
1775 | 2) iASL Compiler/Disassembler and Tools: |
||
1776 | |||
1777 | Disassembler: Decode the FADT PM_Profile field. Emit ascii names for the |
||
1778 | various legal performance profiles. |
||
1779 | |||
1780 | ---------------------------------------- |
||
1781 | 23 January 2009. Summary of changes for version 20090123: |
||
1782 | |||
1783 | 1) ACPI CA Core Subsystem: |
||
1784 | |||
1785 | Added the 2009 copyright to all module headers and signons. This affects |
||
1786 | virtually every file in the ACPICA core subsystem, the iASL compiler, and |
||
1787 | the tools/utilities. |
||
1788 | |||
1789 | Implemented a change to allow the host to override any ACPI table, including |
||
1790 | dynamically loaded tables. Previously, only the DSDT could be replaced by the |
||
1791 | host. With this change, the AcpiOsTableOverride interface is called for each |
||
1792 | table found in the RSDT/XSDT during ACPICA initialization, and also whenever |
||
1793 | a table is dynamically loaded via the AML Load operator. |
||
1794 | |||
1795 | Updated FADT flag definitions, especially the Boot Architecture flags. |
||
1796 | |||
1797 | Debugger: For the Find command, automatically pad the input ACPI name with |
||
1798 | underscores if the name is shorter than 4 characters. This enables a match |
||
1799 | with the actual namespace entry which is itself padded with underscores. |
||
1800 | |||
1801 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1802 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1803 | debug version of the code includes the debug output trace mechanism and has a |
||
1804 | much larger code and data size. |
||
1805 | |||
1806 | Previous Release: |
||
1807 | Non-Debug Version: 82.3K Code, 17.4K Data, 99.7K Total |
||
1808 | Debug Version: 157.1K Code, 49.7K Data, 206.8K Total |
||
1809 | Current Release: |
||
1810 | Non-Debug Version: 82.3K Code, 17.5K Data, 99.8K Total |
||
1811 | Debug Version: 157.3K Code, 49.8K Data, 207.1K Total |
||
1812 | |||
1813 | 2) iASL Compiler/Disassembler and Tools: |
||
1814 | |||
1815 | Fix build error under Bison-2.4. |
||
1816 | |||
1817 | Dissasembler: Enhanced FADT support. Added decoding of the Boot Architecture |
||
1818 | flags. Now decode all flags, regardless of the FADT version. Flag output |
||
1819 | includes the FADT version which first defined each flag. |
||
1820 | |||
1821 | The iASL -g option now dumps the RSDT to a file (in addition to the FADT and |
||
1822 | DSDT). Windows only. |
||
1823 | |||
1824 | ---------------------------------------- |
||
1825 | 04 December 2008. Summary of changes for version 20081204: |
||
1826 | |||
1827 | 1) ACPI CA Core Subsystem: |
||
1828 | |||
1829 | The ACPICA Programmer Reference has been completely updated and revamped for |
||
1830 | this release. This includes updates to the external interfaces, OSL |
||
1831 | interfaces, the overview sections, and the debugger reference. |
||
1832 | |||
1833 | Several new ACPICA interfaces have been implemented and documented in the |
||
1834 | programmer reference: |
||
1835 | AcpiReset - Writes the reset value to the FADT-defined reset register. |
||
1836 | AcpiDisableAllGpes - Disable all available GPEs. |
||
1837 | AcpiEnableAllRuntimeGpes - Enable all available runtime GPEs. |
||
1838 | AcpiGetGpeDevice - Get the GPE block device associated with a GPE. |
||
1839 | AcpiGbl_CurrentGpeCount - Tracks the current number of available GPEs. |
||
1840 | AcpiRead - Low-level read ACPI register (was HwLowLevelRead.) |
||
1841 | AcpiWrite - Low-level write ACPI register (was HwLowLevelWrite.) |
||
1842 | |||
1843 | Most of the public ACPI hardware-related interfaces have been moved to a new |
||
1844 | file, components/hardware/hwxface.c |
||
1845 | |||
1846 | Enhanced the FADT parsing and low-level ACPI register access: The ACPI |
||
1847 | register lengths within the FADT are now used, and the low level ACPI |
||
1848 | register access no longer hardcodes the ACPI register lengths. Given that |
||
1849 | there may be some risk in actually trusting the FADT register lengths, a run- |
||
1850 | time option was added to fall back to the default hardcoded lengths if the |
||
1851 | FADT proves to contain incorrect values - UseDefaultRegisterWidths. This |
||
1852 | option is set to true for now, and a warning is issued if a suspicious FADT |
||
1853 | register length is overridden with the default value. |
||
1854 | |||
1855 | Fixed a reference count issue in NsRepairObject. This problem was introduced |
||
1856 | in version 20081031 as part of a fix to repair Buffer objects within |
||
1857 | Packages. Lin Ming. |
||
1858 | |||
1859 | Added semaphore support to the Linux/Unix application OS-services layer |
||
1860 | (OSL). ACPICA BZ 448. Lin Ming. |
||
1861 | |||
1862 | Added the ACPI_MUTEX_TYPE configuration option to select whether mutexes will |
||
1863 | be implemented in the OSL, or will binary semaphores be used instead. |
||
1864 | |||
1865 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1866 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1867 | debug version of the code includes the debug output trace mechanism and has a |
||
1868 | much larger code and data size. |
||
1869 | |||
1870 | Previous Release: |
||
1871 | Non-Debug Version: 81.7K Code, 17.3K Data, 99.0K Total |
||
1872 | Debug Version: 156.4K Code, 49.4K Data, 205.8K Total |
||
1873 | Current Release: |
||
1874 | Non-Debug Version: 82.3K Code, 17.4K Data, 99.7K Total |
||
1875 | Debug Version: 157.1K Code, 49.7K Data, 206.8K Total |
||
1876 | |||
1877 | 2) iASL Compiler/Disassembler and Tools: |
||
1878 | |||
1879 | iASL: Completed the '-e' option to include additional ACPI tables in order to |
||
1880 | aid with disassembly and External statement generation. ACPICA BZ 742. Lin |
||
1881 | Ming. |
||
1882 | |||
1883 | iASL: Removed the "named object in while loop" error. The compiler cannot |
||
1884 | determine how many times a loop will execute. ACPICA BZ 730. |
||
1885 | |||
1886 | Disassembler: Implemented support for FADT revision 2 (MS extension). ACPICA |
||
1887 | BZ 743. |
||
1888 | |||
1889 | Disassembler: Updates for several ACPI data tables (HEST, EINJ, and MCFG). |
||
1890 | |||
1891 | ---------------------------------------- |
||
1892 | 31 October 2008. Summary of changes for version 20081031: |
||
1893 | |||
1894 | 1) ACPI CA Core Subsystem: |
||
1895 | |||
1896 | Restructured the ACPICA header files into public/private. acpi.h now includes |
||
1897 | only the "public" acpica headers. All other acpica headers are "private" and |
||
1898 | should not be included by acpica users. One new file, accommon.h is used to |
||
1899 | include the commonly used private headers for acpica code generation. Future |
||
1900 | plans include moving all private headers to a new subdirectory. |
||
1901 | |||
1902 | Implemented an automatic Buffer->String return value conversion for |
||
1903 | predefined ACPI methods. For these methods (such as _BIF), added automatic |
||
1904 | conversion for return objects that are required to be a String, but a Buffer |
||
1905 | was found instead. This can happen when reading string battery data from an |
||
1906 | operation region, because it used to be difficult to convert the data from |
||
1907 | buffer to string from within the ASL. Ensures that the host OS is provided |
||
1908 | with a valid null-terminated string. Linux BZ 11822. |
||
1909 | |||
1910 | Updated the FACS waking vector interfaces. Split AcpiSetFirmwareWakingVector |
||
1911 | into two: one for the 32-bit vector, another for the 64-bit vector. This is |
||
1912 | required because the host OS must setup the wake much differently for each |
||
1913 | vector (real vs. protected mode, etc.) and the interface itself should not be |
||
1914 | deciding which vector to use. Also, eliminated the GetFirmwareWakingVector |
||
1915 | interface, as it served no purpose (only the firmware reads the vector, OS |
||
1916 | only writes the vector.) ACPICA BZ 731. |
||
1917 | |||
1918 | Implemented a mechanism to escape infinite AML While() loops. Added a loop |
||
1919 | counter to force exit from AML While loops if the count becomes too large. |
||
1920 | This can occur in poorly written AML when the hardware does not respond |
||
1921 | within a while loop and the loop does not implement a timeout. The maximum |
||
1922 | loop count is configurable. A new exception code is returned when a loop is |
||
1923 | broken, AE_AML_INFINITE_LOOP. Alexey Starikovskiy, Bob Moore. |
||
1924 | |||
1925 | Optimized the execution of AML While loops. Previously, a control state |
||
1926 | object was allocated and freed for each execution of the loop. The |
||
1927 | optimization is to simply reuse the control state for each iteration. This |
||
1928 | speeds up the raw loop execution time by about 5%. |
||
1929 | |||
1930 | Enhanced the implicit return mechanism. For Windows compatibility, return an |
||
1931 | implicit integer of value zero for methods that contain no executable code. |
||
1932 | Such methods are seen in the field as stubs (presumably), and can cause |
||
1933 | drivers to fail if they expect a return value. Lin Ming. |
||
1934 | |||
1935 | Allow multiple backslashes as root prefixes in namepaths. In a fully |
||
1936 | qualified namepath, allow multiple backslash prefixes. This can happen (and |
||
1937 | is seen in the field) because of the use of a double-backslash in strings |
||
1938 | (since backslash is the escape character) causing confusion. ACPICA BZ 739 |
||
1939 | Lin Ming. |
||
1940 | |||
1941 | Emit a warning if two different FACS or DSDT tables are discovered in the |
||
1942 | FADT. Checks if there are two valid but different addresses for the FACS and |
||
1943 | DSDT within the FADT (mismatch between the 32-bit and 64-bit fields.) |
||
1944 | |||
1945 | Consolidated the method argument count validation code. Merged the code that |
||
1946 | validates control method argument counts into the predefined validation |
||
1947 | module. Eliminates possible multiple warnings for incorrect argument counts. |
||
1948 | |||
1949 | Implemented ACPICA example code. Includes code for ACPICA initialization, |
||
1950 | handler installation, and calling a control method. Available at |
||
1951 | source/tools/examples. |
||
1952 | |||
1953 | Added a global pointer for FACS table to simplify internal FACS access. Use |
||
1954 | the global pointer instead of using AcpiGetTableByIndex for each FACS access. |
||
1955 | This simplifies the code for the Global Lock and the Firmware Waking |
||
1956 | Vector(s). |
||
1957 | |||
1958 | Example Code and Data Size: These are the sizes for the OS-independent |
||
1959 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
1960 | debug version of the code includes the debug output trace mechanism and has a |
||
1961 | much larger code and data size. |
||
1962 | |||
1963 | Previous Release: |
||
1964 | Non-Debug Version: 81.2K Code, 17.0K Data, 98.2K Total |
||
1965 | Debug Version: 155.8K Code, 49.1K Data, 204.9K Total |
||
1966 | Current Release: |
||
1967 | Non-Debug Version: 81.7K Code, 17.3K Data, 99.0K Total |
||
1968 | Debug Version: 156.4K Code, 49.4K Data, 205.8K Total |
||
1969 | |||
1970 | 2) iASL Compiler/Disassembler and Tools: |
||
1971 | |||
1972 | iASL: Improved disassembly of external method calls. Added the -e option to |
||
1973 | allow the inclusion of additional ACPI tables to help with the disassembly of |
||
1974 | method invocations and the generation of external declarations during the |
||
1975 | disassembly. Certain external method invocations cannot be disassembled |
||
1976 | properly without the actual declaration of the method. Use the -e option to |
||
1977 | include the table where the external method(s) are actually declared. Most |
||
1978 | useful for disassembling SSDTs that make method calls back to the master |
||
1979 | DSDT. Lin Ming. Example: To disassemble an SSDT with calls to DSDT: iasl -d |
||
1980 | -e dsdt.aml ssdt1.aml |
||
1981 | |||
1982 | iASL: Fix to allow references to aliases within ASL namepaths. Fixes a |
||
1983 | problem where the use of an alias within a namepath would result in a not |
||
1984 | found error or cause the compiler to fault. Also now allows forward |
||
1985 | references from the Alias operator itself. ACPICA BZ 738. |
||
1986 | |||
1987 | ---------------------------------------- |
||
1988 | 26 September 2008. Summary of changes for version 20080926: |
||
1989 | |||
1990 | 1) ACPI CA Core Subsystem: |
||
1991 | |||
1992 | Designed and implemented a mechanism to validate predefined ACPI methods and |
||
1993 | objects. This code validates the predefined ACPI objects (objects whose names |
||
1994 | start with underscore) that appear in the namespace, at the time they are |
||
1995 | evaluated. The argument count and the type of the returned object are |
||
1996 | validated against the ACPI specification. The purpose of this validation is |
||
1997 | to detect problems with the BIOS-implemented predefined ACPI objects before |
||
1998 | the results are returned to the ACPI-related drivers. Future enhancements may |
||
1999 | include actual repair of incorrect return objects where possible. Two new |
||
2000 | files are nspredef.c and acpredef.h. |
||
2001 | |||
2002 | Fixed a fault in the AML parser if a memory allocation fails during the Op |
||
2003 | completion routine AcpiPsCompleteThisOp. Lin Ming. ACPICA BZ 492. |
||
2004 | |||
2005 | Fixed an issue with implicit return compatibility. This change improves the |
||
2006 | implicit return mechanism to be more compatible with the MS interpreter. Lin |
||
2007 | Ming, ACPICA BZ 349. |
||
2008 | |||
2009 | Implemented support for zero-length buffer-to-string conversions. Allow zero |
||
2010 | length strings during interpreter buffer-to-string conversions. For example, |
||
2011 | during the ToDecimalString and ToHexString operators, as well as implicit |
||
2012 | conversions. Fiodor Suietov, ACPICA BZ 585. |
||
2013 | |||
2014 | Fixed two possible memory leaks in the error exit paths of |
||
2015 | AcpiUtUpdateObjectReference and AcpiUtWalkPackageTree. These functions are |
||
2016 | similar in that they use a stack of state objects in order to eliminate |
||
2017 | recursion. The stack must be fully unwound and deallocated if an error |
||
2018 | occurs. Lin Ming. ACPICA BZ 383. |
||
2019 | |||
2020 | Removed the unused ACPI_BITREG_WAKE_ENABLE definition and entry in the global |
||
2021 | ACPI register table. This bit does not exist and is unused. Lin Ming, Bob |
||
2022 | Moore ACPICA BZ 442. |
||
2023 | |||
2024 | Removed the obsolete version number in module headers. Removed the |
||
2025 | "$Revision" number that appeared in each module header. This version number |
||
2026 | was useful under SourceSafe and CVS, but has no meaning under git. It is not |
||
2027 | only incorrect, it could also be misleading. |
||
2028 | |||
2029 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2030 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2031 | debug version of the code includes the debug output trace mechanism and has a |
||
2032 | much larger code and data size. |
||
2033 | |||
2034 | Previous Release: |
||
2035 | Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total |
||
2036 | Debug Version: 153.7K Code, 48.2K Data, 201.9K Total |
||
2037 | Current Release: |
||
2038 | Non-Debug Version: 81.2K Code, 17.0K Data, 98.2K Total |
||
2039 | Debug Version: 155.8K Code, 49.1K Data, 204.9K Total |
||
2040 | |||
2041 | ---------------------------------------- |
||
2042 | 29 August 2008. Summary of changes for version 20080829: |
||
2043 | |||
2044 | 1) ACPI CA Core Subsystem: |
||
2045 | |||
2046 | Completed a major cleanup of the internal ACPI_OPERAND_OBJECT of type |
||
2047 | Reference. Changes include the elimination of cheating on the Object field |
||
2048 | for the DdbHandle subtype, addition of a reference class field to |
||
2049 | differentiate the various reference types (instead of an AML opcode), and the |
||
2050 | cleanup of debug output for this object. Lin Ming, Bob Moore. BZ 723 |
||
2051 | |||
2052 | Reduce an error to a warning for an incorrect method argument count. |
||
2053 | Previously aborted with an error if too few arguments were passed to a |
||
2054 | control method via the external ACPICA interface. Now issue a warning instead |
||
2055 | and continue. Handles the case where the method inadvertently declares too |
||
2056 | many arguments, but does not actually use the extra ones. Applies mainly to |
||
2057 | the predefined methods. Lin Ming. Linux BZ 11032. |
||
2058 | |||
2059 | Disallow the evaluation of named object types with no intrinsic value. Return |
||
2060 | AE_TYPE for objects that have no value and therefore evaluation is undefined: |
||
2061 | Device, Event, Mutex, Region, Thermal, and Scope. Previously, evaluation of |
||
2062 | these types were allowed, but an exception would be generated at some point |
||
2063 | during the evaluation. Now, the error is generated up front. |
||
2064 | |||
2065 | Fixed a possible memory leak in the AcpiNsGetExternalPathname function |
||
2066 | (nsnames.c). Fixes a leak in the error exit path. |
||
2067 | |||
2068 | Removed the obsolete debug levels ACPI_DB_WARN and ACPI_DB_ERROR. These debug |
||
2069 | levels were made obsolete by the ACPI_WARNING, ACPI_ERROR, and ACPI_EXCEPTION |
||
2070 | interfaces. Also added ACPI_DB_EVENTS to correspond with the existing |
||
2071 | ACPI_LV_EVENTS. |
||
2072 | |||
2073 | Removed obsolete and/or unused exception codes from the acexcep.h header. |
||
2074 | There is the possibility that certain device drivers may be affected if they |
||
2075 | use any of these exceptions. |
||
2076 | |||
2077 | The ACPICA documentation has been added to the public git source tree, under |
||
2078 | acpica/documents. Included are the ACPICA programmer reference, the iASL |
||
2079 | compiler reference, and the changes.txt release logfile. |
||
2080 | |||
2081 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2082 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2083 | debug version of the code includes the debug output trace mechanism and has a |
||
2084 | much larger code and data size. |
||
2085 | |||
2086 | Previous Release: |
||
2087 | Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total |
||
2088 | Debug Version: 153.9K Code, 48.4K Data, 202.3K Total |
||
2089 | Current Release: |
||
2090 | Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total |
||
2091 | Debug Version: 153.7K Code, 48.2K Data, 201.9K Total |
||
2092 | |||
2093 | 2) iASL Compiler/Disassembler and Tools: |
||
2094 | |||
2095 | Allow multiple argument counts for the predefined _SCP method. ACPI 3.0 |
||
2096 | defines _SCP with 3 arguments. Previous versions defined it with only 1 |
||
2097 | argument. iASL now allows both definitions. |
||
2098 | |||
2099 | iASL/disassembler: avoid infinite loop on bad ACPI tables. Check for zero- |
||
2100 | length subtables when disassembling ACPI tables. Also fixed a couple of |
||
2101 | errors where a full 16-bit table type field was not extracted from the input |
||
2102 | properly. |
||
2103 | |||
2104 | acpisrc: Improve comment counting mechanism for generating source code |
||
2105 | statistics. Count first and last lines of multi-line comments as whitespace, |
||
2106 | not comment lines. Handle Linux legal header in addition to standard acpica |
||
2107 | header. |
||
2108 | |||
2109 | ---------------------------------------- |
||
2110 | |||
2111 | 29 July 2008. Summary of changes for version 20080729: |
||
2112 | |||
2113 | 1) ACPI CA Core Subsystem: |
||
2114 | |||
2115 | Fix a possible deadlock in the GPE dispatch. Remove call to |
||
2116 | AcpiHwDisableAllGpes during wake in AcpiEvGpeDispatch. This call will attempt |
||
2117 | to acquire the GPE lock but can deadlock since the GPE lock is already held |
||
2118 | at dispatch time. This code was introduced in version 20060831 as a response |
||
2119 | to Linux BZ 6881 and has since been removed from Linux. |
||
2120 | |||
2121 | Add a function to dereference returned reference objects. Examines the return |
||
2122 | object from a call to AcpiEvaluateObject. Any Index or RefOf references are |
||
2123 | automatically dereferenced in an attempt to return something useful (these |
||
2124 | reference types cannot be converted into an external ACPI_OBJECT.) Provides |
||
2125 | MS compatibility. Lin Ming, Bob Moore. Linux BZ 11105 |
||
2126 | |||
2127 | x2APIC support: changes for MADT and SRAT ACPI tables. There are 2 new |
||
2128 | subtables for the MADT and one new subtable for the SRAT. Includes |
||
2129 | disassembler and AcpiSrc support. Data from the Intel 64 Architecture x2APIC |
||
2130 | Specification, June 2008. |
||
2131 | |||
2132 | Additional error checking for pathname utilities. Add error check after all |
||
2133 | calls to AcpiNsGetPathnameLength. Add status return from |
||
2134 | AcpiNsBuildExternalPath and check after all calls. Add parameter validation |
||
2135 | to AcpiUtInitializeBuffer. Reported by and initial patch by Ingo Molnar. |
||
2136 | |||
2137 | Return status from the global init function AcpiUtGlobalInitialize. This is |
||
2138 | used by both the kernel subsystem and the utilities such as iASL compiler. |
||
2139 | The function could possibly fail when the caches are initialized. Yang Yi. |
||
2140 | |||
2141 | Add a function to decode reference object types to strings. Created for |
||
2142 | improved error messages. |
||
2143 | |||
2144 | Improve object conversion error messages. Better error messages during object |
||
2145 | conversion from internal to the external ACPI_OBJECT. Used for external calls |
||
2146 | to AcpiEvaluateObject. |
||
2147 | |||
2148 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2149 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2150 | debug version of the code includes the debug output trace mechanism and has a |
||
2151 | much larger code and data size. |
||
2152 | |||
2153 | Previous Release: |
||
2154 | Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total |
||
2155 | Debug Version: 153.5K Code, 48.2K Data, 201.7K Total |
||
2156 | Current Release: |
||
2157 | Non-Debug Version: 79.7K Code, 16.4K Data, 96.1K Total |
||
2158 | Debug Version: 153.9K Code, 48.4K Data, 202.3K Total |
||
2159 | |||
2160 | 2) iASL Compiler/Disassembler and Tools: |
||
2161 | |||
2162 | Debugger: fix a possible hang when evaluating non-methods. Fixes a problem |
||
2163 | introduced in version 20080701. If the object being evaluated (via execute |
||
2164 | command) is not a method, the debugger can hang while trying to obtain non- |
||
2165 | existent parameters. |
||
2166 | |||
2167 | iASL: relax error for using reserved "_T_x" identifiers. These names can |
||
2168 | appear in a disassembled ASL file if they were emitted by the original |
||
2169 | compiler. Instead of issuing an error or warning and forcing the user to |
||
2170 | manually change these names, issue a remark instead. |
||
2171 | |||
2172 | iASL: error if named object created in while loop. Emit an error if any named |
||
2173 | object is created within a While loop. If allowed, this code will generate a |
||
2174 | run-time error on the second iteration of the loop when an attempt is made to |
||
2175 | create the same named object twice. ACPICA bugzilla 730. |
||
2176 | |||
2177 | iASL: Support absolute pathnames for include files. Add support for absolute |
||
2178 | pathnames within the Include operator. previously, only relative pathnames |
||
2179 | were supported. |
||
2180 | |||
2181 | iASL: Enforce minimum 1 interrupt in interrupt macro and Resource Descriptor. |
||
2182 | The ACPI spec requires one interrupt minimum. BZ 423 |
||
2183 | |||
2184 | iASL: Handle a missing ResourceSource arg, with a present SourceIndex. |
||
2185 | Handles the case for the Interrupt Resource Descriptor where |
||
2186 | the ResourceSource argument is omitted but ResourceSourceIndex |
||
2187 | is present. Now leave room for the Index. BZ 426 |
||
2188 | |||
2189 | iASL: Prevent error message if CondRefOf target does not exist. Fixes cases |
||
2190 | where an error message is emitted if the target does not exist. BZ 516 |
||
2191 | |||
2192 | iASL: Fix broken -g option (get Windows ACPI tables). Fixes the -g option |
||
2193 | (get ACPI tables on Windows). This was apparently broken in version 20070919. |
||
2194 | |||
2195 | AcpiXtract: Handle EOF while extracting data. Correctly handle the case where |
||
2196 | the EOF happens immediately after the last table in the input file. Print |
||
2197 | completion message. Previously, no message was displayed in this case. |
||
2198 | |||
2199 | ---------------------------------------- |
||
2200 | 01 July 2008. Summary of changes for version 20080701: |
||
2201 | |||
2202 | 0) Git source tree / acpica.org |
||
2203 | |||
2204 | Fixed a problem where a git-clone from http would not transfer the entire |
||
2205 | source tree. |
||
2206 | |||
2207 | 1) ACPI CA Core Subsystem: |
||
2208 | |||
2209 | Implemented a "careful" GPE disable in AcpiEvDisableGpe, only modify one |
||
2210 | enable bit. Now performs a read-change-write of the enable register instead |
||
2211 | of simply writing out the cached enable mask. This will prevent inadvertent |
||
2212 | enabling of GPEs if a rogue GPE is received during initialization (before GPE |
||
2213 | handlers are installed.) |
||
2214 | |||
2215 | Implemented a copy for dynamically loaded tables. Previously, dynamically |
||
2216 | loaded tables were simply mapped - but on some machines this memory is |
||
2217 | corrupted after suspend. Now copy the table to a local buffer. For the |
||
2218 | OpRegion case, added checksum verify. Use the table length from the table |
||
2219 | header, not the region length. For the Buffer case, use the table length |
||
2220 | also. Dennis Noordsij, Bob Moore. BZ 10734 |
||
2221 | |||
2222 | Fixed a problem where the same ACPI table could not be dynamically loaded and |
||
2223 | unloaded more than once. Without this change, a table cannot be loaded again |
||
2224 | once it has been loaded/unloaded one time. The current mechanism does not |
||
2225 | unregister a table upon an unload. During a load, if the same table is found, |
||
2226 | this no longer returns an exception. BZ 722 |
||
2227 | |||
2228 | Fixed a problem where the wrong descriptor length was calculated for the |
||
2229 | EndTag descriptor in 64-bit mode. The "minimal" descriptors such as EndTag |
||
2230 | are calculated as 12 bytes long, but the actual length in the internal |
||
2231 | descriptor is 16 because of the round-up to 8 on the 64-bit build. Reported |
||
2232 | by Linn Crosetto. BZ 728 |
||
2233 | |||
2234 | Fixed a possible memory leak in the Unload operator. The DdbHandle returned |
||
2235 | by Load() did not have its reference count decremented during unload, leading |
||
2236 | to a memory leak. Lin Ming. BZ 727 |
||
2237 | |||
2238 | Fixed a possible memory leak when deleting thermal/processor objects. Any |
||
2239 | associated notify handlers (and objects) were not being deleted. Fiodor |
||
2240 | Suietov. BZ 506 |
||
2241 | |||
2242 | Fixed the ordering of the ASCII names in the global mutex table to match the |
||
2243 | actual mutex IDs. Used by AcpiUtGetMutexName, a function used for debug only. |
||
2244 | Vegard Nossum. BZ 726 |
||
2245 | |||
2246 | Enhanced the AcpiGetObjectInfo interface to return the number of required |
||
2247 | arguments if the object is a control method. Added this call to the debugger |
||
2248 | so the proper number of default arguments are passed to a method. This |
||
2249 | prevents a warning when executing methods from AcpiExec. |
||
2250 | |||
2251 | Added a check for an invalid handle in AcpiGetObjectInfo. Return |
||
2252 | AE_BAD_PARAMETER if input handle is invalid. BZ 474 |
||
2253 | |||
2254 | Fixed an extraneous warning from exconfig.c on the 64-bit build. |
||
2255 | |||
2256 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2257 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2258 | debug version of the code includes the debug output trace mechanism and has a |
||
2259 | much larger code and data size. |
||
2260 | |||
2261 | Previous Release: |
||
2262 | Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total |
||
2263 | Debug Version: 153.0K Code, 48.2K Data, 201.2K Total |
||
2264 | Current Release: |
||
2265 | Non-Debug Version: 79.6K Code, 16.2K Data, 95.8K Total |
||
2266 | Debug Version: 153.5K Code, 48.2K Data, 201.7K Total |
||
2267 | |||
2268 | 2) iASL Compiler/Disassembler and Tools: |
||
2269 | |||
2270 | iASL: Added two missing ACPI reserved names. Added _MTP and _ASZ, both |
||
2271 | resource descriptor names. |
||
2272 | |||
2273 | iASL: Detect invalid ASCII characters in input (windows version). Removed the |
||
2274 | "-CF" flag from the flex compile, enables correct detection of non-ASCII |
||
2275 | characters in the input. BZ 441 |
||
2276 | |||
2277 | iASL: Eliminate warning when result of LoadTable is not used. Eliminate the |
||
2278 | "result of operation not used" warning when the DDB handle returned from |
||
2279 | LoadTable is not used. The warning is not needed. BZ 590 |
||
2280 | |||
2281 | AcpiExec: Add support for dynamic table load/unload. Now calls _CFG method to |
||
2282 | pass address of table to the AML. Added option to disable OpRegion simulation |
||
2283 | to allow creation of an OpRegion with a real address that was passed to _CFG. |
||
2284 | All of this allows testing of the Load and Unload operators from AcpiExec. |
||
2285 | |||
2286 | Debugger: update tables command for unloaded tables. Handle unloaded tables |
||
2287 | and use the standard table header output routine. |
||
2288 | |||
2289 | ---------------------------------------- |
||
2290 | 09 June 2008. Summary of changes for version 20080609: |
||
2291 | |||
2292 | 1) ACPI CA Core Subsystem: |
||
2293 | |||
2294 | Implemented a workaround for reversed _PRT entries. A significant number of |
||
2295 | BIOSs erroneously reverse the _PRT SourceName and the SourceIndex. This |
||
2296 | change dynamically detects and repairs this problem. Provides compatibility |
||
2297 | with MS ACPI. BZ 6859 |
||
2298 | |||
2299 | Simplified the internal ACPI hardware interfaces to eliminate the locking |
||
2300 | flag parameter from Register Read/Write. Added a new external interface, |
||
2301 | AcpiGetRegisterUnlocked. |
||
2302 | |||
2303 | Fixed a problem where the invocation of a GPE control method could hang. This |
||
2304 | was a regression introduced in 20080514. The new method argument count |
||
2305 | validation mechanism can enter an infinite loop when a GPE method is |
||
2306 | dispatched. Problem fixed by removing the obsolete code that passed GPE block |
||
2307 | information to the notify handler via the control method parameter pointer. |
||
2308 | |||
2309 | Fixed a problem where the _SST execution status was incorrectly returned to |
||
2310 | the caller of AcpiEnterSleepStatePrep. This was a regression introduced in |
||
2311 | 20080514. _SST is optional and a NOT_FOUND exception should never be |
||
2312 | returned. BZ 716 |
||
2313 | |||
2314 | Fixed a problem where a deleted object could be accessed from within the AML |
||
2315 | parser. This was a regression introduced in version 20080123 as a fix for the |
||
2316 | Unload operator. Lin Ming. BZ 10669 |
||
2317 | |||
2318 | Cleaned up the debug operand dump mechanism. Eliminated unnecessary operands |
||
2319 | and eliminated the use of a negative index in a loop. Operands are now |
||
2320 | displayed in the correct order, not backwards. This also fixes a regression |
||
2321 | introduced in 20080514 on 64-bit systems where the elimination of |
||
2322 | ACPI_NATIVE_UINT caused the negative index to go large and positive. BZ 715 |
||
2323 | |||
2324 | Fixed a possible memory leak in EvPciConfigRegionSetup where the error exit |
||
2325 | path did not delete a locally allocated structure. |
||
2326 | |||
2327 | Updated definitions for the DMAR and SRAT tables to synchronize with the |
||
2328 | current specifications. Includes disassembler support. |
||
2329 | |||
2330 | Fixed a problem in the mutex debug code (in utmutex.c) where an incorrect |
||
2331 | loop termination value was used. Loop terminated on iteration early, missing |
||
2332 | one mutex. Linn Crosetto |
||
2333 | |||
2334 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2335 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2336 | debug version of the code includes the debug output trace mechanism and has a |
||
2337 | much larger code and data size. |
||
2338 | |||
2339 | Previous Release: |
||
2340 | Non-Debug Version: 79.5K Code, 16.2K Data, 95.7K Total |
||
2341 | Debug Version: 153.3K Code, 48.3K Data, 201.6K Total |
||
2342 | Current Release: |
||
2343 | Non-Debug Version: 79.3K Code, 16.2K Data, 95.5K Total |
||
2344 | Debug Version: 153.0K Code, 48.2K Data, 201.2K Total |
||
2345 | |||
2346 | 2) iASL Compiler/Disassembler and Tools: |
||
2347 | |||
2348 | Disassembler: Implemented support for EisaId() within _CID objects. Now |
||
2349 | disassemble integer _CID objects back to EisaId invocations, including |
||
2350 | multiple integers within _CID packages. Includes single-step support for |
||
2351 | debugger also. |
||
2352 | |||
2353 | Disassembler: Added support for DMAR and SRAT table definition changes. |
||
2354 | |||
2355 | ---------------------------------------- |
||
2356 | 14 May 2008. Summary of changes for version 20080514: |
||
2357 | |||
2358 | 1) ACPI CA Core Subsystem: |
||
2359 | |||
2360 | Fixed a problem where GPEs were enabled too early during the ACPICA |
||
2361 | initialization. This could lead to "handler not installed" errors on some |
||
2362 | machines. Moved GPE enable until after _REG/_STA/_INI methods are run. This |
||
2363 | ensures that all operation regions and devices throughout the namespace have |
||
2364 | been initialized before GPEs are enabled. Alexey Starikovskiy, BZ 9916. |
||
2365 | |||
2366 | Implemented a change to the enter sleep code. Moved execution of the _GTS |
||
2367 | method to just before setting sleep enable bit. The execution was moved from |
||
2368 | AcpiEnterSleepStatePrep to AcpiEnterSleepState. _GTS is now executed |
||
2369 | immediately before the SLP_EN bit is set, as per the ACPI specification. |
||
2370 | Luming Yu, BZ 1653. |
||
2371 | |||
2372 | Implemented a fix to disable unknown GPEs (2nd version). Now always disable |
||
2373 | the GPE, even if ACPICA thinks that that it is already disabled. It is |
||
2374 | possible that the AML or some other code has enabled the GPE unbeknownst to |
||
2375 | the ACPICA code. |
||
2376 | |||
2377 | Fixed a problem with the Field operator where zero-length fields would return |
||
2378 | an AE_AML_NO_OPERAND exception during table load. Fix enables zero-length ASL |
||
2379 | field declarations in Field(), BankField(), and IndexField(). BZ 10606. |
||
2380 | |||
2381 | Implemented a fix for the Load operator, now load the table at the namespace |
||
2382 | root. This reverts a change introduced in version 20071019. The table is now |
||
2383 | loaded at the namespace root even though this goes against the ACPI |
||
2384 | specification. This provides compatibility with other ACPI implementations. |
||
2385 | The ACPI specification will be updated to reflect this in ACPI 4.0. Lin Ming. |
||
2386 | |||
2387 | Fixed a problem where ACPICA would not Load() tables with unusual signatures. |
||
2388 | Now ignore ACPI table signature for Load() operator. Only "SSDT" is |
||
2389 | acceptable to the ACPI spec, but tables are seen with OEMx and null sigs. |
||
2390 | Therefore, signature validation is worthless. Apparently MS ACPI accepts such |
||
2391 | signatures, ACPICA must be compatible. BZ 10454. |
||
2392 | |||
2393 | Fixed a possible negative array index in AcpiUtValidateException. Added NULL |
||
2394 | fields to the exception string arrays to eliminate a -1 subtraction on the |
||
2395 | SubStatus field. |
||
2396 | |||
2397 | Updated the debug tracking macros to reduce overall code and data size. |
||
2398 | Changed ACPI_MODULE_NAME and ACPI_FUNCTION_NAME to use arrays of strings |
||
2399 | instead of pointers to static strings. Jan Beulich and Bob Moore. |
||
2400 | |||
2401 | Implemented argument count checking in control method invocation via |
||
2402 | AcpiEvaluateObject. Now emit an error if too few arguments, warning if too |
||
2403 | many. This applies only to extern programmatic control method execution, not |
||
2404 | method-to-method calls within the AML. Lin Ming. |
||
2405 | |||
2406 | Eliminated the ACPI_NATIVE_UINT type across all ACPICA code. This type is no |
||
2407 | longer needed, especially with the removal of 16-bit support. It was replaced |
||
2408 | mostly with UINT32, but also ACPI_SIZE where a type that changes 32/64 bit on |
||
2409 | 32/64-bit platforms is required. |
||
2410 | |||
2411 | Added the C const qualifier for appropriate string constants -- mostly |
||
2412 | MODULE_NAME and printf format strings. Jan Beulich. |
||
2413 | |||
2414 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2415 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2416 | debug version of the code includes the debug output trace mechanism and has a |
||
2417 | much larger code and data size. |
||
2418 | |||
2419 | Previous Release: |
||
2420 | Non-Debug Version: 80.0K Code, 17.4K Data, 97.4K Total |
||
2421 | Debug Version: 159.4K Code, 64.4K Data, 223.8K Total |
||
2422 | Current Release: |
||
2423 | Non-Debug Version: 79.5K Code, 16.2K Data, 95.7K Total |
||
2424 | Debug Version: 153.3K Code, 48.3K Data, 201.6K Total |
||
2425 | |||
2426 | 2) iASL Compiler/Disassembler and Tools: |
||
2427 | |||
2428 | Implemented ACPI table revision ID validation in the disassembler. Zero is |
||
2429 | always invalid. For DSDTs, the ID controls the interpreter integer width. 1 |
||
2430 | means 32-bit and this is unusual. 2 or greater is 64-bit. |
||
2431 | |||
2432 | ---------------------------------------- |
||
2433 | 21 March 2008. Summary of changes for version 20080321: |
||
2434 | |||
2435 | 1) ACPI CA Core Subsystem: |
||
2436 | |||
2437 | Implemented an additional change to the GPE support in order to suppress |
||
2438 | spurious or stray GPEs. The AcpiEvDisableGpe function will now permanently |
||
2439 | disable incoming GPEs that are neither enabled nor disabled -- meaning that |
||
2440 | the GPE is unknown to the system. This should prevent future interrupt floods |
||
2441 | from that GPE. BZ 6217 (Zhang Rui) |
||
2442 | |||
2443 | Fixed a problem where NULL package elements were not returned to the |
||
2444 | AcpiEvaluateObject interface correctly. The element was simply ignored |
||
2445 | instead of returning a NULL ACPI_OBJECT package element, potentially causing |
||
2446 | a buffer overflow and/or confusing the caller who expected a fixed number of |
||
2447 | elements. BZ 10132 (Lin Ming, Bob Moore) |
||
2448 | |||
2449 | Fixed a problem with the CreateField, CreateXXXField (Bit, Byte, Word, Dword, |
||
2450 | Qword), Field, BankField, and IndexField operators when invoked from inside |
||
2451 | an executing control method. In this case, these operators created namespace |
||
2452 | nodes that were incorrectly left marked as permanent nodes instead of |
||
2453 | temporary nodes. This could cause a problem if there is race condition |
||
2454 | between an exiting control method and a running namespace walk. (Reported by |
||
2455 | Linn Crosetto) |
||
2456 | |||
2457 | Fixed a problem where the CreateField and CreateXXXField operators would |
||
2458 | incorrectly allow duplicate names (the name of the field) with no exception |
||
2459 | generated. |
||
2460 | |||
2461 | Implemented several changes for Notify handling. Added support for new Notify |
||
2462 | values (ACPI 2.0+) and improved the Notify debug output. Notify on |
||
2463 | PowerResource objects is no longer allowed, as per the ACPI specification. |
||
2464 | (Bob Moore, Zhang Rui) |
||
2465 | |||
2466 | All Reference Objects returned via the AcpiEvaluateObject interface are now |
||
2467 | marked as type "REFERENCE" instead of "ANY". The type ANY is now reserved for |
||
2468 | NULL objects - either NULL package elements or unresolved named references. |
||
2469 | |||
2470 | Fixed a problem where an extraneous debug message was produced for package |
||
2471 | objects (when debugging enabled). The message "Package List length larger |
||
2472 | than NumElements count" is now produced in the correct case, and is now an |
||
2473 | error message rather than a debug message. Added a debug message for the |
||
2474 | opposite case, where NumElements is larger than the Package List (the package |
||
2475 | will be padded out with NULL elements as per the ACPI spec.) |
||
2476 | |||
2477 | Implemented several improvements for the output of the ASL "Debug" object to |
||
2478 | clarify and keep all data for a given object on one output line. |
||
2479 | |||
2480 | Fixed two size calculation issues with the variable-length Start Dependent |
||
2481 | resource descriptor. |
||
2482 | |||
2483 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2484 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2485 | debug version of the code includes the debug output trace mechanism and has |
||
2486 | a much larger code and data size. |
||
2487 | |||
2488 | Previous Release: |
||
2489 | Non-Debug Version: 79.7K Code, 17.3K Data, 97.0K Total |
||
2490 | Debug Version: 158.9K Code, 64.0K Data, 222.9K Total |
||
2491 | Current Release: |
||
2492 | Non-Debug Version: 80.0K Code, 17.4K Data, 97.4K Total |
||
2493 | Debug Version: 159.4K Code, 64.4K Data, 223.8K Total |
||
2494 | |||
2495 | 2) iASL Compiler/Disassembler and Tools: |
||
2496 | |||
2497 | Fixed a problem with the use of the Switch operator where execution of the |
||
2498 | containing method by multiple concurrent threads could cause an |
||
2499 | AE_ALREADY_EXISTS exception. This is caused by the fact that there is no |
||
2500 | actual Switch opcode, it must be simulated with local named temporary |
||
2501 | variables and if/else pairs. The solution chosen was to mark any method that |
||
2502 | uses Switch as Serialized, thus preventing multiple thread entries. BZ 469. |
||
2503 | |||
2504 | ---------------------------------------- |
||
2505 | 13 February 2008. Summary of changes for version 20080213: |
||
2506 | |||
2507 | 1) ACPI CA Core Subsystem: |
||
2508 | |||
2509 | Implemented another MS compatibility design change for GPE/Notify handling. |
||
2510 | GPEs are now cleared/enabled asynchronously to allow all pending notifies to |
||
2511 | complete first. It is expected that the OSL will queue the enable request |
||
2512 | behind all pending notify requests (may require changes to the local host OSL |
||
2513 | in AcpiOsExecute). Alexey Starikovskiy. |
||
2514 | |||
2515 | Fixed a problem where buffer and package objects passed as arguments to a |
||
2516 | control method via the external AcpiEvaluateObject interface could cause an |
||
2517 | AE_AML_INTERNAL exception depending on the order and type of operators |
||
2518 | executed by the target control method. |
||
2519 | |||
2520 | Fixed a problem where resource descriptor size optimization could cause a |
||
2521 | problem when a _CRS resource template is passed to a _SRS method. The _SRS |
||
2522 | resource template must use the same descriptors (with the same size) as |
||
2523 | returned from _CRS. This change affects the following resource descriptors: |
||
2524 | IRQ / IRQNoFlags and StartDependendentFn / StartDependentFnNoPri. (BZ 9487) |
||
2525 | |||
2526 | Fixed a problem where a CopyObject to RegionField, BankField, and IndexField |
||
2527 | objects did not perform an implicit conversion as it should. These types must |
||
2528 | retain their initial type permanently as per the ACPI specification. However, |
||
2529 | a CopyObject to all other object types should not perform an implicit |
||
2530 | conversion, as per the ACPI specification. (Lin Ming, Bob Moore) BZ 388 |
||
2531 | |||
2532 | Fixed a problem with the AcpiGetDevices interface where the mechanism to |
||
2533 | match device CIDs did not examine the entire list of available CIDs, but |
||
2534 | instead aborted on the first non-matching CID. Andrew Patterson. |
||
2535 | |||
2536 | Fixed a regression introduced in version 20071114. The ACPI_HIDWORD macro was |
||
2537 | inadvertently changed to return a 16-bit value instead of a 32-bit value, |
||
2538 | truncating the upper dword of a 64-bit value. This macro is only used to |
||
2539 | display debug output, so no incorrect calculations were made. Also, |
||
2540 | reimplemented the macro so that a 64-bit shift is not performed by |
||
2541 | inefficient compilers. |
||
2542 | |||
2543 | Added missing va_end statements that should correspond with each va_start |
||
2544 | statement. |
||
2545 | |||
2546 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2547 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2548 | debug version of the code includes the debug output trace mechanism and has |
||
2549 | a much larger code and data size. |
||
2550 | |||
2551 | Previous Release: |
||
2552 | Non-Debug Version: 79.5K Code, 17.2K Data, 96.7K Total |
||
2553 | Debug Version: 159.0K Code, 63.8K Data, 222.8K Total |
||
2554 | Current Release: |
||
2555 | Non-Debug Version: 79.7K Code, 17.3K Data, 97.0K Total |
||
2556 | Debug Version: 158.9K Code, 64.0K Data, 222.9K Total |
||
2557 | |||
2558 | 2) iASL Compiler/Disassembler and Tools: |
||
2559 | |||
2560 | Implemented full disassembler support for the following new ACPI tables: |
||
2561 | BERT, EINJ, and ERST. Implemented partial disassembler support for the |
||
2562 | complicated HEST table. These tables support the Windows Hardware Error |
||
2563 | Architecture (WHEA). |
||
2564 | |||
2565 | ---------------------------------------- |
||
2566 | 23 January 2008. Summary of changes for version 20080123: |
||
2567 | |||
2568 | 1) ACPI CA Core Subsystem: |
||
2569 | |||
2570 | Added the 2008 copyright to all module headers and signons. This affects |
||
2571 | virtually every file in the ACPICA core subsystem, the iASL compiler, and |
||
2572 | the tools/utilities. |
||
2573 | |||
2574 | Fixed a problem with the SizeOf operator when used with Package and Buffer |
||
2575 | objects. These objects have deferred execution for some arguments, and the |
||
2576 | execution is now completed before the SizeOf is executed. This problem caused |
||
2577 | unexpected AE_PACKAGE_LIMIT errors on some systems (Lin Ming, Bob Moore) BZ |
||
2578 | 9558 |
||
2579 | |||
2580 | Implemented an enhancement to the interpreter "slack mode". In the absence of |
||
2581 | an explicit return or an implicitly returned object from the last executed |
||
2582 | opcode, a control method will now implicitly return an integer of value 0 for |
||
2583 | Microsoft compatibility. (Lin Ming) BZ 392 |
||
2584 | |||
2585 | Fixed a problem with the Load operator where an exception was not returned in |
||
2586 | the case where the table is already loaded. (Lin Ming) BZ 463 |
||
2587 | |||
2588 | Implemented support for the use of DDBHandles as an Indexed Reference, as per |
||
2589 | the ACPI spec. (Lin Ming) BZ 486 |
||
2590 | |||
2591 | Implemented support for UserTerm (Method invocation) for the Unload operator |
||
2592 | as per the ACPI spec. (Lin Ming) BZ 580 |
||
2593 | |||
2594 | Fixed a problem with the LoadTable operator where the OemId and OemTableId |
||
2595 | input strings could cause unexpected failures if they were shorter than the |
||
2596 | maximum lengths allowed. (Lin Ming, Bob Moore) BZ 576 |
||
2597 | |||
2598 | Implemented support for UserTerm (Method invocation) for the Unload operator |
||
2599 | as per the ACPI spec. (Lin Ming) BZ 580 |
||
2600 | |||
2601 | Implemented header file support for new ACPI tables - BERT, ERST, EINJ, HEST, |
||
2602 | IBFT, UEFI, WDAT. Disassembler support is forthcoming. |
||
2603 | |||
2604 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2605 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2606 | debug version of the code includes the debug output trace mechanism and has |
||
2607 | a much larger code and data size. |
||
2608 | |||
2609 | Previous Release: |
||
2610 | Non-Debug Version: 79.3K Code, 17.2K Data, 96.5K Total |
||
2611 | Debug Version: 158.6K Code, 63.8K Data, 222.4K Total |
||
2612 | Current Release: |
||
2613 | Non-Debug Version: 79.5K Code, 17.2K Data, 96.7K Total |
||
2614 | Debug Version: 159.0K Code, 63.8K Data, 222.8K Total |
||
2615 | |||
2616 | 2) iASL Compiler/Disassembler and Tools: |
||
2617 | |||
2618 | Implemented support in the disassembler for checksum validation on incoming |
||
2619 | binary DSDTs and SSDTs. If incorrect, a message is displayed within the table |
||
2620 | header dump at the start of the disassembly. |
||
2621 | |||
2622 | Implemented additional debugging information in the namespace listing file |
||
2623 | created during compilation. In addition to the namespace hierarchy, the full |
||
2624 | pathname to each namespace object is displayed. |
||
2625 | |||
2626 | Fixed a problem with the disassembler where invalid ACPI tables could cause |
||
2627 | faults or infinite loops. |
||
2628 | |||
2629 | Fixed an unexpected parse error when using the optional "parameter types" |
||
2630 | list in a control method declaration. (Lin Ming) BZ 397 |
||
2631 | |||
2632 | Fixed a problem where two External declarations with the same name did not |
||
2633 | cause an error (Lin Ming) BZ 509 |
||
2634 | |||
2635 | Implemented support for full TermArgs (adding Argx, Localx and method |
||
2636 | invocation) for the ParameterData parameter to the LoadTable operator. (Lin |
||
2637 | Ming) BZ 583,587 |
||
2638 | |||
2639 | ---------------------------------------- |
||
2640 | 19 December 2007. Summary of changes for version 20071219: |
||
2641 | |||
2642 | 1) ACPI CA Core Subsystem: |
||
2643 | |||
2644 | Implemented full support for deferred execution for the TermArg string |
||
2645 | arguments for DataTableRegion. This enables forward references and full |
||
2646 | operand resolution for the three string arguments. Similar to OperationRegion |
||
2647 | deferred argument execution.) Lin Ming. BZ 430 |
||
2648 | |||
2649 | Implemented full argument resolution support for the BankValue argument to |
||
2650 | BankField. Previously, only constants were supported, now any TermArg may be |
||
2651 | used. Lin Ming BZ 387, 393 |
||
2652 | |||
2653 | Fixed a problem with AcpiGetDevices where the search of a branch of the |
||
2654 | device tree could be terminated prematurely. In accordance with the ACPI |
||
2655 | specification, the search down the current branch is terminated if a device |
||
2656 | is both not present and not functional (instead of just not present.) Yakui |
||
2657 | Zhao. |
||
2658 | |||
2659 | Fixed a problem where "unknown" GPEs could be allowed to fire repeatedly if |
||
2660 | the underlying AML code changed the GPE enable registers. Now, any unknown |
||
2661 | incoming GPE (no _Lxx/_Exx method and not the EC GPE) is immediately disabled |
||
2662 | instead of simply ignored. Rui Zhang. |
||
2663 | |||
2664 | Fixed a problem with Index Fields where the Index register was incorrectly |
||
2665 | limited to a maximum of 32 bits. Now any size may be used. |
||
2666 | |||
2667 | Fixed a couple memory leaks associated with "implicit return" objects when |
||
2668 | the AML Interpreter slack mode is enabled. Lin Ming BZ 349 |
||
2669 | |||
2670 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2671 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2672 | debug version of the code includes the debug output trace mechanism and has |
||
2673 | a much larger code and data size. |
||
2674 | |||
2675 | Previous Release: |
||
2676 | Non-Debug Version: 79.0K Code, 17.2K Data, 96.2K Total |
||
2677 | Debug Version: 157.9K Code, 63.6K Data, 221.5K Total |
||
2678 | Current Release: |
||
2679 | Non-Debug Version: 79.3K Code, 17.2K Data, 96.5K Total |
||
2680 | Debug Version: 158.6K Code, 63.8K Data, 222.4K Total |
||
2681 | |||
2682 | ---------------------------------------- |
||
2683 | 14 November 2007. Summary of changes for version 20071114: |
||
2684 | |||
2685 | 1) ACPI CA Core Subsystem: |
||
2686 | |||
2687 | Implemented event counters for each of the Fixed Events, the ACPI SCI |
||
2688 | (interrupt) itself, and control methods executed. Named |
||
2689 | AcpiFixedEventCount[], AcpiSciCount, and AcpiMethodCount respectively. These |
||
2690 | should be useful for debugging and statistics. |
||
2691 | |||
2692 | Implemented a new external interface, AcpiGetStatistics, to retrieve the |
||
2693 | contents of the various event counters. Returns the current values for |
||
2694 | AcpiSciCount, AcpiGpeCount, the AcpiFixedEventCount array, and |
||
2695 | AcpiMethodCount. The interface can be expanded in the future if new counters |
||
2696 | are added. Device drivers should use this interface rather than access the |
||
2697 | counters directly. |
||
2698 | |||
2699 | Fixed a problem with the FromBCD and ToBCD operators. With some compilers, |
||
2700 | the ShortDivide function worked incorrectly, causing problems with the BCD |
||
2701 | functions with large input values. A truncation from 64-bit to 32-bit |
||
2702 | inadvertently occurred. Internal BZ 435. Lin Ming |
||
2703 | |||
2704 | Fixed a problem with Index references passed as method arguments. References |
||
2705 | passed as arguments to control methods were dereferenced immediately (before |
||
2706 | control was passed to the called method). The references are now correctly |
||
2707 | passed directly to the called method. BZ 5389. Lin Ming |
||
2708 | |||
2709 | Fixed a problem with CopyObject used in conjunction with the Index operator. |
||
2710 | The reference was incorrectly dereferenced before the copy. The reference is |
||
2711 | now correctly copied. BZ 5391. Lin Ming |
||
2712 | |||
2713 | Fixed a problem with Control Method references within Package objects. These |
||
2714 | references are now correctly generated. This completes the package |
||
2715 | construction overhaul that began in version 20071019. |
||
2716 | |||
2717 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2718 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2719 | debug version of the code includes the debug output trace mechanism and has |
||
2720 | a much larger code and data size. |
||
2721 | |||
2722 | Previous Release: |
||
2723 | Non-Debug Version: 78.8K Code, 17.2K Data, 96.0K Total |
||
2724 | Debug Version: 157.2K Code, 63.4K Data, 220.6K Total |
||
2725 | Current Release: |
||
2726 | Non-Debug Version: 79.0K Code, 17.2K Data, 96.2K Total |
||
2727 | Debug Version: 157.9K Code, 63.6K Data, 221.5K Total |
||
2728 | |||
2729 | |||
2730 | 2) iASL Compiler/Disassembler and Tools: |
||
2731 | |||
2732 | The AcpiExec utility now installs handlers for all of the predefined |
||
2733 | Operation Region types. New types supported are: PCI_Config, CMOS, and |
||
2734 | PCIBARTarget. |
||
2735 | |||
2736 | Fixed a problem with the 64-bit version of AcpiExec where the extended (64- |
||
2737 | bit) address fields for the DSDT and FACS within the FADT were not being |
||
2738 | used, causing truncation of the upper 32-bits of these addresses. Lin Ming |
||
2739 | and Bob Moore |
||
2740 | |||
2741 | ---------------------------------------- |
||
2742 | 19 October 2007. Summary of changes for version 20071019: |
||
2743 | |||
2744 | 1) ACPI CA Core Subsystem: |
||
2745 | |||
2746 | Fixed a problem with the Alias operator when the target of the alias is a |
||
2747 | named ASL operator that opens a new scope -- Scope, Device, PowerResource, |
||
2748 | Processor, and ThermalZone. In these cases, any children of the original |
||
2749 | operator could not be accessed via the alias, potentially causing unexpected |
||
2750 | AE_NOT_FOUND exceptions. (BZ 9067) |
||
2751 | |||
2752 | Fixed a problem with the Package operator where all named references were |
||
2753 | created as object references and left otherwise unresolved. According to the |
||
2754 | ACPI specification, a Package can only contain Data Objects or references to |
||
2755 | control methods. The implication is that named references to Data Objects |
||
2756 | (Integer, Buffer, String, Package, BufferField, Field) should be resolved |
||
2757 | immediately upon package creation. This is the approach taken with this |
||
2758 | change. References to all other named objects (Methods, Devices, Scopes, |
||
2759 | etc.) are all now properly created as reference objects. (BZ 5328) |
||
2760 | |||
2761 | Reverted a change to Notify handling that was introduced in version |
||
2762 | 20070508. This version changed the Notify handling from asynchronous to |
||
2763 | fully synchronous (Device driver Notify handling with respect to the Notify |
||
2764 | ASL operator). It was found that this change caused more problems than it |
||
2765 | solved and was removed by most users. |
||
2766 | |||
2767 | Fixed a problem with the Increment and Decrement operators where the type of |
||
2768 | the target object could be unexpectedly and incorrectly changed. (BZ 353) |
||
2769 | Lin Ming. |
||
2770 | |||
2771 | Fixed a problem with the Load and LoadTable operators where the table |
||
2772 | location within the namespace was ignored. Instead, the table was always |
||
2773 | loaded into the root or current scope. Lin Ming. |
||
2774 | |||
2775 | Fixed a problem with the Load operator when loading a table from a buffer |
||
2776 | object. The input buffer was prematurely zeroed and/or deleted. (BZ 577) |
||
2777 | |||
2778 | Fixed a problem with the Debug object where a store of a DdbHandle reference |
||
2779 | object to the Debug object could cause a fault. |
||
2780 | |||
2781 | Added a table checksum verification for the Load operator, in the case where |
||
2782 | the load is from a buffer. (BZ 578). |
||
2783 | |||
2784 | Implemented additional parameter validation for the LoadTable operator. The |
||
2785 | length of the input strings SignatureString, OemIdString, and OemTableId are |
||
2786 | now checked for maximum lengths. (BZ 582) Lin Ming. |
||
2787 | |||
2788 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2789 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2790 | debug version of the code includes the debug output trace mechanism and has |
||
2791 | a much larger code and data size. |
||
2792 | |||
2793 | Previous Release: |
||
2794 | Non-Debug Version: 78.5K Code, 17.1K Data, 95.6K Total |
||
2795 | Debug Version: 156.7K Code, 63.2K Data, 219.9K Total |
||
2796 | Current Release: |
||
2797 | Non-Debug Version: 78.8K Code, 17.2K Data, 96.0K Total |
||
2798 | Debug Version: 157.2K Code, 63.4K Data, 220.6K Total |
||
2799 | |||
2800 | |||
2801 | 2) iASL Compiler/Disassembler: |
||
2802 | |||
2803 | Fixed a problem where if a single file was specified and the file did not |
||
2804 | exist, no error message was emitted. (Introduced with wildcard support in |
||
2805 | version 20070917.) |
||
2806 | |||
2807 | ---------------------------------------- |
||
2808 | 19 September 2007. Summary of changes for version 20070919: |
||
2809 | |||
2810 | 1) ACPI CA Core Subsystem: |
||
2811 | |||
2812 | Designed and implemented new external interfaces to install and remove |
||
2813 | handlers for ACPI table-related events. Current events that are defined are |
||
2814 | LOAD and UNLOAD. These interfaces allow the host to track ACPI tables as |
||
2815 | they are dynamically loaded and unloaded. See AcpiInstallTableHandler and |
||
2816 | AcpiRemoveTableHandler. (Lin Ming and Bob Moore) |
||
2817 | |||
2818 | Fixed a problem where the use of the AcpiGbl_AllMethodsSerialized flag |
||
2819 | (acpi_serialized option on Linux) could cause some systems to hang during |
||
2820 | initialization. (Bob Moore) BZ 8171 |
||
2821 | |||
2822 | Fixed a problem where objects of certain types (Device, ThermalZone, |
||
2823 | Processor, PowerResource) can be not found if they are declared and |
||
2824 | referenced from within the same control method (Lin Ming) BZ 341 |
||
2825 | |||
2826 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2827 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2828 | debug version of the code includes the debug output trace mechanism and has |
||
2829 | a much larger code and data size. |
||
2830 | |||
2831 | Previous Release: |
||
2832 | Non-Debug Version: 78.3K Code, 17.0K Data, 95.3K Total |
||
2833 | Debug Version: 156.3K Code, 63.1K Data, 219.4K Total |
||
2834 | Current Release: |
||
2835 | Non-Debug Version: 78.5K Code, 17.1K Data, 95.6K Total |
||
2836 | Debug Version: 156.7K Code, 63.2K Data, 219.9K Total |
||
2837 | |||
2838 | |||
2839 | 2) iASL Compiler/Disassembler: |
||
2840 | |||
2841 | Implemented support to allow multiple files to be compiled/disassembled in a |
||
2842 | single invocation. This includes command line wildcard support for both the |
||
2843 | Windows and Unix versions of the compiler. This feature simplifies the |
||
2844 | disassembly and compilation of multiple ACPI tables in a single directory. |
||
2845 | |||
2846 | ---------------------------------------- |
||
2847 | 08 May 2007. Summary of changes for version 20070508: |
||
2848 | |||
2849 | 1) ACPI CA Core Subsystem: |
||
2850 | |||
2851 | Implemented a Microsoft compatibility design change for the handling of the |
||
2852 | Notify AML operator. Previously, notify handlers were dispatched and |
||
2853 | executed completely asynchronously in a deferred thread. The new design |
||
2854 | still executes the notify handlers in a different thread, but the original |
||
2855 | thread that executed the Notify() now waits at a synchronization point for |
||
2856 | the notify handler to complete. Some machines depend on a synchronous Notify |
||
2857 | operator in order to operate correctly. |
||
2858 | |||
2859 | Implemented support to allow Package objects to be passed as method |
||
2860 | arguments to the external AcpiEvaluateObject interface. Previously, this |
||
2861 | would return the AE_NOT_IMPLEMENTED exception. This feature had not been |
||
2862 | implemented since there were no reserved control methods that required it |
||
2863 | until recently. |
||
2864 | |||
2865 | Fixed a problem with the internal FADT conversion where ACPI 1.0 FADTs that |
||
2866 | contained invalid non-zero values in reserved fields could cause later |
||
2867 | failures because these fields have meaning in later revisions of the FADT. |
||
2868 | For incoming ACPI 1.0 FADTs, these fields are now always zeroed. (The fields |
||
2869 | are: Preferred_PM_Profile, PSTATE_CNT, CST_CNT, and IAPC_BOOT_FLAGS.) |
||
2870 | |||
2871 | Fixed a problem where the Global Lock handle was not properly updated if a |
||
2872 | thread that acquired the Global Lock via executing AML code then attempted |
||
2873 | to acquire the lock via the AcpiAcquireGlobalLock interface. Reported by Joe |
||
2874 | Liu. |
||
2875 | |||
2876 | Fixed a problem in AcpiEvDeleteGpeXrupt where the global interrupt list |
||
2877 | could be corrupted if the interrupt being removed was at the head of the |
||
2878 | list. Reported by Linn Crosetto. |
||
2879 | |||
2880 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2881 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2882 | debug version of the code includes the debug output trace mechanism and has |
||
2883 | a much larger code and data size. |
||
2884 | |||
2885 | Previous Release: |
||
2886 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
2887 | Debug Version: 155.9K Code, 63.1K Data, 219.0K Total |
||
2888 | Current Release: |
||
2889 | Non-Debug Version: 78.3K Code, 17.0K Data, 95.3K Total |
||
2890 | Debug Version: 156.3K Code, 63.1K Data, 219.4K Total |
||
2891 | |||
2892 | ---------------------------------------- |
||
2893 | 20 March 2007. Summary of changes for version 20070320: |
||
2894 | |||
2895 | 1) ACPI CA Core Subsystem: |
||
2896 | |||
2897 | Implemented a change to the order of interpretation and evaluation of AML |
||
2898 | operand objects within the AML interpreter. The interpreter now evaluates |
||
2899 | operands in the order that they appear in the AML stream (and the |
||
2900 | corresponding ASL code), instead of in the reverse order (after the entire |
||
2901 | operand list has been parsed). The previous behavior caused several subtle |
||
2902 | incompatibilities with the Microsoft AML interpreter as well as being |
||
2903 | somewhat non-intuitive. BZ 7871, local BZ 263. Valery Podrezov. |
||
2904 | |||
2905 | Implemented a change to the ACPI Global Lock support. All interfaces to the |
||
2906 | global lock now allow the same thread to acquire the lock multiple times. |
||
2907 | This affects the AcpiAcquireGlobalLock external interface to the global lock |
||
2908 | as well as the internal use of the global lock to support AML fields -- a |
||
2909 | control method that is holding the global lock can now simultaneously access |
||
2910 | AML fields that require global lock protection. Previously, in both cases, |
||
2911 | this would have resulted in an AE_ALREADY_ACQUIRED exception. The change to |
||
2912 | AcpiAcquireGlobalLock is of special interest to drivers for the Embedded |
||
2913 | Controller. There is no change to the behavior of the AML Acquire operator, |
||
2914 | as this can already be used to acquire a mutex multiple times by the same |
||
2915 | thread. BZ 8066. With assistance from Alexey Starikovskiy. |
||
2916 | |||
2917 | Fixed a problem where invalid objects could be referenced in the AML |
||
2918 | Interpreter after error conditions. During operand evaluation, ensure that |
||
2919 | the internal "Return Object" field is cleared on error and only valid |
||
2920 | pointers are stored there. Caused occasional access to deleted objects that |
||
2921 | resulted in "large reference count" warning messages. Valery Podrezov. |
||
2922 | |||
2923 | Fixed a problem where an AE_STACK_OVERFLOW internal exception could occur on |
||
2924 | deeply nested control method invocations. BZ 7873, local BZ 487. Valery |
||
2925 | Podrezov. |
||
2926 | |||
2927 | Fixed an internal problem with the handling of result objects on the |
||
2928 | interpreter result stack. BZ 7872. Valery Podrezov. |
||
2929 | |||
2930 | Removed obsolete code that handled the case where AML_NAME_OP is the target |
||
2931 | of a reference (Reference.Opcode). This code was no longer necessary. BZ |
||
2932 | 7874. Valery Podrezov. |
||
2933 | |||
2934 | Removed obsolete ACPI_NO_INTEGER64_SUPPORT from two header files. This was a |
||
2935 | remnant from the previously discontinued 16-bit support. |
||
2936 | |||
2937 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2938 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2939 | debug version of the code includes the debug output trace mechanism and has |
||
2940 | a much larger code and data size. |
||
2941 | |||
2942 | Previous Release: |
||
2943 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
2944 | Debug Version: 155.8K Code, 63.3K Data, 219.1K Total |
||
2945 | Current Release: |
||
2946 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
2947 | Debug Version: 155.9K Code, 63.1K Data, 219.0K Total |
||
2948 | |||
2949 | ---------------------------------------- |
||
2950 | 26 January 2007. Summary of changes for version 20070126: |
||
2951 | |||
2952 | 1) ACPI CA Core Subsystem: |
||
2953 | |||
2954 | Added the 2007 copyright to all module headers and signons. This affects |
||
2955 | virtually every file in the ACPICA core subsystem, the iASL compiler, and |
||
2956 | the utilities. |
||
2957 | |||
2958 | Implemented a fix for an incorrect parameter passed to AcpiTbDeleteTable |
||
2959 | during a table load. A bad pointer was passed in the case where the DSDT is |
||
2960 | overridden, causing a fault in this case. |
||
2961 | |||
2962 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2963 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
2964 | debug version of the code includes the debug output trace mechanism and has |
||
2965 | a much larger code and data size. |
||
2966 | |||
2967 | Previous Release: |
||
2968 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
2969 | Debug Version: 155.8K Code, 63.3K Data, 219.1K Total |
||
2970 | Current Release: |
||
2971 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
2972 | Debug Version: 155.8K Code, 63.3K Data, 219.1K Total |
||
2973 | |||
2974 | ---------------------------------------- |
||
2975 | 15 December 2006. Summary of changes for version 20061215: |
||
2976 | |||
2977 | 1) ACPI CA Core Subsystem: |
||
2978 | |||
2979 | Support for 16-bit ACPICA has been completely removed since it is no longer |
||
2980 | necessary and it clutters the code. All 16-bit macros, types, and |
||
2981 | conditional compiles have been removed, cleaning up and simplifying the code |
||
2982 | across the entire subsystem. DOS support is no longer needed since the |
||
2983 | bootable Linux firmware kit is now available. |
||
2984 | |||
2985 | The handler for the Global Lock is now removed during AcpiTerminate to |
||
2986 | enable a clean subsystem restart, via the implementation of the |
||
2987 | AcpiEvRemoveGlobalLockHandler function. (With assistance from Joel Bretz, |
||
2988 | HP) |
||
2989 | |||
2990 | Implemented enhancements to the multithreading support within the debugger |
||
2991 | to enable improved multithreading debugging and evaluation of the subsystem. |
||
2992 | (Valery Podrezov) |
||
2993 | |||
2994 | Debugger: Enhanced the Statistics/Memory command to emit the total (maximum) |
||
2995 | memory used during the execution, as well as the maximum memory consumed by |
||
2996 | each of the various object types. (Valery Podrezov) |
||
2997 | |||
2998 | Example Code and Data Size: These are the sizes for the OS-independent |
||
2999 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3000 | debug version of the code includes the debug output trace mechanism and has |
||
3001 | a much larger code and data size. |
||
3002 | |||
3003 | Previous Release: |
||
3004 | Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total |
||
3005 | Debug Version: 155.2K Code, 63.1K Data, 218.3K Total |
||
3006 | Current Release: |
||
3007 | Non-Debug Version: 78.0K Code, 17.1K Data, 95.1K Total |
||
3008 | Debug Version: 155.8K Code, 63.3K Data, 219.1K Total |
||
3009 | |||
3010 | |||
3011 | 2) iASL Compiler/Disassembler and Tools: |
||
3012 | |||
3013 | AcpiExec: Implemented a new option (-m) to display full memory use |
||
3014 | statistics upon subsystem/program termination. (Valery Podrezov) |
||
3015 | |||
3016 | ---------------------------------------- |
||
3017 | 09 November 2006. Summary of changes for version 20061109: |
||
3018 | |||
3019 | 1) ACPI CA Core Subsystem: |
||
3020 | |||
3021 | Optimized the Load ASL operator in the case where the source operand is an |
||
3022 | operation region. Simply map the operation region memory, instead of |
||
3023 | performing a bytewise read. (Region must be of type SystemMemory, see |
||
3024 | below.) |
||
3025 | |||
3026 | Fixed the Load ASL operator for the case where the source operand is a |
||
3027 | region field. A buffer object is also allowed as the source operand. BZ 480 |
||
3028 | |||
3029 | Fixed a problem where the Load ASL operator allowed the source operand to be |
||
3030 | an operation region of any type. It is now restricted to regions of type |
||
3031 | SystemMemory, as per the ACPI specification. BZ 481 |
||
3032 | |||
3033 | Additional cleanup and optimizations for the new Table Manager code. |
||
3034 | |||
3035 | AcpiEnable will now fail if all of the required ACPI tables are not loaded |
||
3036 | (FADT, FACS, DSDT). BZ 477 |
||
3037 | |||
3038 | Added #pragma pack(8/4) to acobject.h to ensure that the structures in this |
||
3039 | header are always compiled as aligned. The ACPI_OPERAND_OBJECT has been |
||
3040 | manually optimized to be aligned and will not work if it is byte-packed. |
||
3041 | |||
3042 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3043 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3044 | debug version of the code includes the debug output trace mechanism and has |
||
3045 | a much larger code and data size. |
||
3046 | |||
3047 | Previous Release: |
||
3048 | Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total |
||
3049 | Debug Version: 155.4K Code, 63.1K Data, 218.5K Total |
||
3050 | Current Release: |
||
3051 | Non-Debug Version: 77.9K Code, 17.0K Data, 94.9K Total |
||
3052 | Debug Version: 155.2K Code, 63.1K Data, 218.3K Total |
||
3053 | |||
3054 | |||
3055 | 2) iASL Compiler/Disassembler and Tools: |
||
3056 | |||
3057 | Fixed a problem where the presence of the _OSI predefined control method |
||
3058 | within complex expressions could cause an internal compiler error. |
||
3059 | |||
3060 | AcpiExec: Implemented full region support for multiple address spaces. |
||
3061 | SpaceId is now part of the REGION object. BZ 429 |
||
3062 | |||
3063 | ---------------------------------------- |
||
3064 | 11 October 2006. Summary of changes for version 20061011: |
||
3065 | |||
3066 | 1) ACPI CA Core Subsystem: |
||
3067 | |||
3068 | Completed an AML interpreter performance enhancement for control method |
||
3069 | execution. Previously a 2-pass parse/execution, control methods are now |
||
3070 | completely parsed and executed in a single pass. This improves overall |
||
3071 | interpreter performance by ~25%, reduces code size, and reduces CPU stack |
||
3072 | use. (Valery Podrezov + interpreter changes in version 20051202 that |
||
3073 | eliminated namespace loading during the pass one parse.) |
||
3074 | |||
3075 | Implemented _CID support for PCI Root Bridge detection. If the _HID does not |
||
3076 | match the predefined PCI Root Bridge IDs, the _CID list (if present) is now |
||
3077 | obtained and also checked for an ID match. |
||
3078 | |||
3079 | Implemented additional support for the PCI _ADR execution: upsearch until a |
||
3080 | device scope is found before executing _ADR. This allows PCI_Config |
||
3081 | operation regions to be declared locally within control methods underneath |
||
3082 | PCI device objects. |
||
3083 | |||
3084 | Fixed a problem with a possible race condition between threads executing |
||
3085 | AcpiWalkNamespace and the AML interpreter. This condition was removed by |
||
3086 | modifying AcpiWalkNamespace to (by default) ignore all temporary namespace |
||
3087 | entries created during any concurrent control method execution. An |
||
3088 | additional namespace race condition is known to exist between |
||
3089 | AcpiWalkNamespace and the Load/Unload ASL operators and is still under |
||
3090 | investigation. |
||
3091 | |||
3092 | Restructured the AML ParseLoop function, breaking it into several |
||
3093 | subfunctions in order to reduce CPU stack use and improve maintainability. |
||
3094 | (Mikhail Kouzmich) |
||
3095 | |||
3096 | AcpiGetHandle: Fix for parameter validation to detect invalid combinations |
||
3097 | of prefix handle and pathname. BZ 478 |
||
3098 | |||
3099 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3100 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3101 | debug version of the code includes the debug output trace mechanism and has |
||
3102 | a much larger code and data size. |
||
3103 | |||
3104 | Previous Release: |
||
3105 | Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total |
||
3106 | Debug Version: 154.6K Code, 63.0K Data, 217.6K Total |
||
3107 | Current Release: |
||
3108 | Non-Debug Version: 78.1K Code, 17.1K Data, 95.2K Total |
||
3109 | Debug Version: 155.4K Code, 63.1K Data, 218.5K Total |
||
3110 | |||
3111 | 2) iASL Compiler/Disassembler and Tools: |
||
3112 | |||
3113 | Ported the -g option (get local ACPI tables) to the new ACPICA Table Manager |
||
3114 | to restore original behavior. |
||
3115 | |||
3116 | ---------------------------------------- |
||
3117 | 27 September 2006. Summary of changes for version 20060927: |
||
3118 | |||
3119 | 1) ACPI CA Core Subsystem: |
||
3120 | |||
3121 | Removed the "Flags" parameter from AcpiGetRegister and AcpiSetRegister. |
||
3122 | These functions now use a spinlock for mutual exclusion and the interrupt |
||
3123 | level indication flag is not needed. |
||
3124 | |||
3125 | Fixed a problem with the Global Lock where the lock could appear to be |
||
3126 | obtained before it is actually obtained. The global lock semaphore was |
||
3127 | inadvertently created with one unit instead of zero units. (BZ 464) Fiodor |
||
3128 | Suietov. |
||
3129 | |||
3130 | Fixed a possible memory leak and fault in AcpiExResolveObjectToValue during |
||
3131 | a read from a buffer or region field. (BZ 458) Fiodor Suietov. |
||
3132 | |||
3133 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3134 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3135 | debug version of the code includes the debug output trace mechanism and has |
||
3136 | a much larger code and data size. |
||
3137 | |||
3138 | Previous Release: |
||
3139 | Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total |
||
3140 | Debug Version: 154.7K Code, 63.0K Data, 217.7K Total |
||
3141 | Current Release: |
||
3142 | Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total |
||
3143 | Debug Version: 154.6K Code, 63.0K Data, 217.6K Total |
||
3144 | |||
3145 | |||
3146 | 2) iASL Compiler/Disassembler and Tools: |
||
3147 | |||
3148 | Fixed a compilation problem with the pre-defined Resource Descriptor field |
||
3149 | names where an "object does not exist" error could be incorrectly generated |
||
3150 | if the parent ResourceTemplate pathname places the template within a |
||
3151 | different namespace scope than the current scope. (BZ 7212) |
||
3152 | |||
3153 | Fixed a problem where the compiler could hang after syntax errors detected |
||
3154 | in an ElseIf construct. (BZ 453) |
||
3155 | |||
3156 | Fixed a problem with the AmlFilename parameter to the DefinitionBlock() |
||
3157 | operator. An incorrect output filename was produced when this parameter was |
||
3158 | a null string (""). Now, the original input filename is used as the AML |
||
3159 | output filename, with an ".aml" extension. |
||
3160 | |||
3161 | Implemented a generic batch command mode for the AcpiExec utility (execute |
||
3162 | any AML debugger command) (Valery Podrezov). |
||
3163 | |||
3164 | ---------------------------------------- |
||
3165 | 12 September 2006. Summary of changes for version 20060912: |
||
3166 | |||
3167 | 1) ACPI CA Core Subsystem: |
||
3168 | |||
3169 | Enhanced the implementation of the "serialized mode" of the interpreter |
||
3170 | (enabled via the AcpiGbl_AllMethodsSerialized flag.) When this mode is |
||
3171 | specified, instead of creating a serialization semaphore per control method, |
||
3172 | the interpreter lock is simply no longer released before a blocking |
||
3173 | operation during control method execution. This effectively makes the AML |
||
3174 | Interpreter single-threaded. The overhead of a semaphore per-method is |
||
3175 | eliminated. |
||
3176 | |||
3177 | Fixed a regression where an error was no longer emitted if a control method |
||
3178 | attempts to create 2 objects of the same name. This once again returns |
||
3179 | AE_ALREADY_EXISTS. When this exception occurs, it invokes the mechanism that |
||
3180 | will dynamically serialize the control method to possible prevent future |
||
3181 | errors. (BZ 440) |
||
3182 | |||
3183 | Integrated a fix for a problem with PCI Express HID detection in the PCI |
||
3184 | Config Space setup procedure. (BZ 7145) |
||
3185 | |||
3186 | Moved all FADT-related functions to a new file, tbfadt.c. Eliminated the |
||
3187 | AcpiHwInitialize function - the FADT registers are now validated when the |
||
3188 | table is loaded. |
||
3189 | |||
3190 | Added two new warnings during FADT verification - 1) if the FADT is larger |
||
3191 | than the largest known FADT version, and 2) if there is a mismatch between a |
||
3192 | 32-bit block address and the 64-bit X counterpart (when both are non-zero.) |
||
3193 | |||
3194 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3195 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3196 | debug version of the code includes the debug output trace mechanism and has |
||
3197 | a much larger code and data size. |
||
3198 | |||
3199 | Previous Release: |
||
3200 | Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total |
||
3201 | Debug Version: 154.9K Code, 62.6K Data, 217.5K Total |
||
3202 | Current Release: |
||
3203 | Non-Debug Version: 77.9K Code, 17.1K Data, 95.0K Total |
||
3204 | Debug Version: 154.7K Code, 63.0K Data, 217.7K Total |
||
3205 | |||
3206 | |||
3207 | 2) iASL Compiler/Disassembler and Tools: |
||
3208 | |||
3209 | Fixed a problem with the implementation of the Switch() operator where the |
||
3210 | temporary variable was declared too close to the actual Switch, instead of |
||
3211 | at method level. This could cause a problem if the Switch() operator is |
||
3212 | within a while loop, causing an error on the second iteration. (BZ 460) |
||
3213 | |||
3214 | Disassembler - fix for error emitted for unknown type for target of scope |
||
3215 | operator. Now, ignore it and continue. |
||
3216 | |||
3217 | Disassembly of an FADT now verifies the input FADT and reports any errors |
||
3218 | found. Fix for proper disassembly of full-sized (ACPI 2.0) FADTs. |
||
3219 | |||
3220 | Disassembly of raw data buffers with byte initialization data now prefixes |
||
3221 | each output line with the current buffer offset. |
||
3222 | |||
3223 | Disassembly of ASF! table now includes all variable-length data fields at |
||
3224 | the end of some of the subtables. |
||
3225 | |||
3226 | The disassembler now emits a comment if a buffer appears to be a |
||
3227 | ResourceTemplate, but cannot be disassembled as such because the EndTag does |
||
3228 | not appear at the very end of the buffer. |
||
3229 | |||
3230 | AcpiExec - Added the "-t" command line option to enable the serialized mode |
||
3231 | of the AML interpreter. |
||
3232 | |||
3233 | ---------------------------------------- |
||
3234 | 31 August 2006. Summary of changes for version 20060831: |
||
3235 | |||
3236 | 1) ACPI CA Core Subsystem: |
||
3237 | |||
3238 | Miscellaneous fixes for the Table Manager: |
||
3239 | - Correctly initialize internal common FADT for all 64-bit "X" fields |
||
3240 | - Fixed a couple table mapping issues during table load |
||
3241 | - Fixed a couple alignment issues for IA64 |
||
3242 | - Initialize input array to zero in AcpiInitializeTables |
||
3243 | - Additional parameter validation for AcpiGetTable, AcpiGetTableHeader, |
||
3244 | AcpiGetTableByIndex |
||
3245 | |||
3246 | Change for GPE support: when a "wake" GPE is received, all wake GPEs are now |
||
3247 | immediately disabled to prevent the waking GPE from firing again and to |
||
3248 | prevent other wake GPEs from interrupting the wake process. |
||
3249 | |||
3250 | Added the AcpiGpeCount global that tracks the number of processed GPEs, to |
||
3251 | be used for debugging systems with a large number of ACPI interrupts. |
||
3252 | |||
3253 | Implemented support for the "DMAR" ACPI table (DMA Redirection Table) in |
||
3254 | both the ACPICA headers and the disassembler. |
||
3255 | |||
3256 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3257 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3258 | debug version of the code includes the debug output trace mechanism and has |
||
3259 | a much larger code and data size. |
||
3260 | |||
3261 | Previous Release: |
||
3262 | Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total |
||
3263 | Debug Version: 154.6K Code, 62.3K Data, 216.9K Total |
||
3264 | Current Release: |
||
3265 | Non-Debug Version: 77.9K Code, 16.7K Data, 94.6K Total |
||
3266 | Debug Version: 154.9K Code, 62.6K Data, 217.5K Total |
||
3267 | |||
3268 | |||
3269 | 2) iASL Compiler/Disassembler and Tools: |
||
3270 | |||
3271 | Disassembler support for the DMAR ACPI table. |
||
3272 | |||
3273 | ---------------------------------------- |
||
3274 | 23 August 2006. Summary of changes for version 20060823: |
||
3275 | |||
3276 | 1) ACPI CA Core Subsystem: |
||
3277 | |||
3278 | The Table Manager component has been completely redesigned and |
||
3279 | reimplemented. The new design is much simpler, and reduces the overall code |
||
3280 | and data size of the kernel-resident ACPICA by approximately 5%. Also, it is |
||
3281 | now possible to obtain the ACPI tables very early during kernel |
||
3282 | initialization, even before dynamic memory management is initialized. |
||
3283 | (Alexey Starikovskiy, Fiodor Suietov, Bob Moore) |
||
3284 | |||
3285 | Obsolete ACPICA interfaces: |
||
3286 | |||
3287 | - AcpiGetFirmwareTable: Use AcpiGetTable instead (works at early kernel init |
||
3288 | time). |
||
3289 | - AcpiLoadTable: Not needed. |
||
3290 | - AcpiUnloadTable: Not needed. |
||
3291 | |||
3292 | New ACPICA interfaces: |
||
3293 | |||
3294 | - AcpiInitializeTables: Must be called before the table manager can be used. |
||
3295 | - AcpiReallocateRootTable: Used to transfer the root table to dynamically |
||
3296 | allocated memory after it becomes available. |
||
3297 | - AcpiGetTableByIndex: Allows the host to easily enumerate all ACPI tables |
||
3298 | in the RSDT/XSDT. |
||
3299 | |||
3300 | Other ACPICA changes: |
||
3301 | |||
3302 | - AcpiGetTableHeader returns the actual mapped table header, not a copy. Use |
||
3303 | AcpiOsUnmapMemory to free this mapping. |
||
3304 | - AcpiGetTable returns the actual mapped table. The mapping is managed |
||
3305 | internally and must not be deleted by the caller. Use of this interface |
||
3306 | causes no additional dynamic memory allocation. |
||
3307 | - AcpiFindRootPointer: Support for physical addressing has been eliminated, |
||
3308 | it appeared to be unused. |
||
3309 | - The interface to AcpiOsMapMemory has changed to be consistent with the |
||
3310 | other allocation interfaces. |
||
3311 | - The interface to AcpiOsGetRootPointer has changed to eliminate unnecessary |
||
3312 | parameters. |
||
3313 | - ACPI_PHYSICAL_ADDRESS is now 32 bits on 32-bit platforms, 64 bits on 64- |
||
3314 | bit platforms. Was previously 64 bits on all platforms. |
||
3315 | - The interface to the ACPI Global Lock acquire/release macros have changed |
||
3316 | slightly since ACPICA no longer keeps a local copy of the FACS with a |
||
3317 | constructed pointer to the actual global lock. |
||
3318 | |||
3319 | Porting to the new table manager: |
||
3320 | |||
3321 | - AcpiInitializeTables: Must be called once, and can be called anytime |
||
3322 | during the OS initialization process. It allows the host to specify an area |
||
3323 | of memory to be used to store the internal version of the RSDT/XSDT (root |
||
3324 | table). This allows the host to access ACPI tables before memory management |
||
3325 | is initialized and running. |
||
3326 | - AcpiReallocateRootTable: Can be called after memory management is running |
||
3327 | to copy the root table to a dynamically allocated array, freeing up the |
||
3328 | scratch memory specified in the call to AcpiInitializeTables. |
||
3329 | - AcpiSubsystemInitialize: This existing interface is independent of the |
||
3330 | Table Manager, and does not have to be called before the Table Manager can |
||
3331 | be used, it only must be called before the rest of ACPICA can be used. |
||
3332 | - ACPI Tables: Some changes have been made to the names and structure of the |
||
3333 | actbl.h and actbl1.h header files and may require changes to existing code. |
||
3334 | For example, bitfields have been completely removed because of their lack of |
||
3335 | portability across C compilers. |
||
3336 | - Update interfaces to the Global Lock acquire/release macros if local |
||
3337 | versions are used. (see acwin.h) |
||
3338 | |||
3339 | Obsolete files: tbconvrt.c, tbget.c, tbgetall.c, tbrsdt.c |
||
3340 | |||
3341 | New files: tbfind.c |
||
3342 | |||
3343 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3344 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3345 | debug version of the code includes the debug output trace mechanism and has |
||
3346 | a much larger code and data size. |
||
3347 | |||
3348 | Previous Release: |
||
3349 | Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total |
||
3350 | Debug Version: 161.0K Code, 65.1K Data, 226.1K Total |
||
3351 | Current Release: |
||
3352 | Non-Debug Version: 77.8K Code, 16.5K Data, 94.3K Total |
||
3353 | Debug Version: 154.6K Code, 62.3K Data, 216.9K Total |
||
3354 | |||
3355 | |||
3356 | 2) iASL Compiler/Disassembler and Tools: |
||
3357 | |||
3358 | No changes for this release. |
||
3359 | |||
3360 | ---------------------------------------- |
||
3361 | 21 July 2006. Summary of changes for version 20060721: |
||
3362 | |||
3363 | 1) ACPI CA Core Subsystem: |
||
3364 | |||
3365 | The full source code for the ASL test suite used to validate the iASL |
||
3366 | compiler and the ACPICA core subsystem is being released with the ACPICA |
||
3367 | source for the first time. The source is contained in a separate package and |
||
3368 | consists of over 1100 files that exercise all ASL/AML operators. The package |
||
3369 | should appear on the Intel/ACPI web site shortly. (Valery Podrezov, Fiodor |
||
3370 | Suietov) |
||
3371 | |||
3372 | Completed a new design and implementation for support of the ACPI Global |
||
3373 | Lock. On the OS side, the global lock is now treated as a standard AML |
||
3374 | mutex. Previously, multiple OS threads could "acquire" the global lock |
||
3375 | simultaneously. However, this could cause the BIOS to be starved out of the |
||
3376 | lock - especially in cases such as the Embedded Controller driver where |
||
3377 | there is a tight coupling between the OS and the BIOS. |
||
3378 | |||
3379 | Implemented an optimization for the ACPI Global Lock interrupt mechanism. |
||
3380 | The Global Lock interrupt handler no longer queues the execution of a |
||
3381 | separate thread to signal the global lock semaphore. Instead, the semaphore |
||
3382 | is signaled directly from the interrupt handler. |
||
3383 | |||
3384 | Implemented support within the AML interpreter for package objects that |
||
3385 | contain a larger AML length (package list length) than the package element |
||
3386 | count. In this case, the length of the package is truncated to match the |
||
3387 | package element count. Some BIOS code apparently modifies the package length |
||
3388 | on the fly, and this change supports this behavior. Provides compatibility |
||
3389 | with the MS AML interpreter. (With assistance from Fiodor Suietov) |
||
3390 | |||
3391 | Implemented a temporary fix for the BankValue parameter of a Bank Field to |
||
3392 | support all constant values, now including the Zero and One opcodes. |
||
3393 | Evaluation of this parameter must eventually be converted to a full TermArg |
||
3394 | evaluation. A not-implemented error is now returned (temporarily) for non- |
||
3395 | constant values for this parameter. |
||
3396 | |||
3397 | Fixed problem reports (Fiodor Suietov) integrated: |
||
3398 | - Fix for premature object deletion after CopyObject on Operation Region (BZ |
||
3399 | 350) |
||
3400 | |||
3401 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3402 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3403 | debug version of the code includes the debug output trace mechanism and has |
||
3404 | a much larger code and data size. |
||
3405 | |||
3406 | Previous Release: |
||
3407 | Non-Debug Version: 80.7K Code, 18.0K Data, 98.7K Total |
||
3408 | Debug Version: 160.9K Code, 65.1K Data, 226.0K Total |
||
3409 | Current Release: |
||
3410 | Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total |
||
3411 | Debug Version: 161.0K Code, 65.1K Data, 226.1K Total |
||
3412 | |||
3413 | |||
3414 | 2) iASL Compiler/Disassembler and Tools: |
||
3415 | |||
3416 | No changes for this release. |
||
3417 | |||
3418 | ---------------------------------------- |
||
3419 | 07 July 2006. Summary of changes for version 20060707: |
||
3420 | |||
3421 | 1) ACPI CA Core Subsystem: |
||
3422 | |||
3423 | Added the ACPI_PACKED_POINTERS_NOT_SUPPORTED macro to support C compilers |
||
3424 | that do not allow the initialization of address pointers within packed |
||
3425 | structures - even though the hardware itself may support misaligned |
||
3426 | transfers. Some of the debug data structures are packed by default to |
||
3427 | minimize size. |
||
3428 | |||
3429 | Added an error message for the case where AcpiOsGetThreadId() returns zero. |
||
3430 | A non-zero value is required by the core ACPICA code to ensure the proper |
||
3431 | operation of AML mutexes and recursive control methods. |
||
3432 | |||
3433 | The DSDT is now the only ACPI table that determines whether the AML |
||
3434 | interpreter is in 32-bit or 64-bit mode. Not really a functional change, but |
||
3435 | the hooks for per-table 32/64 switching have been removed from the code. A |
||
3436 | clarification to the ACPI specification is forthcoming in ACPI 3.0B. |
||
3437 | |||
3438 | Fixed a possible leak of an OwnerID in the error path of |
||
3439 | AcpiTbInitTableDescriptor (tbinstal.c), and migrated all table OwnerID |
||
3440 | deletion to a single place in AcpiTbUninstallTable to correct possible leaks |
||
3441 | when using the AcpiTbDeleteTablesByType interface (with assistance from |
||
3442 | Lance Ortiz.) |
||
3443 | |||
3444 | Fixed a problem with Serialized control methods where the semaphore |
||
3445 | associated with the method could be over-signaled after multiple method |
||
3446 | invocations. |
||
3447 | |||
3448 | Fixed two issues with the locking of the internal namespace data structure. |
||
3449 | Both the Unload() operator and AcpiUnloadTable interface now lock the |
||
3450 | namespace during the namespace deletion associated with the table unload |
||
3451 | (with assistance from Linn Crosetto.) |
||
3452 | |||
3453 | Fixed problem reports (Valery Podrezov) integrated: |
||
3454 | - Eliminate unnecessary memory allocation for CreateXxxxField (BZ 5426) |
||
3455 | |||
3456 | Fixed problem reports (Fiodor Suietov) integrated: |
||
3457 | - Incomplete cleanup branches in AcpiTbGetTableRsdt (BZ 369) |
||
3458 | - On Address Space handler deletion, needless deactivation call (BZ 374) |
||
3459 | - AcpiRemoveAddressSpaceHandler: validate Device handle parameter (BZ 375) |
||
3460 | - Possible memory leak, Notify sub-objects of Processor, Power, ThermalZone |
||
3461 | (BZ 376) |
||
3462 | - AcpiRemoveAddressSpaceHandler: validate Handler parameter (BZ 378) |
||
3463 | - Minimum Length of RSDT should be validated (BZ 379) |
||
3464 | - AcpiRemoveNotifyHandler: return AE_NOT_EXIST if Processor Obj has no |
||
3465 | Handler (BZ (380) |
||
3466 | - AcpiUnloadTable: return AE_NOT_EXIST if no table of specified type loaded |
||
3467 | (BZ 381) |
||
3468 | |||
3469 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3470 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3471 | debug version of the code includes the debug output trace mechanism and has |
||
3472 | a much larger code and data size. |
||
3473 | |||
3474 | Previous Release: |
||
3475 | Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total |
||
3476 | Debug Version: 160.8K Code, 64.8K Data, 225.6K Total |
||
3477 | Current Release: |
||
3478 | Non-Debug Version: 80.7K Code, 17.9K Data, 98.6K Total |
||
3479 | Debug Version: 161.0K Code, 65.1K Data, 226.1K Total |
||
3480 | |||
3481 | |||
3482 | 2) iASL Compiler/Disassembler and Tools: |
||
3483 | |||
3484 | Fixed problem reports: |
||
3485 | Compiler segfault when ASL contains a long (>1024) String declaration (BZ |
||
3486 | 436) |
||
3487 | |||
3488 | ---------------------------------------- |
||
3489 | 23 June 2006. Summary of changes for version 20060623: |
||
3490 | |||
3491 | 1) ACPI CA Core Subsystem: |
||
3492 | |||
3493 | Implemented a new ACPI_SPINLOCK type for the OSL lock interfaces. This |
||
3494 | allows the type to be customized to the host OS for improved efficiency |
||
3495 | (since a spinlock is usually a very small object.) |
||
3496 | |||
3497 | Implemented support for "ignored" bits in the ACPI registers. According to |
||
3498 | the ACPI specification, these bits should be preserved when writing the |
||
3499 | registers via a read/modify/write cycle. There are 3 bits preserved in this |
||
3500 | manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9], and PM1_STATUS[11]. |
||
3501 | |||
3502 | Implemented the initial deployment of new OSL mutex interfaces. Since some |
||
3503 | host operating systems have separate mutex and semaphore objects, this |
||
3504 | feature was requested. The base code now uses mutexes (and the new mutex |
||
3505 | interfaces) wherever a binary semaphore was used previously. However, for |
||
3506 | the current release, the mutex interfaces are defined as macros to map them |
||
3507 | to the existing semaphore interfaces. Therefore, no OSL changes are required |
||
3508 | at this time. (See acpiosxf.h) |
||
3509 | |||
3510 | Fixed several problems with the support for the control method SyncLevel |
||
3511 | parameter. The SyncLevel now works according to the ACPI specification and |
||
3512 | in concert with the Mutex SyncLevel parameter, since the current SyncLevel |
||
3513 | is a property of the executing thread. Mutual exclusion for control methods |
||
3514 | is now implemented with a mutex instead of a semaphore. |
||
3515 | |||
3516 | Fixed three instances of the use of the C shift operator in the bitfield |
||
3517 | support code (exfldio.c) to avoid the use of a shift value larger than the |
||
3518 | target data width. The behavior of C compilers is undefined in this case and |
||
3519 | can cause unpredictable results, and therefore the case must be detected and |
||
3520 | avoided. (Fiodor Suietov) |
||
3521 | |||
3522 | Added an info message whenever an SSDT or OEM table is loaded dynamically |
||
3523 | via the Load() or LoadTable() ASL operators. This should improve debugging |
||
3524 | capability since it will show exactly what tables have been loaded (beyond |
||
3525 | the tables present in the RSDT/XSDT.) |
||
3526 | |||
3527 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3528 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3529 | debug version of the code includes the debug output trace mechanism and has |
||
3530 | a much larger code and data size. |
||
3531 | |||
3532 | Previous Release: |
||
3533 | Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total |
||
3534 | Debug Version: 160.2K Code, 64.7K Data, 224.9K Total |
||
3535 | Current Release: |
||
3536 | Non-Debug Version: 80.5K Code, 17.8K Data, 98.3K Total |
||
3537 | Debug Version: 160.8K Code, 64.8K Data, 225.6K Total |
||
3538 | |||
3539 | |||
3540 | 2) iASL Compiler/Disassembler and Tools: |
||
3541 | |||
3542 | No changes for this release. |
||
3543 | |||
3544 | ---------------------------------------- |
||
3545 | 08 June 2006. Summary of changes for version 20060608: |
||
3546 | |||
3547 | 1) ACPI CA Core Subsystem: |
||
3548 | |||
3549 | Converted the locking mutex used for the ACPI hardware to a spinlock. This |
||
3550 | change should eliminate all problems caused by attempting to acquire a |
||
3551 | semaphore at interrupt level, and it means that all ACPICA external |
||
3552 | interfaces that directly access the ACPI hardware can be safely called from |
||
3553 | interrupt level. OSL code that implements the semaphore interfaces should be |
||
3554 | able to eliminate any workarounds for being called at interrupt level. |
||
3555 | |||
3556 | Fixed a regression introduced in 20060526 where the ACPI device |
||
3557 | initialization could be prematurely aborted with an AE_NOT_FOUND if a device |
||
3558 | did not have an optional _INI method. |
||
3559 | |||
3560 | Fixed an IndexField issue where a write to the Data Register should be |
||
3561 | limited in size to the AccessSize (width) of the IndexField itself. (BZ 433, |
||
3562 | Fiodor Suietov) |
||
3563 | |||
3564 | Fixed problem reports (Valery Podrezov) integrated: |
||
3565 | - Allow store of ThermalZone objects to Debug object (BZ 5369/5370) |
||
3566 | |||
3567 | Fixed problem reports (Fiodor Suietov) integrated: |
||
3568 | - AcpiGetTableHeader doesn't handle multiple instances correctly (BZ 364) |
||
3569 | |||
3570 | Removed four global mutexes that were obsolete and were no longer being |
||
3571 | used. |
||
3572 | |||
3573 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3574 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3575 | debug version of the code includes the debug output trace mechanism and has |
||
3576 | a much larger code and data size. |
||
3577 | |||
3578 | Previous Release: |
||
3579 | Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total |
||
3580 | Debug Version: 160.3K Code, 64.9K Data, 225.2K Total |
||
3581 | Current Release: |
||
3582 | Non-Debug Version: 80.0K Code, 17.6K Data, 97.6K Total |
||
3583 | Debug Version: 160.2K Code, 64.7K Data, 224.9K Total |
||
3584 | |||
3585 | |||
3586 | 2) iASL Compiler/Disassembler and Tools: |
||
3587 | |||
3588 | Fixed a fault when using -g option (get tables from registry) on Windows |
||
3589 | machines. |
||
3590 | |||
3591 | Fixed problem reports integrated: |
||
3592 | - Generate error if CreateField NumBits parameter is zero. (BZ 405) |
||
3593 | - Fault if Offset/Length in Field unit is very large (BZ 432, Fiodor |
||
3594 | Suietov) |
||
3595 | - Global table revision override (-r) is ignored (BZ 413) |
||
3596 | |||
3597 | ---------------------------------------- |
||
3598 | 26 May 2006. Summary of changes for version 20060526: |
||
3599 | |||
3600 | 1) ACPI CA Core Subsystem: |
||
3601 | |||
3602 | Restructured, flattened, and simplified the internal interfaces for |
||
3603 | namespace object evaluation - resulting in smaller code, less CPU stack use, |
||
3604 | and fewer interfaces. (With assistance from Mikhail Kouzmich) |
||
3605 | |||
3606 | Fixed a problem with the CopyObject operator where the first parameter was |
||
3607 | not typed correctly for the parser, interpreter, compiler, and disassembler. |
||
3608 | Caused various errors and unexpected behavior. |
||
3609 | |||
3610 | Fixed a problem where a ShiftLeft or ShiftRight of more than 64 bits |
||
3611 | produced incorrect results with some C compilers. Since the behavior of C |
||
3612 | compilers when the shift value is larger than the datatype width is |
||
3613 | apparently not well defined, the interpreter now detects this condition and |
||
3614 | simply returns zero as expected in all such cases. (BZ 395) |
||
3615 | |||
3616 | Fixed problem reports (Valery Podrezov) integrated: |
||
3617 | - Update String-to-Integer conversion to match ACPI 3.0A spec (BZ 5329) |
||
3618 | - Allow interpreter to handle nested method declarations (BZ 5361) |
||
3619 | |||
3620 | Fixed problem reports (Fiodor Suietov) integrated: |
||
3621 | - AcpiTerminate doesn't free debug memory allocation list objects (BZ 355) |
||
3622 | - After Core Subsystem shutdown, AcpiSubsystemStatus returns AE_OK (BZ 356) |
||
3623 | - AcpiOsUnmapMemory for RSDP can be invoked inconsistently (BZ 357) |
||
3624 | - Resource Manager should return AE_TYPE for non-device objects (BZ 358) |
||
3625 | - Incomplete cleanup branch in AcpiNsEvaluateRelative (BZ 359) |
||
3626 | - Use AcpiOsFree instead of ACPI_FREE in AcpiRsSetSrsMethodData (BZ 360) |
||
3627 | - Incomplete cleanup branch in AcpiPsParseAml (BZ 361) |
||
3628 | - Incomplete cleanup branch in AcpiDsDeleteWalkState (BZ 362) |
||
3629 | - AcpiGetTableHeader returns AE_NO_ACPI_TABLES until DSDT is loaded (BZ 365) |
||
3630 | - Status of the Global Initialization Handler call not used (BZ 366) |
||
3631 | - Incorrect object parameter to Global Initialization Handler (BZ 367) |
||
3632 | |||
3633 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3634 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3635 | debug version of the code includes the debug output trace mechanism and has |
||
3636 | a much larger code and data size. |
||
3637 | |||
3638 | Previous Release: |
||
3639 | Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total |
||
3640 | Debug Version: 160.5K Code, 65.1K Data, 225.6K Total |
||
3641 | Current Release: |
||
3642 | Non-Debug Version: 80.0K Code, 17.7K Data, 97.7K Total |
||
3643 | Debug Version: 160.3K Code, 64.9K Data, 225.2K Total |
||
3644 | |||
3645 | |||
3646 | 2) iASL Compiler/Disassembler and Tools: |
||
3647 | |||
3648 | Modified the parser to allow the names IO, DMA, and IRQ to be used as |
||
3649 | namespace identifiers with no collision with existing resource descriptor |
||
3650 | macro names. This provides compatibility with other ASL compilers and is |
||
3651 | most useful for disassembly/recompilation of existing tables without parse |
||
3652 | errors. (With assistance from Thomas Renninger) |
||
3653 | |||
3654 | Disassembler: fixed an incorrect disassembly problem with the |
||
3655 | DataTableRegion and CopyObject operators. Fixed a possible fault during |
||
3656 | disassembly of some Alias operators. |
||
3657 | |||
3658 | ---------------------------------------- |
||
3659 | 12 May 2006. Summary of changes for version 20060512: |
||
3660 | |||
3661 | 1) ACPI CA Core Subsystem: |
||
3662 | |||
3663 | Replaced the AcpiOsQueueForExecution interface with a new interface named |
||
3664 | AcpiOsExecute. The major difference is that the new interface does not have |
||
3665 | a Priority parameter, this appeared to be useless and has been replaced by a |
||
3666 | Type parameter. The Type tells the host what type of execution is being |
||
3667 | requested, such as global lock handler, notify handler, GPE handler, etc. |
||
3668 | This allows the host to queue and execute the request as appropriate for the |
||
3669 | request type, possibly using different work queues and different priorities |
||
3670 | for the various request types. This enables fixes for multithreading |
||
3671 | deadlock problems such as BZ #5534, and will require changes to all existing |
||
3672 | OS interface layers. (Alexey Starikovskiy and Bob Moore) |
||
3673 | |||
3674 | Fixed a possible memory leak associated with the support for the so-called |
||
3675 | "implicit return" ACPI extension. Reported by FreeBSD, BZ #6514. (Fiodor |
||
3676 | Suietov) |
||
3677 | |||
3678 | Fixed a problem with the Load() operator where a table load from an |
||
3679 | operation region could overwrite an internal table buffer by up to 7 bytes |
||
3680 | and cause alignment faults on IPF systems. (With assistance from Luming Yu) |
||
3681 | |||
3682 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3683 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3684 | debug version of the code includes the debug output trace mechanism and has |
||
3685 | a much larger code and data size. |
||
3686 | |||
3687 | Previous Release: |
||
3688 | Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total |
||
3689 | Debug Version: 160.1K Code, 65.2K Data, 225.3K Total |
||
3690 | Current Release: |
||
3691 | Non-Debug Version: 79.8K Code, 17.7K Data, 97.5K Total |
||
3692 | Debug Version: 160.5K Code, 65.1K Data, 225.6K Total |
||
3693 | |||
3694 | |||
3695 | |||
3696 | 2) iASL Compiler/Disassembler and Tools: |
||
3697 | |||
3698 | Disassembler: Implemented support to cross reference the internal namespace |
||
3699 | and automatically generate ASL External() statements for symbols not defined |
||
3700 | within the current table being disassembled. This will simplify the |
||
3701 | disassembly and recompilation of interdependent tables such as SSDTs since |
||
3702 | these statements will no longer have to be added manually. |
||
3703 | |||
3704 | Disassembler: Implemented experimental support to automatically detect |
||
3705 | invocations of external control methods and generate appropriate External() |
||
3706 | statements. This is problematic because the AML cannot be correctly parsed |
||
3707 | until the number of arguments for each control method is known. Currently, |
||
3708 | standalone method invocations and invocations as the source operand of a |
||
3709 | Store() statement are supported. |
||
3710 | |||
3711 | Disassembler: Implemented support for the ASL pseudo-operators LNotEqual, |
||
3712 | LLessEqual, and LGreaterEqual. Previously disassembled as LNot(LEqual()), |
||
3713 | LNot(LGreater()), and LNot(LLess()), this makes the disassembled ASL code |
||
3714 | more readable and likely closer to the original ASL source. |
||
3715 | |||
3716 | ---------------------------------------- |
||
3717 | 21 April 2006. Summary of changes for version 20060421: |
||
3718 | |||
3719 | 1) ACPI CA Core Subsystem: |
||
3720 | |||
3721 | Removed a device initialization optimization introduced in 20051216 where |
||
3722 | the _STA method was not run unless an _INI was also present for the same |
||
3723 | device. This optimization could cause problems because it could allow _INI |
||
3724 | methods to be run within a not-present device subtree. (If a not-present |
||
3725 | device had no _INI, _STA would not be run, the not-present status would not |
||
3726 | be discovered, and the children of the device would be incorrectly |
||
3727 | traversed.) |
||
3728 | |||
3729 | Implemented a new _STA optimization where namespace subtrees that do not |
||
3730 | contain _INI are identified and ignored during device initialization. |
||
3731 | Selectively running _STA can significantly improve boot time on large |
||
3732 | machines (with assistance from Len Brown.) |
||
3733 | |||
3734 | Implemented support for the device initialization case where the returned |
||
3735 | _STA flags indicate a device not-present but functioning. In this case, _INI |
||
3736 | is not run, but the device children are examined for presence, as per the |
||
3737 | ACPI specification. |
||
3738 | |||
3739 | Implemented an additional change to the IndexField support in order to |
||
3740 | conform to MS behavior. The value written to the Index Register is not |
||
3741 | simply a byte offset, it is a byte offset in units of the access width of |
||
3742 | the parent Index Field. (Fiodor Suietov) |
||
3743 | |||
3744 | Defined and deployed a new OSL interface, AcpiOsValidateAddress. This |
||
3745 | interface is called during the creation of all AML operation regions, and |
||
3746 | allows the host OS to exert control over what addresses it will allow the |
||
3747 | AML code to access. Operation Regions whose addresses are disallowed will |
||
3748 | cause a runtime exception when they are actually accessed (will not affect |
||
3749 | or abort table loading.) See oswinxf or osunixxf for an example |
||
3750 | implementation. |
||
3751 | |||
3752 | Defined and deployed a new OSL interface, AcpiOsValidateInterface. This |
||
3753 | interface allows the host OS to match the various "optional" |
||
3754 | interface/behavior strings for the _OSI predefined control method as |
||
3755 | appropriate (with assistance from Bjorn Helgaas.) See oswinxf or osunixxf |
||
3756 | for an example implementation. |
||
3757 | |||
3758 | Restructured and corrected various problems in the exception handling code |
||
3759 | paths within DsCallControlMethod and DsTerminateControlMethod in dsmethod |
||
3760 | (with assistance from Takayoshi Kochi.) |
||
3761 | |||
3762 | Modified the Linux source converter to ignore quoted string literals while |
||
3763 | converting identifiers from mixed to lower case. This will correct problems |
||
3764 | with the disassembler and other areas where such strings must not be |
||
3765 | modified. |
||
3766 | |||
3767 | The ACPI_FUNCTION_* macros no longer require quotes around the function |
||
3768 | name. This allows the Linux source converter to convert the names, now that |
||
3769 | the converter ignores quoted strings. |
||
3770 | |||
3771 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3772 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3773 | debug version of the code includes the debug output trace mechanism and has |
||
3774 | a much larger code and data size. |
||
3775 | |||
3776 | Previous Release: |
||
3777 | |||
3778 | Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total |
||
3779 | Debug Version: 158.9K Code, 64.9K Data, 223.8K Total |
||
3780 | Current Release: |
||
3781 | Non-Debug Version: 79.7K Code, 17.7K Data, 97.4K Total |
||
3782 | Debug Version: 160.1K Code, 65.2K Data, 225.3K Total |
||
3783 | |||
3784 | |||
3785 | 2) iASL Compiler/Disassembler and Tools: |
||
3786 | |||
3787 | Implemented 3 new warnings for iASL, and implemented multiple warning levels |
||
3788 | (w2 flag). |
||
3789 | |||
3790 | 1) Ignored timeouts: If the TimeoutValue parameter to Wait or Acquire is not |
||
3791 | WAIT_FOREVER (0xFFFF) and the code does not examine the return value to |
||
3792 | check for the possible timeout, a warning is issued. |
||
3793 | |||
3794 | 2) Useless operators: If an ASL operator does not specify an optional target |
||
3795 | operand and it also does not use the function return value from the |
||
3796 | operator, a warning is issued since the operator effectively does nothing. |
||
3797 | |||
3798 | 3) Unreferenced objects: If a namespace object is created, but never |
||
3799 | referenced, a warning is issued. This is a warning level 2 since there are |
||
3800 | cases where this is ok, such as when a secondary table is loaded that uses |
||
3801 | the unreferenced objects. Even so, care is taken to only flag objects that |
||
3802 | don't look like they will ever be used. For example, the reserved methods |
||
3803 | (starting with an underscore) are usually not referenced because it is |
||
3804 | expected that the OS will invoke them. |
||
3805 | |||
3806 | ---------------------------------------- |
||
3807 | 31 March 2006. Summary of changes for version 20060331: |
||
3808 | |||
3809 | 1) ACPI CA Core Subsystem: |
||
3810 | |||
3811 | Implemented header file support for the following additional ACPI tables: |
||
3812 | ASF!, BOOT, CPEP, DBGP, MCFG, SPCR, SPMI, TCPA, and WDRT. With this support, |
||
3813 | all current and known ACPI tables are now defined in the ACPICA headers and |
||
3814 | are available for use by device drivers and other software. |
||
3815 | |||
3816 | Implemented support to allow tables that contain ACPI names with invalid |
||
3817 | characters to be loaded. Previously, this would cause the table load to |
||
3818 | fail, but since there are several known cases of such tables on existing |
||
3819 | machines, this change was made to enable ACPI support for them. Also, this |
||
3820 | matches the behavior of the Microsoft ACPI implementation. |
||
3821 | |||
3822 | Fixed a couple regressions introduced during the memory optimization in the |
||
3823 | 20060317 release. The namespace node definition required additional |
||
3824 | reorganization and an internal datatype that had been changed to 8-bit was |
||
3825 | restored to 32-bit. (Valery Podrezov) |
||
3826 | |||
3827 | Fixed a problem where a null pointer passed to AcpiUtDeleteGenericState |
||
3828 | could be passed through to AcpiOsReleaseObject which is unexpected. Such |
||
3829 | null pointers are now trapped and ignored, matching the behavior of the |
||
3830 | previous implementation before the deployment of AcpiOsReleaseObject. |
||
3831 | (Valery Podrezov, Fiodor Suietov) |
||
3832 | |||
3833 | Fixed a memory mapping leak during the deletion of a SystemMemory operation |
||
3834 | region where a cached memory mapping was not deleted. This became a |
||
3835 | noticeable problem for operation regions that are defined within frequently |
||
3836 | used control methods. (Dana Meyers) |
||
3837 | |||
3838 | Reorganized the ACPI table header files into two main files: one for the |
||
3839 | ACPI tables consumed by the ACPICA core, and another for the miscellaneous |
||
3840 | ACPI tables that are consumed by the drivers and other software. The various |
||
3841 | FADT definitions were merged into one common section and three different |
||
3842 | tables (ACPI 1.0, 1.0+, and 2.0) |
||
3843 | |||
3844 | Example Code and Data Size: These are the sizes for the OS-independent |
||
3845 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. The |
||
3846 | debug version of the code includes the debug output trace mechanism and has |
||
3847 | a much larger code and data size. |
||
3848 | |||
3849 | Previous Release: |
||
3850 | Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total |
||
3851 | Debug Version: 158.7K Code, 64.8K Data, 223.5K Total |
||
3852 | Current Release: |
||
3853 | Non-Debug Version: 81.1K Code, 17.7K Data, 98.8K Total |
||
3854 | Debug Version: 158.9K Code, 64.9K Data, 223.8K Total |
||
3855 | |||
3856 | |||
3857 | 2) iASL Compiler/Disassembler and Tools: |
||
3858 | |||
3859 | Disassembler: Implemented support to decode and format all non-AML ACPI |
||
3860 | tables (tables other than DSDTs and SSDTs.) This includes the new tables |
||
3861 | added to the ACPICA headers, therefore all current and known ACPI tables are |
||
3862 | supported. |
||
3863 | |||
3864 | Disassembler: The change to allow ACPI names with invalid characters also |
||
3865 | enables the disassembly of such tables. Invalid characters within names are |
||
3866 | changed to '*' to make the name printable; the iASL compiler will still |
||
3867 | generate an error for such names, however, since this is an invalid ACPI |
||
3868 | character. |
||
3869 | |||
3870 | Implemented an option for AcpiXtract (-a) to extract all tables found in the |
||
3871 | input file. The default invocation extracts only the DSDTs and SSDTs. |
||
3872 | |||
3873 | Fixed a couple of gcc generation issues for iASL and AcpiExec and added a |
||
3874 | makefile for the AcpiXtract utility. |
||
3875 | |||
3876 | ---------------------------------------- |
||
3877 | 17 March 2006. Summary of changes for version 20060317: |
||
3878 | |||
3879 | 1) ACPI CA Core Subsystem: |
||
3880 | |||
3881 | Implemented the use of a cache object for all internal namespace nodes. |
||
3882 | Since there are about 1000 static nodes in a typical system, this will |
||
3883 | decrease memory use for cache implementations that minimize per-allocation |
||
3884 | overhead (such as a slab allocator.) |
||
3885 | |||
3886 | Removed the reference count mechanism for internal namespace nodes, since it |
||
3887 | was deemed unnecessary. This reduces the size of each namespace node by |
||
3888 | about 5%-10% on all platforms. Nodes are now 20 bytes for the 32-bit case, |
||
3889 | and 32 bytes for the 64-bit case. |
||
3890 | |||
3891 | Optimized several internal data structures to reduce object size on 64-bit |
||
3892 | platforms by packing data within the 64-bit alignment. This includes the |
||
3893 | frequently used ACPI_OPERAND_OBJECT, of which there can be ~1000 static |
||
3894 | instances corresponding to the namespace objects. |
||
3895 | |||
3896 | Added two new strings for the predefined _OSI method: "Windows 2001.1 SP1" |
||
3897 | and "Windows 2006". |
||
3898 | |||
3899 | Split the allocation tracking mechanism out to a separate file, from |
||
3900 | utalloc.c to uttrack.c. This mechanism appears to be only useful for |
||
3901 | application-level code. Kernels may wish to not include uttrack.c in |
||
3902 | distributions. |
||
3903 | |||
3904 | Removed all remnants of the obsolete ACPI_REPORT_* macros and the associated |
||
3905 | code. (These macros have been replaced by the ACPI_ERROR and ACPI_WARNING |
||
3906 | macros.) |
||
3907 | |||
3908 | Code and Data Size: These are the sizes for the acpica.lib produced by the |
||
3909 | Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI |
||
3910 | driver or OSPM code. The debug version of the code includes the debug output |
||
3911 | trace mechanism and has a much larger code and data size. Note that these |
||
3912 | values will vary depending on the efficiency of the compiler and the |
||
3913 | compiler options used during generation. |
||
3914 | |||
3915 | Previous Release: |
||
3916 | Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total |
||
3917 | Debug Version: 161.6K Code, 65.7K Data, 227.3K Total |
||
3918 | Current Release: |
||
3919 | Non-Debug Version: 80.9K Code, 17.7K Data, 98.6K Total |
||
3920 | Debug Version: 158.7K Code, 64.8K Data, 223.5K Total |
||
3921 | |||
3922 | |||
3923 | 2) iASL Compiler/Disassembler and Tools: |
||
3924 | |||
3925 | Implemented an ANSI C version of the acpixtract utility. This version will |
||
3926 | automatically extract the DSDT and all SSDTs from the input acpidump text |
||
3927 | file and dump the binary output to separate files. It can also display a |
||
3928 | summary of the input file including the headers for each table found and |
||
3929 | will extract any single ACPI table, with any signature. (See |
||
3930 | source/tools/acpixtract) |
||
3931 | |||
3932 | ---------------------------------------- |
||
3933 | 10 March 2006. Summary of changes for version 20060310: |
||
3934 | |||
3935 | 1) ACPI CA Core Subsystem: |
||
3936 | |||
3937 | Tagged all external interfaces to the subsystem with the new |
||
3938 | ACPI_EXPORT_SYMBOL macro. This macro can be defined as necessary to assist |
||
3939 | kernel integration. For Linux, the macro resolves to the EXPORT_SYMBOL |
||
3940 | macro. The default definition is NULL. |
||
3941 | |||
3942 | Added the ACPI_THREAD_ID type for the return value from AcpiOsGetThreadId. |
||
3943 | This allows the host to define this as necessary to simplify kernel |
||
3944 | integration. The default definition is ACPI_NATIVE_UINT. |
||
3945 | |||
3946 | Fixed two interpreter problems related to error processing, the deletion of |
||
3947 | objects, and placing invalid pointers onto the internal operator result |
||
3948 | stack. BZ 6028, 6151 (Valery Podrezov) |
||
3949 | |||
3950 | Increased the reference count threshold where a warning is emitted for large |
||
3951 | reference counts in order to eliminate unnecessary warnings on systems with |
||
3952 | large namespaces (especially 64-bit.) Increased the value from 0x400 to |
||
3953 | 0x800. |
||
3954 | |||
3955 | Due to universal disagreement as to the meaning of the 'c' in the calloc() |
||
3956 | function, the ACPI_MEM_CALLOCATE macro has been renamed to |
||
3957 | ACPI_ALLOCATE_ZEROED so that the purpose of the interface is 'clear'. |
||
3958 | ACPI_MEM_ALLOCATE and ACPI_MEM_FREE are renamed to ACPI_ALLOCATE and |
||
3959 | ACPI_FREE. |
||
3960 | |||
3961 | Code and Data Size: These are the sizes for the acpica.lib produced by the |
||
3962 | Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI |
||
3963 | driver or OSPM code. The debug version of the code includes the debug output |
||
3964 | trace mechanism and has a much larger code and data size. Note that these |
||
3965 | values will vary depending on the efficiency of the compiler and the |
||
3966 | compiler options used during generation. |
||
3967 | |||
3968 | Previous Release: |
||
3969 | Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total |
||
3970 | Debug Version: 161.4K Code, 65.7K Data, 227.1K Total |
||
3971 | Current Release: |
||
3972 | Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total |
||
3973 | Debug Version: 161.6K Code, 65.7K Data, 227.3K Total |
||
3974 | |||
3975 | |||
3976 | 2) iASL Compiler/Disassembler: |
||
3977 | |||
3978 | Disassembler: implemented support for symbolic resource descriptor |
||
3979 | references. If a CreateXxxxField operator references a fixed offset within a |
||
3980 | resource descriptor, a name is assigned to the descriptor and the offset is |
||
3981 | translated to the appropriate resource tag and pathname. The addition of |
||
3982 | this support brings the disassembled code very close to the original ASL |
||
3983 | source code and helps eliminate run-time errors when the disassembled code |
||
3984 | is modified (and recompiled) in such a way as to invalidate the original |
||
3985 | fixed offsets. |
||
3986 | |||
3987 | Implemented support for a Descriptor Name as the last parameter to the ASL |
||
3988 | Register() macro. This parameter was inadvertently left out of the ACPI |
||
3989 | specification, and will be added for ACPI 3.0b. |
||
3990 | |||
3991 | Fixed a problem where the use of the "_OSI" string (versus the full path |
||
3992 | "\_OSI") caused an internal compiler error. ("No back ptr to op") |
||
3993 | |||
3994 | Fixed a problem with the error message that occurs when an invalid string is |
||
3995 | used for a _HID object (such as one with an embedded asterisk: "*PNP010A".) |
||
3996 | The correct message is now displayed. |
||
3997 | |||
3998 | ---------------------------------------- |
||
3999 | 17 February 2006. Summary of changes for version 20060217: |
||
4000 | |||
4001 | 1) ACPI CA Core Subsystem: |
||
4002 | |||
4003 | Implemented a change to the IndexField support to match the behavior of the |
||
4004 | Microsoft AML interpreter. The value written to the Index register is now a |
||
4005 | byte offset, no longer an index based upon the width of the Data register. |
||
4006 | This should fix IndexField problems seen on some machines where the Data |
||
4007 | register is not exactly one byte wide. The ACPI specification will be |
||
4008 | clarified on this point. |
||
4009 | |||
4010 | Fixed a problem where several resource descriptor types could overrun the |
||
4011 | internal descriptor buffer due to size miscalculation: VendorShort, |
||
4012 | VendorLong, and Interrupt. This was noticed on IA64 machines, but could |
||
4013 | affect all platforms. |
||
4014 | |||
4015 | Fixed a problem where individual resource descriptors were misaligned within |
||
4016 | the internal buffer, causing alignment faults on IA64 platforms. |
||
4017 | |||
4018 | Code and Data Size: These are the sizes for the acpica.lib produced by the |
||
4019 | Microsoft Visual C++ 6.0 32-bit compiler. The values do not include any ACPI |
||
4020 | driver or OSPM code. The debug version of the code includes the debug output |
||
4021 | trace mechanism and has a much larger code and data size. Note that these |
||
4022 | values will vary depending on the efficiency of the compiler and the |
||
4023 | compiler options used during generation. |
||
4024 | |||
4025 | Previous Release: |
||
4026 | Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total |
||
4027 | Debug Version: 161.3K Code, 65.6K Data, 226.9K Total |
||
4028 | Current Release: |
||
4029 | Non-Debug Version: 81.0K Code, 17.8K Data, 98.8K Total |
||
4030 | Debug Version: 161.4K Code, 65.7K Data, 227.1K Total |
||
4031 | |||
4032 | |||
4033 | 2) iASL Compiler/Disassembler: |
||
4034 | |||
4035 | Implemented support for new reserved names: _WDG and _WED are Microsoft |
||
4036 | extensions for Windows Instrumentation Management, _TDL is a new ACPI- |
||
4037 | defined method (Throttling Depth Limit.) |
||
4038 | |||
4039 | Fixed a problem where a zero-length VendorShort or VendorLong resource |
||
4040 | descriptor was incorrectly emitted as a descriptor of length one. |
||
4041 | |||
4042 | ---------------------------------------- |
||
4043 | 10 February 2006. Summary of changes for version 20060210: |
||
4044 | |||
4045 | 1) ACPI CA Core Subsystem: |
||
4046 | |||
4047 | Removed a couple of extraneous ACPI_ERROR messages that appeared during |
||
4048 | normal execution. These became apparent after the conversion from |
||
4049 | ACPI_DEBUG_PRINT. |
||
4050 | |||
4051 | Fixed a problem where the CreateField operator could hang if the BitIndex or |
||
4052 | NumBits parameter referred to a named object. (Valery Podrezov, BZ 5359) |
||
4053 | |||
4054 | Fixed a problem where a DeRefOf operation on a buffer object incorrectly |
||
4055 | failed with an exception. This also fixes a couple of related RefOf and |
||
4056 | DeRefOf issues. (Valery Podrezov, BZ 5360/5392/5387) |
||
4057 | |||
4058 | Fixed a problem where the AE_BUFFER_LIMIT exception was returned instead of |
||
4059 | AE_STRING_LIMIT on an out-of-bounds Index() operation. (Valery Podrezov, BZ |
||
4060 | 5480) |
||
4061 | |||
4062 | Implemented a memory cleanup at the end of the execution of each iteration |
||
4063 | of an AML While() loop, preventing the accumulation of outstanding objects. |
||
4064 | (Valery Podrezov, BZ 5427) |
||
4065 | |||
4066 | Eliminated a chunk of duplicate code in the object resolution code. (Valery |
||
4067 | Podrezov, BZ 5336) |
||
4068 | |||
4069 | Fixed several warnings during the 64-bit code generation. |
||
4070 | |||
4071 | The AcpiSrc source code conversion tool now inserts one line of whitespace |
||
4072 | after an if() statement that is followed immediately by a comment, improving |
||
4073 | readability of the Linux code. |
||
4074 | |||
4075 | Code and Data Size: The current and previous library sizes for the core |
||
4076 | subsystem are shown below. These are the code and data sizes for the |
||
4077 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4078 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4079 | code includes the debug output trace mechanism and has a much larger code |
||
4080 | and data size. Note that these values will vary depending on the efficiency |
||
4081 | of the compiler and the compiler options used during generation. |
||
4082 | |||
4083 | Previous Release: |
||
4084 | Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total |
||
4085 | Debug Version: 161.3K Code, 65.7K Data, 227.0K Total |
||
4086 | Current Release: |
||
4087 | Non-Debug Version: 81.1K Code, 17.8K Data, 98.9K Total |
||
4088 | Debug Version: 161.3K Code, 65.6K Data, 226.9K Total |
||
4089 | |||
4090 | |||
4091 | 2) iASL Compiler/Disassembler: |
||
4092 | |||
4093 | Fixed a problem with the disassembly of a BankField operator with a complex |
||
4094 | expression for the BankValue parameter. |
||
4095 | |||
4096 | ---------------------------------------- |
||
4097 | 27 January 2006. Summary of changes for version 20060127: |
||
4098 | |||
4099 | 1) ACPI CA Core Subsystem: |
||
4100 | |||
4101 | Implemented support in the Resource Manager to allow unresolved namestring |
||
4102 | references within resource package objects for the _PRT method. This support |
||
4103 | is in addition to the previously implemented unresolved reference support |
||
4104 | within the AML parser. If the interpreter slack mode is enabled, these |
||
4105 | unresolved references will be passed through to the caller as a NULL package |
||
4106 | entry. |
||
4107 | |||
4108 | Implemented and deployed new macros and functions for error and warning |
||
4109 | messages across the subsystem. These macros are simpler and generate less |
||
4110 | code than their predecessors. The new macros ACPI_ERROR, ACPI_EXCEPTION, |
||
4111 | ACPI_WARNING, and ACPI_INFO replace the ACPI_REPORT_* macros. The older |
||
4112 | macros remain defined to allow ACPI drivers time to migrate to the new |
||
4113 | macros. |
||
4114 | |||
4115 | Implemented the ACPI_CPU_FLAGS type to simplify host OS integration of the |
||
4116 | Acquire/Release Lock OSL interfaces. |
||
4117 | |||
4118 | Fixed a problem where Alias ASL operators are sometimes not correctly |
||
4119 | resolved, in both the interpreter and the iASL compiler. |
||
4120 | |||
4121 | Fixed several problems with the implementation of the ConcatenateResTemplate |
||
4122 | ASL operator. As per the ACPI specification, zero length buffers are now |
||
4123 | treated as a single EndTag. One-length buffers always cause a fatal |
||
4124 | exception. Non-zero length buffers that do not end with a full 2-byte EndTag |
||
4125 | cause a fatal exception. |
||
4126 | |||
4127 | Fixed a possible structure overwrite in the AcpiGetObjectInfo external |
||
4128 | interface. (With assistance from Thomas Renninger) |
||
4129 | |||
4130 | Code and Data Size: The current and previous library sizes for the core |
||
4131 | subsystem are shown below. These are the code and data sizes for the |
||
4132 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4133 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4134 | code includes the debug output trace mechanism and has a much larger code |
||
4135 | and data size. Note that these values will vary depending on the efficiency |
||
4136 | of the compiler and the compiler options used during generation. |
||
4137 | |||
4138 | Previous Release: |
||
4139 | Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total |
||
4140 | Debug Version: 163.2K Code, 66.2K Data, 229.4K Total |
||
4141 | Current Release: |
||
4142 | Non-Debug Version: 81.0K Code, 17.9K Data, 98.9K Total |
||
4143 | Debug Version: 161.3K Code, 65.7K Data, 227.0K Total |
||
4144 | |||
4145 | |||
4146 | 2) iASL Compiler/Disassembler: |
||
4147 | |||
4148 | Fixed an internal error that was generated for any forward references to ASL |
||
4149 | Alias objects. |
||
4150 | |||
4151 | ---------------------------------------- |
||
4152 | 13 January 2006. Summary of changes for version 20060113: |
||
4153 | |||
4154 | 1) ACPI CA Core Subsystem: |
||
4155 | |||
4156 | Added 2006 copyright to all module headers and signons. This affects |
||
4157 | virtually every file in the ACPICA core subsystem, iASL compiler, and the |
||
4158 | utilities. |
||
4159 | |||
4160 | Enhanced the ACPICA error reporting in order to simplify user migration to |
||
4161 | the non-debug version of ACPICA. Replaced all instances of the |
||
4162 | ACPI_DEBUG_PRINT macro invoked at the ACPI_DB_ERROR and ACPI_DB_WARN debug |
||
4163 | levels with the ACPI_REPORT_ERROR and ACPI_REPORT_WARNING macros, |
||
4164 | respectively. This preserves all error and warning messages in the non-debug |
||
4165 | version of the ACPICA code (this has been referred to as the "debug lite" |
||
4166 | option.) Over 200 cases were converted to create a total of over 380 |
||
4167 | error/warning messages across the ACPICA code. This increases the code and |
||
4168 | data size of the default non-debug version of the code somewhat (about 13K), |
||
4169 | but all error/warning reporting may be disabled if desired (and code |
||
4170 | eliminated) by specifying the ACPI_NO_ERROR_MESSAGES compile-time |
||
4171 | configuration option. The size of the debug version of ACPICA remains about |
||
4172 | the same. |
||
4173 | |||
4174 | Fixed a memory leak within the AML Debugger "Set" command. One object was |
||
4175 | not properly deleted for every successful invocation of the command. |
||
4176 | |||
4177 | Code and Data Size: The current and previous library sizes for the core |
||
4178 | subsystem are shown below. These are the code and data sizes for the |
||
4179 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4180 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4181 | code includes the debug output trace mechanism and has a much larger code |
||
4182 | and data size. Note that these values will vary depending on the efficiency |
||
4183 | of the compiler and the compiler options used during generation. |
||
4184 | |||
4185 | Previous Release: |
||
4186 | Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total |
||
4187 | Debug Version: 163.7K Code, 67.5K Data, 231.2K Total |
||
4188 | Current Release: |
||
4189 | Non-Debug Version: 83.1K Code, 18.4K Data, 101.5K Total |
||
4190 | Debug Version: 163.2K Code, 66.2K Data, 229.4K Total |
||
4191 | |||
4192 | |||
4193 | 2) iASL Compiler/Disassembler: |
||
4194 | |||
4195 | The compiler now officially supports the ACPI 3.0a specification that was |
||
4196 | released on December 30, 2005. (Specification is available at www.acpi.info) |
||
4197 | |||
4198 | ---------------------------------------- |
||
4199 | 16 December 2005. Summary of changes for version 20051216: |
||
4200 | |||
4201 | 1) ACPI CA Core Subsystem: |
||
4202 | |||
4203 | Implemented optional support to allow unresolved names within ASL Package |
||
4204 | objects. A null object is inserted in the package when a named reference |
||
4205 | cannot be located in the current namespace. Enabled via the interpreter |
||
4206 | slack flag, this should eliminate AE_NOT_FOUND exceptions seen on machines |
||
4207 | that contain such code. |
||
4208 | |||
4209 | Implemented an optimization to the initialization sequence that can improve |
||
4210 | boot time. During ACPI device initialization, the _STA method is now run if |
||
4211 | and only if the _INI method exists. The _STA method is used to determine if |
||
4212 | the device is present; An _INI can only be run if _STA returns present, but |
||
4213 | it is a waste of time to run the _STA method if the _INI does not exist. |
||
4214 | (Prototype and assistance from Dong Wei) |
||
4215 | |||
4216 | Implemented use of the C99 uintptr_t for the pointer casting macros if it is |
||
4217 | available in the current compiler. Otherwise, the default (void *) cast is |
||
4218 | used as before. |
||
4219 | |||
4220 | Fixed some possible memory leaks found within the execution path of the |
||
4221 | Break, Continue, If, and CreateField operators. (Valery Podrezov) |
||
4222 | |||
4223 | Fixed a problem introduced in the 20051202 release where an exception is |
||
4224 | generated during method execution if a control method attempts to declare |
||
4225 | another method. |
||
4226 | |||
4227 | Moved resource descriptor string constants that are used by both the AML |
||
4228 | disassembler and AML debugger to the common utilities directory so that |
||
4229 | these components are independent. |
||
4230 | |||
4231 | Implemented support in the AcpiExec utility (-e switch) to globally ignore |
||
4232 | exceptions during control method execution (method is not aborted.) |
||
4233 | |||
4234 | Added the rsinfo.c source file to the AcpiExec makefile for Linux/Unix |
||
4235 | generation. |
||
4236 | |||
4237 | Code and Data Size: The current and previous library sizes for the core |
||
4238 | subsystem are shown below. These are the code and data sizes for the |
||
4239 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4240 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4241 | code includes the debug output trace mechanism and has a much larger code |
||
4242 | and data size. Note that these values will vary depending on the efficiency |
||
4243 | of the compiler and the compiler options used during generation. |
||
4244 | |||
4245 | Previous Release: |
||
4246 | Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total |
||
4247 | Debug Version: 163.2K Code, 67.4K Data, 230.6K Total |
||
4248 | Current Release: |
||
4249 | Non-Debug Version: 76.6K Code, 12.3K Data, 88.9K Total |
||
4250 | Debug Version: 163.7K Code, 67.5K Data, 231.2K Total |
||
4251 | |||
4252 | |||
4253 | 2) iASL Compiler/Disassembler: |
||
4254 | |||
4255 | Fixed a problem where a CPU stack overflow fault could occur if a recursive |
||
4256 | method call was made from within a Return statement. |
||
4257 | |||
4258 | ---------------------------------------- |
||
4259 | 02 December 2005. Summary of changes for version 20051202: |
||
4260 | |||
4261 | 1) ACPI CA Core Subsystem: |
||
4262 | |||
4263 | Modified the parsing of control methods to no longer create namespace |
||
4264 | objects during the first pass of the parse. Objects are now created only |
||
4265 | during the execute phase, at the moment the namespace creation operator is |
||
4266 | encountered in the AML (Name, OperationRegion, CreateByteField, etc.) This |
||
4267 | should eliminate ALREADY_EXISTS exceptions seen on some machines where |
||
4268 | reentrant control methods are protected by an AML mutex. The mutex will now |
||
4269 | correctly block multiple threads from attempting to create the same object |
||
4270 | more than once. |
||
4271 | |||
4272 | Increased the number of available Owner Ids for namespace object tracking |
||
4273 | from 32 to 255. This should eliminate the OWNER_ID_LIMIT exceptions seen on |
||
4274 | some machines with a large number of ACPI tables (either static or dynamic). |
||
4275 | |||
4276 | Fixed a problem with the AcpiExec utility where a fault could occur when the |
||
4277 | -b switch (batch mode) is used. |
||
4278 | |||
4279 | Enhanced the namespace dump routine to output the owner ID for each |
||
4280 | namespace object. |
||
4281 | |||
4282 | Code and Data Size: The current and previous library sizes for the core |
||
4283 | subsystem are shown below. These are the code and data sizes for the |
||
4284 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4285 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4286 | code includes the debug output trace mechanism and has a much larger code |
||
4287 | and data size. Note that these values will vary depending on the efficiency |
||
4288 | of the compiler and the compiler options used during generation. |
||
4289 | |||
4290 | Previous Release: |
||
4291 | Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total |
||
4292 | Debug Version: 163.0K Code, 67.4K Data, 230.4K Total |
||
4293 | Current Release: |
||
4294 | Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total |
||
4295 | Debug Version: 163.2K Code, 67.4K Data, 230.6K Total |
||
4296 | |||
4297 | |||
4298 | 2) iASL Compiler/Disassembler: |
||
4299 | |||
4300 | Fixed a parse error during compilation of certain Switch/Case constructs. To |
||
4301 | simplify the parse, the grammar now allows for multiple Default statements |
||
4302 | and this error is now detected and flagged during the analysis phase. |
||
4303 | |||
4304 | Disassembler: The disassembly now includes the contents of the original |
||
4305 | table header within a comment at the start of the file. This includes the |
||
4306 | name and version of the original ASL compiler. |
||
4307 | |||
4308 | ---------------------------------------- |
||
4309 | 17 November 2005. Summary of changes for version 20051117: |
||
4310 | |||
4311 | 1) ACPI CA Core Subsystem: |
||
4312 | |||
4313 | Fixed a problem in the AML parser where the method thread count could be |
||
4314 | decremented below zero if any errors occurred during the method parse phase. |
||
4315 | This should eliminate AE_AML_METHOD_LIMIT exceptions seen on some machines. |
||
4316 | This also fixed a related regression with the mechanism that detects and |
||
4317 | corrects methods that cannot properly handle reentrancy (related to the |
||
4318 | deployment of the new OwnerId mechanism.) |
||
4319 | |||
4320 | Eliminated the pre-parsing of control methods (to detect errors) during |
||
4321 | table load. Related to the problem above, this was causing unwind issues if |
||
4322 | any errors occurred during the parse, and it seemed to be overkill. A table |
||
4323 | load should not be aborted if there are problems with any single control |
||
4324 | method, thus rendering this feature rather pointless. |
||
4325 | |||
4326 | Fixed a problem with the new table-driven resource manager where an internal |
||
4327 | buffer overflow could occur for small resource templates. |
||
4328 | |||
4329 | Implemented a new external interface, AcpiGetVendorResource. This interface |
||
4330 | will find and return a vendor-defined resource descriptor within a _CRS or |
||
4331 | _PRS method via an ACPI 3.0 UUID match. With assistance from Bjorn Helgaas. |
||
4332 | |||
4333 | Removed the length limit (200) on string objects as per the upcoming ACPI |
||
4334 | 3.0A specification. This affects the following areas of the interpreter: 1) |
||
4335 | any implicit conversion of a Buffer to a String, 2) a String object result |
||
4336 | of the ASL Concatentate operator, 3) the String object result of the ASL |
||
4337 | ToString operator. |
||
4338 | |||
4339 | Fixed a problem in the Windows OS interface layer (OSL) where a WAIT_FOREVER |
||
4340 | on a semaphore object would incorrectly timeout. This allows the |
||
4341 | multithreading features of the AcpiExec utility to work properly under |
||
4342 | Windows. |
||
4343 | |||
4344 | Updated the Linux makefiles for the iASL compiler and AcpiExec to include |
||
4345 | the recently added file named "utresrc.c". |
||
4346 | |||
4347 | Code and Data Size: The current and previous library sizes for the core |
||
4348 | subsystem are shown below. These are the code and data sizes for the |
||
4349 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4350 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4351 | code includes the debug output trace mechanism and has a much larger code |
||
4352 | and data size. Note that these values will vary depending on the efficiency |
||
4353 | of the compiler and the compiler options used during generation. |
||
4354 | |||
4355 | Previous Release: |
||
4356 | Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total |
||
4357 | Debug Version: 163.0K Code, 67.4K Data, 230.4K Total |
||
4358 | Current Release: |
||
4359 | Non-Debug Version: 76.3K Code, 12.3K Data, 88.6K Total |
||
4360 | Debug Version: 163.0K Code, 67.4K Data, 230.4K Total |
||
4361 | |||
4362 | |||
4363 | 2) iASL Compiler/Disassembler: |
||
4364 | |||
4365 | Removed the limit (200) on string objects as per the upcoming ACPI 3.0A |
||
4366 | specification. For the iASL compiler, this means that string literals within |
||
4367 | the source ASL can be of any length. |
||
4368 | |||
4369 | Enhanced the listing output to dump the AML code for resource descriptors |
||
4370 | immediately after the ASL code for each descriptor, instead of in a block at |
||
4371 | the end of the entire resource template. |
||
4372 | |||
4373 | Enhanced the compiler debug output to dump the entire original parse tree |
||
4374 | constructed during the parse phase, before any transforms are applied to the |
||
4375 | tree. The transformed tree is dumped also. |
||
4376 | |||
4377 | ---------------------------------------- |
||
4378 | 02 November 2005. Summary of changes for version 20051102: |
||
4379 | |||
4380 | 1) ACPI CA Core Subsystem: |
||
4381 | |||
4382 | Modified the subsystem initialization sequence to improve GPE support. The |
||
4383 | GPE initialization has been split into two parts in order to defer execution |
||
4384 | of the _PRW methods (Power Resources for Wake) until after the hardware is |
||
4385 | fully initialized and the SCI handler is installed. This allows the _PRW |
||
4386 | methods to access fields protected by the Global Lock. This will fix systems |
||
4387 | where a NO_GLOBAL_LOCK exception has been seen during initialization. |
||
4388 | |||
4389 | Converted the ACPI internal object disassemble and display code within the |
||
4390 | AML debugger to fully table-driven operation, reducing code size and |
||
4391 | increasing maintainability. |
||
4392 | |||
4393 | Fixed a regression with the ConcatenateResTemplate() ASL operator introduced |
||
4394 | in the 20051021 release. |
||
4395 | |||
4396 | Implemented support for "local" internal ACPI object types within the |
||
4397 | debugger "Object" command and the AcpiWalkNamespace external interfaces. |
||
4398 | These local types include RegionFields, BankFields, IndexFields, Alias, and |
||
4399 | reference objects. |
||
4400 | |||
4401 | Moved common AML resource handling code into a new file, "utresrc.c". This |
||
4402 | code is shared by both the Resource Manager and the AML Debugger. |
||
4403 | |||
4404 | Code and Data Size: The current and previous library sizes for the core |
||
4405 | subsystem are shown below. These are the code and data sizes for the |
||
4406 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4407 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4408 | code includes the debug output trace mechanism and has a much larger code |
||
4409 | and data size. Note that these values will vary depending on the efficiency |
||
4410 | of the compiler and the compiler options used during generation. |
||
4411 | |||
4412 | Previous Release: |
||
4413 | Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total |
||
4414 | Debug Version: 163.5K Code, 67.0K Data, 230.5K Total |
||
4415 | Current Release: |
||
4416 | Non-Debug Version: 76.2K Code, 12.3K Data, 88.5K Total |
||
4417 | Debug Version: 163.0K Code, 67.4K Data, 230.4K Total |
||
4418 | |||
4419 | |||
4420 | 2) iASL Compiler/Disassembler: |
||
4421 | |||
4422 | Fixed a problem with very large initializer lists (more than 4000 elements) |
||
4423 | for both Buffer and Package objects where the parse stack could overflow. |
||
4424 | |||
4425 | Enhanced the pre-compile source code scan for non-ASCII characters to ignore |
||
4426 | characters within comment fields. The scan is now always performed and is no |
||
4427 | longer optional, detecting invalid characters within a source file |
||
4428 | immediately rather than during the parse phase or later. |
||
4429 | |||
4430 | Enhanced the ASL grammar definition to force early reductions on all list- |
||
4431 | style grammar elements so that the overall parse stack usage is greatly |
||
4432 | reduced. This should improve performance and reduce the possibility of parse |
||
4433 | stack overflow. |
||
4434 | |||
4435 | Eliminated all reduce/reduce conflicts in the iASL parser generation. Also, |
||
4436 | with the addition of a %expected statement, the compiler generates from |
||
4437 | source with no warnings. |
||
4438 | |||
4439 | Fixed a possible segment fault in the disassembler if the input filename |
||
4440 | does not contain a "dot" extension (Thomas Renninger). |
||
4441 | |||
4442 | ---------------------------------------- |
||
4443 | 21 October 2005. Summary of changes for version 20051021: |
||
4444 | |||
4445 | 1) ACPI CA Core Subsystem: |
||
4446 | |||
4447 | Implemented support for the EM64T and other x86-64 processors. This |
||
4448 | essentially entails recognizing that these processors support non-aligned |
||
4449 | memory transfers. Previously, all 64-bit processors were assumed to lack |
||
4450 | hardware support for non-aligned transfers. |
||
4451 | |||
4452 | Completed conversion of the Resource Manager to nearly full table-driven |
||
4453 | operation. Specifically, the resource conversion code (convert AML to |
||
4454 | internal format and the reverse) and the debug code to dump internal |
||
4455 | resource descriptors are fully table-driven, reducing code and data size and |
||
4456 | improving maintainability. |
||
4457 | |||
4458 | The OSL interfaces for Acquire and Release Lock now use a 64-bit flag word |
||
4459 | on 64-bit processors instead of a fixed 32-bit word. (With assistance from |
||
4460 | Alexey Starikovskiy) |
||
4461 | |||
4462 | Implemented support within the resource conversion code for the Type- |
||
4463 | Specific byte within the various ACPI 3.0 *WordSpace macros. |
||
4464 | |||
4465 | Fixed some issues within the resource conversion code for the type-specific |
||
4466 | flags for both Memory and I/O address resource descriptors. For Memory, |
||
4467 | implemented support for the MTP and TTP flags. For I/O, split the TRS and |
||
4468 | TTP flags into two separate fields. |
||
4469 | |||
4470 | Code and Data Size: The current and previous library sizes for the core |
||
4471 | subsystem are shown below. These are the code and data sizes for the |
||
4472 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4473 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4474 | code includes the debug output trace mechanism and has a much larger code |
||
4475 | and data size. Note that these values will vary depending on the efficiency |
||
4476 | of the compiler and the compiler options used during generation. |
||
4477 | |||
4478 | Previous Release: |
||
4479 | Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total |
||
4480 | Debug Version: 168.0K Code, 68.3K Data, 236.3K Total |
||
4481 | Current Release: |
||
4482 | Non-Debug Version: 76.1K Code, 12.2K Data, 88.3K Total |
||
4483 | Debug Version: 163.5K Code, 67.0K Data, 230.5K Total |
||
4484 | |||
4485 | |||
4486 | |||
4487 | 2) iASL Compiler/Disassembler: |
||
4488 | |||
4489 | Relaxed a compiler restriction that disallowed a ResourceIndex byte if the |
||
4490 | corresponding ResourceSource string was not also present in a resource |
||
4491 | descriptor declaration. This restriction caused problems with existing |
||
4492 | AML/ASL code that includes the Index byte without the string. When such AML |
||
4493 | was disassembled, it could not be compiled without modification. Further, |
||
4494 | the modified code created a resource template with a different size than the |
||
4495 | original, breaking code that used fixed offsets into the resource template |
||
4496 | buffer. |
||
4497 | |||
4498 | Removed a recent feature of the disassembler to ignore a lone ResourceIndex |
||
4499 | byte. This byte is now emitted if present so that the exact AML can be |
||
4500 | reproduced when the disassembled code is recompiled. |
||
4501 | |||
4502 | Improved comments and text alignment for the resource descriptor code |
||
4503 | emitted by the disassembler. |
||
4504 | |||
4505 | Implemented disassembler support for the ACPI 3.0 AccessSize field within a |
||
4506 | Register() resource descriptor. |
||
4507 | |||
4508 | ---------------------------------------- |
||
4509 | 30 September 2005. Summary of changes for version 20050930: |
||
4510 | |||
4511 | 1) ACPI CA Core Subsystem: |
||
4512 | |||
4513 | Completed a major overhaul of the Resource Manager code - specifically, |
||
4514 | optimizations in the area of the AML/internal resource conversion code. The |
||
4515 | code has been optimized to simplify and eliminate duplicated code, CPU stack |
||
4516 | use has been decreased by optimizing function parameters and local |
||
4517 | variables, and naming conventions across the manager have been standardized |
||
4518 | for clarity and ease of maintenance (this includes function, parameter, |
||
4519 | variable, and struct/typedef names.) The update may force changes in some |
||
4520 | driver code, depending on how resources are handled by the host OS. |
||
4521 | |||
4522 | All Resource Manager dispatch and information tables have been moved to a |
||
4523 | single location for clarity and ease of maintenance. One new file was |
||
4524 | created, named "rsinfo.c". |
||
4525 | |||
4526 | The ACPI return macros (return_ACPI_STATUS, etc.) have been modified to |
||
4527 | guarantee that the argument is not evaluated twice, making them less prone |
||
4528 | to macro side-effects. However, since there exists the possibility of |
||
4529 | additional stack use if a particular compiler cannot optimize them (such as |
||
4530 | in the debug generation case), the original macros are optionally available. |
||
4531 | Note that some invocations of the return_VALUE macro may now cause size |
||
4532 | mismatch warnings; the return_UINT8 and return_UINT32 macros are provided to |
||
4533 | eliminate these. (From Randy Dunlap) |
||
4534 | |||
4535 | Implemented a new mechanism to enable debug tracing for individual control |
||
4536 | methods. A new external interface, AcpiDebugTrace, is provided to enable |
||
4537 | this mechanism. The intent is to allow the host OS to easily enable and |
||
4538 | disable tracing for problematic control methods. This interface can be |
||
4539 | easily exposed to a user or debugger interface if desired. See the file |
||
4540 | psxface.c for details. |
||
4541 | |||
4542 | AcpiUtCallocate will now return a valid pointer if a length of zero is |
||
4543 | specified - a length of one is used and a warning is issued. This matches |
||
4544 | the behavior of AcpiUtAllocate. |
||
4545 | |||
4546 | Code and Data Size: The current and previous library sizes for the core |
||
4547 | subsystem are shown below. These are the code and data sizes for the |
||
4548 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4549 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4550 | code includes the debug output trace mechanism and has a much larger code |
||
4551 | and data size. Note that these values will vary depending on the efficiency |
||
4552 | of the compiler and the compiler options used during generation. |
||
4553 | |||
4554 | Previous Release: |
||
4555 | Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total |
||
4556 | Debug Version: 168.1K Code, 68.4K Data, 236.5K Total |
||
4557 | Current Release: |
||
4558 | Non-Debug Version: 77.1K Code, 12.1K Data, 89.2K Total |
||
4559 | Debug Version: 168.0K Code, 68.3K Data, 236.3K Total |
||
4560 | |||
4561 | |||
4562 | 2) iASL Compiler/Disassembler: |
||
4563 | |||
4564 | A remark is issued if the effective compile-time length of a package or |
||
4565 | buffer is zero. Previously, this was a warning. |
||
4566 | |||
4567 | ---------------------------------------- |
||
4568 | 16 September 2005. Summary of changes for version 20050916: |
||
4569 | |||
4570 | 1) ACPI CA Core Subsystem: |
||
4571 | |||
4572 | Fixed a problem within the Resource Manager where support for the Generic |
||
4573 | Register descriptor was not fully implemented. This descriptor is now fully |
||
4574 | recognized, parsed, disassembled, and displayed. |
||
4575 | |||
4576 | Completely restructured the Resource Manager code to utilize table-driven |
||
4577 | dispatch and lookup, eliminating many of the large switch() statements. This |
||
4578 | reduces overall subsystem code size and code complexity. Affects the |
||
4579 | resource parsing and construction, disassembly, and debug dump output. |
||
4580 | |||
4581 | Cleaned up and restructured the debug dump output for all resource |
||
4582 | descriptors. Improved readability of the output and reduced code size. |
||
4583 | |||
4584 | Fixed a problem where changes to internal data structures caused the |
||
4585 | optional ACPI_MUTEX_DEBUG code to fail compilation if specified. |
||
4586 | |||
4587 | Code and Data Size: The current and previous library sizes for the core |
||
4588 | subsystem are shown below. These are the code and data sizes for the |
||
4589 | acpica.lib produced by the Microsoft Visual C++ 6.0 32-bit compiler. These |
||
4590 | values do not include any ACPI driver or OSPM code. The debug version of the |
||
4591 | code includes the debug output trace mechanism and has a much larger code |
||
4592 | and data size. Note that these values will vary depending on the efficiency |
||
4593 | of the compiler and the compiler options used during generation. |
||
4594 | |||
4595 | Previous Release: |
||
4596 | Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total |
||
4597 | Debug Version: 169.6K Code, 69.9K Data, 239.5K Total |
||
4598 | Current Release: |
||
4599 | Non-Debug Version: 77.5K Code, 12.0K Data, 89.5K Total |
||
4600 | Debug Version: 168.1K Code, 68.4K Data, 236.5K Total |
||
4601 | |||
4602 | |||
4603 | 2) iASL Compiler/Disassembler: |
||
4604 | |||
4605 | Updated the disassembler to automatically insert an EndDependentFn() macro |
||
4606 | into the ASL stream if this macro is missing in the original AML code, |
||
4607 | simplifying compilation of the resulting ASL module. |
||
4608 | |||
4609 | Fixed a problem in the disassembler where a disassembled ResourceSource |
||
4610 | string (within a large resource descriptor) was not surrounded by quotes and |
||
4611 | not followed by a comma, causing errors when the resulting ASL module was |
||
4612 | compiled. Also, escape sequences within a ResourceSource string are now |
||
4613 | handled correctly (especially "\\") |
||
4614 | |||
4615 | ---------------------------------------- |
||
4616 | 02 September 2005. Summary of changes for version 20050902: |
||
4617 | |||
4618 | 1) ACPI CA Core Subsystem: |
||
4619 | |||
4620 | Fixed a problem with the internal Owner ID allocation and deallocation |
||
4621 | mechanisms for control method execution and recursive method invocation. |
||
4622 | This should eliminate the OWNER_ID_LIMIT exceptions and "Invalid OwnerId" |
||
4623 | messages seen on some systems. Recursive method invocation depth is |
||
4624 | currently limited to 255. (Alexey Starikovskiy) |
||
4625 | |||
4626 | Completely eliminated all vestiges of support for the "module-level |
||
4627 | executable code" until this support is fully implemented and debugged. This |
||
4628 | should eliminate the NO_RETURN_VALUE exceptions seen during table load on |
||
4629 | some systems that invoke this support. |
||
4630 | |||
4631 | Fixed a problem within the resource manager code where the transaction flags |
||
4632 | for a 64-bit address descriptor were handled incorrectly in the type- |
||
4633 | specific flag byte. |
||
4634 | |||
4635 | Consolidated duplicate code within the address descriptor resource manager |
||
4636 | code, reducing overall subsystem code size. |
||
4637 | |||
4638 | Fixed a fault when using the AML debugger "disassemble" command to |
||
4639 | disassemble individual control methods. |
||
4640 | |||
4641 | Removed references to the "release_current" directory within the Unix |
||
4642 | release package. |
||
4643 | |||
4644 | Code and Data Size: The current and previous core subsystem library sizes |
||
4645 | are shown below. These are the code and data sizes for the acpica.lib |
||
4646 | produced by the Microsoft Visual C++ 6.0 compiler. These values do not |
||
4647 | include any ACPI driver or OSPM code. The debug version of the code includes |
||
4648 | the debug output trace mechanism and has a much larger code and data size. |
||
4649 | Note that these values will vary depending on the efficiency of the compiler |
||
4650 | and the compiler options used during generation. |
||
4651 | |||
4652 | Previous Release: |
||
4653 | Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total |
||
4654 | Debug Version: 170.0K Code, 69.9K Data, 239.9K Total |
||
4655 | Current Release: |
||
4656 | Non-Debug Version: 78.4K Code, 11.8K Data, 90.2K Total |
||
4657 | Debug Version: 169.6K Code, 69.9K Data, 239.5K Total |
||
4658 | |||
4659 | |||
4660 | 2) iASL Compiler/Disassembler: |
||
4661 | |||
4662 | Implemented an error check for illegal duplicate values in the interrupt and |
||
4663 | dma lists for the following ASL macros: Dma(), Irq(), IrqNoFlags(), and |
||
4664 | Interrupt(). |
||
4665 | |||
4666 | Implemented error checking for the Irq() and IrqNoFlags() macros to detect |
||
4667 | too many values in the interrupt list (16 max) and invalid values in the |
||
4668 | list (range 0 - 15) |
||
4669 | |||
4670 | The maximum length string literal within an ASL file is now restricted to |
||
4671 | 200 characters as per the ACPI specification. |
||
4672 | |||
4673 | Fixed a fault when using the -ln option (generate namespace listing). |
||
4674 | |||
4675 | Implemented an error check to determine if a DescriptorName within a |
||
4676 | resource descriptor has already been used within the current scope. |
||
4677 | |||
4678 | ---------------------------------------- |
||
4679 | 15 August 2005. Summary of changes for version 20050815: |
||
4680 | |||
4681 | 1) ACPI CA Core Subsystem: |
||
4682 | |||
4683 | Implemented a full bytewise compare to determine if a table load request is |
||
4684 | attempting to load a duplicate table. The compare is performed if the table |
||
4685 | signatures and table lengths match. This will allow different tables with |
||
4686 | the same OEM Table ID and revision to be loaded - probably against the ACPI |
||
4687 | specification, but discovered in the field nonetheless. |
||
4688 | |||
4689 | Added the changes.txt logfile to each of the zipped release packages. |
||
4690 | |||
4691 | Code and Data Size: Current and previous core subsystem library sizes are |
||
4692 | shown below. These are the code and data sizes for the acpica.lib produced |
||
4693 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
4694 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
4695 | debug output trace mechanism and has a much larger code and data size. Note |
||
4696 | that these values will vary depending on the efficiency of the compiler and |
||
4697 | the compiler options used during generation. |
||
4698 | |||
4699 | Previous Release: |
||
4700 | Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total |
||
4701 | Debug Version: 167.0K Code, 69.9K Data, 236.9K Total |
||
4702 | Current Release: |
||
4703 | Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total |
||
4704 | Debug Version: 170.0K Code, 69.9K Data, 239.9K Total |
||
4705 | |||
4706 | |||
4707 | 2) iASL Compiler/Disassembler: |
||
4708 | |||
4709 | Fixed a problem where incorrect AML code could be generated for Package |
||
4710 | objects if optimization is disabled (via the -oa switch). |
||
4711 | |||
4712 | Fixed a problem with where incorrect AML code is generated for variable- |
||
4713 | length packages when the package length is not specified and the number of |
||
4714 | initializer values is greater than 255. |
||
4715 | |||
4716 | |||
4717 | ---------------------------------------- |
||
4718 | 29 July 2005. Summary of changes for version 20050729: |
||
4719 | |||
4720 | 1) ACPI CA Core Subsystem: |
||
4721 | |||
4722 | Implemented support to ignore an attempt to install/load a particular ACPI |
||
4723 | table more than once. Apparently there exists BIOS code that repeatedly |
||
4724 | attempts to load the same SSDT upon certain events. With assistance from |
||
4725 | Venkatesh Pallipadi. |
||
4726 | |||
4727 | Restructured the main interface to the AML parser in order to correctly |
||
4728 | handle all exceptional conditions. This will prevent leakage of the OwnerId |
||
4729 | resource and should eliminate the AE_OWNER_ID_LIMIT exceptions seen on some |
||
4730 | machines. With assistance from Alexey Starikovskiy. |
||
4731 | |||
4732 | Support for "module level code" has been disabled in this version due to a |
||
4733 | number of issues that have appeared on various machines. The support can be |
||
4734 | enabled by defining ACPI_ENABLE_MODULE_LEVEL_CODE during subsystem |
||
4735 | compilation. When the issues are fully resolved, the code will be enabled by |
||
4736 | default again. |
||
4737 | |||
4738 | Modified the internal functions for debug print support to define the |
||
4739 | FunctionName parameter as a (const char *) for compatibility with compiler |
||
4740 | built-in macros such as __FUNCTION__, etc. |
||
4741 | |||
4742 | Linted the entire ACPICA source tree for both 32-bit and 64-bit. |
||
4743 | |||
4744 | Implemented support to display an object count summary for the AML Debugger |
||
4745 | commands Object and Methods. |
||
4746 | |||
4747 | Code and Data Size: Current and previous core subsystem library sizes are |
||
4748 | shown below. These are the code and data sizes for the acpica.lib produced |
||
4749 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
4750 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
4751 | debug output trace mechanism and has a much larger code and data size. Note |
||
4752 | that these values will vary depending on the efficiency of the compiler and |
||
4753 | the compiler options used during generation. |
||
4754 | |||
4755 | Previous Release: |
||
4756 | Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total |
||
4757 | Debug Version: 170.0K Code, 69.7K Data, 239.7K Total |
||
4758 | Current Release: |
||
4759 | Non-Debug Version: 78.6K Code, 11.7K Data, 90.3K Total |
||
4760 | Debug Version: 167.0K Code, 69.9K Data, 236.9K Total |
||
4761 | |||
4762 | |||
4763 | 2) iASL Compiler/Disassembler: |
||
4764 | |||
4765 | Fixed a regression that appeared in the 20050708 version of the compiler |
||
4766 | where an error message was inadvertently emitted for invocations of the _OSI |
||
4767 | reserved control method. |
||
4768 | |||
4769 | ---------------------------------------- |
||
4770 | 08 July 2005. Summary of changes for version 20050708: |
||
4771 | |||
4772 | 1) ACPI CA Core Subsystem: |
||
4773 | |||
4774 | The use of the CPU stack in the debug version of the subsystem has been |
||
4775 | considerably reduced. Previously, a debug structure was declared in every |
||
4776 | function that used the debug macros. This structure has been removed in |
||
4777 | favor of declaring the individual elements as parameters to the debug |
||
4778 | functions. This reduces the cumulative stack use during nested execution of |
||
4779 | ACPI function calls at the cost of a small increase in the code size of the |
||
4780 | debug version of the subsystem. With assistance from Alexey Starikovskiy and |
||
4781 | Len Brown. |
||
4782 | |||
4783 | Added the ACPI_GET_FUNCTION_NAME macro to enable the compiler-dependent |
||
4784 | headers to define a macro that will return the current function name at |
||
4785 | runtime (such as __FUNCTION__ or _func_, etc.) The function name is used by |
||
4786 | the debug trace output. If ACPI_GET_FUNCTION_NAME is not defined in the |
||
4787 | compiler-dependent header, the function name is saved on the CPU stack (one |
||
4788 | pointer per function.) This mechanism is used because apparently there |
||
4789 | exists no standard ANSI-C defined macro that that returns the function name. |
||
4790 | |||
4791 | Redesigned and reimplemented the "Owner ID" mechanism used to track |
||
4792 | namespace objects created/deleted by ACPI tables and control method |
||
4793 | execution. A bitmap is now used to allocate and free the IDs, thus solving |
||
4794 | the wraparound problem present in the previous implementation. The size of |
||
4795 | the namespace node descriptor was reduced by 2 bytes as a result (Alexey |
||
4796 | Starikovskiy). |
||
4797 | |||
4798 | Removed the UINT32_BIT and UINT16_BIT types that were used for the bitfield |
||
4799 | flag definitions within the headers for the predefined ACPI tables. These |
||
4800 | have been replaced by UINT8_BIT in order to increase the code portability of |
||
4801 | the subsystem. If the use of UINT8 remains a problem, we may be forced to |
||
4802 | eliminate bitfields entirely because of a lack of portability. |
||
4803 | |||
4804 | Enhanced the performance of the AcpiUtUpdateObjectReference procedure. This |
||
4805 | is a frequently used function and this improvement increases the performance |
||
4806 | of the entire subsystem (Alexey Starikovskiy). |
||
4807 | |||
4808 | Fixed several possible memory leaks and the inverse - premature object |
||
4809 | deletion (Alexey Starikovskiy). |
||
4810 | |||
4811 | Code and Data Size: Current and previous core subsystem library sizes are |
||
4812 | shown below. These are the code and data sizes for the acpica.lib produced |
||
4813 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
4814 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
4815 | debug output trace mechanism and has a much larger code and data size. Note |
||
4816 | that these values will vary depending on the efficiency of the compiler and |
||
4817 | the compiler options used during generation. |
||
4818 | |||
4819 | Previous Release: |
||
4820 | Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total |
||
4821 | Debug Version: 165.2K Code, 69.6K Data, 234.8K Total |
||
4822 | Current Release: |
||
4823 | Non-Debug Version: 78.6K Code, 11.6K Data, 90.2K Total |
||
4824 | Debug Version: 170.0K Code, 69.7K Data, 239.7K Total |
||
4825 | |||
4826 | ---------------------------------------- |
||
4827 | 24 June 2005. Summary of changes for version 20050624: |
||
4828 | |||
4829 | 1) ACPI CA Core Subsystem: |
||
4830 | |||
4831 | Modified the new OSL cache interfaces to use ACPI_CACHE_T as the type for |
||
4832 | the host-defined cache object. This allows the OSL implementation to define |
||
4833 | and type this object in any manner desired, simplifying the OSL |
||
4834 | implementation. For example, ACPI_CACHE_T is defined as kmem_cache_t for |
||
4835 | Linux, and should be defined in the OS-specific header file for other |
||
4836 | operating systems as required. |
||
4837 | |||
4838 | Changed the interface to AcpiOsAcquireObject to directly return the |
||
4839 | requested object as the function return (instead of ACPI_STATUS.) This |
||
4840 | change was made for performance reasons, since this is the purpose of the |
||
4841 | interface in the first place. AcpiOsAcquireObject is now similar to the |
||
4842 | AcpiOsAllocate interface. |
||
4843 | |||
4844 | Implemented a new AML debugger command named Businfo. This command displays |
||
4845 | information about all devices that have an associate _PRT object. The _ADR, |
||
4846 | _HID, _UID, and _CID are displayed for these devices. |
||
4847 | |||
4848 | Modified the initialization sequence in AcpiInitializeSubsystem to call the |
||
4849 | OSL interface AcpiOslInitialize first, before any local initialization. This |
||
4850 | change was required because the global initialization now calls OSL |
||
4851 | interfaces. |
||
4852 | |||
4853 | Enhanced the Dump command to display the entire contents of Package objects |
||
4854 | (including all sub-objects and their values.) |
||
4855 | |||
4856 | Restructured the code base to split some files because of size and/or |
||
4857 | because the code logically belonged in a separate file. New files are listed |
||
4858 | below. All makefiles and project files included in the ACPI CA release have |
||
4859 | been updated. |
||
4860 | utilities/utcache.c /* Local cache interfaces */ |
||
4861 | utilities/utmutex.c /* Local mutex support */ |
||
4862 | utilities/utstate.c /* State object support */ |
||
4863 | interpreter/parser/psloop.c /* Main AML parse loop */ |
||
4864 | |||
4865 | Code and Data Size: Current and previous core subsystem library sizes are |
||
4866 | shown below. These are the code and data sizes for the acpica.lib produced |
||
4867 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
4868 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
4869 | debug output trace mechanism and has a much larger code and data size. Note |
||
4870 | that these values will vary depending on the efficiency of the compiler and |
||
4871 | the compiler options used during generation. |
||
4872 | |||
4873 | Previous Release: |
||
4874 | Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total |
||
4875 | Debug Version: 164.0K Code, 69.1K Data, 233.1K Total |
||
4876 | Current Release: |
||
4877 | Non-Debug Version: 78.6K Code, 11.5K Data, 90.1K Total |
||
4878 | Debug Version: 165.2K Code, 69.6K Data, 234.8K Total |
||
4879 | |||
4880 | |||
4881 | 2) iASL Compiler/Disassembler: |
||
4882 | |||
4883 | Fixed a regression introduced in version 20050513 where the use of a Package |
||
4884 | object within a Case() statement caused a compile time exception. The |
||
4885 | original behavior has been restored (a Match() operator is emitted.) |
||
4886 | |||
4887 | ---------------------------------------- |
||
4888 | 17 June 2005. Summary of changes for version 20050617: |
||
4889 | |||
4890 | 1) ACPI CA Core Subsystem: |
||
4891 | |||
4892 | Moved the object cache operations into the OS interface layer (OSL) to allow |
||
4893 | the host OS to handle these operations if desired (for example, the Linux |
||
4894 | OSL will invoke the slab allocator). This support is optional; the compile |
||
4895 | time define ACPI_USE_LOCAL_CACHE may be used to utilize the original cache |
||
4896 | code in the ACPI CA core. The new OSL interfaces are shown below. See |
||
4897 | utalloc.c for an example implementation, and acpiosxf.h for the exact |
||
4898 | interface definitions. With assistance from Alexey Starikovskiy. |
||
4899 | AcpiOsCreateCache |
||
4900 | AcpiOsDeleteCache |
||
4901 | AcpiOsPurgeCache |
||
4902 | AcpiOsAcquireObject |
||
4903 | AcpiOsReleaseObject |
||
4904 | |||
4905 | Modified the interfaces to AcpiOsAcquireLock and AcpiOsReleaseLock to return |
||
4906 | and restore a flags parameter. This fits better with many OS lock models. |
||
4907 | Note: the current execution state (interrupt handler or not) is no longer |
||
4908 | passed to these interfaces. If necessary, the OSL must determine this state |
||
4909 | by itself, a simple and fast operation. With assistance from Alexey |
||
4910 | Starikovskiy. |
||
4911 | |||
4912 | Fixed a problem in the ACPI table handling where a valid XSDT was assumed |
||
4913 | present if the revision of the RSDP was 2 or greater. According to the ACPI |
||
4914 | specification, the XSDT is optional in all cases, and the table manager |
||
4915 | therefore now checks for both an RSDP >=2 and a valid XSDT pointer. |
||
4916 | Otherwise, the RSDT pointer is used. Some ACPI 2.0 compliant BIOSs contain |
||
4917 | only the RSDT. |
||
4918 | |||
4919 | Fixed an interpreter problem with the Mid() operator in the case of an input |
||
4920 | string where the resulting output string is of zero length. It now correctly |
||
4921 | returns a valid, null terminated string object instead of a string object |
||
4922 | with a null pointer. |
||
4923 | |||
4924 | Fixed a problem with the control method argument handling to allow a store |
||
4925 | to an Arg object that already contains an object of type Device. The Device |
||
4926 | object is now correctly overwritten. Previously, an error was returned. |
||
4927 | |||
4928 | |||
4929 | Enhanced the debugger Find command to emit object values in addition to the |
||
4930 | found object pathnames. The output format is the same as the dump namespace |
||
4931 | command. |
||
4932 | |||
4933 | Enhanced the debugger Set command. It now has the ability to set the value |
||
4934 | of any Named integer object in the namespace (Previously, only method locals |
||
4935 | and args could be set.) |
||
4936 | |||
4937 | Code and Data Size: Current and previous core subsystem library sizes are |
||
4938 | shown below. These are the code and data sizes for the acpica.lib produced |
||
4939 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
4940 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
4941 | debug output trace mechanism and has a much larger code and data size. Note |
||
4942 | that these values will vary depending on the efficiency of the compiler and |
||
4943 | the compiler options used during generation. |
||
4944 | |||
4945 | Previous Release: |
||
4946 | Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total |
||
4947 | Debug Version: 164.0K Code, 69.3K Data, 233.3K Total |
||
4948 | Current Release: |
||
4949 | Non-Debug Version: 78.3K Code, 11.6K Data, 89.9K Total |
||
4950 | Debug Version: 164.0K Code, 69.1K Data, 233.1K Total |
||
4951 | |||
4952 | |||
4953 | 2) iASL Compiler/Disassembler: |
||
4954 | |||
4955 | Fixed a regression in the disassembler where if/else/while constructs were |
||
4956 | output incorrectly. This problem was introduced in the previous release |
||
4957 | (20050526). This problem also affected the single-step disassembly in the |
||
4958 | debugger. |
||
4959 | |||
4960 | Fixed a problem where compiling the reserved _OSI method would randomly (but |
||
4961 | rarely) produce compile errors. |
||
4962 | |||
4963 | Enhanced the disassembler to emit compilable code in the face of incorrect |
||
4964 | AML resource descriptors. If the optional ResourceSourceIndex is present, |
||
4965 | but the ResourceSource is not, do not emit the ResourceSourceIndex in the |
||
4966 | disassembly. Otherwise, the resulting code cannot be compiled without |
||
4967 | errors. |
||
4968 | |||
4969 | ---------------------------------------- |
||
4970 | 26 May 2005. Summary of changes for version 20050526: |
||
4971 | |||
4972 | 1) ACPI CA Core Subsystem: |
||
4973 | |||
4974 | Implemented support to execute Type 1 and Type 2 AML opcodes appearing at |
||
4975 | the module level (not within a control method.) These opcodes are executed |
||
4976 | exactly once at the time the table is loaded. This type of code was legal up |
||
4977 | until the release of ACPI 2.0B (2002) and is now supported within ACPI CA in |
||
4978 | order to provide backwards compatibility with earlier BIOS implementations. |
||
4979 | This eliminates the "Encountered executable code at module level" warning |
||
4980 | that was previously generated upon detection of such code. |
||
4981 | |||
4982 | Fixed a problem in the interpreter where an AE_NOT_FOUND exception could |
||
4983 | inadvertently be generated during the lookup of namespace objects in the |
||
4984 | second pass parse of ACPI tables and control methods. It appears that this |
||
4985 | problem could occur during the resolution of forward references to namespace |
||
4986 | objects. |
||
4987 | |||
4988 | Added the ACPI_MUTEX_DEBUG #ifdef to the AcpiUtReleaseMutex function, |
||
4989 | corresponding to the same #ifdef in the AcpiUtAcquireMutex function. This |
||
4990 | allows the deadlock detection debug code to be compiled out in the normal |
||
4991 | case, improving mutex performance (and overall subsystem performance) |
||
4992 | considerably. |
||
4993 | |||
4994 | Implemented a handful of miscellaneous fixes for possible memory leaks on |
||
4995 | error conditions and error handling control paths. These fixes were |
||
4996 | suggested by FreeBSD and the Coverity Prevent source code analysis tool. |
||
4997 | |||
4998 | Added a check for a null RSDT pointer in AcpiGetFirmwareTable (tbxfroot.c) |
||
4999 | to prevent a fault in this error case. |
||
5000 | |||
5001 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5002 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5003 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5004 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5005 | debug output trace mechanism and has a much larger code and data size. Note |
||
5006 | that these values will vary depending on the efficiency of the compiler and |
||
5007 | the compiler options used during generation. |
||
5008 | |||
5009 | Previous Release: |
||
5010 | Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total |
||
5011 | Debug Version: 163.7K Code, 69.3K Data, 233.0K Total |
||
5012 | Current Release: |
||
5013 | Non-Debug Version: 78.1K Code, 11.6K Data, 89.7K Total |
||
5014 | Debug Version: 164.0K Code, 69.3K Data, 233.3K Total |
||
5015 | |||
5016 | |||
5017 | 2) iASL Compiler/Disassembler: |
||
5018 | |||
5019 | Implemented support to allow Type 1 and Type 2 ASL operators to appear at |
||
5020 | the module level (not within a control method.) These operators will be |
||
5021 | executed once at the time the table is loaded. This type of code was legal |
||
5022 | up until the release of ACPI 2.0B (2002) and is now supported by the iASL |
||
5023 | compiler in order to provide backwards compatibility with earlier BIOS ASL |
||
5024 | code. |
||
5025 | |||
5026 | The ACPI integer width (specified via the table revision ID or the -r |
||
5027 | override, 32 or 64 bits) is now used internally during compile-time constant |
||
5028 | folding to ensure that constants are truncated to 32 bits if necessary. |
||
5029 | Previously, the revision ID value was only emitted in the AML table header. |
||
5030 | |||
5031 | An error message is now generated for the Mutex and Method operators if the |
||
5032 | SyncLevel parameter is outside the legal range of 0 through 15. |
||
5033 | |||
5034 | Fixed a problem with the Method operator ParameterTypes list handling (ACPI |
||
5035 | 3.0). Previously, more than 2 types or 2 arguments generated a syntax error. |
||
5036 | The actual underlying implementation of method argument typechecking is |
||
5037 | still under development, however. |
||
5038 | |||
5039 | ---------------------------------------- |
||
5040 | 13 May 2005. Summary of changes for version 20050513: |
||
5041 | |||
5042 | 1) ACPI CA Core Subsystem: |
||
5043 | |||
5044 | Implemented support for PCI Express root bridges -- added support for device |
||
5045 | PNP0A08 in the root bridge search within AcpiEvPciConfigRegionSetup. |
||
5046 | |||
5047 | The interpreter now automatically truncates incoming 64-bit constants to 32 |
||
5048 | bits if currently executing out of a 32-bit ACPI table (Revision < 2). This |
||
5049 | also affects the iASL compiler constant folding. (Note: as per below, the |
||
5050 | iASL compiler no longer allows 64-bit constants within 32-bit tables.) |
||
5051 | |||
5052 | Fixed a problem where string and buffer objects with "static" pointers |
||
5053 | (pointers to initialization data within an ACPI table) were not handled |
||
5054 | consistently. The internal object copy operation now always copies the data |
||
5055 | to a newly allocated buffer, regardless of whether the source object is |
||
5056 | static or not. |
||
5057 | |||
5058 | Fixed a problem with the FromBCD operator where an implicit result |
||
5059 | conversion was improperly performed while storing the result to the target |
||
5060 | operand. Since this is an "explicit conversion" operator, the implicit |
||
5061 | conversion should never be performed on the output. |
||
5062 | |||
5063 | Fixed a problem with the CopyObject operator where a copy to an existing |
||
5064 | named object did not always completely overwrite the existing object stored |
||
5065 | at name. Specifically, a buffer-to-buffer copy did not delete the existing |
||
5066 | buffer. |
||
5067 | |||
5068 | Replaced "InterruptLevel" with "InterruptNumber" in all GPE interfaces and |
||
5069 | structs for consistency. |
||
5070 | |||
5071 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5072 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5073 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5074 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5075 | debug output trace mechanism and has a much larger code and data size. Note |
||
5076 | that these values will vary depending on the efficiency of the compiler and |
||
5077 | the compiler options used during generation. |
||
5078 | |||
5079 | Previous Release: |
||
5080 | Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total |
||
5081 | Debug Version: 163.7K Code, 69.3K Data, 233.0K Total |
||
5082 | Current Release: (Same sizes) |
||
5083 | Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total |
||
5084 | Debug Version: 163.7K Code, 69.3K Data, 233.0K Total |
||
5085 | |||
5086 | |||
5087 | 2) iASL Compiler/Disassembler: |
||
5088 | |||
5089 | The compiler now emits a warning if an attempt is made to generate a 64-bit |
||
5090 | integer constant from within a 32-bit ACPI table (Revision < 2). The integer |
||
5091 | is truncated to 32 bits. |
||
5092 | |||
5093 | Fixed a problem with large package objects: if the static length of the |
||
5094 | package is greater than 255, the "variable length package" opcode is |
||
5095 | emitted. Previously, this caused an error. This requires an update to the |
||
5096 | ACPI spec, since it currently (incorrectly) states that packages larger than |
||
5097 | 255 elements are not allowed. |
||
5098 | |||
5099 | The disassembler now correctly handles variable length packages and packages |
||
5100 | larger than 255 elements. |
||
5101 | |||
5102 | ---------------------------------------- |
||
5103 | 08 April 2005. Summary of changes for version 20050408: |
||
5104 | |||
5105 | 1) ACPI CA Core Subsystem: |
||
5106 | |||
5107 | Fixed three cases in the interpreter where an "index" argument to an ASL |
||
5108 | function was still (internally) 32 bits instead of the required 64 bits. |
||
5109 | This was the Index argument to the Index, Mid, and Match operators. |
||
5110 | |||
5111 | The "strupr" function is now permanently local (AcpiUtStrupr), since this is |
||
5112 | not a POSIX-defined function and not present in most kernel-level C |
||
5113 | libraries. All references to the C library strupr function have been removed |
||
5114 | from the headers. |
||
5115 | |||
5116 | Completed the deployment of static functions/prototypes. All prototypes with |
||
5117 | the static attribute have been moved from the headers to the owning C file. |
||
5118 | |||
5119 | Implemented an extract option (-e) for the AcpiBin utility (AML binary |
||
5120 | utility). This option allows the utility to extract individual ACPI tables |
||
5121 | from the output of AcpiDmp. It provides the same functionality of the |
||
5122 | acpixtract.pl perl script without the worry of setting the correct perl |
||
5123 | options. AcpiBin runs on Windows and has not yet been generated/validated in |
||
5124 | the Linux/Unix environment (but should be soon). |
||
5125 | |||
5126 | Updated and fixed the table dump option for AcpiBin (-d). This option |
||
5127 | converts a single ACPI table to a hex/ascii file, similar to the output of |
||
5128 | AcpiDmp. |
||
5129 | |||
5130 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5131 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5132 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5133 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5134 | debug output trace mechanism and has a much larger code and data size. Note |
||
5135 | that these values will vary depending on the efficiency of the compiler and |
||
5136 | the compiler options used during generation. |
||
5137 | |||
5138 | Previous Release: |
||
5139 | Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total |
||
5140 | Debug Version: 163.5K Code, 69.3K Data, 232.8K Total |
||
5141 | Current Release: |
||
5142 | Non-Debug Version: 78.2K Code, 11.6K Data, 89.8K Total |
||
5143 | Debug Version: 163.7K Code, 69.3K Data, 233.0K Total |
||
5144 | |||
5145 | |||
5146 | 2) iASL Compiler/Disassembler: |
||
5147 | |||
5148 | Disassembler fix: Added a check to ensure that the table length found in the |
||
5149 | ACPI table header within the input file is not longer than the actual input |
||
5150 | file size. This indicates some kind of file or table corruption. |
||
5151 | |||
5152 | ---------------------------------------- |
||
5153 | 29 March 2005. Summary of changes for version 20050329: |
||
5154 | |||
5155 | 1) ACPI CA Core Subsystem: |
||
5156 | |||
5157 | An error is now generated if an attempt is made to create a Buffer Field of |
||
5158 | length zero (A CreateField with a length operand of zero.) |
||
5159 | |||
5160 | The interpreter now issues a warning whenever executable code at the module |
||
5161 | level is detected during ACPI table load. This will give some idea of the |
||
5162 | prevalence of this type of code. |
||
5163 | |||
5164 | Implemented support for references to named objects (other than control |
||
5165 | methods) within package objects. |
||
5166 | |||
5167 | Enhanced package object output for the debug object. Package objects are now |
||
5168 | completely dumped, showing all elements. |
||
5169 | |||
5170 | Enhanced miscellaneous object output for the debug object. Any object can |
||
5171 | now be written to the debug object (for example, a device object can be |
||
5172 | written, and the type of the object will be displayed.) |
||
5173 | |||
5174 | The "static" qualifier has been added to all local functions across both the |
||
5175 | core subsystem and the iASL compiler. |
||
5176 | |||
5177 | The number of "long" lines (> 80 chars) within the source has been |
||
5178 | significantly reduced, by about 1/3. |
||
5179 | |||
5180 | Cleaned up all header files to ensure that all CA/iASL functions are |
||
5181 | prototyped (even static functions) and the formatting is consistent. |
||
5182 | |||
5183 | Two new header files have been added, acopcode.h and acnames.h. |
||
5184 | |||
5185 | Removed several obsolete functions that were no longer used. |
||
5186 | |||
5187 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5188 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5189 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5190 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5191 | debug output trace mechanism and has a much larger code and data size. Note |
||
5192 | that these values will vary depending on the efficiency of the compiler and |
||
5193 | the compiler options used during generation. |
||
5194 | |||
5195 | Previous Release: |
||
5196 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5197 | Debug Version: 165.4K Code, 69.7K Data, 236.1K Total |
||
5198 | Current Release: |
||
5199 | Non-Debug Version: 78.0K Code, 11.6K Data, 89.6K Total |
||
5200 | Debug Version: 163.5K Code, 69.3K Data, 232.8K Total |
||
5201 | |||
5202 | |||
5203 | |||
5204 | 2) iASL Compiler/Disassembler: |
||
5205 | |||
5206 | Fixed a problem with the resource descriptor generation/support. For the |
||
5207 | ResourceSourceIndex and the ResourceSource fields, both must be present, or |
||
5208 | both must be not present - can't have one without the other. |
||
5209 | |||
5210 | The compiler now returns non-zero from the main procedure if any errors have |
||
5211 | occurred during the compilation. |
||
5212 | |||
5213 | |||
5214 | ---------------------------------------- |
||
5215 | 09 March 2005. Summary of changes for version 20050309: |
||
5216 | |||
5217 | 1) ACPI CA Core Subsystem: |
||
5218 | |||
5219 | The string-to-buffer implicit conversion code has been modified again after |
||
5220 | a change to the ACPI specification. In order to match the behavior of the |
||
5221 | other major ACPI implementation, the target buffer is no longer truncated if |
||
5222 | the source string is smaller than an existing target buffer. This change |
||
5223 | requires an update to the ACPI spec, and should eliminate the recent |
||
5224 | AE_AML_BUFFER_LIMIT issues. |
||
5225 | |||
5226 | The "implicit return" support was rewritten to a new algorithm that solves |
||
5227 | the general case. Rather than attempt to determine when a method is about to |
||
5228 | exit, the result of every ASL operator is saved momentarily until the very |
||
5229 | next ASL operator is executed. Therefore, no matter how the method exits, |
||
5230 | there will always be a saved implicit return value. This feature is only |
||
5231 | enabled with the AcpiGbl_EnableInterpreterSlack flag, and should eliminate |
||
5232 | AE_AML_NO_RETURN_VALUE errors when enabled. |
||
5233 | |||
5234 | Implemented implicit conversion support for the predicate (operand) of the |
||
5235 | If, Else, and While operators. String and Buffer arguments are automatically |
||
5236 | converted to Integers. |
||
5237 | |||
5238 | Changed the string-to-integer conversion behavior to match the new ACPI |
||
5239 | errata: "If no integer object exists, a new integer is created. The ASCII |
||
5240 | string is interpreted as a hexadecimal constant. Each string character is |
||
5241 | interpreted as a hexadecimal value ('0'-'9', 'A'-'F', 'a', 'f'), starting |
||
5242 | with the first character as the most significant digit, and ending with the |
||
5243 | first non-hexadecimal character or end-of-string." This means that the first |
||
5244 | non-hex character terminates the conversion and this is the code that was |
||
5245 | changed. |
||
5246 | |||
5247 | Fixed a problem where the ObjectType operator would fail (fault) when used |
||
5248 | on an Index of a Package which pointed to a null package element. The |
||
5249 | operator now properly returns zero (Uninitialized) in this case. |
||
5250 | |||
5251 | Fixed a problem where the While operator used excessive memory by not |
||
5252 | properly popping the result stack during execution. There was no memory leak |
||
5253 | after execution, however. (Code provided by Valery Podrezov.) |
||
5254 | |||
5255 | Fixed a problem where references to control methods within Package objects |
||
5256 | caused the method to be invoked, instead of producing a reference object |
||
5257 | pointing to the method. |
||
5258 | |||
5259 | Restructured and simplified the pswalk.c module (AcpiPsDeleteParseTree) to |
||
5260 | improve performance and reduce code size. (Code provided by Alexey |
||
5261 | Starikovskiy.) |
||
5262 | |||
5263 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5264 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5265 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5266 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5267 | debug output trace mechanism and has a much larger code and data size. Note |
||
5268 | that these values will vary depending on the efficiency of the compiler and |
||
5269 | the compiler options used during generation. |
||
5270 | |||
5271 | Previous Release: |
||
5272 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5273 | Debug Version: 165.4K Code, 69.6K Data, 236.0K Total |
||
5274 | Current Release: |
||
5275 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5276 | Debug Version: 165.4K Code, 69.7K Data, 236.1K Total |
||
5277 | |||
5278 | |||
5279 | 2) iASL Compiler/Disassembler: |
||
5280 | |||
5281 | Fixed a problem with the Return operator with no arguments. Since the AML |
||
5282 | grammar for the byte encoding requires an operand for the Return opcode, the |
||
5283 | compiler now emits a Return(Zero) for this case. An ACPI specification |
||
5284 | update has been written for this case. |
||
5285 | |||
5286 | For tables other than the DSDT, namepath optimization is automatically |
||
5287 | disabled. This is because SSDTs can be loaded anywhere in the namespace, the |
||
5288 | compiler has no knowledge of where, and thus cannot optimize namepaths. |
||
5289 | |||
5290 | Added "ProcessorObj" to the ObjectTypeKeyword list. This object type was |
||
5291 | inadvertently omitted from the ACPI specification, and will require an |
||
5292 | update to the spec. |
||
5293 | |||
5294 | The source file scan for ASCII characters is now optional (-a). This change |
||
5295 | was made because some vendors place non-ascii characters within comments. |
||
5296 | However, the scan is simply a brute-force byte compare to ensure all |
||
5297 | characters in the file are in the range 0x00 to 0x7F. |
||
5298 | |||
5299 | Fixed a problem with the CondRefOf operator where the compiler was |
||
5300 | inappropriately checking for the existence of the target. Since the point of |
||
5301 | the operator is to check for the existence of the target at run-time, the |
||
5302 | compiler no longer checks for the target existence. |
||
5303 | |||
5304 | Fixed a problem where errors generated from the internal AML interpreter |
||
5305 | during constant folding were not handled properly, causing a fault. |
||
5306 | |||
5307 | Fixed a problem with overly aggressive range checking for the Stall |
||
5308 | operator. The valid range (max 255) is now only checked if the operand is of |
||
5309 | type Integer. All other operand types cannot be statically checked. |
||
5310 | |||
5311 | Fixed a problem where control method references within the RefOf, DeRefOf, |
||
5312 | and ObjectType operators were not treated properly. They are now treated as |
||
5313 | actual references, not method invocations. |
||
5314 | |||
5315 | Fixed and enhanced the "list namespace" option (-ln). This option was broken |
||
5316 | a number of releases ago. |
||
5317 | |||
5318 | Improved error handling for the Field, IndexField, and BankField operators. |
||
5319 | The compiler now cleanly reports and recovers from errors in the field |
||
5320 | component (FieldUnit) list. |
||
5321 | |||
5322 | Fixed a disassembler problem where the optional ResourceDescriptor fields |
||
5323 | TRS and TTP were not always handled correctly. |
||
5324 | |||
5325 | Disassembler - Comments in output now use "//" instead of "/*" |
||
5326 | |||
5327 | ---------------------------------------- |
||
5328 | 28 February 2005. Summary of changes for version 20050228: |
||
5329 | |||
5330 | 1) ACPI CA Core Subsystem: |
||
5331 | |||
5332 | Fixed a problem where the result of an Index() operator (an object |
||
5333 | reference) must increment the reference count on the target object for the |
||
5334 | life of the object reference. |
||
5335 | |||
5336 | Implemented AML Interpreter and Debugger support for the new ACPI 3.0 |
||
5337 | Extended Address (IO, Memory, Space), QwordSpace, DwordSpace, and WordSpace |
||
5338 | resource descriptors. |
||
5339 | |||
5340 | Implemented support in the _OSI method for the ACPI 3.0 "Extended Address |
||
5341 | Space Descriptor" string, indicating interpreter support for the descriptors |
||
5342 | above. |
||
5343 | |||
5344 | Implemented header support for the new ACPI 3.0 FADT flag bits. |
||
5345 | |||
5346 | Implemented header support for the new ACPI 3.0 PCI Express bits for the PM1 |
||
5347 | status/enable registers. |
||
5348 | |||
5349 | Updated header support for the MADT processor local Apic struct and MADT |
||
5350 | platform interrupt source struct for new ACPI 3.0 fields. |
||
5351 | |||
5352 | Implemented header support for the SRAT and SLIT ACPI tables. |
||
5353 | |||
5354 | Implemented the -s switch in AcpiExec to enable the "InterpreterSlack" flag |
||
5355 | at runtime. |
||
5356 | |||
5357 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5358 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5359 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5360 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5361 | debug output trace mechanism and has a much larger code and data size. Note |
||
5362 | that these values will vary depending on the efficiency of the compiler and |
||
5363 | the compiler options used during generation. |
||
5364 | |||
5365 | Previous Release: |
||
5366 | Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total |
||
5367 | Debug Version: 164.9K Code, 69.2K Data, 234.1K Total |
||
5368 | Current Release: |
||
5369 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5370 | Debug Version: 165.4K Code, 69.6K Data, 236.0K Total |
||
5371 | |||
5372 | |||
5373 | 2) iASL Compiler/Disassembler: |
||
5374 | |||
5375 | Fixed a problem with the internal 64-bit String-to-integer conversion with |
||
5376 | strings less than two characters long. |
||
5377 | |||
5378 | Fixed a problem with constant folding where the result of the Index() |
||
5379 | operator can not be considered a constant. This means that Index() cannot be |
||
5380 | a type3 opcode and this will require an update to the ACPI specification. |
||
5381 | |||
5382 | Disassembler: Implemented support for the TTP, MTP, and TRS resource |
||
5383 | descriptor fields. These fields were inadvertently ignored and not output in |
||
5384 | the disassembly of the resource descriptor. |
||
5385 | |||
5386 | |||
5387 | ---------------------------------------- |
||
5388 | 11 February 2005. Summary of changes for version 20050211: |
||
5389 | |||
5390 | 1) ACPI CA Core Subsystem: |
||
5391 | |||
5392 | Implemented ACPI 3.0 support for implicit conversion within the Match() |
||
5393 | operator. MatchObjects can now be of type integer, buffer, or string instead |
||
5394 | of just type integer. Package elements are implicitly converted to the type |
||
5395 | of the MatchObject. This change aligns the behavior of Match() with the |
||
5396 | behavior of the other logical operators (LLess(), etc.) It also requires an |
||
5397 | errata change to the ACPI specification as this support was intended for |
||
5398 | ACPI 3.0, but was inadvertently omitted. |
||
5399 | |||
5400 | Fixed a problem with the internal implicit "to buffer" conversion. Strings |
||
5401 | that are converted to buffers will cause buffer truncation if the string is |
||
5402 | smaller than the target buffer. Integers that are converted to buffers will |
||
5403 | not cause buffer truncation, only zero extension (both as per the ACPI |
||
5404 | spec.) The problem was introduced when code was added to truncate the |
||
5405 | buffer, but this should not be performed in all cases, only the string case. |
||
5406 | |||
5407 | Fixed a problem with the Buffer and Package operators where the interpreter |
||
5408 | would get confused if two such operators were used as operands to an ASL |
||
5409 | operator (such as LLess(Buffer(1){0},Buffer(1){1}). The internal result |
||
5410 | stack was not being popped after the execution of these operators, resulting |
||
5411 | in an AE_NO_RETURN_VALUE exception. |
||
5412 | |||
5413 | Fixed a problem with constructs of the form Store(Index(...),...). The |
||
5414 | reference object returned from Index was inadvertently resolved to an actual |
||
5415 | value. This problem was introduced in version 20050114 when the behavior of |
||
5416 | Store() was modified to restrict the object types that can be used as the |
||
5417 | source operand (to match the ACPI specification.) |
||
5418 | |||
5419 | Reduced excessive stack use within the AcpiGetObjectInfo procedure. |
||
5420 | |||
5421 | Added a fix to aclinux.h to allow generation of AcpiExec on Linux. |
||
5422 | |||
5423 | Updated the AcpiSrc utility to add the FADT_DESCRIPTOR_REV2_MINUS struct. |
||
5424 | |||
5425 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5426 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5427 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5428 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5429 | debug output trace mechanism and has a much larger code and data size. Note |
||
5430 | that these values will vary depending on the efficiency of the compiler and |
||
5431 | the compiler options used during generation. |
||
5432 | |||
5433 | Previous Release: |
||
5434 | Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total |
||
5435 | Debug Version: 164.8K Code, 69.2K Data, 234.0K Total |
||
5436 | Current Release: |
||
5437 | Non-Debug Version: 78.2K Code, 11.5K Data, 89.7K Total |
||
5438 | Debug Version: 164.9K Code, 69.2K Data, 234.1K Total |
||
5439 | |||
5440 | |||
5441 | 2) iASL Compiler/Disassembler: |
||
5442 | |||
5443 | Fixed a code generation problem in the constant folding optimization code |
||
5444 | where incorrect code was generated if a constant was reduced to a buffer |
||
5445 | object (i.e., a reduced type 5 opcode.) |
||
5446 | |||
5447 | Fixed a typechecking problem for the ToBuffer operator. Caused by an |
||
5448 | incorrect return type in the internal opcode information table. |
||
5449 | |||
5450 | ---------------------------------------- |
||
5451 | 25 January 2005. Summary of changes for version 20050125: |
||
5452 | |||
5453 | 1) ACPI CA Core Subsystem: |
||
5454 | |||
5455 | Fixed a recently introduced problem with the Global Lock where the |
||
5456 | underlying semaphore was not created. This problem was introduced in |
||
5457 | version 20050114, and caused an AE_AML_NO_OPERAND exception during an |
||
5458 | Acquire() operation on _GL. |
||
5459 | |||
5460 | The local object cache is now optional, and is disabled by default. Both |
||
5461 | AcpiExec and the iASL compiler enable the cache because they run in user |
||
5462 | mode and this enhances their performance. #define ACPI_ENABLE_OBJECT_CACHE |
||
5463 | to enable the local cache. |
||
5464 | |||
5465 | Fixed an issue in the internal function AcpiUtEvaluateObject concerning the |
||
5466 | optional "implicit return" support where an error was returned if no return |
||
5467 | object was expected, but one was implicitly returned. AE_OK is now returned |
||
5468 | in this case and the implicitly returned object is deleted. |
||
5469 | AcpiUtEvaluateObject is only occasionally used, and only to execute reserved |
||
5470 | methods such as _STA and _INI where the return type is known up front. |
||
5471 | |||
5472 | Fixed a few issues with the internal convert-to-integer code. It now returns |
||
5473 | an error if an attempt is made to convert a null string, a string of only |
||
5474 | blanks/tabs, or a zero-length buffer. This affects both implicit conversion |
||
5475 | and explicit conversion via the ToInteger() operator. |
||
5476 | |||
5477 | The internal debug code in AcpiUtAcquireMutex has been commented out. It is |
||
5478 | not needed for normal operation and should increase the performance of the |
||
5479 | entire subsystem. The code remains in case it is needed for debug purposes |
||
5480 | again. |
||
5481 | |||
5482 | The AcpiExec source and makefile are included in the Unix/Linux package for |
||
5483 | the first time. |
||
5484 | |||
5485 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5486 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5487 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5488 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5489 | debug output trace mechanism and has a much larger code and data size. Note |
||
5490 | that these values will vary depending on the efficiency of the compiler and |
||
5491 | the compiler options used during generation. |
||
5492 | |||
5493 | Previous Release: |
||
5494 | Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total |
||
5495 | Debug Version: 165.4K Code, 69.4K Data, 234.8K Total |
||
5496 | Current Release: |
||
5497 | Non-Debug Version: 78.1K Code, 11.5K Data, 89.6K Total |
||
5498 | Debug Version: 164.8K Code, 69.2K Data, 234.0K Total |
||
5499 | |||
5500 | 2) iASL Compiler/Disassembler: |
||
5501 | |||
5502 | Switch/Case support: A warning is now issued if the type of the Switch value |
||
5503 | cannot be determined at compile time. For example, Switch(Arg0) will |
||
5504 | generate the warning, and the type is assumed to be an integer. As per the |
||
5505 | ACPI spec, use a construct such as Switch(ToInteger(Arg0)) to eliminate the |
||
5506 | warning. |
||
5507 | |||
5508 | Switch/Case support: Implemented support for buffer and string objects as |
||
5509 | the switch value. This is an ACPI 3.0 feature, now that LEqual supports |
||
5510 | buffers and strings. |
||
5511 | |||
5512 | Switch/Case support: The emitted code for the LEqual() comparisons now uses |
||
5513 | the switch value as the first operand, not the second. The case value is now |
||
5514 | the second operand, and this allows the case value to be implicitly |
||
5515 | converted to the type of the switch value, not the other way around. |
||
5516 | |||
5517 | Switch/Case support: Temporary variables are now emitted immediately within |
||
5518 | the control method, not at the global level. This means that there are now |
||
5519 | 36 temps available per-method, not 36 temps per-module as was the case with |
||
5520 | the earlier implementation (_T_0 through _T_9 and _T_A through _T_Z.) |
||
5521 | |||
5522 | ---------------------------------------- |
||
5523 | 14 January 2005. Summary of changes for version 20050114: |
||
5524 | |||
5525 | Added 2005 copyright to all module headers. This affects every module in |
||
5526 | the core subsystem, iASL compiler, and the utilities. |
||
5527 | |||
5528 | 1) ACPI CA Core Subsystem: |
||
5529 | |||
5530 | Fixed an issue with the String-to-Buffer conversion code where the string |
||
5531 | null terminator was not included in the buffer after conversion, but there |
||
5532 | is existing ASL that assumes the string null terminator is included. This is |
||
5533 | the root of the ACPI_AML_BUFFER_LIMIT regression. This problem was |
||
5534 | introduced in the previous version when the code was updated to correctly |
||
5535 | set the converted buffer size as per the ACPI specification. The ACPI spec |
||
5536 | is ambiguous and will be updated to specify that the null terminator must be |
||
5537 | included in the converted buffer. This also affects the ToBuffer() ASL |
||
5538 | operator. |
||
5539 | |||
5540 | Fixed a problem with the Mid() ASL/AML operator where it did not work |
||
5541 | correctly on Buffer objects. Newly created sub-buffers were not being marked |
||
5542 | as initialized. |
||
5543 | |||
5544 | |||
5545 | Fixed a problem in AcpiTbFindTable where incorrect string compares were |
||
5546 | performed on the OemId and OemTableId table header fields. These fields are |
||
5547 | not null terminated, so strncmp is now used instead of strcmp. |
||
5548 | |||
5549 | Implemented a restriction on the Store() ASL/AML operator to align the |
||
5550 | behavior with the ACPI specification. Previously, any object could be used |
||
5551 | as the source operand. Now, the only objects that may be used are Integers, |
||
5552 | Buffers, Strings, Packages, Object References, and DDB Handles. If |
||
5553 | necessary, the original behavior can be restored by enabling the |
||
5554 | EnableInterpreterSlack flag. |
||
5555 | |||
5556 | Enhanced the optional "implicit return" support to allow an implicit return |
||
5557 | value from methods that are invoked externally via the AcpiEvaluateObject |
||
5558 | interface. This enables implicit returns from the _STA and _INI methods, |
||
5559 | for example. |
||
5560 | |||
5561 | Changed the Revision() ASL/AML operator to return the current version of the |
||
5562 | AML interpreter, in the YYYYMMDD format. Previously, it incorrectly returned |
||
5563 | the supported ACPI version (This is the function of the _REV method). |
||
5564 | |||
5565 | Updated the _REV predefined method to return the currently supported version |
||
5566 | of ACPI, now 3. |
||
5567 | |||
5568 | Implemented batch mode option for the AcpiExec utility (-b). |
||
5569 | |||
5570 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5571 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5572 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5573 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5574 | debug output trace mechanism and has a much larger code and data size. Note |
||
5575 | that these values will vary depending on the efficiency of the compiler and |
||
5576 | the compiler options used during generation. |
||
5577 | |||
5578 | Previous Release: |
||
5579 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5580 | Debug Version: 165.3K Code, 69.4K Data, 234.7K Total |
||
5581 | Current Release: |
||
5582 | Non-Debug Version: 78.4K Code, 11.5K Data, 89.9K Total |
||
5583 | Debug Version: 165.4K Code, 69.4K Data, 234.8K Total |
||
5584 | |||
5585 | ---------------------------------------- |
||
5586 | 10 December 2004. Summary of changes for version 20041210: |
||
5587 | |||
5588 | ACPI 3.0 support is nearing completion in both the iASL compiler and the |
||
5589 | ACPI CA core subsystem. |
||
5590 | |||
5591 | 1) ACPI CA Core Subsystem: |
||
5592 | |||
5593 | Fixed a problem in the ToDecimalString operator where the resulting string |
||
5594 | length was incorrectly calculated. The length is now calculated exactly, |
||
5595 | eliminating incorrect AE_STRING_LIMIT exceptions. |
||
5596 | |||
5597 | Fixed a problem in the ToHexString operator to allow a maximum 200 character |
||
5598 | string to be produced. |
||
5599 | |||
5600 | Fixed a problem in the internal string-to-buffer and buffer-to-buffer copy |
||
5601 | routine where the length of the resulting buffer was not truncated to the |
||
5602 | new size (if the target buffer already existed). |
||
5603 | |||
5604 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5605 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5606 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5607 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5608 | debug output trace mechanism and has a much larger code and data size. Note |
||
5609 | that these values will vary depending on the efficiency of the compiler and |
||
5610 | the compiler options used during generation. |
||
5611 | |||
5612 | Previous Release: |
||
5613 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5614 | Debug Version: 164.7K Code, 68.5K Data, 233.2K Total |
||
5615 | Current Release: |
||
5616 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5617 | Debug Version: 165.3K Code, 69.4K Data, 234.7K Total |
||
5618 | |||
5619 | |||
5620 | 2) iASL Compiler/Disassembler: |
||
5621 | |||
5622 | Implemented the new ACPI 3.0 resource template macros - DWordSpace, |
||
5623 | ExtendedIO, ExtendedMemory, ExtendedSpace, QWordSpace, and WordSpace. |
||
5624 | Includes support in the disassembler. |
||
5625 | |||
5626 | Implemented support for the new (ACPI 3.0) parameter to the Register macro, |
||
5627 | AccessSize. |
||
5628 | |||
5629 | Fixed a problem where the _HE resource name for the Interrupt macro was |
||
5630 | referencing bit 0 instead of bit 1. |
||
5631 | |||
5632 | Implemented check for maximum 255 interrupts in the Interrupt macro. |
||
5633 | |||
5634 | Fixed a problem with the predefined resource descriptor names where |
||
5635 | incorrect AML code was generated if the offset within the resource buffer |
||
5636 | was 0 or 1. The optimizer shortened the AML code to a single byte opcode |
||
5637 | but did not update the surrounding package lengths. |
||
5638 | |||
5639 | Changes to the Dma macro: All channels within the channel list must be in |
||
5640 | the range 0-7. Maximum 8 channels can be specified. BusMaster operand is |
||
5641 | optional (default is BusMaster). |
||
5642 | |||
5643 | Implemented check for maximum 7 data bytes for the VendorShort macro. |
||
5644 | |||
5645 | The ReadWrite parameter is now optional for the Memory32 and similar macros. |
||
5646 | |||
5647 | ---------------------------------------- |
||
5648 | 03 December 2004. Summary of changes for version 20041203: |
||
5649 | |||
5650 | 1) ACPI CA Core Subsystem: |
||
5651 | |||
5652 | The low-level field insertion/extraction code (exfldio) has been completely |
||
5653 | rewritten to eliminate unnecessary complexity, bugs, and boundary |
||
5654 | conditions. |
||
5655 | |||
5656 | Fixed a problem in the ToInteger, ToBuffer, ToHexString, and ToDecimalString |
||
5657 | operators where the input operand could be inadvertently deleted if no |
||
5658 | conversion was necessary (e.g., if the input to ToInteger was an Integer |
||
5659 | object.) |
||
5660 | |||
5661 | Fixed a problem with the ToDecimalString and ToHexString where an incorrect |
||
5662 | exception code was returned if the resulting string would be > 200 chars. |
||
5663 | AE_STRING_LIMIT is now returned. |
||
5664 | |||
5665 | Fixed a problem with the Concatenate operator where AE_OK was always |
||
5666 | returned, even if the operation failed. |
||
5667 | |||
5668 | Fixed a problem in oswinxf (used by AcpiExec and iASL) to allow > 128 |
||
5669 | semaphores to be allocated. |
||
5670 | |||
5671 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5672 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5673 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5674 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5675 | debug output trace mechanism and has a much larger code and data size. Note |
||
5676 | that these values will vary depending on the efficiency of the compiler and |
||
5677 | the compiler options used during generation. |
||
5678 | |||
5679 | Previous Release: |
||
5680 | Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total |
||
5681 | Debug Version: 165.2K Code, 68.6K Data, 233.8K Total |
||
5682 | Current Release: |
||
5683 | Non-Debug Version: 78.3K Code, 11.5K Data, 89.8K Total |
||
5684 | Debug Version: 164.7K Code, 68.5K Data, 233.2K Total |
||
5685 | |||
5686 | |||
5687 | 2) iASL Compiler/Disassembler: |
||
5688 | |||
5689 | Fixed typechecking for the ObjectType and SizeOf operators. Problem was |
||
5690 | recently introduced in 20041119. |
||
5691 | |||
5692 | Fixed a problem with the ToUUID macro where the upper nybble of each buffer |
||
5693 | byte was inadvertently set to zero. |
||
5694 | |||
5695 | ---------------------------------------- |
||
5696 | 19 November 2004. Summary of changes for version 20041119: |
||
5697 | |||
5698 | 1) ACPI CA Core Subsystem: |
||
5699 | |||
5700 | Fixed a problem in the internal ConvertToInteger routine where new integers |
||
5701 | were not truncated to 32 bits for 32-bit ACPI tables. This routine converts |
||
5702 | buffers and strings to integers. |
||
5703 | |||
5704 | Implemented support to store a value to an Index() on a String object. This |
||
5705 | is an ACPI 2.0 feature that had not yet been implemented. |
||
5706 | |||
5707 | Implemented new behavior for storing objects to individual package elements |
||
5708 | (via the Index() operator). The previous behavior was to invoke the implicit |
||
5709 | conversion rules if an object was already present at the index. The new |
||
5710 | behavior is to simply delete any existing object and directly store the new |
||
5711 | object. Although the ACPI specification seems unclear on this subject, other |
||
5712 | ACPI implementations behave in this manner. (This is the root of the |
||
5713 | AE_BAD_HEX_CONSTANT issue.) |
||
5714 | |||
5715 | Modified the RSDP memory scan mechanism to support the extended checksum for |
||
5716 | ACPI 2.0 (and above) RSDPs. Note that the search continues until a valid |
||
5717 | RSDP signature is found with a valid checksum. |
||
5718 | |||
5719 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5720 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5721 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5722 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5723 | debug output trace mechanism and has a much larger code and data size. Note |
||
5724 | that these values will vary depending on the efficiency of the compiler and |
||
5725 | the compiler options used during generation. |
||
5726 | |||
5727 | Previous Release: |
||
5728 | Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total |
||
5729 | Debug Version: 165.2K Code, 68.6K Data, 233.8K Total |
||
5730 | Current Release: |
||
5731 | Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total |
||
5732 | Debug Version: 165.2K Code, 68.6K Data, 233.8K Total |
||
5733 | |||
5734 | |||
5735 | 2) iASL Compiler/Disassembler: |
||
5736 | |||
5737 | Fixed a missing semicolon in the aslcompiler.y file. |
||
5738 | |||
5739 | ---------------------------------------- |
||
5740 | 05 November 2004. Summary of changes for version 20041105: |
||
5741 | |||
5742 | 1) ACPI CA Core Subsystem: |
||
5743 | |||
5744 | Implemented support for FADT revision 2. This was an interim table (between |
||
5745 | ACPI 1.0 and ACPI 2.0) that adds support for the FADT reset register. |
||
5746 | |||
5747 | Implemented optional support to allow uninitialized LocalX and ArgX |
||
5748 | variables in a control method. The variables are initialized to an Integer |
||
5749 | object with a value of zero. This support is enabled by setting the |
||
5750 | AcpiGbl_EnableInterpreterSlack flag to TRUE. |
||
5751 | |||
5752 | Implemented support for Integer objects for the SizeOf operator. Either 4 |
||
5753 | or 8 is returned, depending on the current integer size (32-bit or 64-bit, |
||
5754 | depending on the parent table revision). |
||
5755 | |||
5756 | Fixed a problem in the implementation of the SizeOf and ObjectType operators |
||
5757 | where the operand was resolved to a value too early, causing incorrect |
||
5758 | return values for some objects. |
||
5759 | |||
5760 | Fixed some possible memory leaks during exceptional conditions. |
||
5761 | |||
5762 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5763 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5764 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5765 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5766 | debug output trace mechanism and has a much larger code and data size. Note |
||
5767 | that these values will vary depending on the efficiency of the compiler and |
||
5768 | the compiler options used during generation. |
||
5769 | |||
5770 | Previous Release: |
||
5771 | Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total |
||
5772 | Debug Version: 164.8K Code, 68.6K Data, 233.4K Total |
||
5773 | Current Release: |
||
5774 | Non-Debug Version: 78.5K Code, 11.5K Data, 90.0K Total |
||
5775 | Debug Version: 165.2K Code, 68.6K Data, 233.8K Total |
||
5776 | |||
5777 | |||
5778 | 2) iASL Compiler/Disassembler: |
||
5779 | |||
5780 | Implemented support for all ACPI 3.0 reserved names and methods. |
||
5781 | |||
5782 | Implemented all ACPI 3.0 grammar elements in the front-end, including |
||
5783 | support for semicolons. |
||
5784 | |||
5785 | Implemented the ACPI 3.0 Function() and ToUUID() macros |
||
5786 | |||
5787 | Fixed a problem in the disassembler where a Scope() operator would not be |
||
5788 | emitted properly if the target of the scope was in another table. |
||
5789 | |||
5790 | ---------------------------------------- |
||
5791 | 15 October 2004. Summary of changes for version 20041015: |
||
5792 | |||
5793 | Note: ACPI CA is currently undergoing an in-depth and complete formal |
||
5794 | evaluation to test/verify the following areas. Other suggestions are |
||
5795 | welcome. This will result in an increase in the frequency of releases and |
||
5796 | the number of bug fixes in the next few months. |
||
5797 | - Functional tests for all ASL/AML operators |
||
5798 | - All implicit/explicit type conversions |
||
5799 | - Bit fields and operation regions |
||
5800 | - 64-bit math support and 32-bit-only "truncated" math support |
||
5801 | - Exceptional conditions, both compiler and interpreter |
||
5802 | - Dynamic object deletion and memory leaks |
||
5803 | - ACPI 3.0 support when implemented |
||
5804 | - External interfaces to the ACPI subsystem |
||
5805 | |||
5806 | |||
5807 | 1) ACPI CA Core Subsystem: |
||
5808 | |||
5809 | Fixed two alignment issues on 64-bit platforms - within debug statements in |
||
5810 | AcpiEvGpeDetect and AcpiEvCreateGpeBlock. Removed references to the Address |
||
5811 | field within the non-aligned ACPI generic address structure. |
||
5812 | |||
5813 | Fixed a problem in the Increment and Decrement operators where incorrect |
||
5814 | operand resolution could result in the inadvertent modification of the |
||
5815 | original integer when the integer is passed into another method as an |
||
5816 | argument and the arg is then incremented/decremented. |
||
5817 | |||
5818 | Fixed a problem in the FromBCD operator where the upper 32-bits of a 64-bit |
||
5819 | BCD number were truncated during conversion. |
||
5820 | |||
5821 | Fixed a problem in the ToDecimal operator where the length of the resulting |
||
5822 | string could be set incorrectly too long if the input operand was a Buffer |
||
5823 | object. |
||
5824 | |||
5825 | Fixed a problem in the Logical operators (LLess, etc.) where a NULL byte (0) |
||
5826 | within a buffer would prematurely terminate a compare between buffer |
||
5827 | objects. |
||
5828 | |||
5829 | Added a check for string overflow (>200 characters as per the ACPI |
||
5830 | specification) during the Concatenate operator with two string operands. |
||
5831 | |||
5832 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5833 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5834 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5835 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5836 | debug output trace mechanism and has a much larger code and data size. Note |
||
5837 | that these values will vary depending on the efficiency of the compiler and |
||
5838 | the compiler options used during generation. |
||
5839 | |||
5840 | Previous Release: |
||
5841 | Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total |
||
5842 | Debug Version: 164.6K Code, 68.5K Data, 233.1K Total |
||
5843 | Current Release: |
||
5844 | Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total |
||
5845 | Debug Version: 164.8K Code, 68.6K Data, 233.4K Total |
||
5846 | |||
5847 | |||
5848 | |||
5849 | 2) iASL Compiler/Disassembler: |
||
5850 | |||
5851 | Allow the use of the ObjectType operator on uninitialized Locals and Args |
||
5852 | (returns 0 as per the ACPI specification). |
||
5853 | |||
5854 | Fixed a problem where the compiler would fault if there was a syntax error |
||
5855 | in the FieldName of all of the various CreateXXXField operators. |
||
5856 | |||
5857 | Disallow the use of lower case letters within the EISAID macro, as per the |
||
5858 | ACPI specification. All EISAID strings must be of the form "UUUNNNN" Where |
||
5859 | U is an uppercase letter and N is a hex digit. |
||
5860 | |||
5861 | |||
5862 | ---------------------------------------- |
||
5863 | 06 October 2004. Summary of changes for version 20041006: |
||
5864 | |||
5865 | 1) ACPI CA Core Subsystem: |
||
5866 | |||
5867 | Implemented support for the ACPI 3.0 Timer operator. This ASL function |
||
5868 | implements a 64-bit timer with 100 nanosecond granularity. |
||
5869 | |||
5870 | Defined a new OSL interface, AcpiOsGetTimer. This interface is used to |
||
5871 | implement the ACPI 3.0 Timer operator. This allows the host OS to implement |
||
5872 | the timer with the best clock available. Also, it keeps the core subsystem |
||
5873 | out of the clock handling business, since the host OS (usually) performs |
||
5874 | this function. |
||
5875 | |||
5876 | Fixed an alignment issue on 64-bit platforms. The HwLowLevelRead(Write) |
||
5877 | functions use a 64-bit address which is part of the packed ACPI Generic |
||
5878 | Address Structure. Since the structure is non-aligned, the alignment macros |
||
5879 | are now used to extract the address to a local variable before use. |
||
5880 | |||
5881 | Fixed a problem where the ToInteger operator assumed all input strings were |
||
5882 | hexadecimal. The operator now handles both decimal strings and hex strings |
||
5883 | (prefixed with "0x"). |
||
5884 | |||
5885 | Fixed a problem where the string length in the string object created as a |
||
5886 | result of the internal ConvertToString procedure could be incorrect. This |
||
5887 | potentially affected all implicit conversions and also the ToDecimalString |
||
5888 | and ToHexString operators. |
||
5889 | |||
5890 | Fixed two problems in the ToString operator. If the length parameter was |
||
5891 | zero, an incorrect string object was created and the value of the input |
||
5892 | length parameter was inadvertently changed from zero to Ones. |
||
5893 | |||
5894 | Fixed a problem where the optional ResourceSource string in the ExtendedIRQ |
||
5895 | resource macro was ignored. |
||
5896 | |||
5897 | Simplified the interfaces to the internal division functions, reducing code |
||
5898 | size and complexity. |
||
5899 | |||
5900 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5901 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5902 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5903 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5904 | debug output trace mechanism and has a much larger code and data size. Note |
||
5905 | that these values will vary depending on the efficiency of the compiler and |
||
5906 | the compiler options used during generation. |
||
5907 | |||
5908 | Previous Release: |
||
5909 | Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total |
||
5910 | Debug Version: 164.5K Code, 68.3K Data, 232.8K Total |
||
5911 | Current Release: |
||
5912 | Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total |
||
5913 | Debug Version: 164.6K Code, 68.5K Data, 233.1K Total |
||
5914 | |||
5915 | |||
5916 | 2) iASL Compiler/Disassembler: |
||
5917 | |||
5918 | Implemented support for the ACPI 3.0 Timer operator. |
||
5919 | |||
5920 | Fixed a problem where the Default() operator was inadvertently ignored in a |
||
5921 | Switch/Case block. This was a problem in the translation of the Switch |
||
5922 | statement to If...Else pairs. |
||
5923 | |||
5924 | Added support to allow a standalone Return operator, with no parentheses (or |
||
5925 | operands). |
||
5926 | |||
5927 | Fixed a problem with code generation for the ElseIf operator where the |
||
5928 | translated Else...If parse tree was improperly constructed leading to the |
||
5929 | loss of some code. |
||
5930 | |||
5931 | ---------------------------------------- |
||
5932 | 22 September 2004. Summary of changes for version 20040922: |
||
5933 | |||
5934 | 1) ACPI CA Core Subsystem: |
||
5935 | |||
5936 | Fixed a problem with the implementation of the LNot() operator where "Ones" |
||
5937 | was not returned for the TRUE case. Changed the code to return Ones instead |
||
5938 | of (!Arg) which was usually 1. This change affects iASL constant folding for |
||
5939 | this operator also. |
||
5940 | |||
5941 | Fixed a problem in AcpiUtInitializeBuffer where an existing buffer was not |
||
5942 | initialized properly -- Now zero the entire buffer in this case where the |
||
5943 | buffer already exists. |
||
5944 | |||
5945 | Changed the interface to AcpiOsSleep from (UINT32 Seconds, UINT32 |
||
5946 | Milliseconds) to simply (ACPI_INTEGER Milliseconds). This simplifies all |
||
5947 | related code considerably. This will require changes/updates to all OS |
||
5948 | interface layers (OSLs.) |
||
5949 | |||
5950 | Implemented a new external interface, AcpiInstallExceptionHandler, to allow |
||
5951 | a system exception handler to be installed. This handler is invoked upon any |
||
5952 | run-time exception that occurs during control method execution. |
||
5953 | |||
5954 | Added support for the DSDT in AcpiTbFindTable. This allows the |
||
5955 | DataTableRegion() operator to access the local copy of the DSDT. |
||
5956 | |||
5957 | Code and Data Size: Current and previous core subsystem library sizes are |
||
5958 | shown below. These are the code and data sizes for the acpica.lib produced |
||
5959 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
5960 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
5961 | debug output trace mechanism and has a much larger code and data size. Note |
||
5962 | that these values will vary depending on the efficiency of the compiler and |
||
5963 | the compiler options used during generation. |
||
5964 | |||
5965 | Previous Release: |
||
5966 | Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total |
||
5967 | Debug Version: 164.2K Code, 68.2K Data, 232.4K Total |
||
5968 | Current Release: |
||
5969 | Non-Debug Version: 77.9K Code, 11.4K Data, 89.3K Total |
||
5970 | Debug Version: 164.5K Code, 68.3K Data, 232.8K Total |
||
5971 | |||
5972 | |||
5973 | 2) iASL Compiler/Disassembler: |
||
5974 | |||
5975 | Fixed a problem with constant folding and the LNot operator. LNot was |
||
5976 | returning 1 in the TRUE case, not Ones as per the ACPI specification. This |
||
5977 | could result in the generation of an incorrect folded/reduced constant. |
||
5978 | |||
5979 | End-Of-File is now allowed within a "//"-style comment. A parse error no |
||
5980 | longer occurs if such a comment is at the very end of the input ASL source |
||
5981 | file. |
||
5982 | |||
5983 | Implemented the "-r" option to override the Revision in the table header. |
||
5984 | The initial use of this option will be to simplify the evaluation of the AML |
||
5985 | interpreter by allowing a single ASL source module to be compiled for either |
||
5986 | 32-bit or 64-bit integers. |
||
5987 | |||
5988 | |||
5989 | ---------------------------------------- |
||
5990 | 27 August 2004. Summary of changes for version 20040827: |
||
5991 | |||
5992 | 1) ACPI CA Core Subsystem: |
||
5993 | |||
5994 | - Implemented support for implicit object conversion in the non-numeric |
||
5995 | logical operators (LEqual, LGreater, LGreaterEqual, LLess, LLessEqual, and |
||
5996 | LNotEqual.) Any combination of Integers/Strings/Buffers may now be used; |
||
5997 | the second operand is implicitly converted on the fly to match the type of |
||
5998 | the first operand. For example: |
||
5999 | |||
6000 | LEqual (Source1, Source2) |
||
6001 | |||
6002 | Source1 and Source2 must each evaluate to an integer, a string, or a buffer. |
||
6003 | The data type of Source1 dictates the required type of Source2. Source2 is |
||
6004 | implicitly converted if necessary to match the type of Source1. |
||
6005 | |||
6006 | - Updated and corrected the behavior of the string conversion support. The |
||
6007 | rules concerning conversion of buffers to strings (according to the ACPI |
||
6008 | specification) are as follows: |
||
6009 | |||
6010 | ToDecimalString - explicit byte-wise conversion of buffer to string of |
||
6011 | decimal values (0-255) separated by commas. ToHexString - explicit byte-wise |
||
6012 | conversion of buffer to string of hex values (0-FF) separated by commas. |
||
6013 | ToString - explicit byte-wise conversion of buffer to string. Byte-by-byte |
||
6014 | copy with no transform except NULL terminated. Any other implicit buffer-to- |
||
6015 | string conversion - byte-wise conversion of buffer to string of hex values |
||
6016 | (0-FF) separated by spaces. |
||
6017 | |||
6018 | - Fixed typo in definition of AcpiGbl_EnableInterpreterSlack. |
||
6019 | |||
6020 | - Fixed a problem in AcpiNsGetPathnameLength where the returned length was |
||
6021 | one byte too short in the case of a node in the root scope. This could |
||
6022 | cause a fault during debug output. |
||
6023 | |||
6024 | - Code and Data Size: Current and previous core subsystem library sizes are |
||
6025 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6026 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6027 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6028 | debug output trace mechanism and has a much larger code and data size. Note |
||
6029 | that these values will vary depending on the efficiency of the compiler and |
||
6030 | the compiler options used during generation. |
||
6031 | |||
6032 | Previous Release: |
||
6033 | Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total |
||
6034 | Debug Version: 164.1K Code, 68.3K Data, 232.4K Total |
||
6035 | Current Release: |
||
6036 | Non-Debug Version: 77.8K Code, 11.4K Data, 89.2K Total |
||
6037 | Debug Version: 164.2K Code, 68.2K Data, 232.4K Total |
||
6038 | |||
6039 | |||
6040 | 2) iASL Compiler/Disassembler: |
||
6041 | |||
6042 | - Fixed a Linux generation error. |
||
6043 | |||
6044 | |||
6045 | ---------------------------------------- |
||
6046 | 16 August 2004. Summary of changes for version 20040816: |
||
6047 | |||
6048 | 1) ACPI CA Core Subsystem: |
||
6049 | |||
6050 | Designed and implemented support within the AML interpreter for the so- |
||
6051 | called "implicit return". This support returns the result of the last ASL |
||
6052 | operation within a control method, in the absence of an explicit Return() |
||
6053 | operator. A few machines depend on this behavior, even though it is not |
||
6054 | explicitly supported by the ASL language. It is optional support that can |
||
6055 | be enabled at runtime via the AcpiGbl_EnableInterpreterSlack flag. |
||
6056 | |||
6057 | Removed support for the PCI_Config address space from the internal low level |
||
6058 | hardware interfaces (AcpiHwLowLevelRead and AcpiHwLowLevelWrite). This |
||
6059 | support was not used internally, and would not work correctly anyway because |
||
6060 | the PCI bus number and segment number were not supported. There are |
||
6061 | separate interfaces for PCI configuration space access because of the unique |
||
6062 | interface. |
||
6063 | |||
6064 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6065 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6066 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6067 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6068 | debug output trace mechanism and has a much larger code and data size. Note |
||
6069 | that these values will vary depending on the efficiency of the compiler and |
||
6070 | the compiler options used during generation. |
||
6071 | |||
6072 | Previous Release: |
||
6073 | Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total |
||
6074 | Debug Version: 164.1K Code, 68.2K Data, 232.3K Total |
||
6075 | Current Release: |
||
6076 | Non-Debug Version: 77.9K Code, 11.5K Data, 89.4K Total |
||
6077 | Debug Version: 164.1K Code, 68.3K Data, 232.4K Total |
||
6078 | |||
6079 | |||
6080 | 2) iASL Compiler/Disassembler: |
||
6081 | |||
6082 | Fixed a problem where constants in ASL expressions at the root level (not |
||
6083 | within a control method) could be inadvertently truncated during code |
||
6084 | generation. This problem was introduced in the 20040715 release. |
||
6085 | |||
6086 | |||
6087 | ---------------------------------------- |
||
6088 | 15 July 2004. Summary of changes for version 20040715: |
||
6089 | |||
6090 | 1) ACPI CA Core Subsystem: |
||
6091 | |||
6092 | Restructured the internal HW GPE interfaces to pass/track the current state |
||
6093 | of interrupts (enabled/disabled) in order to avoid possible deadlock and |
||
6094 | increase flexibility of the interfaces. |
||
6095 | |||
6096 | Implemented a "lexicographical compare" for String and Buffer objects within |
||
6097 | the logical operators -- LGreater, LLess, LGreaterEqual, and LLessEqual -- |
||
6098 | as per further clarification to the ACPI specification. Behavior is similar |
||
6099 | to C library "strcmp". |
||
6100 | |||
6101 | Completed a major reduction in CPU stack use for the AcpiGetFirmwareTable |
||
6102 | external function. In the 32-bit non-debug case, the stack use has been |
||
6103 | reduced from 168 bytes to 32 bytes. |
||
6104 | |||
6105 | Deployed a new run-time configuration flag, AcpiGbl_EnableInterpreterSlack, |
||
6106 | whose purpose is to allow the AML interpreter to forgive certain bad AML |
||
6107 | constructs. Default setting is FALSE. |
||
6108 | |||
6109 | Implemented the first use of AcpiGbl_EnableInterpreterSlack in the Field IO |
||
6110 | support code. If enabled, it allows field access to go beyond the end of a |
||
6111 | region definition if the field is within the region length rounded up to the |
||
6112 | next access width boundary (a common coding error.) |
||
6113 | |||
6114 | Renamed OSD_HANDLER to ACPI_OSD_HANDLER, and OSD_EXECUTION_CALLBACK to |
||
6115 | ACPI_OSD_EXEC_CALLBACK for consistency with other ACPI symbols. Also, these |
||
6116 | symbols are lowercased by the latest version of the AcpiSrc tool. |
||
6117 | |||
6118 | The prototypes for the PCI interfaces in acpiosxf.h have been updated to |
||
6119 | rename "Register" to simply "Reg" to prevent certain compilers from |
||
6120 | complaining. |
||
6121 | |||
6122 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6123 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6124 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6125 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6126 | debug output trace mechanism and has a much larger code and data size. Note |
||
6127 | that these values will vary depending on the efficiency of the compiler and |
||
6128 | the compiler options used during generation. |
||
6129 | |||
6130 | Previous Release: |
||
6131 | Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total |
||
6132 | Debug Version: 163.8K Code, 68.2K Data, 232.0K Total |
||
6133 | Current Release: |
||
6134 | Non-Debug Version: 78.0K Code, 11.5K Data, 89.5K Total |
||
6135 | Debug Version: 164.1K Code, 68.2K Data, 232.3K Total |
||
6136 | |||
6137 | |||
6138 | 2) iASL Compiler/Disassembler: |
||
6139 | |||
6140 | Implemented full support for Package objects within the Case() operator. |
||
6141 | Note: The Break() operator is currently not supported within Case blocks |
||
6142 | (TermLists) as there is some question about backward compatibility with ACPI |
||
6143 | 1.0 interpreters. |
||
6144 | |||
6145 | |||
6146 | Fixed a problem where complex terms were not supported properly within the |
||
6147 | Switch() operator. |
||
6148 | |||
6149 | Eliminated extraneous warning for compiler-emitted reserved names of the |
||
6150 | form "_T_x". (Used in Switch/Case operators.) |
||
6151 | |||
6152 | Eliminated optimization messages for "_T_x" objects and small constants |
||
6153 | within the DefinitionBlock operator. |
||
6154 | |||
6155 | |||
6156 | ---------------------------------------- |
||
6157 | 15 June 2004. Summary of changes for version 20040615: |
||
6158 | |||
6159 | 1) ACPI CA Core Subsystem: |
||
6160 | |||
6161 | Implemented support for Buffer and String objects (as per ACPI 2.0) for the |
||
6162 | following ASL operators: LEqual, LGreater, LLess, LGreaterEqual, and |
||
6163 | LLessEqual. |
||
6164 | |||
6165 | All directory names in the entire source package are lower case, as they |
||
6166 | were in earlier releases. |
||
6167 | |||
6168 | Implemented "Disassemble" command in the AML debugger that will disassemble |
||
6169 | a single control method. |
||
6170 | |||
6171 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6172 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6173 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6174 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6175 | debug output trace mechanism and has a much larger code and data size. Note |
||
6176 | that these values will vary depending on the efficiency of the compiler and |
||
6177 | the compiler options used during generation. |
||
6178 | |||
6179 | Previous Release: |
||
6180 | Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total |
||
6181 | Debug Version: 163.3K Code, 67.2K Data, 230.5K Total |
||
6182 | |||
6183 | Current Release: |
||
6184 | Non-Debug Version: 77.8K Code, 11.5K Data, 89.3K Total |
||
6185 | Debug Version: 163.8K Code, 68.2K Data, 232.0K Total |
||
6186 | |||
6187 | |||
6188 | 2) iASL Compiler/Disassembler: |
||
6189 | |||
6190 | Implemented support for Buffer and String objects (as per ACPI 2.0) for the |
||
6191 | following ASL operators: LEqual, LGreater, LLess, LGreaterEqual, and |
||
6192 | LLessEqual. |
||
6193 | |||
6194 | All directory names in the entire source package are lower case, as they |
||
6195 | were in earlier releases. |
||
6196 | |||
6197 | Fixed a fault when using the -g or -d |
||
6198 | not found. |
||
6199 | |||
6200 | Fixed an issue with the Windows version of the compiler where later versions |
||
6201 | of Windows place the FADT in the registry under the name "FADT" and not |
||
6202 | "FACP" as earlier versions did. This applies when using the -g or - |
||
6203 | d |
||
6204 | necessary. |
||
6205 | |||
6206 | Fixed a problem with compiler namepath optimization where a namepath within |
||
6207 | the Scope() operator could not be optimized if the namepath was a subpath of |
||
6208 | the current scope path. |
||
6209 | |||
6210 | ---------------------------------------- |
||
6211 | 27 May 2004. Summary of changes for version 20040527: |
||
6212 | |||
6213 | 1) ACPI CA Core Subsystem: |
||
6214 | |||
6215 | Completed a new design and implementation for EBDA (Extended BIOS Data Area) |
||
6216 | support in the RSDP scan code. The original code improperly scanned for the |
||
6217 | EBDA by simply scanning from memory location 0 to 0x400. The correct method |
||
6218 | is to first obtain the EBDA pointer from within the BIOS data area, then |
||
6219 | scan 1K of memory starting at the EBDA pointer. There appear to be few if |
||
6220 | any machines that place the RSDP in the EBDA, however. |
||
6221 | |||
6222 | Integrated a fix for a possible fault during evaluation of BufferField |
||
6223 | arguments. Obsolete code that was causing the problem was removed. |
||
6224 | |||
6225 | Found and fixed a problem in the Field Support Code where data could be |
||
6226 | corrupted on a bit field read that starts on an aligned boundary but does |
||
6227 | not end on an aligned boundary. Merged the read/write "datum length" |
||
6228 | calculation code into a common procedure. |
||
6229 | |||
6230 | Rolled in a couple of changes to the FreeBSD-specific header. |
||
6231 | |||
6232 | |||
6233 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6234 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6235 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6236 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6237 | debug output trace mechanism and has a much larger code and data size. Note |
||
6238 | that these values will vary depending on the efficiency of the compiler and |
||
6239 | the compiler options used during generation. |
||
6240 | |||
6241 | Previous Release: |
||
6242 | Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total |
||
6243 | Debug Version: 163.2K Code, 67.2K Data, 230.4K Total |
||
6244 | Current Release: |
||
6245 | Non-Debug Version: 77.7K Code, 11.5K Data, 89.2K Total |
||
6246 | Debug Version: 163.3K Code, 67.2K Data, 230.5K Total |
||
6247 | |||
6248 | |||
6249 | 2) iASL Compiler/Disassembler: |
||
6250 | |||
6251 | Fixed a generation warning produced by some overly-verbose compilers for a |
||
6252 | 64-bit constant. |
||
6253 | |||
6254 | ---------------------------------------- |
||
6255 | 14 May 2004. Summary of changes for version 20040514: |
||
6256 | |||
6257 | 1) ACPI CA Core Subsystem: |
||
6258 | |||
6259 | Fixed a problem where hardware GPE enable bits sometimes not set properly |
||
6260 | during and after GPE method execution. Result of 04/27 changes. |
||
6261 | |||
6262 | Removed extra "clear all GPEs" when sleeping/waking. |
||
6263 | |||
6264 | Removed AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the single |
||
6265 | AcpiHwWriteGpeEnableReg. Changed a couple of calls to the functions above to |
||
6266 | the new AcpiEv* calls as appropriate. |
||
6267 | |||
6268 | ACPI_OS_NAME was removed from the OS-specific headers. The default name is |
||
6269 | now "Microsoft Windows NT" for maximum compatibility. However this can be |
||
6270 | changed by modifying the acconfig.h file. |
||
6271 | |||
6272 | Allow a single invocation of AcpiInstallNotifyHandler for a handler that |
||
6273 | traps both types of notifies (System, Device). Use ACPI_ALL_NOTIFY flag. |
||
6274 | |||
6275 | Run _INI methods on ThermalZone objects. This is against the ACPI |
||
6276 | specification, but there is apparently ASL code in the field that has these |
||
6277 | _INI methods, and apparently "other" AML interpreters execute them. |
||
6278 | |||
6279 | Performed a full 16/32/64 bit lint that resulted in some small changes. |
||
6280 | |||
6281 | Added a sleep simulation command to the AML debugger to test sleep code. |
||
6282 | |||
6283 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6284 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6285 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6286 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6287 | debug output trace mechanism and has a much larger code and data size. Note |
||
6288 | that these values will vary depending on the efficiency of the compiler and |
||
6289 | the compiler options used during generation. |
||
6290 | |||
6291 | Previous Release: |
||
6292 | Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total |
||
6293 | Debug Version: 162.9K Code, 67.0K Data, 229.9K Total |
||
6294 | Current Release: |
||
6295 | Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total |
||
6296 | Debug Version: 163.2K Code, 67.2K Data, 230.4K Total |
||
6297 | |||
6298 | ---------------------------------------- |
||
6299 | 27 April 2004. Summary of changes for version 20040427: |
||
6300 | |||
6301 | 1) ACPI CA Core Subsystem: |
||
6302 | |||
6303 | Completed a major overhaul of the GPE handling within ACPI CA. There are |
||
6304 | now three types of GPEs: wake-only, runtime-only, and combination wake/run. |
||
6305 | The only GPEs allowed to be combination wake/run are for button-style |
||
6306 | devices such as a control-method power button, control-method sleep button, |
||
6307 | or a notebook lid switch. GPEs that have an _Lxx or _Exx method and are not |
||
6308 | referenced by any _PRW methods are marked for "runtime" and hardware |
||
6309 | enabled. Any GPE that is referenced by a _PRW method is marked for "wake" |
||
6310 | (and disabled at runtime). However, at sleep time, only those GPEs that |
||
6311 | have been specifically enabled for wake via the AcpiEnableGpe interface will |
||
6312 | actually be hardware enabled. |
||
6313 | |||
6314 | A new external interface has been added, AcpiSetGpeType(), that is meant to |
||
6315 | be used by device drivers to force a GPE to a particular type. It will be |
||
6316 | especially useful for the drivers for the button devices mentioned above. |
||
6317 | |||
6318 | Completed restructuring of the ACPI CA initialization sequence so that |
||
6319 | default operation region handlers are installed before GPEs are initialized |
||
6320 | and the _PRW methods are executed. This will prevent errors when the _PRW |
||
6321 | methods attempt to access system memory or I/O space. |
||
6322 | |||
6323 | GPE enable/disable no longer reads the GPE enable register. We now keep the |
||
6324 | enable info for runtime and wake separate and in the GPE_EVENT_INFO. We |
||
6325 | thus no longer depend on the hardware to maintain these bits. |
||
6326 | |||
6327 | Always clear the wake status and fixed/GPE status bits before sleep, even |
||
6328 | for state S5. |
||
6329 | |||
6330 | Improved the AML debugger output for displaying the GPE blocks and their |
||
6331 | current status. |
||
6332 | |||
6333 | Added new strings for the _OSI method, of the form "Windows 2001 SPx" where |
||
6334 | x = 0,1,2,3,4. |
||
6335 | |||
6336 | Fixed a problem where the physical address was incorrectly calculated when |
||
6337 | the Load() operator was used to directly load from an Operation Region (vs. |
||
6338 | loading from a Field object.) Also added check for minimum table length for |
||
6339 | this case. |
||
6340 | |||
6341 | Fix for multiple mutex acquisition. Restore original thread SyncLevel on |
||
6342 | mutex release. |
||
6343 | |||
6344 | Added ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for |
||
6345 | consistency with the other fields returned. |
||
6346 | |||
6347 | Shrunk the ACPI_GPE_EVENT_INFO structure by 40%. There is one such |
||
6348 | structure for each GPE in the system, so the size of this structure is |
||
6349 | important. |
||
6350 | |||
6351 | CPU stack requirement reduction: Cleaned up the method execution and object |
||
6352 | evaluation paths so that now a parameter structure is passed, instead of |
||
6353 | copying the various method parameters over and over again. |
||
6354 | |||
6355 | In evregion.c: Correctly exit and reenter the interpreter region if and |
||
6356 | only if dispatching an operation region request to a user-installed handler. |
||
6357 | Do not exit/reenter when dispatching to a default handler (e.g., default |
||
6358 | system memory or I/O handlers) |
||
6359 | |||
6360 | |||
6361 | Notes for updating drivers for the new GPE support. The following changes |
||
6362 | must be made to ACPI-related device drivers that are attached to one or more |
||
6363 | GPEs: (This information will be added to the ACPI CA Programmer Reference.) |
||
6364 | |||
6365 | 1) AcpiInstallGpeHandler no longer automatically enables the GPE, you must |
||
6366 | explicitly call AcpiEnableGpe. |
||
6367 | 2) There is a new interface called AcpiSetGpeType. This should be called |
||
6368 | before enabling the GPE. Also, this interface will automatically disable |
||
6369 | the GPE if it is currently enabled. |
||
6370 | 3) AcpiEnableGpe no longer supports a GPE type flag. |
||
6371 | |||
6372 | Specific drivers that must be changed: |
||
6373 | 1) EC driver: |
||
6374 | AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED, |
||
6375 | AeGpeHandler, NULL); |
||
6376 | AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME); |
||
6377 | AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR); |
||
6378 | |||
6379 | 2) Button Drivers (Power, Lid, Sleep): |
||
6380 | Run _PRW method under parent device |
||
6381 | If _PRW exists: /* This is a control-method button */ |
||
6382 | Extract GPE number and possibly GpeDevice |
||
6383 | AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN); |
||
6384 | AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR); |
||
6385 | |||
6386 | For all other devices that have _PRWs, we automatically set the GPE type to |
||
6387 | ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically (wake) enabled. This |
||
6388 | must be done on a selective basis, usually requiring some kind of user app |
||
6389 | to allow the user to pick the wake devices. |
||
6390 | |||
6391 | |||
6392 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6393 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6394 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6395 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6396 | debug output trace mechanism and has a much larger code and data size. Note |
||
6397 | that these values will vary depending on the efficiency of the compiler and |
||
6398 | the compiler options used during generation. |
||
6399 | |||
6400 | Previous Release: |
||
6401 | Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total |
||
6402 | Debug Version: 161.0K Code, 66.3K Data, 227.3K Total |
||
6403 | Current Release: |
||
6404 | |||
6405 | Non-Debug Version: 77.6K Code, 11.5K Data, 89.1K Total |
||
6406 | Debug Version: 162.9K Code, 67.0K Data, 229.9K Total |
||
6407 | |||
6408 | |||
6409 | |||
6410 | ---------------------------------------- |
||
6411 | 02 April 2004. Summary of changes for version 20040402: |
||
6412 | |||
6413 | 1) ACPI CA Core Subsystem: |
||
6414 | |||
6415 | Fixed an interpreter problem where an indirect store through an ArgX |
||
6416 | parameter was incorrectly applying the "implicit conversion rules" during |
||
6417 | the store. From the ACPI specification: "If the target is a method local or |
||
6418 | argument (LocalX or ArgX), no conversion is performed and the result is |
||
6419 | stored directly to the target". The new behavior is to disable implicit |
||
6420 | conversion during ALL stores to an ArgX. |
||
6421 | |||
6422 | Changed the behavior of the _PRW method scan to ignore any and all errors |
||
6423 | returned by a given _PRW. This prevents the scan from aborting from the |
||
6424 | failure of any single _PRW. |
||
6425 | |||
6426 | Moved the runtime configuration parameters from the global init procedure to |
||
6427 | static variables in acglobal.h. This will allow the host to override the |
||
6428 | default values easily. |
||
6429 | |||
6430 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6431 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6432 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6433 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6434 | debug output trace mechanism and has a much larger code and data size. Note |
||
6435 | that these values will vary depending on the efficiency of the compiler and |
||
6436 | the compiler options used during generation. |
||
6437 | |||
6438 | Previous Release: |
||
6439 | Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total |
||
6440 | Debug Version: 160.8K Code, 66.1K Data, 226.9K Total |
||
6441 | Current Release: |
||
6442 | Non-Debug Version: 77.0K Code, 11.4K Data, 88.4K Total |
||
6443 | Debug Version: 161.0K Code, 66.3K Data, 227.3K Total |
||
6444 | |||
6445 | |||
6446 | 2) iASL Compiler/Disassembler: |
||
6447 | |||
6448 | iASL now fully disassembles SSDTs. However, External() statements are not |
||
6449 | generated automatically for unresolved symbols at this time. This is a |
||
6450 | planned feature for future implementation. |
||
6451 | |||
6452 | Fixed a scoping problem in the disassembler that occurs when the type of the |
||
6453 | target of a Scope() operator is overridden. This problem caused an |
||
6454 | incorrectly nested internal namespace to be constructed. |
||
6455 | |||
6456 | Any warnings or errors that are emitted during disassembly are now commented |
||
6457 | out automatically so that the resulting file can be recompiled without any |
||
6458 | hand editing. |
||
6459 | |||
6460 | ---------------------------------------- |
||
6461 | 26 March 2004. Summary of changes for version 20040326: |
||
6462 | |||
6463 | 1) ACPI CA Core Subsystem: |
||
6464 | |||
6465 | Implemented support for "wake" GPEs via interaction between GPEs and the |
||
6466 | _PRW methods. Every GPE that is pointed to by one or more _PRWs is |
||
6467 | identified as a WAKE GPE and by default will no longer be enabled at |
||
6468 | runtime. Previously, we were blindly enabling all GPEs with a corresponding |
||
6469 | _Lxx or _Exx method - but most of these turn out to be WAKE GPEs anyway. We |
||
6470 | believe this has been the cause of thousands of "spurious" GPEs on some |
||
6471 | systems. |
||
6472 | |||
6473 | This new GPE behavior is can be reverted to the original behavior (enable |
||
6474 | ALL GPEs at runtime) via a runtime flag. |
||
6475 | |||
6476 | Fixed a problem where aliased control methods could not access objects |
||
6477 | properly. The proper scope within the namespace was not initialized |
||
6478 | (transferred to the target of the aliased method) before executing the |
||
6479 | target method. |
||
6480 | |||
6481 | Fixed a potential race condition on internal object deletion on the return |
||
6482 | object in AcpiEvaluateObject. |
||
6483 | |||
6484 | Integrated a fix for resource descriptors where both _MEM and _MTP were |
||
6485 | being extracted instead of just _MEM. (i.e. bitmask was incorrectly too |
||
6486 | wide, 0x0F instead of 0x03.) |
||
6487 | |||
6488 | Added a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName, preventing a |
||
6489 | fault in some cases. |
||
6490 | |||
6491 | Updated Notify() values for debug statements in evmisc.c |
||
6492 | |||
6493 | Return proper status from AcpiUtMutexInitialize, not just simply AE_OK. |
||
6494 | |||
6495 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6496 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6497 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6498 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6499 | debug output trace mechanism and has a much larger code and data size. Note |
||
6500 | that these values will vary depending on the efficiency of the compiler and |
||
6501 | the compiler options used during generation. |
||
6502 | |||
6503 | Previous Release: |
||
6504 | |||
6505 | Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total |
||
6506 | Debug Version: 160.3K Code, 66.0K Data, 226.3K Total |
||
6507 | Current Release: |
||
6508 | Non-Debug Version: 76.9K Code, 11.4K Data, 88.3K Total |
||
6509 | Debug Version: 160.8K Code, 66.1K Data, 226.9K Total |
||
6510 | |||
6511 | ---------------------------------------- |
||
6512 | 11 March 2004. Summary of changes for version 20040311: |
||
6513 | |||
6514 | 1) ACPI CA Core Subsystem: |
||
6515 | |||
6516 | Fixed a problem where errors occurring during the parse phase of control |
||
6517 | method execution did not abort cleanly. For example, objects created and |
||
6518 | installed in the namespace were not deleted. This caused all subsequent |
||
6519 | invocations of the method to return the AE_ALREADY_EXISTS exception. |
||
6520 | |||
6521 | Implemented a mechanism to force a control method to "Serialized" execution |
||
6522 | if the method attempts to create namespace objects. (The root of the |
||
6523 | AE_ALREADY_EXISTS problem.) |
||
6524 | |||
6525 | Implemented support for the predefined _OSI "internal" control method. |
||
6526 | Initial supported strings are "Linux", "Windows 2000", "Windows 2001", and |
||
6527 | "Windows 2001.1", and can be easily upgraded for new strings as necessary. |
||
6528 | This feature will allow "other" operating systems to execute the fully |
||
6529 | tested, "Windows" code path through the ASL code |
||
6530 | |||
6531 | Global Lock Support: Now allows multiple acquires and releases with any |
||
6532 | internal thread. Removed concept of "owning thread" for this special mutex. |
||
6533 | |||
6534 | Fixed two functions that were inappropriately declaring large objects on the |
||
6535 | CPU stack: PsParseLoop, NsEvaluateRelative. Reduces the stack usage during |
||
6536 | method execution considerably. |
||
6537 | |||
6538 | Fixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where the |
||
6539 | S4Bios_f field was incorrectly defined as UINT32 instead of UINT32_BIT. |
||
6540 | |||
6541 | Fixed a problem where AcpiEvGpeDetect would fault if there were no GPEs |
||
6542 | defined on the machine. |
||
6543 | |||
6544 | Implemented two runtime options: One to force all control method execution |
||
6545 | to "Serialized" to mimic Windows behavior, another to disable _OSI support |
||
6546 | if it causes problems on a given machine. |
||
6547 | |||
6548 | Code and Data Size: Current and previous core subsystem library sizes are |
||
6549 | shown below. These are the code and data sizes for the acpica.lib produced |
||
6550 | by the Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
6551 | any ACPI driver or OSPM code. The debug version of the code includes the |
||
6552 | debug output trace mechanism and has a much larger code and data size. Note |
||
6553 | that these values will vary depending on the efficiency of the compiler and |
||
6554 | the compiler options used during generation. |
||
6555 | |||
6556 | Previous Release: |
||
6557 | Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total |
||
6558 | Debug Version: 158.7K Code, 65.1K Data, 223.8K Total |
||
6559 | Current Release: |
||
6560 | Non-Debug Version: 76.5K Code, 11.3K Data, 87.8K Total |
||
6561 | Debug Version: 160.3K Code, 66.0K Data, 226.3K Total |
||
6562 | |||
6563 | 2) iASL Compiler/Disassembler: |
||
6564 | |||
6565 | Fixed an array size problem for FreeBSD that would cause the compiler to |
||
6566 | fault. |
||
6567 | |||
6568 | ---------------------------------------- |
||
6569 | 20 February 2004. Summary of changes for version 20040220: |
||
6570 | |||
6571 | |||
6572 | 1) ACPI CA Core Subsystem: |
||
6573 | |||
6574 | Implemented execution of _SxD methods for Device objects in the |
||
6575 | GetObjectInfo interface. |
||
6576 | |||
6577 | Fixed calls to _SST method to pass the correct arguments. |
||
6578 | |||
6579 | Added a call to _SST on wake to restore to "working" state. |
||
6580 | |||
6581 | Check for End-Of-Buffer failure case in the WalkResources interface. |
||
6582 | |||
6583 | Integrated fix for 64-bit alignment issue in acglobal.h by moving two |
||
6584 | structures to the beginning of the file. |
||
6585 | |||
6586 | After wake, clear GPE status register(s) before enabling GPEs. |
||
6587 | |||
6588 | After wake, clear/enable power button. (Perhaps we should clear/enable all |
||
6589 | fixed events upon wake.) |
||
6590 | |||
6591 | Fixed a couple of possible memory leaks in the Namespace manager. |
||
6592 | |||
6593 | Integrated latest acnetbsd.h file. |
||
6594 | |||
6595 | ---------------------------------------- |
||
6596 | 11 February 2004. Summary of changes for version 20040211: |
||
6597 | |||
6598 | |||
6599 | 1) ACPI CA Core Subsystem: |
||
6600 | |||
6601 | Completed investigation and implementation of the call-by-reference |
||
6602 | mechanism for control method arguments. |
||
6603 | |||
6604 | Fixed a problem where a store of an object into an indexed package could |
||
6605 | fail if the store occurs within a different method than the method that |
||
6606 | created the package. |
||
6607 | |||
6608 | Fixed a problem where the ToDecimal operator could return incorrect results. |
||
6609 | |||
6610 | Fixed a problem where the CopyObject operator could fail on some of the more |
||
6611 | obscure objects (e.g., Reference objects.) |
||
6612 | |||
6613 | Improved the output of the Debug object to display buffer, package, and |
||
6614 | index objects. |
||
6615 | |||
6616 | Fixed a problem where constructs of the form "RefOf (ArgX)" did not return |
||
6617 | the expected result. |
||
6618 | |||
6619 | Added permanent ACPI_REPORT_ERROR macros for all instances of the |
||
6620 | ACPI_AML_INTERNAL exception. |
||
6621 | |||
6622 | Integrated latest version of acfreebsd.h |
||
6623 | |||
6624 | ---------------------------------------- |
||
6625 | 16 January 2004. Summary of changes for version 20040116: |
||
6626 | |||
6627 | The purpose of this release is primarily to update the copyright years in |
||
6628 | each module, thus causing a huge number of diffs. There are a few small |
||
6629 | functional changes, however. |
||
6630 | |||
6631 | 1) ACPI CA Core Subsystem: |
||
6632 | |||
6633 | Improved error messages when there is a problem finding one or more of the |
||
6634 | required base ACPI tables |
||
6635 | |||
6636 | Reintroduced the definition of APIC_HEADER in actbl.h |
||
6637 | |||
6638 | Changed definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h) |
||
6639 | |||
6640 | Removed extraneous reference to NewObj in dsmthdat.c |
||
6641 | |||
6642 | 2) iASL compiler |
||
6643 | |||
6644 | Fixed a problem introduced in December that disabled the correct disassembly |
||
6645 | of Resource Templates |
||
6646 | |||
6647 | |||
6648 | ---------------------------------------- |
||
6649 | 03 December 2003. Summary of changes for version 20031203: |
||
6650 | |||
6651 | 1) ACPI CA Core Subsystem: |
||
6652 | |||
6653 | Changed the initialization of Operation Regions during subsystem |
||
6654 | init to perform two entire walks of the ACPI namespace; The first |
||
6655 | to initialize the regions themselves, the second to execute the |
||
6656 | _REG methods. This fixed some interdependencies across _REG |
||
6657 | methods found on some machines. |
||
6658 | |||
6659 | Fixed a problem where a Store(Local0, Local1) could simply update |
||
6660 | the object reference count, and not create a new copy of the |
||
6661 | object if the Local1 is uninitialized. |
||
6662 | |||
6663 | Implemented support for the _SST reserved method during sleep |
||
6664 | transitions. |
||
6665 | |||
6666 | Implemented support to clear the SLP_TYP and SLP_EN bits when |
||
6667 | waking up, this is apparently required by some machines. |
||
6668 | |||
6669 | When sleeping, clear the wake status only if SleepState is not S5. |
||
6670 | |||
6671 | Fixed a problem in AcpiRsExtendedIrqResource() where an incorrect |
||
6672 | pointer arithmetic advanced a string pointer too far. |
||
6673 | |||
6674 | Fixed a problem in AcpiTbGetTablePtr() where a garbage pointer |
||
6675 | could be returned if the requested table has not been loaded. |
||
6676 | |||
6677 | Within the support for IRQ resources, restructured the handling of |
||
6678 | the active and edge/level bits. |
||
6679 | |||
6680 | Fixed a few problems in AcpiPsxExecute() where memory could be |
||
6681 | leaked under certain error conditions. |
||
6682 | |||
6683 | Improved error messages for the cases where the ACPI mode could |
||
6684 | not be entered. |
||
6685 | |||
6686 | Code and Data Size: Current and previous core subsystem library |
||
6687 | sizes are shown below. These are the code and data sizes for the |
||
6688 | acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and |
||
6689 | these values do not include any ACPI driver or OSPM code. The |
||
6690 | debug version of the code includes the debug output trace |
||
6691 | mechanism and has a much larger code and data size. Note that |
||
6692 | these values will vary depending on the efficiency of the compiler |
||
6693 | and the compiler options used during generation. |
||
6694 | |||
6695 | Previous Release (20031029): |
||
6696 | Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total |
||
6697 | Debug Version: 158.3K Code, 65.0K Data, 223.3K Total |
||
6698 | Current Release: |
||
6699 | Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total |
||
6700 | Debug Version: 158.7K Code, 65.1K Data, 223.8K Total |
||
6701 | |||
6702 | 2) iASL Compiler/Disassembler: |
||
6703 | |||
6704 | Implemented a fix for the iASL disassembler where a bad index was |
||
6705 | generated. This was most noticeable on 64-bit platforms |
||
6706 | |||
6707 | |||
6708 | ---------------------------------------- |
||
6709 | 29 October 2003. Summary of changes for version 20031029: |
||
6710 | |||
6711 | 1) ACPI CA Core Subsystem: |
||
6712 | |||
6713 | |||
6714 | Fixed a problem where a level-triggered GPE with an associated |
||
6715 | _Lxx control method was incorrectly cleared twice. |
||
6716 | |||
6717 | Fixed a problem with the Field support code where an access can |
||
6718 | occur beyond the end-of-region if the field is non-aligned but |
||
6719 | extends to the very end of the parent region (resulted in an |
||
6720 | AE_AML_REGION_LIMIT exception.) |
||
6721 | |||
6722 | Fixed a problem with ACPI Fixed Events where an RT Clock handler |
||
6723 | would not get invoked on an RTC event. The RTC event bitmasks for |
||
6724 | the PM1 registers were not being initialized properly. |
||
6725 | |||
6726 | Implemented support for executing _STA and _INI methods for |
||
6727 | Processor objects. Although this is currently not part of the |
||
6728 | ACPI specification, there is existing ASL code that depends on the |
||
6729 | init-time execution of these methods. |
||
6730 | |||
6731 | Implemented and deployed a GetDescriptorName function to decode |
||
6732 | the various types of internal descriptors. Guards against null |
||
6733 | descriptors during debug output also. |
||
6734 | |||
6735 | Implemented and deployed a GetNodeName function to extract the 4- |
||
6736 | character namespace node name. This function simplifies the debug |
||
6737 | and error output, as well as guarding against null pointers during |
||
6738 | output. |
||
6739 | |||
6740 | Implemented and deployed the ACPI_FORMAT_UINT64 helper macro to |
||
6741 | simplify the debug and error output of 64-bit integers. This |
||
6742 | macro replaces the HIDWORD and LODWORD macros for dumping these |
||
6743 | integers. |
||
6744 | |||
6745 | Updated the implementation of the Stall() operator to only call |
||
6746 | AcpiOsStall(), and also return an error if the operand is larger |
||
6747 | than 255. This preserves the required behavior of not |
||
6748 | relinquishing the processor, as would happen if AcpiOsSleep() was |
||
6749 | called for "long stalls". |
||
6750 | |||
6751 | Constructs of the form "Store(LocalX,LocalX)" where LocalX is not |
||
6752 | initialized are now treated as NOOPs. |
||
6753 | |||
6754 | Cleaned up a handful of warnings during 64-bit generation. |
||
6755 | |||
6756 | Fixed a reported error where and incorrect GPE number was passed |
||
6757 | to the GPE dispatch handler. This value is only used for error |
||
6758 | output, however. Used this opportunity to clean up and streamline |
||
6759 | the GPE dispatch code. |
||
6760 | |||
6761 | Code and Data Size: Current and previous core subsystem library |
||
6762 | sizes are shown below. These are the code and data sizes for the |
||
6763 | acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and |
||
6764 | these values do not include any ACPI driver or OSPM code. The |
||
6765 | |||
6766 | debug version of the code includes the debug output trace |
||
6767 | mechanism and has a much larger code and data size. Note that |
||
6768 | these values will vary depending on the efficiency of the compiler |
||
6769 | and the compiler options used during generation. |
||
6770 | |||
6771 | Previous Release (20031002): |
||
6772 | Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total |
||
6773 | Debug Version: 157.9K Code, 64.8K Data, 222.7K Total |
||
6774 | Current Release: |
||
6775 | Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total |
||
6776 | Debug Version: 158.3K Code, 65.0K Data, 223.3K Total |
||
6777 | |||
6778 | |||
6779 | 2) iASL Compiler/Disassembler: |
||
6780 | |||
6781 | Updated the iASL compiler to return an error if the operand to the |
||
6782 | Stall() operator is larger than 255. |
||
6783 | |||
6784 | |||
6785 | ---------------------------------------- |
||
6786 | 02 October 2003. Summary of changes for version 20031002: |
||
6787 | |||
6788 | |||
6789 | 1) ACPI CA Core Subsystem: |
||
6790 | |||
6791 | Fixed a problem with Index Fields where the index was not |
||
6792 | incremented for fields that require multiple writes to the |
||
6793 | index/data registers (Fields that are wider than the data |
||
6794 | register.) |
||
6795 | |||
6796 | Fixed a problem with all Field objects where a write could go |
||
6797 | beyond the end-of-field if the field was larger than the access |
||
6798 | granularity and therefore required multiple writes to complete the |
||
6799 | request. An extra write beyond the end of the field could happen |
||
6800 | inadvertently. |
||
6801 | |||
6802 | Fixed a problem with Index Fields where a BUFFER_OVERFLOW error |
||
6803 | would incorrectly be returned if the width of the Data Register |
||
6804 | was larger than the specified field access width. |
||
6805 | |||
6806 | Completed fixes for LoadTable() and Unload() and verified their |
||
6807 | operation. Implemented full support for the "DdbHandle" object |
||
6808 | throughout the ACPI CA subsystem. |
||
6809 | |||
6810 | Implemented full support for the MADT and ECDT tables in the ACPI |
||
6811 | CA header files. Even though these tables are not directly |
||
6812 | consumed by ACPI CA, the header definitions are useful for ACPI |
||
6813 | device drivers. |
||
6814 | |||
6815 | Integrated resource descriptor fixes posted to the Linux ACPI |
||
6816 | list. This included checks for minimum descriptor length, and |
||
6817 | support for trailing NULL strings within descriptors that have |
||
6818 | optional string elements. |
||
6819 | |||
6820 | Code and Data Size: Current and previous core subsystem library |
||
6821 | sizes are shown below. These are the code and data sizes for the |
||
6822 | acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and |
||
6823 | these values do not include any ACPI driver or OSPM code. The |
||
6824 | debug version of the code includes the debug output trace |
||
6825 | mechanism and has a much larger code and data size. Note that |
||
6826 | these values will vary depending on the efficiency of the compiler |
||
6827 | and the compiler options used during generation. |
||
6828 | |||
6829 | Previous Release (20030918): |
||
6830 | Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total |
||
6831 | Debug Version: 157.3K Code, 64.5K Data, 221.8K Total |
||
6832 | Current Release: |
||
6833 | Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total |
||
6834 | Debug Version: 157.9K Code, 64.8K Data, 222.7K Total |
||
6835 | |||
6836 | |||
6837 | 2) iASL Compiler: |
||
6838 | |||
6839 | Implemented detection of non-ASCII characters within the input |
||
6840 | source ASL file. This catches attempts to compile binary (AML) |
||
6841 | files early in the compile, with an informative error message. |
||
6842 | |||
6843 | Fixed a problem where the disassembler would fault if the output |
||
6844 | filename could not be generated or if the output file could not be |
||
6845 | opened. |
||
6846 | |||
6847 | ---------------------------------------- |
||
6848 | 18 September 2003. Summary of changes for version 20030918: |
||
6849 | |||
6850 | |||
6851 | 1) ACPI CA Core Subsystem: |
||
6852 | |||
6853 | Found and fixed a longstanding problem with the late execution of |
||
6854 | the various deferred AML opcodes (such as Operation Regions, |
||
6855 | Buffer Fields, Buffers, and Packages). If the name string |
||
6856 | specified for the name of the new object placed the object in a |
||
6857 | scope other than the current scope, the initialization/execution |
||
6858 | of the opcode failed. The solution to this problem was to |
||
6859 | implement a mechanism where the late execution of such opcodes |
||
6860 | does not attempt to lookup/create the name a second time in an |
||
6861 | incorrect scope. This fixes the "region size computed |
||
6862 | incorrectly" problem. |
||
6863 | |||
6864 | Fixed a call to AcpiHwRegisterWrite in hwregs.c that was causing a |
||
6865 | Global Lock AE_BAD_PARAMETER error. |
||
6866 | |||
6867 | Fixed several 64-bit issues with prototypes, casting and data |
||
6868 | types. |
||
6869 | |||
6870 | Removed duplicate prototype from acdisasm.h |
||
6871 | |||
6872 | Fixed an issue involving EC Operation Region Detach (Shaohua Li) |
||
6873 | |||
6874 | Code and Data Size: Current and previous core subsystem library |
||
6875 | sizes are shown below. These are the code and data sizes for the |
||
6876 | acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and |
||
6877 | these values do not include any ACPI driver or OSPM code. The |
||
6878 | debug version of the code includes the debug output trace |
||
6879 | mechanism and has a much larger code and data size. Note that |
||
6880 | these values will vary depending on the efficiency of the compiler |
||
6881 | and the compiler options used during generation. |
||
6882 | |||
6883 | Previous Release: |
||
6884 | |||
6885 | Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total |
||
6886 | Debug Version: 156.9K Code, 64.2K Data, 221.1K Total |
||
6887 | Current Release: |
||
6888 | Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total |
||
6889 | Debug Version: 157.3K Code, 64.5K Data, 221.8K Total |
||
6890 | |||
6891 | |||
6892 | 2) Linux: |
||
6893 | |||
6894 | Fixed the AcpiOsSleep implementation in osunixxf.c to pass the |
||
6895 | correct sleep time in seconds. |
||
6896 | |||
6897 | ---------------------------------------- |
||
6898 | 14 July 2003. Summary of changes for version 20030619: |
||
6899 | |||
6900 | 1) ACPI CA Core Subsystem: |
||
6901 | |||
6902 | Parse SSDTs in order discovered, as opposed to reverse order |
||
6903 | (Hrvoje Habjanic) |
||
6904 | |||
6905 | Fixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas |
||
6906 | Klausner, |
||
6907 | Nate Lawson) |
||
6908 | |||
6909 | |||
6910 | 2) Linux: |
||
6911 | |||
6912 | Dynamically allocate SDT list (suggested by Andi Kleen) |
||
6913 | |||
6914 | proc function return value cleanups (Andi Kleen) |
||
6915 | |||
6916 | Correctly handle NMI watchdog during long stalls (Andrew Morton) |
||
6917 | |||
6918 | Make it so acpismp=force works (reported by Andrew Morton) |
||
6919 | |||
6920 | |||
6921 | ---------------------------------------- |
||
6922 | 19 June 2003. Summary of changes for version 20030619: |
||
6923 | |||
6924 | 1) ACPI CA Core Subsystem: |
||
6925 | |||
6926 | Fix To/FromBCD, eliminating the need for an arch-specific #define. |
||
6927 | |||
6928 | Do not acquire a semaphore in the S5 shutdown path. |
||
6929 | |||
6930 | Fix ex_digits_needed for 0. (Takayoshi Kochi) |
||
6931 | |||
6932 | Fix sleep/stall code reversal. (Andi Kleen) |
||
6933 | |||
6934 | Revert a change having to do with control method calling |
||
6935 | semantics. |
||
6936 | |||
6937 | 2) Linux: |
||
6938 | |||
6939 | acpiphp update (Takayoshi Kochi) |
||
6940 | |||
6941 | Export acpi_disabled for sonypi (Stelian Pop) |
||
6942 | |||
6943 | Mention acpismp=force in config help |
||
6944 | |||
6945 | Re-add acpitable.c and acpismp=force. This improves backwards |
||
6946 | |||
6947 | compatibility and also cleans up the code to a significant degree. |
||
6948 | |||
6949 | Add ASUS Value-add driver (Karol Kozimor and Julien Lerouge) |
||
6950 | |||
6951 | ---------------------------------------- |
||
6952 | 22 May 2003. Summary of changes for version 20030522: |
||
6953 | |||
6954 | 1) ACPI CA Core Subsystem: |
||
6955 | |||
6956 | Found and fixed a reported problem where an AE_NOT_FOUND error |
||
6957 | occurred occasionally during _BST evaluation. This turned out to |
||
6958 | be an Owner ID allocation issue where a called method did not get |
||
6959 | a new ID assigned to it. Eventually, (after 64k calls), the Owner |
||
6960 | ID UINT16 would wraparound so that the ID would be the same as the |
||
6961 | caller's and the called method would delete the caller's |
||
6962 | namespace. |
||
6963 | |||
6964 | Implemented extended error reporting for control methods that are |
||
6965 | aborted due to a run-time exception. Output includes the exact |
||
6966 | AML instruction that caused the method abort, a dump of the method |
||
6967 | locals and arguments at the time of the abort, and a trace of all |
||
6968 | nested control method calls. |
||
6969 | |||
6970 | Modified the interpreter to allow the creation of buffers of zero |
||
6971 | length from the AML code. Implemented new code to ensure that no |
||
6972 | attempt is made to actually allocate a memory buffer (of length |
||
6973 | zero) - instead, a simple buffer object with a NULL buffer pointer |
||
6974 | and length zero is created. A warning is no longer issued when |
||
6975 | the AML attempts to create a zero-length buffer. |
||
6976 | |||
6977 | Implemented a workaround for the "leading asterisk issue" in |
||
6978 | _HIDs, _UIDs, and _CIDs in the AML interpreter. One leading |
||
6979 | asterisk is automatically removed if present in any HID, UID, or |
||
6980 | CID strings. The iASL compiler will still flag this asterisk as |
||
6981 | an error, however. |
||
6982 | |||
6983 | Implemented full support for _CID methods that return a package of |
||
6984 | multiple CIDs (Compatible IDs). The AcpiGetObjectInfo() interface |
||
6985 | now additionally returns a device _CID list if present. This |
||
6986 | required a change to the external interface in order to pass an |
||
6987 | ACPI_BUFFER object as a parameter since the _CID list is of |
||
6988 | variable length. |
||
6989 | |||
6990 | Fixed a problem with the new AE_SAME_HANDLER exception where |
||
6991 | handler initialization code did not know about this exception. |
||
6992 | |||
6993 | Code and Data Size: Current and previous core subsystem library |
||
6994 | sizes are shown below. These are the code and data sizes for the |
||
6995 | acpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and |
||
6996 | these values do not include any ACPI driver or OSPM code. The |
||
6997 | debug version of the code includes the debug output trace |
||
6998 | mechanism and has a much larger code and data size. Note that |
||
6999 | these values will vary depending on the efficiency of the compiler |
||
7000 | and the compiler options used during generation. |
||
7001 | |||
7002 | Previous Release (20030509): |
||
7003 | Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total |
||
7004 | Debug Version: 156.1K Code, 63.9K Data, 220.0K Total |
||
7005 | Current Release: |
||
7006 | Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total |
||
7007 | Debug Version: 156.9K Code, 64.2K Data, 221.1K Total |
||
7008 | |||
7009 | |||
7010 | 2) Linux: |
||
7011 | |||
7012 | Fixed a bug in which we would reinitialize the ACPI interrupt |
||
7013 | after it was already working, thus disabling all ACPI and the IRQs |
||
7014 | for any other device sharing the interrupt. (Thanks to Stian |
||
7015 | Jordet) |
||
7016 | |||
7017 | Toshiba driver update (John Belmonte) |
||
7018 | |||
7019 | Return only 0 or 1 for our interrupt handler status (Andrew |
||
7020 | Morton) |
||
7021 | |||
7022 | |||
7023 | 3) iASL Compiler: |
||
7024 | |||
7025 | Fixed a reported problem where multiple (nested) ElseIf() |
||
7026 | statements were not handled correctly by the compiler, resulting |
||
7027 | in incorrect warnings and incorrect AML code. This was a problem |
||
7028 | in both the ASL parser and the code generator. |
||
7029 | |||
7030 | |||
7031 | 4) Documentation: |
||
7032 | |||
7033 | Added changes to existing interfaces, new exception codes, and new |
||
7034 | text concerning reference count object management versus garbage |
||
7035 | collection. |
||
7036 | |||
7037 | ---------------------------------------- |
||
7038 | 09 May 2003. Summary of changes for version 20030509. |
||
7039 | |||
7040 | |||
7041 | 1) ACPI CA Core Subsystem: |
||
7042 | |||
7043 | Changed the subsystem initialization sequence to hold off |
||
7044 | installation of address space handlers until the hardware has been |
||
7045 | initialized and the system has entered ACPI mode. This is because |
||
7046 | the installation of space handlers can cause _REG methods to be |
||
7047 | run. Previously, the _REG methods could potentially be run before |
||
7048 | ACPI mode was enabled. |
||
7049 | |||
7050 | Fixed some memory leak issues related to address space handler and |
||
7051 | notify handler installation. There were some problems with the |
||
7052 | reference count mechanism caused by the fact that the handler |
||
7053 | objects are shared across several namespace objects. |
||
7054 | |||
7055 | Fixed a reported problem where reference counts within the |
||
7056 | namespace were not properly updated when named objects created by |
||
7057 | method execution were deleted. |
||
7058 | |||
7059 | Fixed a reported problem where multiple SSDTs caused a deletion |
||
7060 | issue during subsystem termination. Restructured the table data |
||
7061 | structures to simplify the linked lists and the related code. |
||
7062 | |||
7063 | Fixed a problem where the table ID associated with secondary |
||
7064 | tables (SSDTs) was not being propagated into the namespace objects |
||
7065 | created by those tables. This would only present a problem for |
||
7066 | tables that are unloaded at run-time, however. |
||
7067 | |||
7068 | Updated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE |
||
7069 | type as the length parameter (instead of UINT32). |
||
7070 | |||
7071 | Solved a long-standing problem where an ALREADY_EXISTS error |
||
7072 | appears on various systems. This problem could happen when there |
||
7073 | are multiple PCI_Config operation regions under a single PCI root |
||
7074 | bus. This doesn't happen very frequently, but there are some |
||
7075 | systems that do this in the ASL. |
||
7076 | |||
7077 | Fixed a reported problem where the internal DeleteNode function |
||
7078 | was incorrectly handling the case where a namespace node was the |
||
7079 | first in the parent's child list, and had additional peers (not |
||
7080 | the only child, but first in the list of children.) |
||
7081 | |||
7082 | Code and Data Size: Current core subsystem library sizes are shown |
||
7083 | below. These are the code and data sizes for the acpica.lib |
||
7084 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7085 | values do not include any ACPI driver or OSPM code. The debug |
||
7086 | version of the code includes the debug output trace mechanism and |
||
7087 | has a much larger code and data size. Note that these values will |
||
7088 | vary depending on the efficiency of the compiler and the compiler |
||
7089 | options used during generation. |
||
7090 | |||
7091 | Previous Release |
||
7092 | Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total |
||
7093 | Debug Version: 156.1K Code, 63.6K Data, 219.7K Total |
||
7094 | Current Release: |
||
7095 | Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total |
||
7096 | Debug Version: 156.1K Code, 63.9K Data, 220.0K Total |
||
7097 | |||
7098 | |||
7099 | 2) Linux: |
||
7100 | |||
7101 | Allow ":" in OS override string (Ducrot Bruno) |
||
7102 | |||
7103 | Kobject fix (Greg KH) |
||
7104 | |||
7105 | |||
7106 | 3 iASL Compiler/Disassembler: |
||
7107 | |||
7108 | Fixed a problem in the generation of the C source code files (AML |
||
7109 | is emitted in C source statements for BIOS inclusion) where the |
||
7110 | Ascii dump that appears within a C comment at the end of each line |
||
7111 | could cause a compile time error if the AML sequence happens to |
||
7112 | have an open comment or close comment sequence embedded. |
||
7113 | |||
7114 | |||
7115 | ---------------------------------------- |
||
7116 | 24 April 2003. Summary of changes for version 20030424. |
||
7117 | |||
7118 | |||
7119 | 1) ACPI CA Core Subsystem: |
||
7120 | |||
7121 | Support for big-endian systems has been implemented. Most of the |
||
7122 | support has been invisibly added behind big-endian versions of the |
||
7123 | ACPI_MOVE_* macros. |
||
7124 | |||
7125 | Fixed a problem in AcpiHwDisableGpeBlock() and |
||
7126 | AcpiHwClearGpeBlock() where an incorrect offset was passed to the |
||
7127 | low level hardware write routine. The offset parameter was |
||
7128 | actually eliminated from the low level read/write routines because |
||
7129 | they had become obsolete. |
||
7130 | |||
7131 | Fixed a problem where a handler object was deleted twice during |
||
7132 | the removal of a fixed event handler. |
||
7133 | |||
7134 | |||
7135 | 2) Linux: |
||
7136 | |||
7137 | A fix for SMP systems with link devices was contributed by |
||
7138 | |||
7139 | Compaq's Dan Zink. |
||
7140 | |||
7141 | (2.5) Return whether we handled the interrupt in our IRQ handler. |
||
7142 | (Linux ISRs no longer return void, so we can propagate the handler |
||
7143 | return value from the ACPI CA core back to the OS.) |
||
7144 | |||
7145 | |||
7146 | |||
7147 | 3) Documentation: |
||
7148 | |||
7149 | The ACPI CA Programmer Reference has been updated to reflect new |
||
7150 | interfaces and changes to existing interfaces. |
||
7151 | |||
7152 | ---------------------------------------- |
||
7153 | 28 March 2003. Summary of changes for version 20030328. |
||
7154 | |||
7155 | 1) ACPI CA Core Subsystem: |
||
7156 | |||
7157 | The GPE Block Device support has been completed. New interfaces |
||
7158 | are AcpiInstallGpeBlock and AcpiRemoveGpeBlock. The Event |
||
7159 | interfaces (enable, disable, clear, getstatus) have been split |
||
7160 | into separate interfaces for Fixed Events and General Purpose |
||
7161 | Events (GPEs) in order to support GPE Block Devices properly. |
||
7162 | |||
7163 | Fixed a problem where the error message "Failed to acquire |
||
7164 | semaphore" would appear during operations on the embedded |
||
7165 | controller (EC). |
||
7166 | |||
7167 | Code and Data Size: Current core subsystem library sizes are shown |
||
7168 | below. These are the code and data sizes for the acpica.lib |
||
7169 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7170 | values do not include any ACPI driver or OSPM code. The debug |
||
7171 | version of the code includes the debug output trace mechanism and |
||
7172 | has a much larger code and data size. Note that these values will |
||
7173 | vary depending on the efficiency of the compiler and the compiler |
||
7174 | options used during generation. |
||
7175 | |||
7176 | Previous Release |
||
7177 | Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total |
||
7178 | Debug Version: 154.0K Code, 63.4K Data, 217.4K Total |
||
7179 | Current Release: |
||
7180 | Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total |
||
7181 | Debug Version: 156.1K Code, 63.6K Data, 219.7K Total |
||
7182 | |||
7183 | |||
7184 | ---------------------------------------- |
||
7185 | 28 February 2003. Summary of changes for version 20030228. |
||
7186 | |||
7187 | |||
7188 | 1) ACPI CA Core Subsystem: |
||
7189 | |||
7190 | The GPE handling and dispatch code has been completely overhauled |
||
7191 | in preparation for support of GPE Block Devices (ID ACPI0006). |
||
7192 | This affects internal data structures and code only; there should |
||
7193 | be no differences visible externally. One new file has been |
||
7194 | added, evgpeblk.c |
||
7195 | |||
7196 | The FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only |
||
7197 | fields that are used to determine the GPE block lengths. The |
||
7198 | REGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address |
||
7199 | structures are ignored. This is per the ACPI specification but it |
||
7200 | isn't very clear. The full 256 Block 0/1 GPEs are now supported |
||
7201 | (the use of REGISTER_BIT_WIDTH limited the number of GPEs to 128). |
||
7202 | |||
7203 | In the SCI interrupt handler, removed the read of the PM1_CONTROL |
||
7204 | register to look at the SCI_EN bit. On some machines, this read |
||
7205 | causes an SMI event and greatly slows down SCI events. (This may |
||
7206 | in fact be the cause of slow battery status response on some |
||
7207 | systems.) |
||
7208 | |||
7209 | Fixed a problem where a store of a NULL string to a package object |
||
7210 | could cause the premature deletion of the object. This was seen |
||
7211 | during execution of the battery _BIF method on some systems, |
||
7212 | resulting in no battery data being returned. |
||
7213 | |||
7214 | Added AcpiWalkResources interface to simplify parsing of resource |
||
7215 | lists. |
||
7216 | |||
7217 | Code and Data Size: Current core subsystem library sizes are shown |
||
7218 | below. These are the code and data sizes for the acpica.lib |
||
7219 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7220 | values do not include any ACPI driver or OSPM code. The debug |
||
7221 | version of the code includes the debug output trace mechanism and |
||
7222 | has a much larger code and data size. Note that these values will |
||
7223 | vary depending on the efficiency of the compiler and the compiler |
||
7224 | options used during generation. |
||
7225 | |||
7226 | Previous Release |
||
7227 | Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total |
||
7228 | Debug Version: 153.0K Code, 62.9K Data, 215.9K Total |
||
7229 | Current Release: |
||
7230 | Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total |
||
7231 | Debug Version: 154.0K Code, 63.4K Data, 217.4K Total |
||
7232 | |||
7233 | |||
7234 | 2) Linux |
||
7235 | |||
7236 | S3 fixes (Ole Rohne) |
||
7237 | |||
7238 | Update ACPI PHP driver with to use new acpi_walk_resource API |
||
7239 | (Bjorn Helgaas) |
||
7240 | |||
7241 | Add S4BIOS support (Pavel Machek) |
||
7242 | |||
7243 | Map in entire table before performing checksum (John Stultz) |
||
7244 | |||
7245 | Expand the mem= cmdline to allow the specification of reserved and |
||
7246 | ACPI DATA blocks (Pavel Machek) |
||
7247 | |||
7248 | Never use ACPI on VISWS |
||
7249 | |||
7250 | Fix derive_pci_id (Ducrot Bruno, Alvaro Lopez) |
||
7251 | |||
7252 | Revert a change that allowed P_BLK lengths to be 4 or 5. This is |
||
7253 | causing us to think that some systems support C2 when they really |
||
7254 | don't. |
||
7255 | |||
7256 | Do not count processor objects for non-present CPUs (Thanks to |
||
7257 | Dominik Brodowski) |
||
7258 | |||
7259 | |||
7260 | 3) iASL Compiler: |
||
7261 | |||
7262 | Fixed a problem where ASL include files could not be found and |
||
7263 | opened. |
||
7264 | |||
7265 | Added support for the _PDC reserved name. |
||
7266 | |||
7267 | |||
7268 | ---------------------------------------- |
||
7269 | 22 January 2003. Summary of changes for version 20030122. |
||
7270 | |||
7271 | |||
7272 | 1) ACPI CA Core Subsystem: |
||
7273 | |||
7274 | Added a check for constructs of the form: Store (Local0, Local0) |
||
7275 | where Local0 is not initialized. Apparently, some BIOS |
||
7276 | programmers believe that this is a NOOP. Since this store doesn't |
||
7277 | do anything anyway, the new prototype behavior will ignore this |
||
7278 | error. This is a case where we can relax the strict checking in |
||
7279 | the interpreter in the name of compatibility. |
||
7280 | |||
7281 | |||
7282 | 2) Linux |
||
7283 | |||
7284 | The AcpiSrc Source Conversion Utility has been released with the |
||
7285 | Linux package for the first time. This is the utility that is |
||
7286 | used to convert the ACPI CA base source code to the Linux version. |
||
7287 | |||
7288 | (Both) Handle P_BLK lengths shorter than 6 more gracefully |
||
7289 | |||
7290 | (Both) Move more headers to include/acpi, and delete an unused |
||
7291 | header. |
||
7292 | |||
7293 | (Both) Move drivers/acpi/include directory to include/acpi |
||
7294 | |||
7295 | (Both) Boot functions don't use cmdline, so don't pass it around |
||
7296 | |||
7297 | (Both) Remove include of unused header (Adrian Bunk) |
||
7298 | |||
7299 | (Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since |
||
7300 | the |
||
7301 | former now also includes the latter, acpiphp.h only needs the one, |
||
7302 | now. |
||
7303 | |||
7304 | (2.5) Make it possible to select method of bios restoring after S3 |
||
7305 | resume. [=> no more ugly ifdefs] (Pavel Machek) |
||
7306 | |||
7307 | (2.5) Make proc write interfaces work (Pavel Machek) |
||
7308 | |||
7309 | (2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski) |
||
7310 | |||
7311 | (2.5) Break out ACPI Perf code into its own module, under cpufreq |
||
7312 | (Dominik Brodowski) |
||
7313 | |||
7314 | (2.4) S4BIOS support (Ducrot Bruno) |
||
7315 | |||
7316 | (2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio |
||
7317 | Visinoni) |
||
7318 | |||
7319 | |||
7320 | 3) iASL Compiler: |
||
7321 | |||
7322 | Added support to disassemble SSDT and PSDTs. |
||
7323 | |||
7324 | Implemented support to obtain SSDTs from the Windows registry if |
||
7325 | available. |
||
7326 | |||
7327 | |||
7328 | ---------------------------------------- |
||
7329 | 09 January 2003. Summary of changes for version 20030109. |
||
7330 | |||
7331 | 1) ACPI CA Core Subsystem: |
||
7332 | |||
7333 | Changed the behavior of the internal Buffer-to-String conversion |
||
7334 | function. The current ACPI specification states that the contents |
||
7335 | of the buffer are "converted to a string of two-character |
||
7336 | hexadecimal numbers, each separated by a space". Unfortunately, |
||
7337 | this definition is not backwards compatible with existing ACPI 1.0 |
||
7338 | implementations (although the behavior was not defined in the ACPI |
||
7339 | 1.0 specification). The new behavior simply copies data from the |
||
7340 | buffer to the string until a null character is found or the end of |
||
7341 | the buffer is reached. The new String object is always null |
||
7342 | terminated. This problem was seen during the generation of _BIF |
||
7343 | battery data where incorrect strings were returned for battery |
||
7344 | type, etc. This will also require an errata to the ACPI |
||
7345 | specification. |
||
7346 | |||
7347 | Renamed all instances of NATIVE_UINT and NATIVE_INT to |
||
7348 | ACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively. |
||
7349 | |||
7350 | Copyright in all module headers (both Linux and non-Linux) has be |
||
7351 | updated to 2003. |
||
7352 | |||
7353 | Code and Data Size: Current core subsystem library sizes are shown |
||
7354 | below. These are the code and data sizes for the acpica.lib |
||
7355 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7356 | values do not include any ACPI driver or OSPM code. The debug |
||
7357 | version of the code includes the debug output trace mechanism and |
||
7358 | has a much larger code and data size. Note that these values will |
||
7359 | vary depending on the efficiency of the compiler and the compiler |
||
7360 | options used during generation. |
||
7361 | |||
7362 | Previous Release |
||
7363 | Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total |
||
7364 | Debug Version: 153.0K Code, 62.9K Data, 215.9K Total |
||
7365 | Current Release: |
||
7366 | Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total |
||
7367 | Debug Version: 153.0K Code, 62.9K Data, 215.9K Total |
||
7368 | |||
7369 | |||
7370 | 2) Linux |
||
7371 | |||
7372 | Fixed an oops on module insertion/removal (Matthew Tippett) |
||
7373 | |||
7374 | (2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante) |
||
7375 | |||
7376 | (2.5) Replace pr_debug (Randy Dunlap) |
||
7377 | |||
7378 | (2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski) |
||
7379 | |||
7380 | (Both) Eliminate spawning of thread from timer callback, in favor |
||
7381 | of schedule_work() |
||
7382 | |||
7383 | (Both) Show Lid status in /proc (Zdenek OGAR Skalak) |
||
7384 | |||
7385 | (Both) Added define for Fixed Function HW region (Matthew Wilcox) |
||
7386 | |||
7387 | (Both) Add missing statics to button.c (Pavel Machek) |
||
7388 | |||
7389 | Several changes have been made to the source code translation |
||
7390 | utility that generates the Linux Code in order to make the code |
||
7391 | more "Linux-like": |
||
7392 | |||
7393 | All typedefs on structs and unions have been removed in keeping |
||
7394 | with the Linux coding style. |
||
7395 | |||
7396 | Removed the non-Linux SourceSafe module revision number from each |
||
7397 | module header. |
||
7398 | |||
7399 | Completed major overhaul of symbols to be lowercased for linux. |
||
7400 | Doubled the number of symbols that are lowercased. |
||
7401 | |||
7402 | Fixed a problem where identifiers within procedure headers and |
||
7403 | within quotes were not fully lower cased (they were left with a |
||
7404 | starting capital.) |
||
7405 | |||
7406 | Some C macros whose only purpose is to allow the generation of 16- |
||
7407 | bit code are now completely removed in the Linux code, increasing |
||
7408 | readability and maintainability. |
||
7409 | |||
7410 | ---------------------------------------- |
||
7411 | |||
7412 | 12 December 2002. Summary of changes for version 20021212. |
||
7413 | |||
7414 | |||
7415 | 1) ACPI CA Core Subsystem: |
||
7416 | |||
7417 | Fixed a problem where the creation of a zero-length AML Buffer |
||
7418 | would cause a fault. |
||
7419 | |||
7420 | Fixed a problem where a Buffer object that pointed to a static AML |
||
7421 | buffer (in an ACPI table) could inadvertently be deleted, causing |
||
7422 | memory corruption. |
||
7423 | |||
7424 | Fixed a problem where a user buffer (passed in to the external |
||
7425 | ACPI CA interfaces) could be overwritten if the buffer was too |
||
7426 | small to complete the operation, causing memory corruption. |
||
7427 | |||
7428 | Fixed a problem in the Buffer-to-String conversion code where a |
||
7429 | string of length one was always returned, regardless of the size |
||
7430 | of the input Buffer object. |
||
7431 | |||
7432 | Removed the NATIVE_CHAR data type across the entire source due to |
||
7433 | lack of need and lack of consistent use. |
||
7434 | |||
7435 | Code and Data Size: Current core subsystem library sizes are shown |
||
7436 | below. These are the code and data sizes for the acpica.lib |
||
7437 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7438 | values do not include any ACPI driver or OSPM code. The debug |
||
7439 | version of the code includes the debug output trace mechanism and |
||
7440 | has a much larger code and data size. Note that these values will |
||
7441 | vary depending on the efficiency of the compiler and the compiler |
||
7442 | options used during generation. |
||
7443 | |||
7444 | Previous Release |
||
7445 | Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total |
||
7446 | Debug Version: 152.7K Code, 62.7K Data, 215.4K Total |
||
7447 | Current Release: |
||
7448 | Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total |
||
7449 | Debug Version: 153.0K Code, 62.9K Data, 215.9K Total |
||
7450 | |||
7451 | |||
7452 | ---------------------------------------- |
||
7453 | 05 December 2002. Summary of changes for version 20021205. |
||
7454 | |||
7455 | 1) ACPI CA Core Subsystem: |
||
7456 | |||
7457 | Fixed a problem where a store to a String or Buffer object could |
||
7458 | cause corruption of the DSDT if the object type being stored was |
||
7459 | the same as the target object type and the length of the object |
||
7460 | being stored was equal to or smaller than the original (existing) |
||
7461 | target object. This was seen to cause corruption of battery _BIF |
||
7462 | buffers if the _BIF method modified the buffer on the fly. |
||
7463 | |||
7464 | Fixed a problem where an internal error was generated if a control |
||
7465 | method invocation was used in an OperationRegion, Buffer, or |
||
7466 | Package declaration. This was caused by the deferred parsing of |
||
7467 | the control method and thus the deferred creation of the internal |
||
7468 | method object. The solution to this problem was to create the |
||
7469 | internal method object at the moment the method is encountered in |
||
7470 | the first pass - so that subsequent references to the method will |
||
7471 | able to obtain the required parameter count and thus properly |
||
7472 | parse the method invocation. This problem presented itself as an |
||
7473 | AE_AML_INTERNAL during the pass 1 parse phase during table load. |
||
7474 | |||
7475 | Fixed a problem where the internal String object copy routine did |
||
7476 | not always allocate sufficient memory for the target String object |
||
7477 | and caused memory corruption. This problem was seen to cause |
||
7478 | "Allocation already present in list!" errors as memory allocation |
||
7479 | became corrupted. |
||
7480 | |||
7481 | Implemented a new function for the evaluation of namespace objects |
||
7482 | that allows the specification of the allowable return object |
||
7483 | types. This simplifies a lot of code that checks for a return |
||
7484 | object of one or more specific objects returned from the |
||
7485 | evaluation (such as _STA, etc.) This may become and external |
||
7486 | function if it would be useful to ACPI-related drivers. |
||
7487 | |||
7488 | Completed another round of prefixing #defines with "ACPI_" for |
||
7489 | clarity. |
||
7490 | |||
7491 | Completed additional code restructuring to allow more modular |
||
7492 | linking for iASL compiler and AcpiExec. Several files were split |
||
7493 | creating new files. New files: nsparse.c dsinit.c evgpe.c |
||
7494 | |||
7495 | Implemented an abort mechanism to terminate an executing control |
||
7496 | method via the AML debugger. This feature is useful for debugging |
||
7497 | control methods that depend (wait) for specific hardware |
||
7498 | responses. |
||
7499 | |||
7500 | Code and Data Size: Current core subsystem library sizes are shown |
||
7501 | below. These are the code and data sizes for the acpica.lib |
||
7502 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7503 | values do not include any ACPI driver or OSPM code. The debug |
||
7504 | version of the code includes the debug output trace mechanism and |
||
7505 | has a much larger code and data size. Note that these values will |
||
7506 | vary depending on the efficiency of the compiler and the compiler |
||
7507 | options used during generation. |
||
7508 | |||
7509 | Previous Release |
||
7510 | Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total |
||
7511 | Debug Version: 152.9K Code, 63.3K Data, 216.2K Total |
||
7512 | Current Release: |
||
7513 | Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total |
||
7514 | Debug Version: 152.7K Code, 62.7K Data, 215.4K Total |
||
7515 | |||
7516 | |||
7517 | 2) iASL Compiler/Disassembler |
||
7518 | |||
7519 | Fixed a compiler code generation problem for "Interrupt" Resource |
||
7520 | Descriptors. If specified in the ASL, the optional "Resource |
||
7521 | Source Index" and "Resource Source" fields were not inserted into |
||
7522 | the correct location within the AML resource descriptor, creating |
||
7523 | an invalid descriptor. |
||
7524 | |||
7525 | Fixed a disassembler problem for "Interrupt" resource descriptors. |
||
7526 | The optional "Resource Source Index" and "Resource Source" fields |
||
7527 | were ignored. |
||
7528 | |||
7529 | |||
7530 | ---------------------------------------- |
||
7531 | 22 November 2002. Summary of changes for version 20021122. |
||
7532 | |||
7533 | |||
7534 | 1) ACPI CA Core Subsystem: |
||
7535 | |||
7536 | Fixed a reported problem where an object stored to a Method Local |
||
7537 | or Arg was not copied to a new object during the store - the |
||
7538 | object pointer was simply copied to the Local/Arg. This caused |
||
7539 | all subsequent operations on the Local/Arg to also affect the |
||
7540 | original source of the store operation. |
||
7541 | |||
7542 | Fixed a problem where a store operation to a Method Local or Arg |
||
7543 | was not completed properly if the Local/Arg contained a reference |
||
7544 | (from RefOf) to a named field. The general-purpose store-to- |
||
7545 | namespace-node code is now used so that this case is handled |
||
7546 | automatically. |
||
7547 | |||
7548 | Fixed a problem where the internal object copy routine would cause |
||
7549 | a protection fault if the object being copied was a Package and |
||
7550 | contained either 1) a NULL package element or 2) a nested sub- |
||
7551 | package. |
||
7552 | |||
7553 | Fixed a problem with the GPE initialization that resulted from an |
||
7554 | ambiguity in the ACPI specification. One section of the |
||
7555 | specification states that both the address and length of the GPE |
||
7556 | block must be zero if the block is not supported. Another section |
||
7557 | implies that only the address need be zero if the block is not |
||
7558 | supported. The code has been changed so that both the address and |
||
7559 | the length must be non-zero to indicate a valid GPE block (i.e., |
||
7560 | if either the address or the length is zero, the GPE block is |
||
7561 | invalid.) |
||
7562 | |||
7563 | Code and Data Size: Current core subsystem library sizes are shown |
||
7564 | below. These are the code and data sizes for the acpica.lib |
||
7565 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7566 | values do not include any ACPI driver or OSPM code. The debug |
||
7567 | version of the code includes the debug output trace mechanism and |
||
7568 | has a much larger code and data size. Note that these values will |
||
7569 | vary depending on the efficiency of the compiler and the compiler |
||
7570 | options used during generation. |
||
7571 | |||
7572 | Previous Release |
||
7573 | Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total |
||
7574 | Debug Version: 152.7K Code, 63.2K Data, 215.5K Total |
||
7575 | Current Release: |
||
7576 | Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total |
||
7577 | Debug Version: 152.9K Code, 63.3K Data, 216.2K Total |
||
7578 | |||
7579 | |||
7580 | 2) Linux |
||
7581 | |||
7582 | Cleaned up EC driver. Exported an external EC read/write |
||
7583 | interface. By going through this, other drivers (most notably |
||
7584 | sonypi) will be able to serialize access to the EC. |
||
7585 | |||
7586 | |||
7587 | 3) iASL Compiler/Disassembler |
||
7588 | |||
7589 | Implemented support to optionally generate include files for both |
||
7590 | ASM and C (the -i switch). This simplifies BIOS development by |
||
7591 | automatically creating include files that contain external |
||
7592 | declarations for the symbols that are created within the |
||
7593 | |||
7594 | (optionally generated) ASM and C AML source files. |
||
7595 | |||
7596 | |||
7597 | ---------------------------------------- |
||
7598 | 15 November 2002. Summary of changes for version 20021115. |
||
7599 | |||
7600 | 1) ACPI CA Core Subsystem: |
||
7601 | |||
7602 | Fixed a memory leak problem where an error during resolution of |
||
7603 | |||
7604 | method arguments during a method invocation from another method |
||
7605 | failed to cleanup properly by deleting all successfully resolved |
||
7606 | argument objects. |
||
7607 | |||
7608 | Fixed a problem where the target of the Index() operator was not |
||
7609 | correctly constructed if the source object was a package. This |
||
7610 | problem has not been detected because the use of a target operand |
||
7611 | with Index() is very rare. |
||
7612 | |||
7613 | Fixed a problem with the Index() operator where an attempt was |
||
7614 | made to delete the operand objects twice. |
||
7615 | |||
7616 | Fixed a problem where an attempt was made to delete an operand |
||
7617 | twice during execution of the CondRefOf() operator if the target |
||
7618 | did not exist. |
||
7619 | |||
7620 | Implemented the first of perhaps several internal create object |
||
7621 | functions that create and initialize a specific object type. This |
||
7622 | consolidates duplicated code wherever the object is created, thus |
||
7623 | shrinking the size of the subsystem. |
||
7624 | |||
7625 | Implemented improved debug/error messages for errors that occur |
||
7626 | during nested method invocations. All executing method pathnames |
||
7627 | are displayed (with the error) as the call stack is unwound - thus |
||
7628 | simplifying debug. |
||
7629 | |||
7630 | Fixed a problem introduced in the 10/02 release that caused |
||
7631 | premature deletion of a buffer object if a buffer was used as an |
||
7632 | ASL operand where an integer operand is required (Thus causing an |
||
7633 | implicit object conversion from Buffer to Integer.) The change in |
||
7634 | the 10/02 release was attempting to fix a memory leak (albeit |
||
7635 | incorrectly.) |
||
7636 | |||
7637 | Code and Data Size: Current core subsystem library sizes are shown |
||
7638 | below. These are the code and data sizes for the acpica.lib |
||
7639 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7640 | values do not include any ACPI driver or OSPM code. The debug |
||
7641 | version of the code includes the debug output trace mechanism and |
||
7642 | has a much larger code and data size. Note that these values will |
||
7643 | vary depending on the efficiency of the compiler and the compiler |
||
7644 | options used during generation. |
||
7645 | |||
7646 | Previous Release |
||
7647 | Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total |
||
7648 | Debug Version: 153.1K Code, 63.3K Data, 216.4K Total |
||
7649 | Current Release: |
||
7650 | Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total |
||
7651 | Debug Version: 152.7K Code, 63.2K Data, 215.5K Total |
||
7652 | |||
7653 | |||
7654 | 2) Linux |
||
7655 | |||
7656 | Changed the implementation of the ACPI semaphores to use down() |
||
7657 | instead of down_interruptable(). It is important that the |
||
7658 | execution of ACPI control methods not be interrupted by signals. |
||
7659 | Methods must run to completion, or the system may be left in an |
||
7660 | unknown/unstable state. |
||
7661 | |||
7662 | Fixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not set. |
||
7663 | (Shawn Starr) |
||
7664 | |||
7665 | |||
7666 | 3) iASL Compiler/Disassembler |
||
7667 | |||
7668 | |||
7669 | Changed the default location of output files. All output files |
||
7670 | are now placed in the current directory by default instead of in |
||
7671 | the directory of the source file. This change may affect some |
||
7672 | existing makefiles, but it brings the behavior of the compiler in |
||
7673 | line with other similar tools. The location of the output files |
||
7674 | can be overridden with the -p command line switch. |
||
7675 | |||
7676 | |||
7677 | ---------------------------------------- |
||
7678 | 11 November 2002. Summary of changes for version 20021111. |
||
7679 | |||
7680 | |||
7681 | 0) ACPI Specification 2.0B is released and is now available at: |
||
7682 | http://www.acpi.info/index.html |
||
7683 | |||
7684 | |||
7685 | 1) ACPI CA Core Subsystem: |
||
7686 | |||
7687 | Implemented support for the ACPI 2.0 SMBus Operation Regions. |
||
7688 | This includes the early detection and handoff of the request to |
||
7689 | the SMBus region handler (avoiding all of the complex field |
||
7690 | support code), and support for the bidirectional return packet |
||
7691 | from an SMBus write operation. This paves the way for the |
||
7692 | development of SMBus drivers in each host operating system. |
||
7693 | |||
7694 | Fixed a problem where the semaphore WAIT_FOREVER constant was |
||
7695 | defined as 32 bits, but must be 16 bits according to the ACPI |
||
7696 | specification. This had the side effect of causing ASL |
||
7697 | Mutex/Event timeouts even though the ASL code requested a wait |
||
7698 | forever. Changed all internal references to the ACPI timeout |
||
7699 | parameter to 16 bits to prevent future problems. Changed the name |
||
7700 | of WAIT_FOREVER to ACPI_WAIT_FOREVER. |
||
7701 | |||
7702 | Code and Data Size: Current core subsystem library sizes are shown |
||
7703 | below. These are the code and data sizes for the acpica.lib |
||
7704 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7705 | values do not include any ACPI driver or OSPM code. The debug |
||
7706 | version of the code includes the debug output trace mechanism and |
||
7707 | has a much larger code and data size. Note that these values will |
||
7708 | vary depending on the efficiency of the compiler and the compiler |
||
7709 | options used during generation. |
||
7710 | |||
7711 | Previous Release |
||
7712 | Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total |
||
7713 | Debug Version: 152.3K Code, 63.0K Data, 215.3K Total |
||
7714 | Current Release: |
||
7715 | Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total |
||
7716 | Debug Version: 153.1K Code, 63.3K Data, 216.4K Total |
||
7717 | |||
7718 | |||
7719 | 2) Linux |
||
7720 | |||
7721 | Module loading/unloading fixes (John Cagle) |
||
7722 | |||
7723 | |||
7724 | 3) iASL Compiler/Disassembler |
||
7725 | |||
7726 | Added support for the SMBBlockProcessCall keyword (ACPI 2.0) |
||
7727 | |||
7728 | Implemented support for the disassembly of all SMBus protocol |
||
7729 | keywords (SMBQuick, SMBWord, etc.) |
||
7730 | |||
7731 | ---------------------------------------- |
||
7732 | 01 November 2002. Summary of changes for version 20021101. |
||
7733 | |||
7734 | |||
7735 | 1) ACPI CA Core Subsystem: |
||
7736 | |||
7737 | Fixed a problem where platforms that have a GPE1 block but no GPE0 |
||
7738 | block were not handled correctly. This resulted in a "GPE |
||
7739 | overlap" error message. GPE0 is no longer required. |
||
7740 | |||
7741 | Removed code added in the previous release that inserted nodes |
||
7742 | into the namespace in alphabetical order. This caused some side- |
||
7743 | effects on various machines. The root cause of the problem is |
||
7744 | still under investigation since in theory, the internal ordering |
||
7745 | of the namespace nodes should not matter. |
||
7746 | |||
7747 | |||
7748 | Enhanced error reporting for the case where a named object is not |
||
7749 | found during control method execution. The full ACPI namepath |
||
7750 | (name reference) of the object that was not found is displayed in |
||
7751 | this case. |
||
7752 | |||
7753 | Note: as a result of the overhaul of the namespace object types in |
||
7754 | the previous release, the namespace nodes for the predefined |
||
7755 | scopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE |
||
7756 | instead of ACPI_TYPE_ANY. This simplifies the namespace |
||
7757 | management code but may affect code that walks the namespace tree |
||
7758 | looking for specific object types. |
||
7759 | |||
7760 | Code and Data Size: Current core subsystem library sizes are shown |
||
7761 | below. These are the code and data sizes for the acpica.lib |
||
7762 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7763 | values do not include any ACPI driver or OSPM code. The debug |
||
7764 | version of the code includes the debug output trace mechanism and |
||
7765 | has a much larger code and data size. Note that these values will |
||
7766 | vary depending on the efficiency of the compiler and the compiler |
||
7767 | options used during generation. |
||
7768 | |||
7769 | Previous Release |
||
7770 | Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total |
||
7771 | Debug Version: 151.7K Code, 62.4K Data, 214.1K Total |
||
7772 | Current Release: |
||
7773 | Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total |
||
7774 | Debug Version: 152.3K Code, 63.0K Data, 215.3K Total |
||
7775 | |||
7776 | |||
7777 | 2) Linux |
||
7778 | |||
7779 | Fixed a problem introduced in the previous release where the |
||
7780 | Processor and Thermal objects were not recognized and installed in |
||
7781 | /proc. This was related to the scope type change described above. |
||
7782 | |||
7783 | |||
7784 | 3) iASL Compiler/Disassembler |
||
7785 | |||
7786 | Implemented the -g option to get all of the required ACPI tables |
||
7787 | from the registry and save them to files (Windows version of the |
||
7788 | compiler only.) The required tables are the FADT, FACS, and DSDT. |
||
7789 | |||
7790 | Added ACPI table checksum validation during table disassembly in |
||
7791 | order to catch corrupted tables. |
||
7792 | |||
7793 | |||
7794 | ---------------------------------------- |
||
7795 | 22 October 2002. Summary of changes for version 20021022. |
||
7796 | |||
7797 | 1) ACPI CA Core Subsystem: |
||
7798 | |||
7799 | Implemented a restriction on the Scope operator that the target |
||
7800 | must already exist in the namespace at the time the operator is |
||
7801 | encountered (during table load or method execution). In other |
||
7802 | words, forward references are not allowed and Scope() cannot |
||
7803 | create a new object. This changes the previous behavior where the |
||
7804 | interpreter would create the name if not found. This new behavior |
||
7805 | correctly enables the search-to-root algorithm during namespace |
||
7806 | lookup of the target name. Because of this upsearch, this fixes |
||
7807 | the known Compaq _SB_.OKEC problem and makes both the AML |
||
7808 | interpreter and iASL compiler compatible with other ACPI |
||
7809 | implementations. |
||
7810 | |||
7811 | Completed a major overhaul of the internal ACPI object types for |
||
7812 | the ACPI Namespace and the associated operand objects. Many of |
||
7813 | these types had become obsolete with the introduction of the two- |
||
7814 | pass namespace load. This cleanup simplifies the code and makes |
||
7815 | the entire namespace load mechanism much clearer and easier to |
||
7816 | understand. |
||
7817 | |||
7818 | Improved debug output for tracking scope opening/closing to help |
||
7819 | diagnose scoping issues. The old scope name as well as the new |
||
7820 | scope name are displayed. Also improved error messages for |
||
7821 | problems with ASL Mutex objects and error messages for GPE |
||
7822 | problems. |
||
7823 | |||
7824 | Cleaned up the namespace dump code, removed obsolete code. |
||
7825 | |||
7826 | All string output (for all namespace/object dumps) now uses the |
||
7827 | common ACPI string output procedure which handles escapes properly |
||
7828 | and does not emit non-printable characters. |
||
7829 | |||
7830 | Fixed some issues with constants in the 64-bit version of the |
||
7831 | local C library (utclib.c) |
||
7832 | |||
7833 | |||
7834 | 2) Linux |
||
7835 | |||
7836 | EC Driver: No longer attempts to acquire the Global Lock at |
||
7837 | interrupt level. |
||
7838 | |||
7839 | |||
7840 | 3) iASL Compiler/Disassembler |
||
7841 | |||
7842 | Implemented ACPI 2.0B grammar change that disallows all Type 1 and |
||
7843 | 2 opcodes outside of a control method. This means that the |
||
7844 | "executable" operators (versus the "namespace" operators) cannot |
||
7845 | be used at the table level; they can only be used within a control |
||
7846 | method. |
||
7847 | |||
7848 | Implemented the restriction on the Scope() operator where the |
||
7849 | target must already exist in the namespace at the time the |
||
7850 | operator is encountered (during ASL compilation). In other words, |
||
7851 | forward references are not allowed and Scope() cannot create a new |
||
7852 | object. This makes the iASL compiler compatible with other ACPI |
||
7853 | implementations and makes the Scope() implementation adhere to the |
||
7854 | ACPI specification. |
||
7855 | |||
7856 | Fixed a problem where namepath optimization for the Alias operator |
||
7857 | was optimizing the wrong path (of the two namepaths.) This caused |
||
7858 | a "Missing alias link" error message. |
||
7859 | |||
7860 | Fixed a problem where an "unknown reserved name" warning could be |
||
7861 | incorrectly generated for names like "_SB" when the trailing |
||
7862 | underscore is not used in the original ASL. |
||
7863 | |||
7864 | Fixed a problem where the reserved name check did not handle |
||
7865 | NamePaths with multiple NameSegs correctly. The first nameseg of |
||
7866 | the NamePath was examined instead of the last NameSeg. |
||
7867 | |||
7868 | |||
7869 | ---------------------------------------- |
||
7870 | |||
7871 | 02 October 2002. Summary of changes for this release. |
||
7872 | |||
7873 | |||
7874 | 1) ACPI CA Core Subsystem version 20021002: |
||
7875 | |||
7876 | Fixed a problem where a store/copy of a string to an existing |
||
7877 | string did not always set the string length properly in the String |
||
7878 | object. |
||
7879 | |||
7880 | Fixed a reported problem with the ToString operator where the |
||
7881 | behavior was identical to the ToHexString operator instead of just |
||
7882 | simply converting a raw buffer to a string data type. |
||
7883 | |||
7884 | Fixed a problem where CopyObject and the other "explicit" |
||
7885 | conversion operators were not updating the internal namespace node |
||
7886 | type as part of the store operation. |
||
7887 | |||
7888 | Fixed a memory leak during implicit source operand conversion |
||
7889 | where the original object was not deleted if it was converted to a |
||
7890 | new object of a different type. |
||
7891 | |||
7892 | Enhanced error messages for all problems associated with namespace |
||
7893 | lookups. Common procedure generates and prints the lookup name as |
||
7894 | well as the formatted status. |
||
7895 | |||
7896 | Completed implementation of a new design for the Alias support |
||
7897 | within the namespace. The existing design did not handle the case |
||
7898 | where a new object was assigned to one of the two names due to the |
||
7899 | use of an explicit conversion operator, resulting in the two names |
||
7900 | pointing to two different objects. The new design simply points |
||
7901 | the Alias name to the original name node - not to the object. |
||
7902 | This results in a level of indirection that must be handled in the |
||
7903 | name resolution mechanism. |
||
7904 | |||
7905 | Code and Data Size: Current core subsystem library sizes are shown |
||
7906 | below. These are the code and data sizes for the acpica.lib |
||
7907 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
7908 | values do not include any ACPI driver or OSPM code. The debug |
||
7909 | version of the code includes the debug output trace mechanism and |
||
7910 | has a larger code and data size. Note that these values will vary |
||
7911 | depending on the efficiency of the compiler and the compiler |
||
7912 | options used during generation. |
||
7913 | |||
7914 | Previous Release |
||
7915 | Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total |
||
7916 | Debug Version: 150.0K Code, 61.7K Data, 211.7K Total |
||
7917 | Current Release: |
||
7918 | Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total |
||
7919 | Debug Version: 151.7K Code, 62.4K Data, 214.1K Total |
||
7920 | |||
7921 | |||
7922 | 2) Linux |
||
7923 | |||
7924 | Initialize thermal driver's timer before it is used. (Knut |
||
7925 | Neumann) |
||
7926 | |||
7927 | Allow handling negative celsius values. (Kochi Takayoshi) |
||
7928 | |||
7929 | Fix thermal management and make trip points. R/W (Pavel Machek) |
||
7930 | |||
7931 | Fix /proc/acpi/sleep. (P. Christeas) |
||
7932 | |||
7933 | IA64 fixes. (David Mosberger) |
||
7934 | |||
7935 | Fix reversed logic in blacklist code. (Sergio Monteiro Basto) |
||
7936 | |||
7937 | Replace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik |
||
7938 | Brodowski) |
||
7939 | |||
7940 | |||
7941 | 3) iASL Compiler/Disassembler |
||
7942 | |||
7943 | Clarified some warning/error messages. |
||
7944 | |||
7945 | |||
7946 | ---------------------------------------- |
||
7947 | 18 September 2002. Summary of changes for this release. |
||
7948 | |||
7949 | |||
7950 | 1) ACPI CA Core Subsystem version 20020918: |
||
7951 | |||
7952 | Fixed a reported problem with reference chaining (via the Index() |
||
7953 | and RefOf() operators) in the ObjectType() and SizeOf() operators. |
||
7954 | The definition of these operators includes the dereferencing of |
||
7955 | all chained references to return information on the base object. |
||
7956 | |||
7957 | Fixed a problem with stores to indexed package elements - the |
||
7958 | existing code would not complete the store if an "implicit |
||
7959 | conversion" was not performed. In other words, if the existing |
||
7960 | object (package element) was to be replaced completely, the code |
||
7961 | didn't handle this case. |
||
7962 | |||
7963 | Relaxed typechecking on the ASL "Scope" operator to allow the |
||
7964 | target name to refer to an object of type Integer, String, or |
||
7965 | Buffer, in addition to the scoping object types (Device, |
||
7966 | predefined Scopes, Processor, PowerResource, and ThermalZone.) |
||
7967 | This allows existing AML code that has workarounds for a bug in |
||
7968 | Windows to function properly. A warning is issued, however. This |
||
7969 | affects both the AML interpreter and the iASL compiler. Below is |
||
7970 | an example of this type of ASL code: |
||
7971 | |||
7972 | Name(DEB,0x00) |
||
7973 | Scope(DEB) |
||
7974 | { |
||
7975 | |||
7976 | Fixed some reported problems with 64-bit integer support in the |
||
7977 | local implementation of C library functions (clib.c) |
||
7978 | |||
7979 | |||
7980 | 2) Linux |
||
7981 | |||
7982 | Use ACPI fix map region instead of IOAPIC region, since it is |
||
7983 | undefined in non-SMP. |
||
7984 | |||
7985 | Ensure that the SCI has the proper polarity and trigger, even on |
||
7986 | systems that do not have an interrupt override entry in the MADT. |
||
7987 | |||
7988 | 2.5 big driver reorganization (Pat Mochel) |
||
7989 | |||
7990 | Use early table mapping code from acpitable.c (Andi Kleen) |
||
7991 | |||
7992 | New blacklist entries (Andi Kleen) |
||
7993 | |||
7994 | Blacklist improvements. Split blacklist code out into a separate |
||
7995 | file. Move checking the blacklist to very early. Previously, we |
||
7996 | would use ACPI tables, and then halfway through init, check the |
||
7997 | blacklist -- too late. Now, it's early enough to completely fall- |
||
7998 | back to non-ACPI. |
||
7999 | |||
8000 | |||
8001 | 3) iASL Compiler/Disassembler version 20020918: |
||
8002 | |||
8003 | Fixed a problem where the typechecking code didn't know that an |
||
8004 | alias could point to a method. In other words, aliases were not |
||
8005 | being dereferenced during typechecking. |
||
8006 | |||
8007 | |||
8008 | ---------------------------------------- |
||
8009 | 29 August 2002. Summary of changes for this release. |
||
8010 | |||
8011 | 1) ACPI CA Core Subsystem Version 20020829: |
||
8012 | |||
8013 | If the target of a Scope() operator already exists, it must be an |
||
8014 | object type that actually opens a scope -- such as a Device, |
||
8015 | Method, Scope, etc. This is a fatal runtime error. Similar error |
||
8016 | check has been added to the iASL compiler also. |
||
8017 | |||
8018 | Tightened up the namespace load to disallow multiple names in the |
||
8019 | same scope. This previously was allowed if both objects were of |
||
8020 | the same type. (i.e., a lookup was the same as entering a new |
||
8021 | name). |
||
8022 | |||
8023 | |||
8024 | 2) Linux |
||
8025 | |||
8026 | Ensure that the ACPI interrupt has the proper trigger and |
||
8027 | polarity. |
||
8028 | |||
8029 | local_irq_disable is extraneous. (Matthew Wilcox) |
||
8030 | |||
8031 | Make "acpi=off" actually do what it says, and not use the ACPI |
||
8032 | interpreter *or* the tables. |
||
8033 | |||
8034 | Added arch-neutral support for parsing SLIT and SRAT tables (Kochi |
||
8035 | Takayoshi) |
||
8036 | |||
8037 | |||
8038 | 3) iASL Compiler/Disassembler Version 20020829: |
||
8039 | |||
8040 | Implemented namepath optimization for name declarations. For |
||
8041 | example, a declaration like "Method (\_SB_.ABCD)" would get |
||
8042 | optimized to "Method (ABCD)" if the declaration is within the |
||
8043 | \_SB_ scope. This optimization is in addition to the named |
||
8044 | reference path optimization first released in the previous |
||
8045 | version. This would seem to complete all possible optimizations |
||
8046 | for namepaths within the ASL/AML. |
||
8047 | |||
8048 | If the target of a Scope() operator already exists, it must be an |
||
8049 | object type that actually opens a scope -- such as a Device, |
||
8050 | Method, Scope, etc. |
||
8051 | |||
8052 | Implemented a check and warning for unreachable code in the same |
||
8053 | block below a Return() statement. |
||
8054 | |||
8055 | Fixed a problem where the listing file was not generated if the |
||
8056 | compiler aborted if the maximum error count was exceeded (200). |
||
8057 | |||
8058 | Fixed a problem where the typechecking of method return values was |
||
8059 | broken. This includes the check for a return value when the |
||
8060 | method is invoked as a TermArg (a return value is expected.) |
||
8061 | |||
8062 | Fixed a reported problem where EOF conditions during a quoted |
||
8063 | string or comment caused a fault. |
||
8064 | |||
8065 | |||
8066 | ---------------------------------------- |
||
8067 | 15 August 2002. Summary of changes for this release. |
||
8068 | |||
8069 | 1) ACPI CA Core Subsystem Version 20020815: |
||
8070 | |||
8071 | Fixed a reported problem where a Store to a method argument that |
||
8072 | contains a reference did not perform the indirect store correctly. |
||
8073 | This problem was created during the conversion to the new |
||
8074 | reference object model - the indirect store to a method argument |
||
8075 | code was not updated to reflect the new model. |
||
8076 | |||
8077 | Reworked the ACPI mode change code to better conform to ACPI 2.0, |
||
8078 | handle corner cases, and improve code legibility (Kochi Takayoshi) |
||
8079 | |||
8080 | Fixed a problem with the pathname parsing for the carat (^) |
||
8081 | prefix. The heavy use of the carat operator by the new namepath |
||
8082 | optimization in the iASL compiler uncovered a problem with the AML |
||
8083 | interpreter handling of this prefix. In the case where one or |
||
8084 | more carats precede a single nameseg, the nameseg was treated as |
||
8085 | standalone and the search rule (to root) was inadvertently |
||
8086 | applied. This could cause both the iASL compiler and the |
||
8087 | interpreter to find the wrong object or to miss the error that |
||
8088 | should occur if the object does not exist at that exact pathname. |
||
8089 | |||
8090 | Found and fixed the problem where the HP Pavilion DSDT would not |
||
8091 | load. This was a relatively minor tweak to the table loading code |
||
8092 | (a problem caused by the unexpected encounter with a method |
||
8093 | invocation not within a control method), but it does not solve the |
||
8094 | overall issue of the execution of AML code at the table level. |
||
8095 | This investigation is still ongoing. |
||
8096 | |||
8097 | Code and Data Size: Current core subsystem library sizes are shown |
||
8098 | below. These are the code and data sizes for the acpica.lib |
||
8099 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8100 | values do not include any ACPI driver or OSPM code. The debug |
||
8101 | version of the code includes the debug output trace mechanism and |
||
8102 | has a larger code and data size. Note that these values will vary |
||
8103 | depending on the efficiency of the compiler and the compiler |
||
8104 | options used during generation. |
||
8105 | |||
8106 | Previous Release |
||
8107 | Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total |
||
8108 | Debug Version: 149.4K Code, 61.6K Data, 211.0K Total |
||
8109 | Current Release: |
||
8110 | Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total |
||
8111 | Debug Version: 150.0K Code, 61.7K Data, 211.7K Total |
||
8112 | |||
8113 | |||
8114 | 2) Linux |
||
8115 | |||
8116 | Remove redundant slab.h include (Brad Hards) |
||
8117 | |||
8118 | Fix several bugs in thermal.c (Herbert Nachtnebel) |
||
8119 | |||
8120 | Make CONFIG_ACPI_BOOT work properly (Pavel Machek) |
||
8121 | |||
8122 | Change acpi_system_suspend to use updated irq functions (Pavel |
||
8123 | Machek) |
||
8124 | |||
8125 | Export acpi_get_firmware_table (Matthew Wilcox) |
||
8126 | |||
8127 | Use proper root proc entry for ACPI (Kochi Takayoshi) |
||
8128 | |||
8129 | Fix early-boot table parsing (Bjorn Helgaas) |
||
8130 | |||
8131 | |||
8132 | 3) iASL Compiler/Disassembler |
||
8133 | |||
8134 | Reworked the compiler options to make them more consistent and to |
||
8135 | use two-letter options where appropriate. We were running out of |
||
8136 | sensible letters. This may break some makefiles, so check the |
||
8137 | current options list by invoking the compiler with no parameters. |
||
8138 | |||
8139 | Completed the design and implementation of the ASL namepath |
||
8140 | optimization option for the compiler. This option optimizes all |
||
8141 | references to named objects to the shortest possible path. The |
||
8142 | first attempt tries to utilize a single nameseg (4 characters) and |
||
8143 | the "search-to-root" algorithm used by the interpreter. If that |
||
8144 | cannot be used (because either the name is not in the search path |
||
8145 | or there is a conflict with another object with the same name), |
||
8146 | the pathname is optimized using the carat prefix (usually a |
||
8147 | shorter string than specifying the entire path from the root.) |
||
8148 | |||
8149 | Implemented support to obtain the DSDT from the Windows registry |
||
8150 | (when the disassembly option is specified with no input file). |
||
8151 | Added this code as the implementation for AcpiOsTableOverride in |
||
8152 | the Windows OSL. Migrated the 16-bit code (used in the AcpiDump |
||
8153 | utility) to scan memory for the DSDT to the AcpiOsTableOverride |
||
8154 | function in the DOS OSL to make the disassembler truly OS |
||
8155 | independent. |
||
8156 | |||
8157 | Implemented a new option to disassemble and compile in one step. |
||
8158 | When used without an input filename, this option will grab the |
||
8159 | DSDT from the local machine, disassemble it, and compile it in one |
||
8160 | step. |
||
8161 | |||
8162 | Added a warning message for invalid escapes (a backslash followed |
||
8163 | by any character other than the allowable escapes). This catches |
||
8164 | the quoted string error "\_SB_" (which should be "\\_SB_" ). |
||
8165 | |||
8166 | Also, there are numerous instances in the ACPI specification where |
||
8167 | this error occurs. |
||
8168 | |||
8169 | Added a compiler option to disable all optimizations. This is |
||
8170 | basically the "compatibility mode" because by using this option, |
||
8171 | the AML code will come out exactly the same as other ASL |
||
8172 | compilers. |
||
8173 | |||
8174 | Added error messages for incorrectly ordered dependent resource |
||
8175 | functions. This includes: missing EndDependentFn macro at end of |
||
8176 | dependent resource list, nested dependent function macros (both |
||
8177 | start and end), and missing StartDependentFn macro. These are |
||
8178 | common errors that should be caught at compile time. |
||
8179 | |||
8180 | Implemented _OSI support for the disassembler and compiler. _OSI |
||
8181 | must be included in the namespace for proper disassembly (because |
||
8182 | the disassembler must know the number of arguments.) |
||
8183 | |||
8184 | Added an "optimization" message type that is optional (off by |
||
8185 | default). This message is used for all optimizations - including |
||
8186 | constant folding, integer optimization, and namepath optimization. |
||
8187 | |||
8188 | ---------------------------------------- |
||
8189 | 25 July 2002. Summary of changes for this release. |
||
8190 | |||
8191 | |||
8192 | 1) ACPI CA Core Subsystem Version 20020725: |
||
8193 | |||
8194 | The AML Disassembler has been enhanced to produce compilable ASL |
||
8195 | code and has been integrated into the iASL compiler (see below) as |
||
8196 | well as the single-step disassembly for the AML debugger and the |
||
8197 | disassembler for the AcpiDump utility. All ACPI 2.0A opcodes, |
||
8198 | resource templates and macros are fully supported. The |
||
8199 | disassembler has been tested on over 30 different AML files, |
||
8200 | producing identical AML when the resulting disassembled ASL file |
||
8201 | is recompiled with the same ASL compiler. |
||
8202 | |||
8203 | Modified the Resource Manager to allow zero interrupts and zero |
||
8204 | dma channels during the GetCurrentResources call. This was |
||
8205 | causing problems on some platforms. |
||
8206 | |||
8207 | Added the AcpiOsRedirectOutput interface to the OSL to simplify |
||
8208 | output redirection for the AcpiOsPrintf and AcpiOsVprintf |
||
8209 | interfaces. |
||
8210 | |||
8211 | Code and Data Size: Current core subsystem library sizes are shown |
||
8212 | below. These are the code and data sizes for the acpica.lib |
||
8213 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8214 | values do not include any ACPI driver or OSPM code. The debug |
||
8215 | version of the code includes the debug output trace mechanism and |
||
8216 | has a larger code and data size. Note that these values will vary |
||
8217 | depending on the efficiency of the compiler and the compiler |
||
8218 | options used during generation. |
||
8219 | |||
8220 | Previous Release |
||
8221 | Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total |
||
8222 | Debug Version: 142.9K Code, 58.7K Data, 201.6K Total |
||
8223 | Current Release: |
||
8224 | Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total |
||
8225 | Debug Version: 149.4K Code, 61.6K Data, 211.0K Total |
||
8226 | |||
8227 | |||
8228 | 2) Linux |
||
8229 | |||
8230 | Fixed a panic in the EC driver (Dominik Brodowski) |
||
8231 | |||
8232 | Implemented checksum of the R/XSDT itself during Linux table scan |
||
8233 | (Richard Schaal) |
||
8234 | |||
8235 | |||
8236 | 3) iASL compiler |
||
8237 | |||
8238 | The AML disassembler is integrated into the compiler. The "-d" |
||
8239 | option invokes the disassembler to completely disassemble an |
||
8240 | input AML file, producing as output a text ASL file with the |
||
8241 | extension ".dsl" (to avoid name collisions with existing .asl |
||
8242 | source files.) A future enhancement will allow the disassembler |
||
8243 | to obtain the BIOS DSDT from the registry under Windows. |
||
8244 | |||
8245 | Fixed a problem with the VendorShort and VendorLong resource |
||
8246 | descriptors where an invalid AML sequence was created. |
||
8247 | |||
8248 | Implemented a fix for BufferData term in the ASL parser. It was |
||
8249 | inadvertently defined twice, allowing invalid syntax to pass and |
||
8250 | causing reduction conflicts. |
||
8251 | |||
8252 | Fixed a problem where the Ones opcode could get converted to a |
||
8253 | value of zero if "Ones" was used where a byte, word or dword value |
||
8254 | was expected. The 64-bit value is now truncated to the correct |
||
8255 | size with the correct value. |
||
8256 | |||
8257 | |||
8258 | |||
8259 | ---------------------------------------- |
||
8260 | 02 July 2002. Summary of changes for this release. |
||
8261 | |||
8262 | |||
8263 | 1) ACPI CA Core Subsystem Version 20020702: |
||
8264 | |||
8265 | The Table Manager code has been restructured to add several new |
||
8266 | features. Tables that are not required by the core subsystem |
||
8267 | (other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer |
||
8268 | validated in any way and are returned from AcpiGetFirmwareTable if |
||
8269 | requested. The AcpiOsTableOverride interface is now called for |
||
8270 | each table that is loaded by the subsystem in order to allow the |
||
8271 | host to override any table it chooses. Previously, only the DSDT |
||
8272 | could be overridden. Added one new files, tbrsdt.c and |
||
8273 | tbgetall.c. |
||
8274 | |||
8275 | Fixed a problem with the conversion of internal package objects to |
||
8276 | external objects (when a package is returned from a control |
||
8277 | method.) The return buffer length was set to zero instead of the |
||
8278 | proper length of the package object. |
||
8279 | |||
8280 | Fixed a reported problem with the use of the RefOf and DeRefOf |
||
8281 | operators when passing reference arguments to control methods. A |
||
8282 | new type of Reference object is used internally for references |
||
8283 | produced by the RefOf operator. |
||
8284 | |||
8285 | Added additional error messages in the Resource Manager to explain |
||
8286 | AE_BAD_DATA errors when they occur during resource parsing. |
||
8287 | |||
8288 | Split the AcpiEnableSubsystem into two primitives to enable a |
||
8289 | finer granularity initialization sequence. These two calls should |
||
8290 | be called in this order: AcpiEnableSubsystem (flags), |
||
8291 | AcpiInitializeObjects (flags). The flags parameter remains the |
||
8292 | same. |
||
8293 | |||
8294 | |||
8295 | 2) Linux |
||
8296 | |||
8297 | Updated the ACPI utilities module to understand the new style of |
||
8298 | fully resolved package objects that are now returned from the core |
||
8299 | subsystem. This eliminates errors of the form: |
||
8300 | |||
8301 | ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT] |
||
8302 | acpi_utils-0430 [145] acpi_evaluate_reference: |
||
8303 | Invalid element in package (not a device reference) |
||
8304 | |||
8305 | The method evaluation utility uses the new buffer allocation |
||
8306 | scheme instead of calling AcpiEvaluate Object twice. |
||
8307 | |||
8308 | Added support for ECDT. This allows the use of the Embedded |
||
8309 | |||
8310 | Controller before the namespace has been fully initialized, which |
||
8311 | is necessary for ACPI 2.0 support, and for some laptops to |
||
8312 | initialize properly. (Laptops using ECDT are still rare, so only |
||
8313 | limited testing was performed of the added functionality.) |
||
8314 | |||
8315 | Fixed memory leaks in the EC driver. |
||
8316 | |||
8317 | Eliminated a brittle code structure in acpi_bus_init(). |
||
8318 | |||
8319 | Eliminated the acpi_evaluate() helper function in utils.c. It is |
||
8320 | no longer needed since acpi_evaluate_object can optionally |
||
8321 | allocate memory for the return object. |
||
8322 | |||
8323 | Implemented fix for keyboard hang when getting battery readings on |
||
8324 | some systems (Stephen White) |
||
8325 | |||
8326 | PCI IRQ routing update (Dominik Brodowski) |
||
8327 | |||
8328 | Fix an ifdef to allow compilation on UP with LAPIC but no IOAPIC |
||
8329 | support |
||
8330 | |||
8331 | ---------------------------------------- |
||
8332 | 11 June 2002. Summary of changes for this release. |
||
8333 | |||
8334 | |||
8335 | 1) ACPI CA Core Subsystem Version 20020611: |
||
8336 | |||
8337 | Fixed a reported problem where constants such as Zero and One |
||
8338 | appearing within _PRT packages were not handled correctly within |
||
8339 | the resource manager code. Originally reported against the ASL |
||
8340 | compiler because the code generator now optimizes integers to |
||
8341 | their minimal AML representation (i.e. AML constants if possible.) |
||
8342 | The _PRT code now handles all AML constant opcodes correctly |
||
8343 | (Zero, One, Ones, Revision). |
||
8344 | |||
8345 | Fixed a problem with the Concatenate operator in the AML |
||
8346 | interpreter where a buffer result object was incorrectly marked as |
||
8347 | not fully evaluated, causing a run-time error of AE_AML_INTERNAL. |
||
8348 | |||
8349 | All package sub-objects are now fully resolved before they are |
||
8350 | returned from the external ACPI interfaces. This means that name |
||
8351 | strings are resolved to object handles, and constant operators |
||
8352 | (Zero, One, Ones, Revision) are resolved to Integers. |
||
8353 | |||
8354 | Implemented immediate resolution of the AML Constant opcodes |
||
8355 | (Zero, One, Ones, Revision) to Integer objects upon detection |
||
8356 | within the AML stream. This has simplified and reduced the |
||
8357 | generated code size of the subsystem by eliminating about 10 |
||
8358 | switch statements for these constants (which previously were |
||
8359 | contained in Reference objects.) The complicating issues are that |
||
8360 | the Zero opcode is used as a "placeholder" for unspecified |
||
8361 | optional target operands and stores to constants are defined to be |
||
8362 | no-ops. |
||
8363 | |||
8364 | Code and Data Size: Current core subsystem library sizes are shown |
||
8365 | below. These are the code and data sizes for the acpica.lib |
||
8366 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8367 | values do not include any ACPI driver or OSPM code. The debug |
||
8368 | version of the code includes the debug output trace mechanism and |
||
8369 | has a larger code and data size. Note that these values will vary |
||
8370 | depending on the efficiency of the compiler and the compiler |
||
8371 | options used during generation. |
||
8372 | |||
8373 | Previous Release |
||
8374 | Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total |
||
8375 | Debug Version: 143.8K Code, 58.8K Data, 202.6K Total |
||
8376 | Current Release: |
||
8377 | Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total |
||
8378 | Debug Version: 142.9K Code, 58.7K Data, 201.6K Total |
||
8379 | |||
8380 | |||
8381 | 2) Linux |
||
8382 | |||
8383 | |||
8384 | Added preliminary support for obtaining _TRA data for PCI root |
||
8385 | bridges (Bjorn Helgaas). |
||
8386 | |||
8387 | |||
8388 | 3) iASL Compiler Version X2046: |
||
8389 | |||
8390 | Fixed a problem where the "_DDN" reserved name was defined to be a |
||
8391 | control method with one argument. There are no arguments, and |
||
8392 | _DDN does not have to be a control method. |
||
8393 | |||
8394 | Fixed a problem with the Linux version of the compiler where the |
||
8395 | source lines printed with error messages were the wrong lines. |
||
8396 | This turned out to be the "LF versus CR/LF" difference between |
||
8397 | Windows and Unix. This appears to be the longstanding issue |
||
8398 | concerning listing output and error messages. |
||
8399 | |||
8400 | Fixed a problem with the Linux version of compiler where opcode |
||
8401 | names within error messages were wrong. This was caused by a |
||
8402 | slight difference in the output of the Flex tool on Linux versus |
||
8403 | Windows. |
||
8404 | |||
8405 | Fixed a problem with the Linux compiler where the hex output files |
||
8406 | contained some garbage data caused by an internal buffer overrun. |
||
8407 | |||
8408 | |||
8409 | ---------------------------------------- |
||
8410 | 17 May 2002. Summary of changes for this release. |
||
8411 | |||
8412 | |||
8413 | 1) ACPI CA Core Subsystem Version 20020517: |
||
8414 | |||
8415 | Implemented a workaround to an BIOS bug discovered on the HP |
||
8416 | OmniBook where the FADT revision number and the table size are |
||
8417 | inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The new |
||
8418 | behavior is to fallback to using only the ACPI 1.0 fields of the |
||
8419 | FADT if the table is too small to be a ACPI 2.0 table as claimed |
||
8420 | by the revision number. Although this is a BIOS bug, this is a |
||
8421 | case where the workaround is simple enough and with no side |
||
8422 | effects, so it seemed prudent to add it. A warning message is |
||
8423 | issued, however. |
||
8424 | |||
8425 | Implemented minimum size checks for the fixed-length ACPI tables - |
||
8426 | - the FADT and FACS, as well as consistency checks between the |
||
8427 | revision number and the table size. |
||
8428 | |||
8429 | Fixed a reported problem in the table override support where the |
||
8430 | new table pointer was incorrectly treated as a physical address |
||
8431 | instead of a logical address. |
||
8432 | |||
8433 | Eliminated the use of the AE_AML_ERROR exception and replaced it |
||
8434 | with more descriptive codes. |
||
8435 | |||
8436 | Fixed a problem where an exception would occur if an ASL Field was |
||
8437 | defined with no named Field Units underneath it (used by some |
||
8438 | index fields). |
||
8439 | |||
8440 | Code and Data Size: Current core subsystem library sizes are shown |
||
8441 | below. These are the code and data sizes for the acpica.lib |
||
8442 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8443 | values do not include any ACPI driver or OSPM code. The debug |
||
8444 | version of the code includes the debug output trace mechanism and |
||
8445 | has a larger code and data size. Note that these values will vary |
||
8446 | depending on the efficiency of the compiler and the compiler |
||
8447 | options used during generation. |
||
8448 | |||
8449 | Previous Release |
||
8450 | Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total |
||
8451 | Debug Version: 142.9K Code, 58.4K Data, 201.3K Total |
||
8452 | Current Release: |
||
8453 | Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total |
||
8454 | Debug Version: 143.8K Code, 58.8K Data, 202.6K Total |
||
8455 | |||
8456 | |||
8457 | |||
8458 | 2) Linux |
||
8459 | |||
8460 | Much work done on ACPI init (MADT and PCI IRQ routing support). |
||
8461 | (Paul D. and Dominik Brodowski) |
||
8462 | |||
8463 | Fix PCI IRQ-related panic on boot (Sam Revitch) |
||
8464 | |||
8465 | Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno) |
||
8466 | |||
8467 | Fix "MHz" typo (Dominik Brodowski) |
||
8468 | |||
8469 | Fix RTC year 2000 issue (Dominik Brodowski) |
||
8470 | |||
8471 | Preclude multiple button proc entries (Eric Brunet) |
||
8472 | |||
8473 | Moved arch-specific code out of include/platform/aclinux.h |
||
8474 | |||
8475 | 3) iASL Compiler Version X2044: |
||
8476 | |||
8477 | Implemented error checking for the string used in the EISAID macro |
||
8478 | (Usually used in the definition of the _HID object.) The code now |
||
8479 | strictly enforces the PnP format - exactly 7 characters, 3 |
||
8480 | uppercase letters and 4 hex digits. |
||
8481 | |||
8482 | If a raw string is used in the definition of the _HID object |
||
8483 | (instead of the EISAID macro), the string must contain all |
||
8484 | alphanumeric characters (e.g., "*PNP0011" is not allowed because |
||
8485 | of the asterisk.) |
||
8486 | |||
8487 | Implemented checking for invalid use of ACPI reserved names for |
||
8488 | most of the name creation operators (Name, Device, Event, Mutex, |
||
8489 | OperationRegion, PowerResource, Processor, and ThermalZone.) |
||
8490 | Previously, this check was only performed for control methods. |
||
8491 | |||
8492 | Implemented an additional check on the Name operator to emit an |
||
8493 | error if a reserved name that must be implemented in ASL as a |
||
8494 | control method is used. We know that a reserved name must be a |
||
8495 | method if it is defined with input arguments. |
||
8496 | |||
8497 | The warning emitted when a namespace object reference is not found |
||
8498 | during the cross reference phase has been changed into an error. |
||
8499 | The "External" directive should be used for names defined in other |
||
8500 | modules. |
||
8501 | |||
8502 | |||
8503 | 4) Tools and Utilities |
||
8504 | |||
8505 | The 16-bit tools (adump16 and aexec16) have been regenerated and |
||
8506 | tested. |
||
8507 | |||
8508 | Fixed a problem with the output of both acpidump and adump16 where |
||
8509 | the indentation of closing parentheses and brackets was not |
||
8510 | |||
8511 | aligned properly with the parent block. |
||
8512 | |||
8513 | |||
8514 | ---------------------------------------- |
||
8515 | 03 May 2002. Summary of changes for this release. |
||
8516 | |||
8517 | |||
8518 | 1) ACPI CA Core Subsystem Version 20020503: |
||
8519 | |||
8520 | Added support a new OSL interface that allows the host operating |
||
8521 | |||
8522 | system software to override the DSDT found in the firmware - |
||
8523 | AcpiOsTableOverride. With this interface, the OSL can examine the |
||
8524 | version of the firmware DSDT and replace it with a different one |
||
8525 | if desired. |
||
8526 | |||
8527 | Added new external interfaces for accessing ACPI registers from |
||
8528 | device drivers and other system software - AcpiGetRegister and |
||
8529 | AcpiSetRegister. This was simply an externalization of the |
||
8530 | existing AcpiHwBitRegister interfaces. |
||
8531 | |||
8532 | Fixed a regression introduced in the previous build where the |
||
8533 | ASL/AML CreateField operator always returned an error, |
||
8534 | "destination must be a NS Node". |
||
8535 | |||
8536 | Extended the maximum time (before failure) to successfully enable |
||
8537 | ACPI mode to 3 seconds. |
||
8538 | |||
8539 | Code and Data Size: Current core subsystem library sizes are shown |
||
8540 | below. These are the code and data sizes for the acpica.lib |
||
8541 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8542 | values do not include any ACPI driver or OSPM code. The debug |
||
8543 | version of the code includes the debug output trace mechanism and |
||
8544 | has a larger code and data size. Note that these values will vary |
||
8545 | depending on the efficiency of the compiler and the compiler |
||
8546 | options used during generation. |
||
8547 | |||
8548 | Previous Release |
||
8549 | Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total |
||
8550 | Debug Version: 142.4K Code, 58.3K Data, 200.7K Total |
||
8551 | Current Release: |
||
8552 | Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total |
||
8553 | Debug Version: 142.9K Code, 58.4K Data, 201.3K Total |
||
8554 | |||
8555 | |||
8556 | 2) Linux |
||
8557 | |||
8558 | Enhanced ACPI init code for SMP. We are now fully MPS and $PIR- |
||
8559 | free. While 3 out of 4 of our in-house systems work fine, the last |
||
8560 | one still hangs when testing the LAPIC timer. |
||
8561 | |||
8562 | Renamed many files in 2.5 kernel release to omit "acpi_" from the |
||
8563 | name. |
||
8564 | |||
8565 | Added warning on boot for Presario 711FR. |
||
8566 | |||
8567 | Sleep improvements (Pavel Machek) |
||
8568 | |||
8569 | ACPI can now be built without CONFIG_PCI enabled. |
||
8570 | |||
8571 | IA64: Fixed memory map functions (JI Lee) |
||
8572 | |||
8573 | |||
8574 | 3) iASL Compiler Version X2043: |
||
8575 | |||
8576 | Added support to allow the compiler to be integrated into the MS |
||
8577 | VC++ development environment for one-button compilation of single |
||
8578 | files or entire projects -- with error-to-source-line mapping. |
||
8579 | |||
8580 | Implemented support for compile-time constant folding for the |
||
8581 | Type3, Type4, and Type5 opcodes first defined in the ACPI 2.0 |
||
8582 | specification. This allows the ASL writer to use expressions |
||
8583 | instead of Integer/Buffer/String constants in terms that must |
||
8584 | evaluate to constants at compile time and will also simplify the |
||
8585 | emitted AML in any such sub-expressions that can be folded |
||
8586 | (evaluated at compile-time.) This increases the size of the |
||
8587 | compiler significantly because a portion of the ACPI CA AML |
||
8588 | interpreter is included within the compiler in order to pre- |
||
8589 | evaluate constant expressions. |
||
8590 | |||
8591 | |||
8592 | Fixed a problem with the "Unicode" ASL macro that caused the |
||
8593 | compiler to fault. (This macro is used in conjunction with the |
||
8594 | _STR reserved name.) |
||
8595 | |||
8596 | Implemented an AML opcode optimization to use the Zero, One, and |
||
8597 | Ones opcodes where possible to further reduce the size of integer |
||
8598 | constants and thus reduce the overall size of the generated AML |
||
8599 | code. |
||
8600 | |||
8601 | Implemented error checking for new reserved terms for ACPI version |
||
8602 | 2.0A. |
||
8603 | |||
8604 | Implemented the -qr option to display the current list of ACPI |
||
8605 | reserved names known to the compiler. |
||
8606 | |||
8607 | Implemented the -qc option to display the current list of ASL |
||
8608 | operators that are allowed within constant expressions and can |
||
8609 | therefore be folded at compile time if the operands are constants. |
||
8610 | |||
8611 | |||
8612 | 4) Documentation |
||
8613 | |||
8614 | Updated the Programmer's Reference for new interfaces, data types, |
||
8615 | and memory allocation model options. |
||
8616 | |||
8617 | Updated the iASL Compiler User Reference to apply new format and |
||
8618 | add information about new features and options. |
||
8619 | |||
8620 | ---------------------------------------- |
||
8621 | 19 April 2002. Summary of changes for this release. |
||
8622 | |||
8623 | 1) ACPI CA Core Subsystem Version 20020419: |
||
8624 | |||
8625 | The source code base for the Core Subsystem has been completely |
||
8626 | cleaned with PC-lint (FlexLint) for both 32-bit and 64-bit |
||
8627 | versions. The Lint option files used are included in the |
||
8628 | /acpi/generate/lint directory. |
||
8629 | |||
8630 | Implemented enhanced status/error checking across the entire |
||
8631 | Hardware manager subsystem. Any hardware errors (reported from |
||
8632 | the OSL) are now bubbled up and will abort a running control |
||
8633 | method. |
||
8634 | |||
8635 | |||
8636 | Fixed a problem where the per-ACPI-table integer width (32 or 64) |
||
8637 | was stored only with control method nodes, causing a fault when |
||
8638 | non-control method code was executed during table loading. The |
||
8639 | solution implemented uses a global variable to indicate table |
||
8640 | width across the entire ACPI subsystem. Therefore, ACPI CA does |
||
8641 | not support mixed integer widths across different ACPI tables |
||
8642 | (DSDT, SSDT). |
||
8643 | |||
8644 | Fixed a problem where NULL extended fields (X fields) in an ACPI |
||
8645 | 2.0 ACPI FADT caused the table load to fail. Although the |
||
8646 | existing ACPI specification is a bit fuzzy on this topic, the new |
||
8647 | behavior is to fall back on a ACPI 1.0 field if the corresponding |
||
8648 | ACPI 2.0 X field is zero (even though the table revision indicates |
||
8649 | a full ACPI 2.0 table.) The ACPI specification will be updated to |
||
8650 | clarify this issue. |
||
8651 | |||
8652 | Fixed a problem with the SystemMemory operation region handler |
||
8653 | where memory was always accessed byte-wise even if the AML- |
||
8654 | specified access width was larger than a byte. This caused |
||
8655 | problems on systems with memory-mapped I/O. Memory is now |
||
8656 | accessed with the width specified. On systems that do not support |
||
8657 | non-aligned transfers, a check is made to guarantee proper address |
||
8658 | alignment before proceeding in order to avoid an AML-caused |
||
8659 | alignment fault within the kernel. |
||
8660 | |||
8661 | |||
8662 | Fixed a problem with the ExtendedIrq resource where only one byte |
||
8663 | of the 4-byte Irq field was extracted. |
||
8664 | |||
8665 | Fixed the AcpiExDigitsNeeded() procedure to support _UID. This |
||
8666 | function was out of date and required a rewrite. |
||
8667 | |||
8668 | Code and Data Size: Current core subsystem library sizes are shown |
||
8669 | below. These are the code and data sizes for the acpica.lib |
||
8670 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8671 | values do not include any ACPI driver or OSPM code. The debug |
||
8672 | version of the code includes the debug output trace mechanism and |
||
8673 | has a larger code and data size. Note that these values will vary |
||
8674 | depending on the efficiency of the compiler and the compiler |
||
8675 | options used during generation. |
||
8676 | |||
8677 | Previous Release |
||
8678 | Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total |
||
8679 | Debug Version: 139.8K Code, 57.4K Data, 197.2K Total |
||
8680 | Current Release: |
||
8681 | Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total |
||
8682 | Debug Version: 142.4K Code, 58.3K Data, 200.7K Total |
||
8683 | |||
8684 | |||
8685 | 2) Linux |
||
8686 | |||
8687 | PCI IRQ routing fixes (Dominik Brodowski) |
||
8688 | |||
8689 | |||
8690 | 3) iASL Compiler Version X2042: |
||
8691 | |||
8692 | Implemented an additional compile-time error check for a field |
||
8693 | unit whose size + minimum access width would cause a run-time |
||
8694 | access beyond the end-of-region. Previously, only the field size |
||
8695 | itself was checked. |
||
8696 | |||
8697 | The Core subsystem and iASL compiler now share a common parse |
||
8698 | object in preparation for compile-time evaluation of the type |
||
8699 | 3/4/5 ASL operators. |
||
8700 | |||
8701 | |||
8702 | ---------------------------------------- |
||
8703 | Summary of changes for this release: 03_29_02 |
||
8704 | |||
8705 | 1) ACPI CA Core Subsystem Version 20020329: |
||
8706 | |||
8707 | Implemented support for late evaluation of TermArg operands to |
||
8708 | Buffer and Package objects. This allows complex expressions to be |
||
8709 | used in the declarations of these object types. |
||
8710 | |||
8711 | Fixed an ACPI 1.0 compatibility issue when reading Fields. In ACPI |
||
8712 | 1.0, if the field was larger than 32 bits, it was returned as a |
||
8713 | buffer - otherwise it was returned as an integer. In ACPI 2.0, |
||
8714 | the field is returned as a buffer only if the field is larger than |
||
8715 | 64 bits. The TableRevision is now considered when making this |
||
8716 | conversion to avoid incompatibility with existing ASL code. |
||
8717 | |||
8718 | Implemented logical addressing for AcpiOsGetRootPointer. This |
||
8719 | allows an RSDP with either a logical or physical address. With |
||
8720 | this support, the host OS can now override all ACPI tables with |
||
8721 | one logical RSDP. Includes implementation of "typed" pointer |
||
8722 | support to allow a common data type for both physical and logical |
||
8723 | pointers internally. This required a change to the |
||
8724 | AcpiOsGetRootPointer interface. |
||
8725 | |||
8726 | Implemented the use of ACPI 2.0 Generic Address Structures for all |
||
8727 | GPE, Fixed Event, and PM Timer I/O. This allows the use of memory |
||
8728 | mapped I/O for these ACPI features. |
||
8729 | |||
8730 | Initialization now ignores not only non-required tables (All |
||
8731 | tables other than the FADT, FACS, DSDT, and SSDTs), but also does |
||
8732 | not validate the table headers of unrecognized tables. |
||
8733 | |||
8734 | Fixed a problem where a notify handler could only be |
||
8735 | installed/removed on an object of type Device. All "notify" |
||
8736 | |||
8737 | objects are now supported -- Devices, Processor, Power, and |
||
8738 | Thermal. |
||
8739 | |||
8740 | Removed most verbosity from the ACPI_DB_INFO debug level. Only |
||
8741 | critical information is returned when this debug level is enabled. |
||
8742 | |||
8743 | Code and Data Size: Current core subsystem library sizes are shown |
||
8744 | below. These are the code and data sizes for the acpica.lib |
||
8745 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8746 | values do not include any ACPI driver or OSPM code. The debug |
||
8747 | version of the code includes the debug output trace mechanism and |
||
8748 | has a larger code and data size. Note that these values will vary |
||
8749 | depending on the efficiency of the compiler and the compiler |
||
8750 | options used during generation. |
||
8751 | |||
8752 | Previous Release |
||
8753 | Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total |
||
8754 | Debug Version: 138.0K Code, 56.6K Data, 194.6K Total |
||
8755 | Current Release: |
||
8756 | Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total |
||
8757 | Debug Version: 139.8K Code, 57.4K Data, 197.2K Total |
||
8758 | |||
8759 | |||
8760 | 2) Linux: |
||
8761 | |||
8762 | The processor driver (acpi_processor.c) now fully supports ACPI |
||
8763 | 2.0-based processor performance control (e.g. Intel(R) |
||
8764 | SpeedStep(TM) technology) Note that older laptops that only have |
||
8765 | the Intel "applet" interface are not supported through this. The |
||
8766 | 'limit' and 'performance' interface (/proc) are fully functional. |
||
8767 | [Note that basic policy for controlling performance state |
||
8768 | transitions will be included in the next version of ospmd.] The |
||
8769 | idle handler was modified to more aggressively use C2, and PIIX4 |
||
8770 | errata handling underwent a complete overhaul (big thanks to |
||
8771 | Dominik Brodowski). |
||
8772 | |||
8773 | Added support for ACPI-PCI device binding (acpi_pci_root.c). _ADR- |
||
8774 | based devices in the ACPI namespace are now dynamically bound |
||
8775 | (associated) with their PCI counterparts (e.g. PCI1->01:00.0). |
||
8776 | This allows, among other things, ACPI to resolve bus numbers for |
||
8777 | subordinate PCI bridges. |
||
8778 | |||
8779 | Enhanced PCI IRQ routing to get the proper bus number for _PRT |
||
8780 | entries defined underneath PCI bridges. |
||
8781 | |||
8782 | Added IBM 600E to bad bios list due to invalid _ADR value for |
||
8783 | PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing. |
||
8784 | |||
8785 | In the process of adding full MADT support (e.g. IOAPIC) for IA32 |
||
8786 | (acpi.c, mpparse.c) -- stay tuned. |
||
8787 | |||
8788 | Added back visual differentiation between fixed-feature and |
||
8789 | control-method buttons in dmesg. Buttons are also subtyped (e.g. |
||
8790 | button/power/PWRF) to simplify button identification. |
||
8791 | |||
8792 | We no longer use -Wno-unused when compiling debug. Please ignore |
||
8793 | any "_THIS_MODULE defined but not used" messages. |
||
8794 | |||
8795 | Can now shut down the system using "magic sysrq" key. |
||
8796 | |||
8797 | |||
8798 | 3) iASL Compiler version 2041: |
||
8799 | |||
8800 | Fixed a problem where conversion errors for hex/octal/decimal |
||
8801 | constants were not reported. |
||
8802 | |||
8803 | Implemented a fix for the General Register template Address field. |
||
8804 | This field was 8 bits when it should be 64. |
||
8805 | |||
8806 | Fixed a problem where errors/warnings were no longer being emitted |
||
8807 | within the listing output file. |
||
8808 | |||
8809 | Implemented the ACPI 2.0A restriction on ACPI Table Signatures to |
||
8810 | exactly 4 characters, alphanumeric only. |
||
8811 | |||
8812 | |||
8813 | |||
8814 | |||
8815 | ---------------------------------------- |
||
8816 | Summary of changes for this release: 03_08_02 |
||
8817 | |||
8818 | |||
8819 | 1) ACPI CA Core Subsystem Version 20020308: |
||
8820 | |||
8821 | Fixed a problem with AML Fields where the use of the "AccessAny" |
||
8822 | keyword could cause an interpreter error due to attempting to read |
||
8823 | or write beyond the end of the parent Operation Region. |
||
8824 | |||
8825 | Fixed a problem in the SystemMemory Operation Region handler where |
||
8826 | an attempt was made to map memory beyond the end of the region. |
||
8827 | This was the root cause of the "AE_ERROR" and "AE_NO_MEMORY" |
||
8828 | errors on some Linux systems. |
||
8829 | |||
8830 | Fixed a problem where the interpreter/namespace "search to root" |
||
8831 | algorithm was not functioning for some object types. Relaxed the |
||
8832 | internal restriction on the search to allow upsearches for all |
||
8833 | external object types as well as most internal types. |
||
8834 | |||
8835 | |||
8836 | 2) Linux: |
||
8837 | |||
8838 | We now use safe_halt() macro versus individual calls to sti | hlt. |
||
8839 | |||
8840 | Writing to the processor limit interface should now work. "echo 1" |
||
8841 | will increase the limit, 2 will decrease, and 0 will reset to the |
||
8842 | |||
8843 | default. |
||
8844 | |||
8845 | |||
8846 | 3) ASL compiler: |
||
8847 | |||
8848 | Fixed segfault on Linux version. |
||
8849 | |||
8850 | |||
8851 | ---------------------------------------- |
||
8852 | Summary of changes for this release: 02_25_02 |
||
8853 | |||
8854 | 1) ACPI CA Core Subsystem: |
||
8855 | |||
8856 | |||
8857 | Fixed a problem where the GPE bit masks were not initialized |
||
8858 | properly, causing erratic GPE behavior. |
||
8859 | |||
8860 | Implemented limited support for multiple calling conventions. The |
||
8861 | code can be generated with either the VPL (variable parameter |
||
8862 | list, or "C") convention, or the FPL (fixed parameter list, or |
||
8863 | "Pascal") convention. The core subsystem is about 3.4% smaller |
||
8864 | when generated with FPL. |
||
8865 | |||
8866 | |||
8867 | 2) Linux |
||
8868 | |||
8869 | Re-add some /proc/acpi/event functionality that was lost during |
||
8870 | the rewrite |
||
8871 | |||
8872 | Resolved issue with /proc events for fixed-feature buttons showing |
||
8873 | up as the system device. |
||
8874 | |||
8875 | Fixed checks on C2/C3 latencies to be inclusive of maximum values. |
||
8876 | |||
8877 | Replaced AE_ERRORs in acpi_osl.c with more specific error codes. |
||
8878 | |||
8879 | Changed ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi" |
||
8880 | |||
8881 | Fixed limit interface & usage to fix bugs with passive cooling |
||
8882 | hysterisis. |
||
8883 | |||
8884 | Restructured PRT support. |
||
8885 | |||
8886 | |||
8887 | ---------------------------------------- |
||
8888 | Summary of changes for this label: 02_14_02 |
||
8889 | |||
8890 | |||
8891 | 1) ACPI CA Core Subsystem: |
||
8892 | |||
8893 | Implemented support in AcpiLoadTable to allow loading of FACS and |
||
8894 | FADT tables. |
||
8895 | |||
8896 | Suport for the now-obsolete interim 0.71 64-bit ACPI tables has |
||
8897 | been removed. All 64-bit platforms should be migrated to the ACPI |
||
8898 | 2.0 tables. The actbl71.h header has been removed from the source |
||
8899 | tree. |
||
8900 | |||
8901 | All C macros defined within the subsystem have been prefixed with |
||
8902 | "ACPI_" to avoid collision with other system include files. |
||
8903 | |||
8904 | Removed the return value for the two AcpiOsPrint interfaces, since |
||
8905 | it is never used and causes lint warnings for ignoring the return |
||
8906 | value. |
||
8907 | |||
8908 | Added error checking to all internal mutex acquire and release |
||
8909 | calls. Although a failure from one of these interfaces is |
||
8910 | probably a fatal system error, these checks will cause the |
||
8911 | immediate abort of the currently executing method or interface. |
||
8912 | |||
8913 | Fixed a problem where the AcpiSetCurrentResources interface could |
||
8914 | fault. This was a side effect of the deployment of the new memory |
||
8915 | allocation model. |
||
8916 | |||
8917 | Fixed a couple of problems with the Global Lock support introduced |
||
8918 | in the last major build. The "common" (1.0/2.0) internal FACS was |
||
8919 | being overwritten with the FACS signature and clobbering the |
||
8920 | Global Lock pointer. Also, the actual firmware FACS was being |
||
8921 | unmapped after construction of the "common" FACS, preventing |
||
8922 | access to the actual Global Lock field within it. The "common" |
||
8923 | internal FACS is no longer installed as an actual ACPI table; it |
||
8924 | is used simply as a global. |
||
8925 | |||
8926 | Code and Data Size: Current core subsystem library sizes are shown |
||
8927 | below. These are the code and data sizes for the acpica.lib |
||
8928 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
8929 | values do not include any ACPI driver or OSPM code. The debug |
||
8930 | version of the code includes the debug output trace mechanism and |
||
8931 | has a larger code and data size. Note that these values will vary |
||
8932 | depending on the efficiency of the compiler and the compiler |
||
8933 | options used during generation. |
||
8934 | |||
8935 | Previous Release (02_07_01) |
||
8936 | Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total |
||
8937 | Debug Version: 136.9K Code, 56.4K Data, 193.3K Total |
||
8938 | Current Release: |
||
8939 | Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total |
||
8940 | Debug Version: 138.0K Code, 56.6K Data, 194.6K Total |
||
8941 | |||
8942 | |||
8943 | 2) Linux |
||
8944 | |||
8945 | Updated Linux-specific code for core macro and OSL interface |
||
8946 | changes described above. |
||
8947 | |||
8948 | Improved /proc/acpi/event. It now can be opened only once and has |
||
8949 | proper poll functionality. |
||
8950 | |||
8951 | Fixed and restructured power management (acpi_bus). |
||
8952 | |||
8953 | Only create /proc "view by type" when devices of that class exist. |
||
8954 | |||
8955 | Fixed "charging/discharging" bug (and others) in acpi_battery. |
||
8956 | |||
8957 | Improved thermal zone code. |
||
8958 | |||
8959 | |||
8960 | 3) ASL Compiler, version X2039: |
||
8961 | |||
8962 | |||
8963 | Implemented the new compiler restriction on ASL String hex/octal |
||
8964 | escapes to non-null, ASCII values. An error results if an invalid |
||
8965 | value is used. (This will require an ACPI 2.0 specification |
||
8966 | change.) |
||
8967 | |||
8968 | AML object labels that are output to the optional C and ASM source |
||
8969 | are now prefixed with both the ACPI table signature and table ID |
||
8970 | to help guarantee uniqueness within a large BIOS project. |
||
8971 | |||
8972 | |||
8973 | ---------------------------------------- |
||
8974 | Summary of changes for this label: 02_01_02 |
||
8975 | |||
8976 | 1) ACPI CA Core Subsystem: |
||
8977 | |||
8978 | ACPI 2.0 support is complete in the entire Core Subsystem and the |
||
8979 | ASL compiler. All new ACPI 2.0 operators are implemented and all |
||
8980 | other changes for ACPI 2.0 support are complete. With |
||
8981 | simultaneous code and data optimizations throughout the subsystem, |
||
8982 | ACPI 2.0 support has been implemented with almost no additional |
||
8983 | cost in terms of code and data size. |
||
8984 | |||
8985 | Implemented a new mechanism for allocation of return buffers. If |
||
8986 | the buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will |
||
8987 | be allocated on behalf of the caller. Consolidated all return |
||
8988 | buffer validation and allocation to a common procedure. Return |
||
8989 | buffers will be allocated via the primary OSL allocation interface |
||
8990 | since it appears that a separate pool is not needed by most users. |
||
8991 | If a separate pool is required for these buffers, the caller can |
||
8992 | still use the original mechanism and pre-allocate the buffer(s). |
||
8993 | |||
8994 | Implemented support for string operands within the DerefOf |
||
8995 | operator. |
||
8996 | |||
8997 | Restructured the Hardware and Event managers to be table driven, |
||
8998 | simplifying the source code and reducing the amount of generated |
||
8999 | code. |
||
9000 | |||
9001 | Split the common read/write low-level ACPI register bitfield |
||
9002 | procedure into a separate read and write, simplifying the code |
||
9003 | considerably. |
||
9004 | |||
9005 | Obsoleted the AcpiOsCallocate OSL interface. This interface was |
||
9006 | used only a handful of times and didn't have enough critical mass |
||
9007 | for a separate interface. Replaced with a common calloc procedure |
||
9008 | in the core. |
||
9009 | |||
9010 | Fixed a reported problem with the GPE number mapping mechanism |
||
9011 | that allows GPE1 numbers to be non-contiguous with GPE0. |
||
9012 | Reorganized the GPE information and shrunk a large array that was |
||
9013 | originally large enough to hold info for all possible GPEs (256) |
||
9014 | to simply large enough to hold all GPEs up to the largest GPE |
||
9015 | number on the machine. |
||
9016 | |||
9017 | Fixed a reported problem with resource structure alignment on 64- |
||
9018 | bit platforms. |
||
9019 | |||
9020 | Changed the AcpiEnableEvent and AcpiDisableEvent external |
||
9021 | interfaces to not require any flags for the common case of |
||
9022 | enabling/disabling a GPE. |
||
9023 | |||
9024 | Implemented support to allow a "Notify" on a Processor object. |
||
9025 | |||
9026 | Most TBDs in comments within the source code have been resolved |
||
9027 | and eliminated. |
||
9028 | |||
9029 | |||
9030 | Fixed a problem in the interpreter where a standalone parent |
||
9031 | prefix (^) was not handled correctly in the interpreter and |
||
9032 | debugger. |
||
9033 | |||
9034 | Removed obsolete and unnecessary GPE save/restore code. |
||
9035 | |||
9036 | Implemented Field support in the ASL Load operator. This allows a |
||
9037 | table to be loaded from a named field, in addition to loading a |
||
9038 | table directly from an Operation Region. |
||
9039 | |||
9040 | Implemented timeout and handle support in the external Global Lock |
||
9041 | interfaces. |
||
9042 | |||
9043 | Fixed a problem in the AcpiDump utility where pathnames were no |
||
9044 | longer being generated correctly during the dump of named objects. |
||
9045 | |||
9046 | Modified the AML debugger to give a full display of if/while |
||
9047 | predicates instead of just one AML opcode at a time. (The |
||
9048 | predicate can have several nested ASL statements.) The old method |
||
9049 | was confusing during single stepping. |
||
9050 | |||
9051 | Code and Data Size: Current core subsystem library sizes are shown |
||
9052 | below. These are the code and data sizes for the acpica.lib |
||
9053 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
9054 | values do not include any ACPI driver or OSPM code. The debug |
||
9055 | version of the code includes the debug output trace mechanism and |
||
9056 | has a larger code and data size. Note that these values will vary |
||
9057 | depending on the efficiency of the compiler and the compiler |
||
9058 | options used during generation. |
||
9059 | |||
9060 | Previous Release (12_18_01) |
||
9061 | Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total |
||
9062 | Debug Version: 138.3K Code, 55.9K Data, 194.2K Total |
||
9063 | Current Release: |
||
9064 | Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total |
||
9065 | Debug Version: 136.9K Code, 56.4K Data, 193.3K Total |
||
9066 | |||
9067 | 2) Linux |
||
9068 | |||
9069 | Implemented fix for PIIX reverse throttling errata (Processor |
||
9070 | driver) |
||
9071 | |||
9072 | Added new Limit interface (Processor and Thermal drivers) |
||
9073 | |||
9074 | New thermal policy (Thermal driver) |
||
9075 | |||
9076 | Many updates to /proc |
||
9077 | |||
9078 | Battery "low" event support (Battery driver) |
||
9079 | |||
9080 | Supports ACPI PCI IRQ routing (PCI Link and PCI root drivers) |
||
9081 | |||
9082 | IA32 - IA64 initialization unification, no longer experimental |
||
9083 | |||
9084 | Menuconfig options redesigned |
||
9085 | |||
9086 | 3) ASL Compiler, version X2037: |
||
9087 | |||
9088 | Implemented several new output features to simplify integration of |
||
9089 | AML code into firmware: 1) Output the AML in C source code with |
||
9090 | labels for each named ASL object. The original ASL source code |
||
9091 | is interleaved as C comments. 2) Output the AML in ASM source code |
||
9092 | with labels and interleaved ASL source. 3) Output the AML in |
||
9093 | raw hex table form, in either C or ASM. |
||
9094 | |||
9095 | Implemented support for optional string parameters to the |
||
9096 | LoadTable operator. |
||
9097 | |||
9098 | Completed support for embedded escape sequences within string |
||
9099 | literals. The compiler now supports all single character escapes |
||
9100 | as well as the Octal and Hex escapes. Note: the insertion of a |
||
9101 | null byte into a string literal (via the hex/octal escape) causes |
||
9102 | the string to be immediately terminated. A warning is issued. |
||
9103 | |||
9104 | Fixed a problem where incorrect AML was generated for the case |
||
9105 | where an ASL namepath consists of a single parent prefix ( |
||
9106 | |||
9107 | ) with no trailing name segments. |
||
9108 | |||
9109 | The compiler has been successfully generated with a 64-bit C |
||
9110 | compiler. |
||
9111 | |||
9112 | |||
9113 | |||
9114 | |||
9115 | ---------------------------------------- |
||
9116 | Summary of changes for this label: 12_18_01 |
||
9117 | |||
9118 | 1) Linux |
||
9119 | |||
9120 | Enhanced blacklist with reason and severity fields. Any table's |
||
9121 | signature may now be used to identify a blacklisted system. |
||
9122 | |||
9123 | Call _PIC control method to inform the firmware which interrupt |
||
9124 | model the OS is using. Turn on any disabled link devices. |
||
9125 | |||
9126 | Cleaned up busmgr /proc error handling (Andreas Dilger) |
||
9127 | |||
9128 | 2) ACPI CA Core Subsystem: |
||
9129 | |||
9130 | Implemented ACPI 2.0 semantics for the "Break" operator (Exit from |
||
9131 | while loop) |
||
9132 | |||
9133 | Completed implementation of the ACPI 2.0 "Continue", |
||
9134 | "ConcatenateResTemplate", "DataTableRegion", and "LoadTable" |
||
9135 | operators. All new ACPI 2.0 operators are now implemented in both |
||
9136 | the ASL compiler and the AML interpreter. The only remaining ACPI |
||
9137 | 2.0 task is support for the String data type in the DerefOf |
||
9138 | operator. Fixed a problem with AcquireMutex where the status code |
||
9139 | was lost if the caller had to actually wait for the mutex. |
||
9140 | |||
9141 | Increased the maximum ASL Field size from 64K bits to 4G bits. |
||
9142 | |||
9143 | Completed implementation of the external Global Lock interfaces -- |
||
9144 | AcpiAcquireGlobalLock and AcpiReleaseGlobalLock. The Timeout and |
||
9145 | Handler parameters were added. |
||
9146 | |||
9147 | Completed another pass at removing warnings and issues when |
||
9148 | compiling with 64-bit compilers. The code now compiles cleanly |
||
9149 | with the Intel 64-bit C/C++ compiler. Most notably, the pointer |
||
9150 | add and subtract (diff) macros have changed considerably. |
||
9151 | |||
9152 | |||
9153 | Created and deployed a new ACPI_SIZE type that is 64-bits wide on |
||
9154 | 64-bit platforms, 32-bits on all others. This type is used |
||
9155 | wherever memory allocation and/or the C sizeof() operator is used, |
||
9156 | and affects the OSL memory allocation interfaces AcpiOsAllocate |
||
9157 | and AcpiOsCallocate. |
||
9158 | |||
9159 | Implemented sticky user breakpoints in the AML debugger. |
||
9160 | |||
9161 | Code and Data Size: Current core subsystem library sizes are shown |
||
9162 | below. These are the code and data sizes for the acpica.lib |
||
9163 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
9164 | values do not include any ACPI driver or OSPM code. The debug |
||
9165 | version of the code includes the debug output trace mechanism and |
||
9166 | has a larger code and data size. Note that these values will vary |
||
9167 | depending on the efficiency of the compiler and the compiler |
||
9168 | options used during generation. |
||
9169 | |||
9170 | Previous Release (12_05_01) |
||
9171 | Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total |
||
9172 | Debug Version: 136.2K Code, 55.6K Data, 191.8K Total |
||
9173 | Current Release: |
||
9174 | Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total |
||
9175 | Debug Version: 138.3K Code, 55.9K Data, 194.2K Total |
||
9176 | |||
9177 | 3) ASL Compiler, version X2034: |
||
9178 | |||
9179 | Now checks for (and generates an error if detected) the use of a |
||
9180 | Break or Continue statement without an enclosing While statement. |
||
9181 | |||
9182 | |||
9183 | Successfully generated the compiler with the Intel 64-bit C |
||
9184 | compiler. |
||
9185 | |||
9186 | ---------------------------------------- |
||
9187 | Summary of changes for this label: 12_05_01 |
||
9188 | |||
9189 | 1) ACPI CA Core Subsystem: |
||
9190 | |||
9191 | The ACPI 2.0 CopyObject operator is fully implemented. This |
||
9192 | operator creates a new copy of an object (and is also used to |
||
9193 | bypass the "implicit conversion" mechanism of the Store operator.) |
||
9194 | |||
9195 | The ACPI 2.0 semantics for the SizeOf operator are fully |
||
9196 | implemented. The change is that performing a SizeOf on a |
||
9197 | reference object causes an automatic dereference of the object to |
||
9198 | tha actual value before the size is evaluated. This behavior was |
||
9199 | undefined in ACPI 1.0. |
||
9200 | |||
9201 | The ACPI 2.0 semantics for the Extended IRQ resource descriptor |
||
9202 | have been implemented. The interrupt polarity and mode are now |
||
9203 | independently set. |
||
9204 | |||
9205 | Fixed a problem where ASL Constants (Zero, One, Ones, Revision) |
||
9206 | appearing in Package objects were not properly converted to |
||
9207 | integers when the internal Package was converted to an external |
||
9208 | object (via the AcpiEvaluateObject interface.) |
||
9209 | |||
9210 | Fixed a problem with the namespace object deletion mechanism for |
||
9211 | objects created by control methods. There were two parts to this |
||
9212 | problem: 1) Objects created during the initialization phase method |
||
9213 | parse were not being deleted, and 2) The object owner ID mechanism |
||
9214 | to track objects was broken. |
||
9215 | |||
9216 | Fixed a problem where the use of the ASL Scope operator within a |
||
9217 | control method would result in an invalid opcode exception. |
||
9218 | |||
9219 | Fixed a problem introduced in the previous label where the buffer |
||
9220 | length required for the _PRT structure was not being returned |
||
9221 | correctly. |
||
9222 | |||
9223 | Code and Data Size: Current core subsystem library sizes are shown |
||
9224 | below. These are the code and data sizes for the acpica.lib |
||
9225 | produced by the Microsoft Visual C++ 6.0 compiler, and these |
||
9226 | values do not include any ACPI driver or OSPM code. The debug |
||
9227 | version of the code includes the debug output trace mechanism and |
||
9228 | has a larger code and data size. Note that these values will vary |
||
9229 | depending on the efficiency of the compiler and the compiler |
||
9230 | options used during generation. |
||
9231 | |||
9232 | Previous Release (11_20_01) |
||
9233 | Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total |
||
9234 | Debug Version: 135.1K Code, 55.4K Data, 190.5K Total |
||
9235 | |||
9236 | Current Release: |
||
9237 | Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total |
||
9238 | Debug Version: 136.2K Code, 55.6K Data, 191.8K Total |
||
9239 | |||
9240 | 2) Linux: |
||
9241 | |||
9242 | Updated all files to apply cleanly against 2.4.16. |
||
9243 | |||
9244 | Added basic PCI Interrupt Routing Table (PRT) support for IA32 |
||
9245 | (acpi_pci.c), and unified the PRT code for IA32 and IA64. This |
||
9246 | version supports both static and dyanmic PRT entries, but dynamic |
||
9247 | entries are treated as if they were static (not yet |
||
9248 | reconfigurable). Architecture- specific code to use this data is |
||
9249 | absent on IA32 but should be available shortly. |
||
9250 | |||
9251 | Changed the initialization sequence to start the ACPI interpreter |
||
9252 | (acpi_init) prior to initialization of the PCI driver (pci_init) |
||
9253 | in init/main.c. This ordering is required to support PRT and |
||
9254 | facilitate other (future) enhancement. A side effect is that the |
||
9255 | ACPI bus driver and certain device drivers can no longer be loaded |
||
9256 | as modules. |
||
9257 | |||
9258 | Modified the 'make menuconfig' options to allow PCI Interrupt |
||
9259 | Routing support to be included without the ACPI Bus and other |
||
9260 | device drivers. |
||
9261 | |||
9262 | 3) ASL Compiler, version X2033: |
||
9263 | |||
9264 | Fixed some issues with the use of the new CopyObject and |
||
9265 | DataTableRegion operators. Both are fully functional. |
||
9266 | |||
9267 | ---------------------------------------- |
||
9268 | Summary of changes for this label: 11_20_01 |
||
9269 | |||
9270 | 20 November 2001. Summary of changes for this release. |
||
9271 | |||
9272 | 1) ACPI CA Core Subsystem: |
||
9273 | |||
9274 | Updated Index support to match ACPI 2.0 semantics. Storing a |
||
9275 | Integer, String, or Buffer to an Index of a Buffer will store only |
||
9276 | the least-significant byte of the source to the Indexed buffer |
||
9277 | byte. Multiple writes are not performed. |
||
9278 | |||
9279 | Fixed a problem where the access type used in an AccessAs ASL |
||
9280 | operator was not recorded correctly into the field object. |
||
9281 | |||
9282 | Fixed a problem where ASL Event objects were created in a |
||
9283 | signalled state. Events are now created in an unsignalled state. |
||
9284 | |||
9285 | The internal object cache is now purged after table loading and |
||
9286 | initialization to reduce the use of dynamic kernel memory -- on |
||
9287 | the assumption that object use is greatest during the parse phase |
||
9288 | of the entire table (versus the run-time use of individual control |
||
9289 | methods.) |
||
9290 | |||
9291 | ACPI 2.0 variable-length packages are now fully operational. |
||
9292 | |||
9293 | Code and Data Size: Code and Data optimizations have permitted new |
||
9294 | feature development with an actual reduction in the library size. |
||
9295 | Current core subsystem library sizes are shown below. These are |
||
9296 | the code and data sizes for the acpica.lib produced by the |
||
9297 | Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
9298 | any ACPI driver or OSPM code. The debug version of the code |
||
9299 | includes the debug output trace mechanism and has a larger code |
||
9300 | and data size. Note that these values will vary depending on the |
||
9301 | efficiency of the compiler and the compiler options used during |
||
9302 | generation. |
||
9303 | |||
9304 | Previous Release (11_09_01): |
||
9305 | Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total |
||
9306 | Debug Version: 134.5K Code, 55.4K Data, 189.9K Total |
||
9307 | |||
9308 | Current Release: |
||
9309 | Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total |
||
9310 | Debug Version: 135.1K Code, 55.4K Data, 190.5K Total |
||
9311 | |||
9312 | 2) Linux: |
||
9313 | |||
9314 | Enhanced the ACPI boot-time initialization code to allow the use |
||
9315 | of Local APIC tables for processor enumeration on IA-32, and to |
||
9316 | pave the way for a fully MPS-free boot (on SMP systems) in the |
||
9317 | near future. This functionality replaces |
||
9318 | arch/i386/kernel/acpitables.c, which was introduced in an earlier |
||
9319 | 2.4.15-preX release. To enable this feature you must add |
||
9320 | "acpi_boot=on" to the kernel command line -- see the help entry |
||
9321 | for CONFIG_ACPI_BOOT for more information. An IA-64 release is in |
||
9322 | the works... |
||
9323 | |||
9324 | Restructured the configuration options to allow boot-time table |
||
9325 | parsing support without inclusion of the ACPI Interpreter (and |
||
9326 | other) code. |
||
9327 | |||
9328 | NOTE: This release does not include fixes for the reported events, |
||
9329 | power-down, and thermal passive cooling issues (coming soon). |
||
9330 | |||
9331 | 3) ASL Compiler: |
||
9332 | |||
9333 | Added additional typechecking for Fields within restricted access |
||
9334 | Operation Regions. All fields within EC and CMOS regions must be |
||
9335 | declared with ByteAcc. All fields withing SMBus regions must be |
||
9336 | declared with the BufferAcc access type. |
||
9337 | |||
9338 | Fixed a problem where the listing file output of control methods |
||
9339 | no longer interleaved the actual AML code with the ASL source |
||
9340 | code. |
||
9341 | |||
9342 | |||
9343 | |||
9344 | |||
9345 | ---------------------------------------- |
||
9346 | Summary of changes for this label: 11_09_01 |
||
9347 | |||
9348 | 1) ACPI CA Core Subsystem: |
||
9349 | |||
9350 | Implemented ACPI 2.0-defined support for writes to fields with a |
||
9351 | Buffer, String, or Integer source operand that is smaller than the |
||
9352 | target field. In these cases, the source operand is zero-extended |
||
9353 | to fill the target field. |
||
9354 | |||
9355 | Fixed a problem where a Field starting bit offset (within the |
||
9356 | parent operation region) was calculated incorrectly if the |
||
9357 | |||
9358 | alignment of the field differed from the access width. This |
||
9359 | affected CreateWordField, CreateDwordField, CreateQwordField, and |
||
9360 | possibly other fields that use the "AccessAny" keyword. |
||
9361 | |||
9362 | Fixed a problem introduced in the 11_02_01 release where indirect |
||
9363 | stores through method arguments did not operate correctly. |
||
9364 | |||
9365 | 2) Linux: |
||
9366 | |||
9367 | Implemented boot-time ACPI table parsing support |
||
9368 | (CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This code |
||
9369 | facilitates the use of ACPI tables (e.g. MADT, SRAT) rather than |
||
9370 | legacy BIOS interfaces (e.g. MPS) for the configuration of system |
||
9371 | processors, memory, and interrupts during setup_arch(). Note that |
||
9372 | this patch does not include the required architecture-specific |
||
9373 | changes required to apply this information -- subsequent patches |
||
9374 | will be posted for both IA32 and IA64 to achieve this. |
||
9375 | |||
9376 | Added low-level sleep support for IA32 platforms, courtesy of Pat |
||
9377 | Mochel. This allows IA32 systems to transition to/from various |
||
9378 | sleeping states (e.g. S1, S3), although the lack of a centralized |
||
9379 | driver model and power-manageable drivers will prevent its |
||
9380 | (successful) use on most systems. |
||
9381 | |||
9382 | Revamped the ACPI 'menuconfig' layout: created new "ACPI Support" |
||
9383 | submenu, unified IA32 and IA64 options, added new "Boot using ACPI |
||
9384 | tables" option, etc. |
||
9385 | |||
9386 | Increased the default timeout for the EC driver from 1ms to 10ms |
||
9387 | (1000 cycles of 10us) to try to address AE_TIME errors during EC |
||
9388 | transactions. |
||
9389 | |||
9390 | ---------------------------------------- |
||
9391 | Summary of changes for this label: 11_02_01 |
||
9392 | |||
9393 | 1) ACPI CA Core Subsystem: |
||
9394 | |||
9395 | ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access |
||
9396 | (QWordAcc keyword). All ACPI 2.0 64-bit support is now |
||
9397 | implemented. |
||
9398 | |||
9399 | OSL Interfaces: Several of the OSL (AcpiOs*) interfaces required |
||
9400 | changes to support ACPI 2.0 Qword field access. Read/Write |
||
9401 | PciConfiguration(), Read/Write Memory(), and Read/Write Port() now |
||
9402 | accept an ACPI_INTEGER (64 bits) as the value parameter. Also, |
||
9403 | the value parameter for the address space handler interface is now |
||
9404 | an ACPI_INTEGER. OSL implementations of these interfaces must now |
||
9405 | handle the case where the Width parameter is 64. |
||
9406 | |||
9407 | Index Fields: Fixed a problem where unaligned bit assembly and |
||
9408 | disassembly for IndexFields was not supported correctly. |
||
9409 | |||
9410 | Index and Bank Fields: Nested Index and Bank Fields are now |
||
9411 | supported. During field access, a check is performed to ensure |
||
9412 | that the value written to an Index or Bank register is not out of |
||
9413 | the range of the register. The Index (or Bank) register is |
||
9414 | written before each access to the field data. Future support will |
||
9415 | include allowing individual IndexFields to be wider than the |
||
9416 | DataRegister width. |
||
9417 | |||
9418 | Fields: Fixed a problem where the AML interpreter was incorrectly |
||
9419 | attempting to write beyond the end of a Field/OpRegion. This was |
||
9420 | a boundary case that occurred when a DWORD field was written to a |
||
9421 | BYTE access OpRegion, forcing multiple writes and causing the |
||
9422 | interpreter to write one datum too many. |
||
9423 | |||
9424 | Fields: Fixed a problem with Field/OpRegion access where the |
||
9425 | starting bit address of a field was incorrectly calculated if the |
||
9426 | current access type was wider than a byte (WordAcc, DwordAcc, or |
||
9427 | QwordAcc). |
||
9428 | |||
9429 | Fields: Fixed a problem where forward references to individual |
||
9430 | FieldUnits (individual Field names within a Field definition) were |
||
9431 | not resolved during the AML table load. |
||
9432 | |||
9433 | Fields: Fixed a problem where forward references from a Field |
||
9434 | definition to the parent Operation Region definition were not |
||
9435 | resolved during the AML table load. |
||
9436 | |||
9437 | Fields: Duplicate FieldUnit names within a scope are now detected |
||
9438 | during AML table load. |
||
9439 | |||
9440 | Acpi Interfaces: Fixed a problem where the AcpiGetName() interface |
||
9441 | returned an incorrect name for the root node. |
||
9442 | |||
9443 | Code and Data Size: Code and Data optimizations have permitted new |
||
9444 | feature development with an actual reduction in the library size. |
||
9445 | Current core subsystem library sizes are shown below. These are |
||
9446 | the code and data sizes for the acpica.lib produced by the |
||
9447 | Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
9448 | any ACPI driver or OSPM code. The debug version of the code |
||
9449 | includes the debug output trace mechanism and has a larger code |
||
9450 | and data size. Note that these values will vary depending on the |
||
9451 | efficiency of the compiler and the compiler options used during |
||
9452 | generation. |
||
9453 | |||
9454 | Previous Release (10_18_01): |
||
9455 | Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total |
||
9456 | Debug Version: 136.7K Code, 57.4K Data, 194.2K Total |
||
9457 | |||
9458 | Current Release: |
||
9459 | Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total |
||
9460 | Debug Version: 134.5K Code, 55.4K Data, 189.9K Total |
||
9461 | |||
9462 | 2) Linux: |
||
9463 | |||
9464 | Improved /proc processor output (Pavel Machek) Re-added |
||
9465 | MODULE_LICENSE("GPL") to all modules. |
||
9466 | |||
9467 | 3) ASL Compiler version X2030: |
||
9468 | |||
9469 | Duplicate FieldUnit names within a scope are now detected and |
||
9470 | flagged as errors. |
||
9471 | |||
9472 | 4) Documentation: |
||
9473 | |||
9474 | Programmer Reference updated to reflect OSL and address space |
||
9475 | handler interface changes described above. |
||
9476 | |||
9477 | ---------------------------------------- |
||
9478 | Summary of changes for this label: 10_18_01 |
||
9479 | |||
9480 | ACPI CA Core Subsystem: |
||
9481 | |||
9482 | Fixed a problem with the internal object reference count mechanism |
||
9483 | that occasionally caused premature object deletion. This resolves |
||
9484 | all of the outstanding problem reports where an object is deleted |
||
9485 | in the middle of an interpreter evaluation. Although this problem |
||
9486 | only showed up in rather obscure cases, the solution to the |
||
9487 | problem involved an adjustment of all reference counts involving |
||
9488 | objects attached to namespace nodes. |
||
9489 | |||
9490 | Fixed a problem with Field support in the interpreter where |
||
9491 | writing to an aligned field whose length is an exact multiple (2 |
||
9492 | or greater) of the field access granularity would cause an attempt |
||
9493 | to write beyond the end of the field. |
||
9494 | |||
9495 | The top level AML opcode execution functions within the |
||
9496 | interpreter have been renamed with a more meaningful and |
||
9497 | consistent naming convention. The modules exmonad.c and |
||
9498 | exdyadic.c were eliminated. New modules are exoparg1.c, |
||
9499 | exoparg2.c, exoparg3.c, and exoparg6.c. |
||
9500 | |||
9501 | Support for the ACPI 2.0 "Mid" ASL operator has been implemented. |
||
9502 | |||
9503 | Fixed a problem where the AML debugger was causing some internal |
||
9504 | objects to not be deleted during subsystem termination. |
||
9505 | |||
9506 | Fixed a problem with the external AcpiEvaluateObject interface |
||
9507 | where the subsystem would fault if the named object to be |
||
9508 | evaluated refered to a constant such as Zero, Ones, etc. |
||
9509 | |||
9510 | Fixed a problem with IndexFields and BankFields where the |
||
9511 | subsystem would fault if the index, data, or bank registers were |
||
9512 | not defined in the same scope as the field itself. |
||
9513 | |||
9514 | Added printf format string checking for compilers that support |
||
9515 | this feature. Corrected more than 50 instances of issues with |
||
9516 | format specifiers within invocations of ACPI_DEBUG_PRINT |
||
9517 | throughout the core subsystem code. |
||
9518 | |||
9519 | The ASL "Revision" operator now returns the ACPI support level |
||
9520 | implemented in the core - the value "2" since the ACPI 2.0 support |
||
9521 | is more than 50% implemented. |
||
9522 | |||
9523 | Enhanced the output of the AML debugger "dump namespace" command |
||
9524 | to output in a more human-readable form. |
||
9525 | |||
9526 | Current core subsystem library code sizes are shown below. These |
||
9527 | |||
9528 | are the code and data sizes for the acpica.lib produced by the |
||
9529 | Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
9530 | any ACPI driver or OSPM code. The debug version of the code |
||
9531 | includes the full debug trace mechanism -- leading to a much |
||
9532 | |||
9533 | larger code and data size. Note that these values will vary |
||
9534 | depending on the efficiency of the compiler and the compiler |
||
9535 | options used during generation. |
||
9536 | |||
9537 | Previous Label (09_20_01): |
||
9538 | Non-Debug Version: 65K Code, 5K Data, 70K Total |
||
9539 | Debug Version: 138K Code, 58K Data, 196K Total |
||
9540 | |||
9541 | This Label: |
||
9542 | |||
9543 | Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total |
||
9544 | Debug Version: 136.7K Code, 57.4K Data, 194.2K Total |
||
9545 | |||
9546 | Linux: |
||
9547 | |||
9548 | Implemented a "Bad BIOS Blacklist" to track machines that have |
||
9549 | known ASL/AML problems. |
||
9550 | |||
9551 | Enhanced the /proc interface for the thermal zone driver and added |
||
9552 | support for _HOT (the critical suspend trip point). The 'info' |
||
9553 | file now includes threshold/policy information, and allows setting |
||
9554 | of _SCP (cooling preference) and _TZP (polling frequency) values |
||
9555 | to the 'info' file. Examples: "echo tzp=5 > info" sets the polling |
||
9556 | frequency to 5 seconds, and "echo scp=1 > info" sets the cooling |
||
9557 | preference to the passive/quiet mode (if supported by the ASL). |
||
9558 | |||
9559 | Implemented a workaround for a gcc bug that resuted in an OOPs |
||
9560 | when loading the control method battery driver. |
||
9561 | |||
9562 | ---------------------------------------- |
||
9563 | Summary of changes for this label: 09_20_01 |
||
9564 | |||
9565 | ACPI CA Core Subsystem: |
||
9566 | |||
9567 | The AcpiEnableEvent and AcpiDisableEvent interfaces have been |
||
9568 | modified to allow individual GPE levels to be flagged as wake- |
||
9569 | enabled (i.e., these GPEs are to remain enabled when the platform |
||
9570 | sleeps.) |
||
9571 | |||
9572 | The AcpiEnterSleepState and AcpiLeaveSleepState interfaces now |
||
9573 | support wake-enabled GPEs. This means that upon entering the |
||
9574 | sleep state, all GPEs that are not wake-enabled are disabled. |
||
9575 | When leaving the sleep state, these GPEs are reenabled. |
||
9576 | |||
9577 | A local double-precision divide/modulo module has been added to |
||
9578 | enhance portability to OS kernels where a 64-bit math library is |
||
9579 | not available. The new module is "utmath.c". |
||
9580 | |||
9581 | Several optimizations have been made to reduce the use of CPU |
||
9582 | stack. Originally over 2K, the maximum stack usage is now below |
||
9583 | 2K at 1860 bytes (1.82k) |
||
9584 | |||
9585 | Fixed a problem with the AcpiGetFirmwareTable interface where the |
||
9586 | root table pointer was not mapped into a logical address properly. |
||
9587 | |||
9588 | Fixed a problem where a NULL pointer was being dereferenced in the |
||
9589 | interpreter code for the ASL Notify operator. |
||
9590 | |||
9591 | Fixed a problem where the use of the ASL Revision operator |
||
9592 | returned an error. This operator now returns the current version |
||
9593 | of the ACPI CA core subsystem. |
||
9594 | |||
9595 | Fixed a problem where objects passed as control method parameters |
||
9596 | to AcpiEvaluateObject were always deleted at method termination. |
||
9597 | However, these objects may end up being stored into the namespace |
||
9598 | by the called method. The object reference count mechanism was |
||
9599 | applied to these objects instead of a force delete. |
||
9600 | |||
9601 | Fixed a problem where static strings or buffers (contained in the |
||
9602 | AML code) that are declared as package elements within the ASL |
||
9603 | code could cause a fault because the interpreter would attempt to |
||
9604 | delete them. These objects are now marked with the "static |
||
9605 | object" flag to prevent any attempt to delete them. |
||
9606 | |||
9607 | Implemented an interpreter optimization to use operands directly |
||
9608 | from the state object instead of extracting the operands to local |
||
9609 | variables. This reduces stack use and code size, and improves |
||
9610 | performance. |
||
9611 | |||
9612 | The module exxface.c was eliminated as it was an unnecessary extra |
||
9613 | layer of code. |
||
9614 | |||
9615 | Current core subsystem library code sizes are shown below. These |
||
9616 | are the code and data sizes for the acpica.lib produced by the |
||
9617 | Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
9618 | any ACPI driver or OSPM code. The debug version of the code |
||
9619 | includes the full debug trace mechanism -- leading to a much |
||
9620 | larger code and data size. Note that these values will vary |
||
9621 | depending on the efficiency of the compiler and the compiler |
||
9622 | options used during generation. |
||
9623 | |||
9624 | Non-Debug Version: 65K Code, 5K Data, 70K Total |
||
9625 | (Previously 69K) Debug Version: 138K Code, 58K Data, 196K |
||
9626 | Total (Previously 195K) |
||
9627 | |||
9628 | Linux: |
||
9629 | |||
9630 | Support for ACPI 2.0 64-bit integers has been added. All ACPI |
||
9631 | Integer objects are now 64 bits wide |
||
9632 | |||
9633 | All Acpi data types and structures are now in lower case. Only |
||
9634 | Acpi macros are upper case for differentiation. |
||
9635 | |||
9636 | Documentation: |
||
9637 | |||
9638 | Changes to the external interfaces as described above. |
||
9639 | |||
9640 | ---------------------------------------- |
||
9641 | Summary of changes for this label: 08_31_01 |
||
9642 | |||
9643 | ACPI CA Core Subsystem: |
||
9644 | |||
9645 | A bug with interpreter implementation of the ASL Divide operator |
||
9646 | was found and fixed. The implicit function return value (not the |
||
9647 | explicit store operands) was returning the remainder instead of |
||
9648 | the quotient. This was a longstanding bug and it fixes several |
||
9649 | known outstanding issues on various platforms. |
||
9650 | |||
9651 | The ACPI_DEBUG_PRINT and function trace entry/exit macros have |
||
9652 | been further optimized for size. There are 700 invocations of the |
||
9653 | DEBUG_PRINT macro alone, so each optimization reduces the size of |
||
9654 | the debug version of the subsystem significantly. |
||
9655 | |||
9656 | A stack trace mechanism has been implemented. The maximum stack |
||
9657 | usage is about 2K on 32-bit platforms. The debugger command "stat |
||
9658 | stack" will display the current maximum stack usage. |
||
9659 | |||
9660 | All public symbols and global variables within the subsystem are |
||
9661 | now prefixed with the string "Acpi". This keeps all of the |
||
9662 | symbols grouped together in a kernel map, and avoids conflicts |
||
9663 | with other kernel subsystems. |
||
9664 | |||
9665 | Most of the internal fixed lookup tables have been moved into the |
||
9666 | code segment via the const operator. |
||
9667 | |||
9668 | Several enhancements have been made to the interpreter to both |
||
9669 | reduce the code size and improve performance. |
||
9670 | |||
9671 | Current core subsystem library code sizes are shown below. These |
||
9672 | are the code and data sizes for the acpica.lib produced by the |
||
9673 | Microsoft Visual C++ 6.0 compiler, and these values do not include |
||
9674 | any ACPI driver or OSPM code. The debug version of the code |
||
9675 | includes the full debug trace mechanism which contains over 700 |
||
9676 | invocations of the DEBUG_PRINT macro, 500 function entry macro |
||
9677 | invocations, and over 900 function exit macro invocations -- |
||
9678 | leading to a much larger code and data size. Note that these |
||
9679 | values will vary depending on the efficiency of the compiler and |
||
9680 | the compiler options used during generation. |
||
9681 | |||
9682 | Non-Debug Version: 64K Code, 5K Data, 69K Total |
||
9683 | Debug Version: 137K Code, 58K Data, 195K Total |
||
9684 | |||
9685 | Linux: |
||
9686 | |||
9687 | Implemented wbinvd() macro, pending a kernel-wide definition. |
||
9688 | |||
9689 | Fixed /proc/acpi/event to handle poll() and short reads. |
||
9690 | |||
9691 | ASL Compiler, version X2026: |
||
9692 | |||
9693 | Fixed a problem introduced in the previous label where the AML |
||
9694 | |||
9695 | code emitted for package objects produced packages with zero |
||
9696 | length. |
||
9697 | |||
9698 | ---------------------------------------- |
||
9699 | Summary of changes for this label: 08_16_01 |
||
9700 | |||
9701 | ACPI CA Core Subsystem: |
||
9702 | |||
9703 | The following ACPI 2.0 ASL operators have been implemented in the |
||
9704 | AML interpreter (These are already supported by the Intel ASL |
||
9705 | compiler): ToDecimalString, ToHexString, ToString, ToInteger, and |
||
9706 | ToBuffer. Support for 64-bit AML constants is implemented in the |
||
9707 | AML parser, debugger, and disassembler. |
||
9708 | |||
9709 | The internal memory tracking mechanism (leak detection code) has |
||
9710 | been upgraded to reduce the memory overhead (a separate tracking |
||
9711 | block is no longer allocated for each memory allocation), and now |
||
9712 | supports all of the internal object caches. |
||
9713 | |||
9714 | The data structures and code for the internal object caches have |
||
9715 | been coelesced and optimized so that there is a single cache and |
||
9716 | memory list data structure and a single group of functions that |
||
9717 | implement generic cache management. This has reduced the code |
||
9718 | size in both the debug and release versions of the subsystem. |
||
9719 | |||
9720 | The DEBUG_PRINT macro(s) have been optimized for size and replaced |
||
9721 | by ACPI_DEBUG_PRINT. The syntax for this macro is slightly |
||
9722 | different, because it generates a single call to an internal |
||
9723 | function. This results in a savings of about 90 bytes per |
||
9724 | invocation, resulting in an overall code and data savings of about |
||
9725 | 16% in the debug version of the subsystem. |
||
9726 | |||
9727 | Linux: |
||
9728 | |||
9729 | Fixed C3 disk corruption problems and re-enabled C3 on supporting |
||
9730 | machines. |
||
9731 | |||
9732 | Integrated low-level sleep code by Patrick Mochel. |
||
9733 | |||
9734 | Further tweaked source code Linuxization. |
||
9735 | |||
9736 | Other minor fixes. |
||
9737 | |||
9738 | ASL Compiler: |
||
9739 | |||
9740 | Support for ACPI 2.0 variable length packages is fixed/completed. |
||
9741 | |||
9742 | Fixed a problem where the optional length parameter for the ACPI |
||
9743 | 2.0 ToString operator. |
||
9744 | |||
9745 | Fixed multiple extraneous error messages when a syntax error is |
||
9746 | detected within the declaration line of a control method. |
||
9747 | |||
9748 | ---------------------------------------- |
||
9749 | Summary of changes for this label: 07_17_01 |
||
9750 | |||
9751 | ACPI CA Core Subsystem: |
||
9752 | |||
9753 | Added a new interface named AcpiGetFirmwareTable to obtain any |
||
9754 | ACPI table via the ACPI signature. The interface can be called at |
||
9755 | any time during kernel initialization, even before the kernel |
||
9756 | virtual memory manager is initialized and paging is enabled. This |
||
9757 | allows kernel subsystems to obtain ACPI tables very early, even |
||
9758 | before the ACPI CA subsystem is initialized. |
||
9759 | |||
9760 | Fixed a problem where Fields defined with the AnyAcc attribute |
||
9761 | could be resolved to the incorrect address under the following |
||
9762 | conditions: 1) the field width is larger than 8 bits and 2) the |
||
9763 | parent operation region is not defined on a DWORD boundary. |
||
9764 | |||
9765 | Fixed a problem where the interpreter is not being locked during |
||
9766 | namespace initialization (during execution of the _INI control |
||
9767 | methods), causing an error when an attempt is made to release it |
||
9768 | later. |
||
9769 | |||
9770 | ACPI 2.0 support in the AML Interpreter has begun and will be |
||
9771 | ongoing throughout the rest of this year. In this label, The Mod |
||
9772 | operator is implemented. |
||
9773 | |||
9774 | Added a new data type to contain full PCI addresses named |
||
9775 | ACPI_PCI_ID. This structure contains the PCI Segment, Bus, Device, |
||
9776 | and Function values. |
||
9777 | |||
9778 | Linux: |
||
9779 | |||
9780 | Enhanced the Linux version of the source code to change most |
||
9781 | capitalized ACPI type names to lowercase. For example, all |
||
9782 | instances of ACPI_STATUS are changed to acpi_status. This will |
||
9783 | result in a large diff, but the change is strictly cosmetic and |
||
9784 | aligns the CA code closer to the Linux coding standard. |
||
9785 | |||
9786 | OSL Interfaces: |
||
9787 | |||
9788 | The interfaces to the PCI configuration space have been changed to |
||
9789 | add the PCI Segment number and to split the single 32-bit combined |
||
9790 | DeviceFunction field into two 16-bit fields. This was |
||
9791 | accomplished by moving the four values that define an address in |
||
9792 | PCI configuration space (segment, bus, device, and function) to |
||
9793 | the new ACPI_PCI_ID structure. |
||
9794 | |||
9795 | The changes to the PCI configuration space interfaces led to a |
||
9796 | reexamination of the complete set of address space access |
||
9797 | interfaces for PCI, I/O, and Memory. The previously existing 18 |
||
9798 | interfaces have proven difficult to maintain (any small change |
||
9799 | must be propagated across at least 6 interfaces) and do not easily |
||
9800 | allow for future expansion to 64 bits if necessary. Also, on some |
||
9801 | systems, it would not be appropriate to demultiplex the access |
||
9802 | width (8, 16, 32,or 64) before calling the OSL if the |
||
9803 | corresponding native OS interfaces contain a similar access width |
||
9804 | parameter. For these reasons, the 18 address space interfaces |
||
9805 | have been replaced by these 6 new ones: |
||
9806 | |||
9807 | AcpiOsReadPciConfiguration |
||
9808 | AcpiOsWritePciConfiguration |
||
9809 | AcpiOsReadMemory |
||
9810 | AcpiOsWriteMemory |
||
9811 | AcpiOsReadPort |
||
9812 | AcpiOsWritePort |
||
9813 | |||
9814 | Added a new interface named AcpiOsGetRootPointer to allow the OSL |
||
9815 | to perform the platform and/or OS-specific actions necessary to |
||
9816 | obtain the ACPI RSDP table pointer. On IA-32 platforms, this |
||
9817 | interface will simply call down to the CA core to perform the low- |
||
9818 | memory search for the table. On IA-64, the RSDP is obtained from |
||
9819 | EFI. Migrating this interface to the OSL allows the CA core to |
||
9820 | |||
9821 | remain OS and platform independent. |
||
9822 | |||
9823 | Added a new interface named AcpiOsSignal to provide a generic |
||
9824 | "function code and pointer" interface for various miscellaneous |
||
9825 | signals and notifications that must be made to the host OS. The |
||
9826 | first such signals are intended to support the ASL Fatal and |
||
9827 | Breakpoint operators. In the latter case, the AcpiOsBreakpoint |
||
9828 | interface has been obsoleted. |
||
9829 | |||
9830 | The definition of the AcpiFormatException interface has been |
||
9831 | changed to simplify its use. The caller no longer must supply a |
||
9832 | buffer to the call; A pointer to a const string is now returned |
||
9833 | directly. This allows the call to be easily used in printf |
||
9834 | statements, etc. since the caller does not have to manage a local |
||
9835 | buffer. |
||
9836 | |||
9837 | |||
9838 | ASL Compiler, Version X2025: |
||
9839 | |||
9840 | The ACPI 2.0 Switch/Case/Default operators have been implemented |
||
9841 | and are fully functional. They will work with all ACPI 1.0 |
||
9842 | interpreters, since the operators are simply translated to If/Else |
||
9843 | pairs. |
||
9844 | |||
9845 | The ACPI 2.0 ElseIf operator is implemented and will also work |
||
9846 | with 1.0 interpreters, for the same reason. |
||
9847 | |||
9848 | Implemented support for ACPI 2.0 variable-length packages. These |
||
9849 | packages have a separate opcode, and their size is determined by |
||
9850 | the interpreter at run-time. |
||
9851 | |||
9852 | Documentation The ACPI CA Programmer Reference has been updated to |
||
9853 | reflect the new interfaces and changes to existing interfaces. |
||
9854 | |||
9855 | ------------------------------------------ |
||
9856 | Summary of changes for this label: 06_15_01 |
||
9857 | |||
9858 | ACPI CA Core Subsystem: |
||
9859 | |||
9860 | Fixed a problem where a DWORD-accessed field within a Buffer |
||
9861 | object would get its byte address inadvertently rounded down to |
||
9862 | the nearest DWORD. Buffers are always Byte-accessible. |
||
9863 | |||
9864 | ASL Compiler, version X2024: |
||
9865 | |||
9866 | Fixed a problem where the Switch() operator would either fault or |
||
9867 | hang the compiler. Note however, that the AML code for this ACPI |
||
9868 | 2.0 operator is not yet implemented. |
||
9869 | |||
9870 | Compiler uses the new AcpiOsGetTimer interface to obtain compile |
||
9871 | timings. |
||
9872 | |||
9873 | Implementation of the CreateField operator automatically converts |
||
9874 | a reference to a named field within a resource descriptor from a |
||
9875 | byte offset to a bit offset if required. |
||
9876 | |||
9877 | Added some missing named fields from the resource descriptor |
||
9878 | support. These are the names that are automatically created by the |
||
9879 | compiler to reference fields within a descriptor. They are only |
||
9880 | valid at compile time and are not passed through to the AML |
||
9881 | interpreter. |
||
9882 | |||
9883 | Resource descriptor named fields are now typed as Integers and |
||
9884 | subject to compile-time typechecking when used in expressions. |
||
9885 | |||
9886 | ------------------------------------------ |
||
9887 | Summary of changes for this label: 05_18_01 |
||
9888 | |||
9889 | ACPI CA Core Subsystem: |
||
9890 | |||
9891 | Fixed a couple of problems in the Field support code where bits |
||
9892 | from adjacent fields could be returned along with the proper field |
||
9893 | bits. Restructured the field support code to improve performance, |
||
9894 | readability and maintainability. |
||
9895 | |||
9896 | New DEBUG_PRINTP macro automatically inserts the procedure name |
||
9897 | into the output, saving hundreds of copies of procedure name |
||
9898 | strings within the source, shrinking the memory footprint of the |
||
9899 | debug version of the core subsystem. |
||
9900 | |||
9901 | Source Code Structure: |
||
9902 | |||
9903 | The source code directory tree was restructured to reflect the |
||
9904 | current organization of the component architecture. Some files |
||
9905 | and directories have been moved and/or renamed. |
||
9906 | |||
9907 | Linux: |
||
9908 | |||
9909 | Fixed leaking kacpidpc processes. |
||
9910 | |||
9911 | Fixed queueing event data even when /proc/acpi/event is not |
||
9912 | opened. |
||
9913 | |||
9914 | ASL Compiler, version X2020: |
||
9915 | |||
9916 | Memory allocation performance enhancement - over 24X compile time |
||
9917 | improvement on large ASL files. Parse nodes and namestring |
||
9918 | buffers are now allocated from a large internal compiler buffer. |
||
9919 | |||
9920 | The temporary .SRC file is deleted unless the "-s" option is |
||
9921 | specified |
||
9922 | |||
9923 | The "-d" debug output option now sends all output to the .DBG file |
||
9924 | instead of the console. |
||
9925 | |||
9926 | "External" second parameter is now optional |
||
9927 | |||
9928 | "ElseIf" syntax now properly allows the predicate |
||
9929 | |||
9930 | Last operand to "Load" now recognized as a Target operand |
||
9931 | |||
9932 | Debug object can now be used anywhere as a normal object. |
||
9933 | |||
9934 | ResourceTemplate now returns an object of type BUFFER |
||
9935 | |||
9936 | EISAID now returns an object of type INTEGER |
||
9937 | |||
9938 | "Index" now works with a STRING operand |
||
9939 | |||
9940 | "LoadTable" now accepts optional parameters |
||
9941 | |||
9942 | "ToString" length parameter is now optional |
||
9943 | |||
9944 | "Interrupt (ResourceType," parse error fixed. |
||
9945 | |||
9946 | "Register" with a user-defined region space parse error fixed |
||
9947 | |||
9948 | Escaped backslash at the end of a string ("\\") scan/parse error |
||
9949 | fixed |
||
9950 | |||
9951 | "Revision" is now an object of type INTEGER. |
||
9952 | |||
9953 | |||
9954 | |||
9955 | ------------------------------------------ |
||
9956 | Summary of changes for this label: 05_02_01 |
||
9957 | |||
9958 | Linux: |
||
9959 | |||
9960 | /proc/acpi/event now blocks properly. |
||
9961 | |||
9962 | Removed /proc/sys/acpi. You can still dump your DSDT from |
||
9963 | /proc/acpi/dsdt. |
||
9964 | |||
9965 | ACPI CA Core Subsystem: |
||
9966 | |||
9967 | Fixed a problem introduced in the previous label where some of the |
||
9968 | "small" resource descriptor types were not recognized. |
||
9969 | |||
9970 | Improved error messages for the case where an ASL Field is outside |
||
9971 | the range of the parent operation region. |
||
9972 | |||
9973 | ASL Compiler, version X2018: |
||
9974 | |||
9975 | |||
9976 | Added error detection for ASL Fields that extend beyond the length |
||
9977 | of the parent operation region (only if the length of the region |
||
9978 | is known at compile time.) This includes fields that have a |
||
9979 | minimum access width that is smaller than the parent region, and |
||
9980 | individual field units that are partially or entirely beyond the |
||
9981 | extent of the parent. |
||
9982 | |||
9983 | |||
9984 | |||
9985 | ------------------------------------------ |
||
9986 | Summary of changes for this label: 04_27_01 |
||
9987 | |||
9988 | ACPI CA Core Subsystem: |
||
9989 | |||
9990 | Fixed a problem where the namespace mutex could be released at the |
||
9991 | wrong time during execution of AcpiRemoveAddressSpaceHandler. |
||
9992 | |||
9993 | Added optional thread ID output for debug traces, to simplify |
||
9994 | debugging of multiple threads. Added context switch notification |
||
9995 | when the debug code realizes that a different thread is now |
||
9996 | executing ACPI code. |
||
9997 | |||
9998 | Some additional external data types have been prefixed with the |
||
9999 | string "ACPI_" for consistency. This may effect existing code. |
||
10000 | The data types affected are the external callback typedefs - e.g., |
||
10001 | |||
10002 | WALK_CALLBACK becomes ACPI_WALK_CALLBACK. |
||
10003 | |||
10004 | Linux: |
||
10005 | |||
10006 | Fixed an issue with the OSL semaphore implementation where a |
||
10007 | thread was waking up with an error from receiving a SIGCHLD |
||
10008 | signal. |
||
10009 | |||
10010 | Linux version of ACPI CA now uses the system C library for string |
||
10011 | manipulation routines instead of a local implementation. |
||
10012 | |||
10013 | Cleaned up comments and removed TBDs. |
||
10014 | |||
10015 | ASL Compiler, version X2017: |
||
10016 | |||
10017 | Enhanced error detection and reporting for all file I/O |
||
10018 | operations. |
||
10019 | |||
10020 | Documentation: |
||
10021 | |||
10022 | Programmer Reference updated to version 1.06. |
||
10023 | |||
10024 | |||
10025 | |||
10026 | ------------------------------------------ |
||
10027 | Summary of changes for this label: 04_13_01 |
||
10028 | |||
10029 | ACPI CA Core Subsystem: |
||
10030 | |||
10031 | Restructured support for BufferFields and RegionFields. |
||
10032 | BankFields support is now fully operational. All known 32-bit |
||
10033 | limitations on field sizes have been removed. Both BufferFields |
||
10034 | and (Operation) RegionFields are now supported by the same field |
||
10035 | management code. |
||
10036 | |||
10037 | Resource support now supports QWORD address and IO resources. The |
||
10038 | 16/32/64 bit address structures and the Extended IRQ structure |
||
10039 | have been changed to properly handle Source Resource strings. |
||
10040 | |||
10041 | A ThreadId of -1 is now used to indicate a "mutex not acquired" |
||
10042 | condition internally and must never be returned by AcpiOsThreadId. |
||
10043 | This reserved value was changed from 0 since Unix systems allow a |
||
10044 | thread ID of 0. |
||
10045 | |||
10046 | Linux: |
||
10047 | |||
10048 | Driver code reorganized to enhance portability |
||
10049 | |||
10050 | Added a kernel configuration option to control ACPI_DEBUG |
||
10051 | |||
10052 | Fixed the EC driver to honor _GLK. |
||
10053 | |||
10054 | ASL Compiler, version X2016: |
||
10055 | |||
10056 | Fixed support for the "FixedHw" keyword. Previously, the FixedHw |
||
10057 | address space was set to 0, not 0x7f as it should be. |
||
10058 | |||
10059 | ------------------------------------------ |
||
10060 | Summary of changes for this label: 03_13_01 |
||
10061 | |||
10062 | ACPI CA Core Subsystem: |
||
10063 | |||
10064 | During ACPI initialization, the _SB_._INI method is now run if |
||
10065 | present. |
||
10066 | |||
10067 | Notify handler fix - notifies are deferred until the parent method |
||
10068 | completes execution. This fixes the "mutex already acquired" |
||
10069 | issue seen occasionally. |
||
10070 | |||
10071 | Part of the "implicit conversion" rules in ACPI 2.0 have been |
||
10072 | found to cause compatibility problems with existing ASL/AML. The |
||
10073 | convert "result-to-target-type" implementation has been removed |
||
10074 | for stores to method Args and Locals. Source operand conversion |
||
10075 | is still fully implemented. Possible changes to ACPI 2.0 |
||
10076 | specification pending. |
||
10077 | |||
10078 | Fix to AcpiRsCalculatePciRoutingTableLength to return correct |
||
10079 | length. |
||
10080 | |||
10081 | Fix for compiler warnings for 64-bit compiles. |
||
10082 | |||
10083 | Linux: |
||
10084 | |||
10085 | /proc output aligned for easier parsing. |
||
10086 | |||
10087 | Release-version compile problem fixed. |
||
10088 | |||
10089 | New kernel configuration options documented in Configure.help. |
||
10090 | |||
10091 | IBM 600E - Fixed Sleep button may generate "Invalid |
||
10092 | context" message. |
||
10093 | |||
10094 | OSPM: |
||
10095 | |||
10096 | Power resource driver integrated with bus manager. |
||
10097 | |||
10098 | Fixed kernel fault during active cooling for thermal zones. |
||
10099 | |||
10100 | Source Code: |
||
10101 | |||
10102 | The source code tree has been restructured. |
||
10103 | |||
10104 | |||
10105 | |||
10106 | ------------------------------------------ |
||
10107 | Summary of changes for this label: 03_02_01 |
||
10108 | |||
10109 | Linux OS Services Layer (OSL): |
||
10110 | |||
10111 | Major revision of all Linux-specific code. |
||
10112 | |||
10113 | Modularized all ACPI-specific drivers. |
||
10114 | |||
10115 | Added new thermal zone and power resource drivers. |
||
10116 | |||
10117 | Revamped /proc interface (new functionality is under /proc/acpi). |
||
10118 | |||
10119 | New kernel configuration options. |
||
10120 | |||
10121 | Linux known issues: |
||
10122 | |||
10123 | New kernel configuration options not documented in Configure.help |
||
10124 | yet. |
||
10125 | |||
10126 | |||
10127 | Module dependencies not currently implemented. If used, they |
||
10128 | should be loaded in this order: busmgr, power, ec, system, |
||
10129 | processor, battery, ac_adapter, button, thermal. |
||
10130 | |||
10131 | Modules will not load if CONFIG_MODVERSION is set. |
||
10132 | |||
10133 | IBM 600E - entering S5 may reboot instead of shutting down. |
||
10134 | |||
10135 | IBM 600E - Sleep button may generate "Invalid |
||
10136 | message. |
||
10137 | |||
10138 | Some systems may fail with "execution mutex already acquired" |
||
10139 | message. |
||
10140 | |||
10141 | ACPI CA Core Subsystem: |
||
10142 | |||
10143 | Added a new OSL Interface, AcpiOsGetThreadId. This was required |
||
10144 | for the deadlock detection code. Defined to return a non-zero, 32- |
||
10145 | bit thread ID for the currently executing thread. May be a non- |
||
10146 | zero constant integer on single-thread systems. |
||
10147 | |||
10148 | Implemented deadlock detection for internal subsystem mutexes. We |
||
10149 | may add conditional compilation for this code (debug only) later. |
||
10150 | |||
10151 | ASL/AML Mutex object semantics are now fully supported. This |
||
10152 | includes multiple acquires/releases by owner and support for the |
||
10153 | |||
10154 | Mutex SyncLevel parameter. |
||
10155 | |||
10156 | A new "Force Release" mechanism automatically frees all ASL |
||
10157 | Mutexes that have been acquired but not released when a thread |
||
10158 | exits the interpreter. This forces conformance to the ACPI spec |
||
10159 | ("All mutexes must be released when an invocation exits") and |
||
10160 | prevents deadlocked ASL threads. This mechanism can be expanded |
||
10161 | (later) to monitor other resource acquisitions if OEM ASL code |
||
10162 | continues to misbehave (which it will). |
||
10163 | |||
10164 | Several new ACPI exception codes have been added for the Mutex |
||
10165 | support. |
||
10166 | |||
10167 | Recursive method calls are now allowed and supported (the ACPI |
||
10168 | spec does in fact allow recursive method calls.) The number of |
||
10169 | recursive calls is subject to the restrictions imposed by the |
||
10170 | SERIALIZED method keyword and SyncLevel (ACPI 2.0) method |
||
10171 | parameter. |
||
10172 | |||
10173 | Implemented support for the SyncLevel parameter for control |
||
10174 | methods (ACPI 2.0 feature) |
||
10175 | |||
10176 | Fixed a deadlock problem when multiple threads attempted to use |
||
10177 | the interpreter. |
||
10178 | |||
10179 | Fixed a problem where the string length of a String package |
||
10180 | element was not always set in a package returned from |
||
10181 | AcpiEvaluateObject. |
||
10182 | |||
10183 | Fixed a problem where the length of a String package element was |
||
10184 | not always included in the length of the overall package returned |
||
10185 | from AcpiEvaluateObject. |
||
10186 | |||
10187 | Added external interfaces (Acpi*) to the ACPI debug memory |
||
10188 | manager. This manager keeps a list of all outstanding |
||
10189 | allocations, and can therefore detect memory leaks and attempts to |
||
10190 | free memory blocks more than once. Useful for code such as the |
||
10191 | power manager, etc. May not be appropriate for device drivers. |
||
10192 | Performance with the debug code enabled is slow. |
||
10193 | |||
10194 | The ACPI Global Lock is now an optional hardware element. |
||
10195 | |||
10196 | ASL Compiler Version X2015: |
||
10197 | |||
10198 | Integrated changes to allow the compiler to be generated on |
||
10199 | multiple platforms. |
||
10200 | |||
10201 | Linux makefile added to generate the compiler on Linux |
||
10202 | |||
10203 | Source Code: |
||
10204 | |||
10205 | All platform-specific headers have been moved to their own |
||
10206 | subdirectory, Include/Platform. |
||
10207 | |||
10208 | New source file added, Interpreter/ammutex.c |
||
10209 | |||
10210 | New header file, Include/acstruct.h |
||
10211 | |||
10212 | Documentation: |
||
10213 | |||
10214 | The programmer reference has been updated for the following new |
||
10215 | interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree |
||
10216 | |||
10217 | ------------------------------------------ |
||
10218 | Summary of changes for this label: 02_08_01 |
||
10219 | |||
10220 | Core ACPI CA Subsystem: Fixed a problem where an error was |
||
10221 | incorrectly returned if the return resource buffer was larger than |
||
10222 | the actual data (in the resource interfaces). |
||
10223 | |||
10224 | References to named objects within packages are resolved to the |
||
10225 | |||
10226 | full pathname string before packages are returned directly (via |
||
10227 | the AcpiEvaluateObject interface) or indirectly via the resource |
||
10228 | interfaces. |
||
10229 | |||
10230 | Linux OS Services Layer (OSL): |
||
10231 | |||
10232 | Improved /proc battery interface. |
||
10233 | |||
10234 | |||
10235 | Added C-state debugging output and other miscellaneous fixes. |
||
10236 | |||
10237 | ASL Compiler Version X2014: |
||
10238 | |||
10239 | All defined method arguments can now be used as local variables, |
||
10240 | including the ones that are not actually passed in as parameters. |
||
10241 | The compiler tracks initialization of the arguments and issues an |
||
10242 | exception if they are used without prior assignment (just like |
||
10243 | locals). |
||
10244 | |||
10245 | The -o option now specifies a filename prefix that is used for all |
||
10246 | output files, including the AML output file. Otherwise, the |
||
10247 | default behavior is as follows: 1) the AML goes to the file |
||
10248 | specified in the DSDT. 2) all other output files use the input |
||
10249 | source filename as the base. |
||
10250 | |||
10251 | ------------------------------------------ |
||
10252 | Summary of changes for this label: 01_25_01 |
||
10253 | |||
10254 | Core ACPI CA Subsystem: Restructured the implementation of object |
||
10255 | store support within the interpreter. This includes support for |
||
10256 | the Store operator as well as any ASL operators that include a |
||
10257 | target operand. |
||
10258 | |||
10259 | Partially implemented support for Implicit Result-to-Target |
||
10260 | conversion. This is when a result object is converted on the fly |
||
10261 | to the type of an existing target object. Completion of this |
||
10262 | support is pending further analysis of the ACPI specification |
||
10263 | concerning this matter. |
||
10264 | |||
10265 | CPU-specific code has been removed from the subsystem (hardware |
||
10266 | directory). |
||
10267 | |||
10268 | New Power Management Timer functions added |
||
10269 | |||
10270 | Linux OS Services Layer (OSL): Moved system state transition code |
||
10271 | to the core, fixed it, and modified Linux OSL accordingly. |
||
10272 | |||
10273 | Fixed C2 and C3 latency calculations. |
||
10274 | |||
10275 | |||
10276 | We no longer use the compilation date for the version message on |
||
10277 | initialization, but retrieve the version from AcpiGetSystemInfo(). |
||
10278 | |||
10279 | Incorporated for fix Sony VAIO machines. |
||
10280 | |||
10281 | Documentation: The Programmer Reference has been updated and |
||
10282 | reformatted. |
||
10283 | |||
10284 | |||
10285 | ASL Compiler: Version X2013: Fixed a problem where the line |
||
10286 | numbering and error reporting could get out of sync in the |
||
10287 | presence of multiple include files. |
||
10288 | |||
10289 | ------------------------------------------ |
||
10290 | Summary of changes for this label: 01_15_01 |
||
10291 | |||
10292 | Core ACPI CA Subsystem: |
||
10293 | |||
10294 | Implemented support for type conversions in the execution of the |
||
10295 | ASL Concatenate operator (The second operand is converted to |
||
10296 | match the type of the first operand before concatenation.) |
||
10297 | |||
10298 | Support for implicit source operand conversion is partially |
||
10299 | implemented. The ASL source operand types Integer, Buffer, and |
||
10300 | String are freely interchangeable for most ASL operators and are |
||
10301 | converted by the interpreter on the fly as required. Implicit |
||
10302 | Target operand conversion (where the result is converted to the |
||
10303 | target type before storing) is not yet implemented. |
||
10304 | |||
10305 | Support for 32-bit and 64-bit BCD integers is implemented. |
||
10306 | |||
10307 | Problem fixed where a field read on an aligned field could cause a |
||
10308 | read past the end of the field. |
||
10309 | |||
10310 | New exception, AE_AML_NO_RETURN_VALUE, is returned when a method |
||
10311 | does not return a value, but the caller expects one. (The ASL |
||
10312 | compiler flags this as a warning.) |
||
10313 | |||
10314 | ASL Compiler: |
||
10315 | |||
10316 | Version X2011: |
||
10317 | 1. Static typechecking of all operands is implemented. This |
||
10318 | prevents the use of invalid objects (such as using a Package where |
||
10319 | an Integer is required) at compile time instead of at interpreter |
||
10320 | run-time. |
||
10321 | 2. The ASL source line is printed with ALL errors and warnings. |
||
10322 | 3. Bug fix for source EOF without final linefeed. |
||
10323 | 4. Debug option is split into a parse trace and a namespace trace. |
||
10324 | 5. Namespace output option (-n) includes initial values for |
||
10325 | integers and strings. |
||
10326 | 6. Parse-only option added for quick syntax checking. |
||
10327 | 7. Compiler checks for duplicate ACPI name declarations |
||
10328 | |||
10329 | Version X2012: |
||
10330 | 1. Relaxed typechecking to allow interchangeability between |
||
10331 | strings, integers, and buffers. These types are now converted by |
||
10332 | the interpreter at runtime. |
||
10333 | 2. Compiler reports time taken by each internal subsystem in the |
||
10334 | debug output file. |
||
10335 | |||
10336 | |||
10337 | ------------------------------------------ |
||
10338 | Summary of changes for this label: 12_14_00 |
||
10339 | |||
10340 | ASL Compiler: |
||
10341 | |||
10342 | This is the first official release of the compiler. Since the |
||
10343 | compiler requires elements of the Core Subsystem, this label |
||
10344 | synchronizes everything. |
||
10345 | |||
10346 | ------------------------------------------ |
||
10347 | Summary of changes for this label: 12_08_00 |
||
10348 | |||
10349 | |||
10350 | Fixed a problem where named references within the ASL definition |
||
10351 | of both OperationRegions and CreateXXXFields did not work |
||
10352 | properly. The symptom was an AE_AML_OPERAND_TYPE during |
||
10353 | initialization of the region/field. This is similar (but not |
||
10354 | related internally) to the problem that was fixed in the last |
||
10355 | label. |
||
10356 | |||
10357 | Implemented both 32-bit and 64-bit support for the BCD ASL |
||
10358 | functions ToBCD and FromBCD. |
||
10359 | |||
10360 | Updated all legal headers to include "2000" in the copyright |
||
10361 | years. |
||
10362 | |||
10363 | ------------------------------------------ |
||
10364 | Summary of changes for this label: 12_01_00 |
||
10365 | |||
10366 | Fixed a problem where method invocations within the ASL definition |
||
10367 | of both OperationRegions and CreateXXXFields did not work |
||
10368 | properly. The symptom was an AE_AML_OPERAND_TYPE during |
||
10369 | initialization of the region/field: |
||
10370 | |||
10371 | nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments |
||
10372 | [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad operand(s) |
||
10373 | (0x3005) |
||
10374 | |||
10375 | Fixed a problem where operators with more than one nested |
||
10376 | subexpression would fail. The symptoms were varied, by mostly |
||
10377 | AE_AML_OPERAND_TYPE errors. This was actually a rather serious |
||
10378 | problem that has gone unnoticed until now. |
||
10379 | |||
10380 | Subtract (Add (1,2), Multiply (3,4)) |
||
10381 | |||
10382 | Fixed a problem where AcpiGetHandle didn't quite get fixed in the |
||
10383 | previous build (The prefix part of a relative path was handled |
||
10384 | incorrectly). |
||
10385 | |||
10386 | Fixed a problem where Operation Region initialization failed if |
||
10387 | the operation region name was a "namepath" instead of a simple |
||
10388 | "nameseg". Symptom was an AE_NO_OPERAND error. |
||
10389 | |||
10390 | Fixed a problem where an assignment to a local variable via the |
||
10391 | indirect RefOf mechanism only worked for the first such |
||
10392 | assignment. Subsequent assignments were ignored. |
||
10393 | |||
10394 | ------------------------------------------ |
||
10395 | Summary of changes for this label: 11_15_00 |
||
10396 | |||
10397 | ACPI 2.0 table support with backwards support for ACPI 1.0 and the |
||
10398 | 0.71 extensions. Note: although we can read ACPI 2.0 BIOS tables, |
||
10399 | the AML interpreter does NOT have support for the new 2.0 ASL |
||
10400 | grammar terms at this time. |
||
10401 | |||
10402 | All ACPI hardware access is via the GAS structures in the ACPI 2.0 |
||
10403 | FADT. |
||
10404 | |||
10405 | All physical memory addresses across all platforms are now 64 bits |
||
10406 | wide. Logical address width remains dependent on the platform |
||
10407 | (i.e., "void *"). |
||
10408 | |||
10409 | AcpiOsMapMemory interface changed to a 64-bit physical address. |
||
10410 | |||
10411 | The AML interpreter integer size is now 64 bits, as per the ACPI |
||
10412 | 2.0 specification. |
||
10413 | |||
10414 | For backwards compatibility with ACPI 1.0, ACPI tables with a |
||
10415 | revision number less than 2 use 32-bit integers only. |
||
10416 | |||
10417 | Fixed a problem where the evaluation of OpRegion operands did not |
||
10418 | always resolve them to numbers properly. |
||
10419 | |||
10420 | ------------------------------------------ |
||
10421 | Summary of changes for this label: 10_20_00 |
||
10422 | |||
10423 | Fix for CBN_._STA issue. This fix will allow correct access to |
||
10424 | CBN_ OpRegions when the _STA returns 0x8. |
||
10425 | |||
10426 | Support to convert ACPI constants (Ones, Zeros, One) to actual |
||
10427 | values before a package object is returned |
||
10428 | |||
10429 | Fix for method call as predicate to if/while construct causing |
||
10430 | incorrect if/while behavior |
||
10431 | |||
10432 | Fix for Else block package lengths sometimes calculated wrong (if |
||
10433 | block > 63 bytes) |
||
10434 | |||
10435 | Fix for Processor object length field, was always zero |
||
10436 | |||
10437 | Table load abort if FACP sanity check fails |
||
10438 | |||
10439 | Fix for problem with Scope(name) if name already exists |
||
10440 | |||
10441 | Warning emitted if a named object referenced cannot be found |
||
10442 | (resolved) during method execution. |
||
10443 | |||
10444 | |||
10445 | |||
10446 | |||
10447 | |||
10448 | ------------------------------------------ |
||
10449 | Summary of changes for this label: 9_29_00 |
||
10450 | |||
10451 | New table initialization interfaces: AcpiInitializeSubsystem no |
||
10452 | longer has any parameters AcpiFindRootPointer - Find the RSDP (if |
||
10453 | necessary) AcpiLoadTables (RSDP) - load all tables found at RSDP- |
||
10454 | >RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by |
||
10455 | AcpiLoadTables |
||
10456 | |||
10457 | Note: These interface changes require changes to all existing OSDs |
||
10458 | |||
10459 | The PCI_Config default address space handler is always installed |
||
10460 | at the root namespace object. |
||
10461 | |||
10462 | ------------------------------------------- |
||
10463 | Summary of changes for this label: 09_15_00 |
||
10464 | |||
10465 | The new initialization architecture is implemented. New |
||
10466 | interfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize) |
||
10467 | AcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace |
||
10468 | |||
10469 | (Namespace is automatically loaded when a table is loaded) |
||
10470 | |||
10471 | The ACPI_OPERAND_OBJECT has been optimized to shrink its size from |
||
10472 | 52 bytes to 32 bytes. There is usually one of these for every |
||
10473 | namespace object, so the memory savings is significant. |
||
10474 | |||
10475 | Implemented just-in-time evaluation of the CreateField operators. |
||
10476 | |||
10477 | Bug fixes for IA-64 support have been integrated. |
||
10478 | |||
10479 | Additional code review comments have been implemented |
||
10480 | |||
10481 | The so-called "third pass parse" has been replaced by a final walk |
||
10482 | through the namespace to initialize all operation regions (address |
||
10483 | spaces) and fields that have not yet been initialized during the |
||
10484 | execution of the various _INI and REG methods. |
||
10485 | |||
10486 | New file - namespace/nsinit.c |
||
10487 | |||
10488 | ------------------------------------------- |
||
10489 | Summary of changes for this label: 09_01_00 |
||
10490 | |||
10491 | Namespace manager data structures have been reworked to change the |
||
10492 | primary object from a table to a single object. This has |
||
10493 | resulted in dynamic memory savings of 3X within the namespace and |
||
10494 | 2X overall in the ACPI CA subsystem. |
||
10495 | |||
10496 | Fixed problem where the call to AcpiEvFindPciRootBuses was |
||
10497 | inadvertently left commented out. |
||
10498 | |||
10499 | Reduced the warning count when generating the source with the GCC |
||
10500 | compiler. |
||
10501 | |||
10502 | Revision numbers added to each module header showing the |
||
10503 | SourceSafe version of the file. Please refer to this version |
||
10504 | number when giving us feedback or comments on individual modules. |
||
10505 | |||
10506 | The main object types within the subsystem have been renamed to |
||
10507 | clarify their purpose: |
||
10508 | |||
10509 | ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT |
||
10510 | ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT |
||
10511 | ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE |
||
10512 | |||
10513 | NOTE: no changes to the initialization sequence are included in |
||
10514 | this label. |
||
10515 | |||
10516 | ------------------------------------------- |
||
10517 | Summary of changes for this label: 08_23_00 |
||
10518 | |||
10519 | Fixed problem where TerminateControlMethod was being called |
||
10520 | multiple times per method |
||
10521 | |||
10522 | Fixed debugger problem where single stepping caused a semaphore to |
||
10523 | be oversignalled |
||
10524 | |||
10525 | Improved performance through additional parse object caching - |
||
10526 | added ACPI_EXTENDED_OP type |
||
10527 | |||
10528 | ------------------------------------------- |
||
10529 | Summary of changes for this label: 08_10_00 |
||
10530 | |||
10531 | Parser/Interpreter integration: Eliminated the creation of |
||
10532 | complete parse trees for ACPI tables and control methods. |
||
10533 | Instead, parse subtrees are created and then deleted as soon as |
||
10534 | they are processed (Either entered into the namespace or executed |
||
10535 | by the interpreter). This reduces the use of dynamic kernel |
||
10536 | memory significantly. (about 10X) |
||
10537 | |||
10538 | Exception codes broken into classes and renumbered. Be sure to |
||
10539 | recompile all code that includes acexcep.h. Hopefully we won't |
||
10540 | have to renumber the codes again now that they are split into |
||
10541 | classes (environment, programmer, AML code, ACPI table, and |
||
10542 | internal). |
||
10543 | |||
10544 | Fixed some additional alignment issues in the Resource Manager |
||
10545 | subcomponent |
||
10546 | |||
10547 | Implemented semaphore tracking in the AcpiExec utility, and fixed |
||
10548 | several places where mutexes/semaphores were being unlocked |
||
10549 | without a corresponding lock operation. There are no known |
||
10550 | semaphore or mutex "leaks" at this time. |
||
10551 | |||
10552 | Fixed the case where an ASL Return operator is used to return an |
||
10553 | unnamed package. |
||
10554 | |||
10555 | ------------------------------------------- |
||
10556 | Summary of changes for this label: 07_28_00 |
||
10557 | |||
10558 | Fixed a problem with the way addresses were calculated in |
||
10559 | AcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This problem |
||
10560 | manifested itself when a Field was created with WordAccess or |
||
10561 | DwordAccess, but the field unit defined within the Field was less |
||
10562 | |||
10563 | than a Word or Dword. |
||
10564 | |||
10565 | Fixed a problem in AmlDumpOperands() module's loop to pull |
||
10566 | operands off of the operand stack to display information. The |
||
10567 | problem manifested itself as a TLB error on 64-bit systems when |
||
10568 | accessing an operand stack with two or more operands. |
||
10569 | |||
10570 | Fixed a problem with the PCI configuration space handlers where |
||
10571 | context was getting confused between accesses. This required a |
||
10572 | change to the generic address space handler and address space |
||
10573 | setup definitions. Handlers now get both a global handler context |
||
10574 | (this is the one passed in by the user when executing |
||
10575 | AcpiInstallAddressSpaceHandler() and a specific region context |
||
10576 | that is unique to each region (For example, the _ADR, _SEG and |
||
10577 | _BBN values associated with a specific region). The generic |
||
10578 | function definitions have changed to the following: |
||
10579 | |||
10580 | typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function, |
||
10581 | UINT32 Address, UINT32 BitWidth, UINT32 *Value, void |
||
10582 | *HandlerContext, // This used to be void *Context void |
||
10583 | *RegionContext); // This is an additional parameter |
||
10584 | |||
10585 | typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE |
||
10586 | RegionHandle, UINT32 Function, void *HandlerContext, void |
||
10587 | **RegionContext); // This used to be **ReturnContext |
||
10588 | |||
10589 | ------------------------------------------- |
||
10590 | Summary of changes for this label: 07_21_00 |
||
10591 | |||
10592 | Major file consolidation and rename. All files within the |
||
10593 | interpreter have been renamed as well as most header files. This |
||
10594 | was done to prevent collisions with existing files in the host |
||
10595 | OSs -- filenames such as "config.h" and "global.h" seem to be |
||
10596 | quite common. The VC project files have been updated. All |
||
10597 | makefiles will require modification. |
||
10598 | |||
10599 | The parser/interpreter integration continues in Phase 5 with the |
||
10600 | implementation of a complete 2-pass parse (the AML is parsed |
||
10601 | twice) for each table; This avoids the construction of a huge |
||
10602 | parse tree and therefore reduces the amount of dynamic memory |
||
10603 | required by the subsystem. Greater use of the parse object cache |
||
10604 | means that performance is unaffected. |
||
10605 | |||
10606 | Many comments from the two code reviews have been rolled in. |
||
10607 | |||
10608 | The 64-bit alignment support is complete. |
||
10609 | |||
10610 | ------------------------------------------- |
||
10611 | Summary of changes for this label: 06_30_00 |
||
10612 | |||
10613 | With a nod and a tip of the hat to the technology of yesteryear, |
||
10614 | we've added support in the source code for 80 column output |
||
10615 | devices. The code is now mostly constrained to 80 columns or |
||
10616 | less to support environments and editors that 1) cannot display |
||
10617 | or print more than 80 characters on a single line, and 2) cannot |
||
10618 | disable line wrapping. |
||
10619 | |||
10620 | A major restructuring of the namespace data structure has been |
||
10621 | completed. The result is 1) cleaner and more |
||
10622 | understandable/maintainable code, and 2) a significant reduction |
||
10623 | in the dynamic memory requirement for each named ACPI object |
||
10624 | (almost half). |
||
10625 | |||
10626 | ------------------------------------------- |
||
10627 | Summary of changes for this label: 06_23_00 |
||
10628 | |||
10629 | Linux support has been added. In order to obtain approval to get |
||
10630 | the ACPI CA subsystem into the Linux kernel, we've had to make |
||
10631 | quite a few changes to the base subsystem that will affect all |
||
10632 | users (all the changes are generic and OS- independent). The |
||
10633 | effects of these global changes have been somewhat far reaching. |
||
10634 | Files have been merged and/or renamed and interfaces have been |
||
10635 | renamed. The major changes are described below. |
||
10636 | |||
10637 | Osd* interfaces renamed to AcpiOs* to eliminate namespace |
||
10638 | pollution/confusion within our target kernels. All OSD |
||
10639 | interfaces must be modified to match the new naming convention. |
||
10640 | |||
10641 | Files merged across the subsystem. A number of the smaller source |
||
10642 | and header files have been merged to reduce the file count and |
||
10643 | increase the density of the existing files. There are too many |
||
10644 | to list here. In general, makefiles that call out individual |
||
10645 | files will require rebuilding. |
||
10646 | |||
10647 | Interpreter files renamed. All interpreter files now have the |
||
10648 | prefix am* instead of ie* and is*. |
||
10649 | |||
10650 | Header files renamed: The acapi.h file is now acpixf.h. The |
||
10651 | acpiosd.h file is now acpiosxf.h. We are removing references to |
||
10652 | the acronym "API" since it is somewhat windowsy. The new name is |
||
10653 | "external interface" or xface or xf in the filenames.j |
||
10654 | |||
10655 | |||
10656 | All manifest constants have been forced to upper case (some were |
||
10657 | mixed case.) Also, the string "ACPI_" has been prepended to many |
||
10658 | (not all) of the constants, typedefs, and structs. |
||
10659 | |||
10660 | The globals "DebugLevel" and "DebugLayer" have been renamed |
||
10661 | "AcpiDbgLevel" and "AcpiDbgLayer" respectively. |
||
10662 | |||
10663 | All other globals within the subsystem are now prefixed with |
||
10664 | "AcpiGbl_" Internal procedures within the subsystem are now |
||
10665 | prefixed with "Acpi" (with only a few exceptions). The original |
||
10666 | two-letter abbreviation for the subcomponent remains after "Acpi" |
||
10667 | - for example, CmCallocate became AcpiCmCallocate. |
||
10668 | |||
10669 | Added a source code translation/conversion utility. Used to |
||
10670 | generate the Linux source code, it can be modified to generate |
||
10671 | other types of source as well. Can also be used to cleanup |
||
10672 | existing source by removing extraneous spaces and blank lines. |
||
10673 | Found in tools/acpisrc/* |
||
10674 | |||
10675 | OsdUnMapMemory was renamed to OsdUnmapMemory and then |
||
10676 | AcpiOsUnmapMemory. (UnMap became Unmap). |
||
10677 | |||
10678 | A "MaxUnits" parameter has been added to AcpiOsCreateSemaphore. |
||
10679 | When set to one, this indicates that the caller wants to use the |
||
10680 | |||
10681 | semaphore as a mutex, not a counting semaphore. ACPI CA uses |
||
10682 | both types. However, implementers of this call may want to use |
||
10683 | different OS primitives depending on the type of semaphore |
||
10684 | requested. For example, some operating systems provide separate |
||
10685 | |||
10686 | "mutex" and "semaphore" interfaces - where the mutex interface is |
||
10687 | much faster because it doesn't have all the overhead of a full |
||
10688 | semaphore implementation. |
||
10689 | |||
10690 | Fixed a deadlock problem where a method that accesses the PCI |
||
10691 | address space can block forever if it is the first access to the |
||
10692 | space. |
||
10693 | |||
10694 | ------------------------------------------- |
||
10695 | Summary of changes for this label: 06_02_00 |
||
10696 | |||
10697 | Support for environments that cannot handle unaligned data |
||
10698 | accesses (e.g. firmware and OS environments devoid of alignment |
||
10699 | handler technology namely SAL/EFI and the IA-64 Linux kernel) has |
||
10700 | been added (via configurable macros) in these three areas: - |
||
10701 | Transfer of data from the raw AML byte stream is done via byte |
||
10702 | moves instead of word/dword/qword moves. - External objects are |
||
10703 | aligned within the user buffer, including package elements (sub- |
||
10704 | objects). - Conversion of name strings to UINT32 Acpi Names is now |
||
10705 | done byte-wise. |
||
10706 | |||
10707 | The Store operator was modified to mimic Microsoft's |
||
10708 | implementation when storing to a Buffer Field. |
||
10709 | |||
10710 | Added a check of the BM_STS bit before entering C3. |
||
10711 | |||
10712 | The methods subdirectory has been obsoleted and removed. A new |
||
10713 | file, cmeval.c subsumes the functionality. |
||
10714 | |||
10715 | A 16-bit (DOS) version of AcpiExec has been developed. The |
||
10716 | makefile is under the acpiexec directory.>>> |