changes.txt revision 104470
1102550Siwasaki----------------------------------------
2104470Siwasaki
3104470Siwasaki02 October 2002.  Summary of changes for this release.
4104470Siwasaki
5104470Siwasaki
6104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
7104470Siwasaki
8104470SiwasakiFixed a problem where a store/copy of a string to an existing
9104470Siwasakistring did not always set the string length properly in the
10104470SiwasakiString object.
11104470Siwasaki
12104470SiwasakiFixed a reported problem with the ToString operator where the
13104470Siwasakibehavior was identical to the ToHexString operator instead of
14104470Siwasakijust simply converting a raw buffer to a string data type.
15104470Siwasaki
16104470SiwasakiFixed a problem where CopyObject and the other "explicit"
17104470Siwasakiconversion operators were not updating the internal namespace
18104470Siwasakinode type as part of the store operation.
19104470Siwasaki
20104470SiwasakiFixed a memory leak during implicit source operand conversion
21104470Siwasakiwhere the original object was not deleted if it was converted
22104470Siwasakito a new object of a different type.
23104470Siwasaki
24104470SiwasakiEnhanced error messages for all problems associated with
25104470Siwasakinamespace lookups.  Common procedure generates and prints the
26104470Siwasakilookup name as well as the formatted status.
27104470Siwasaki
28104470SiwasakiCompleted implementation of a new design for the Alias support
29104470Siwasakiwithin the namespace.  The existing design did not handle the
30104470Siwasakicase where a new object was assigned to one of the two names
31104470Siwasakidue to the use of an explicit conversion operator, resulting
32104470Siwasakiin the two names pointing to two different objects.  The new
33104470Siwasakidesign simply points the Alias name to the original name node
34104470Siwasaki- not to the object.  This results in a level of indirection
35104470Siwasakithat must be handled in the name resolution mechanism.
36104470Siwasaki
37104470SiwasakiCode and Data Size: Current core subsystem library sizes are
38104470Siwasakishown below.  These are the code and data sizes for the
39104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
40104470Siwasakiand these values do not include any ACPI driver or OSPM code.
41104470SiwasakiThe debug version of the code includes the debug output trace
42104470Siwasakimechanism and has a larger code and data size.  Note that
43104470Siwasakithese values will vary depending on the efficiency of the
44104470Siwasakicompiler and the compiler options used during generation.
45104470Siwasaki
46104470Siwasaki  Previous Release
47104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
48104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
49104470Siwasaki  Current Release:
50104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
51104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
52104470Siwasaki
53104470Siwasaki
54104470Siwasaki2) Linux
55104470Siwasaki
56104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
57104470SiwasakiNeumann)
58104470Siwasaki
59104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
60104470Siwasaki
61104470SiwasakiFix thermal management and make trip points. R/W (Pavel
62104470SiwasakiMachek)
63104470Siwasaki
64104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
65104470Siwasaki
66104470SiwasakiIA64 fixes. (David Mosberger)
67104470Siwasaki
68104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
69104470Siwasaki
70104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
71104470SiwasakiBrodowski)
72104470Siwasaki
73104470Siwasaki
74104470Siwasaki3) iASL Compiler/Disassembler
75104470Siwasaki
76104470SiwasakiClarified some warning/error messages.
77104470Siwasaki
78104470Siwasaki
79104470Siwasaki----------------------------------------
80104470Siwasaki18 September 2002.  Summary of changes for this release.
81104470Siwasaki
82104470Siwasaki
83104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
84104470Siwasaki
85104470SiwasakiFixed a reported problem with reference chaining (via the
86104470SiwasakiIndex() and RefOf() operators) in the ObjectType() and
87104470SiwasakiSizeOf() operators.  The definition of these operators
88104470Siwasakiincludes the dereferencing of all chained references to return
89104470Siwasakiinformation on the base object.
90104470Siwasaki
91104470SiwasakiFixed a problem with stores to indexed package elements - the
92104470Siwasakiexisting code would not complete the store if an "implicit
93104470Siwasakiconversion" was not performed.  In other words, if the
94104470Siwasakiexisting object (package element) was to be replaced
95104470Siwasakicompletely, the code didn't handle this case.
96104470Siwasaki
97104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
98104470Siwasakitarget name to refer to an object of type Integer, String, or
99104470SiwasakiBuffer, in addition to the scoping object types (Device,
100104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
101104470SiwasakiThis allows existing AML code that has workarounds for a bug
102104470Siwasakiin Windows to function properly.  A warning is issued,
103104470Siwasakihowever.  This affects both the AML interpreter and the iASL
104104470Siwasakicompiler. Below is an example of this type of ASL code:
105104470Siwasaki
106104470Siwasaki      Name(DEB,0x00)
107104470Siwasaki      Scope(DEB)
108104470Siwasaki      {
109104470Siwasaki
110104470SiwasakiFixed some reported problems with 64-bit integer support in
111104470Siwasakithe local implementation of C library functions (clib.c)
112104470Siwasaki
113104470Siwasaki
114104470Siwasaki2) Linux
115104470Siwasaki
116104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
117104470Siwasakiundefined in non-SMP.
118104470Siwasaki
119104470SiwasakiEnsure that the SCI has the proper polarity and trigger, even
120104470Siwasakion systems that do not have an interrupt override entry in the
121104470SiwasakiMADT.
122104470Siwasaki
123104470Siwasaki2.5 big driver reorganization (Pat Mochel)
124104470Siwasaki
125104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
126104470Siwasaki
127104470SiwasakiNew blacklist entries (Andi Kleen)
128104470Siwasaki
129104470SiwasakiBlacklist improvements. Split blacklist code out into a
130104470Siwasakiseparate file. Move checking the blacklist to very early.
131104470SiwasakiPreviously, we would use ACPI tables, and then halfway through
132104470Siwasakiinit, check the blacklist -- too late. Now, it's early enough
133104470Siwasakito completely fall-back to non-ACPI.
134104470Siwasaki
135104470Siwasaki
136104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
137104470Siwasaki
138104470SiwasakiFixed a problem where the typechecking code didn't know that
139104470Siwasakian alias could point to a method.  In other words, aliases
140104470Siwasakiwere not being dereferenced during typechecking.
141104470Siwasaki
142104470Siwasaki
143104470Siwasaki----------------------------------------
144104470Siwasaki29 August 2002.  Summary of changes for this release.
145104470Siwasaki
146104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
147104470Siwasaki
148104470SiwasakiIf the target of a Scope() operator already exists, it must be
149104470Siwasakian object type that actually opens a scope -- such as a
150104470SiwasakiDevice, Method, Scope, etc.  This is a fatal runtime error.
151104470SiwasakiSimilar error check has been added to the iASL compiler also.
152104470Siwasaki
153104470SiwasakiTightened up the namespace load to disallow multiple names in
154104470Siwasakithe same scope.  This previously was allowed if both objects
155104470Siwasakiwere of the same type.  (i.e., a lookup was the same as
156104470Siwasakientering a new name).
157104470Siwasaki
158104470Siwasaki
159104470Siwasaki2) Linux
160104470Siwasaki
161104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
162104470Siwasakipolarity.
163104470Siwasaki
164104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
165104470Siwasaki
166104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
167104470Siwasakiinterpreter *or* the tables.
168104470Siwasaki
169104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
170104470Siwasaki(Kochi Takayoshi)
171104470Siwasaki
172104470Siwasaki
173104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
174104470Siwasaki
175104470SiwasakiImplemented namepath optimization for name declarations.  For
176104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
177104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
178104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
179104470Siwasakireference path optimization first released in the previous
180104470Siwasakiversion. This would seem to complete all possible
181104470Siwasakioptimizations for namepaths within the ASL/AML.
182104470Siwasaki
183104470SiwasakiIf the target of a Scope() operator already exists, it must be
184104470Siwasakian object type that actually opens a scope -- such as a
185104470SiwasakiDevice, Method, Scope, etc.
186104470Siwasaki
187104470SiwasakiImplemented a check and warning for unreachable code in the
188104470Siwasakisame block below a Return() statement.
189104470Siwasaki
190104470SiwasakiFixed a problem where the listing file was not generated if
191104470Siwasakithe compiler aborted if the maximum error count was exceeded
192104470Siwasaki(200).
193104470Siwasaki
194104470SiwasakiFixed a problem where the typechecking of method return values
195104470Siwasakiwas broken.  This includes the check for a return value when
196104470Siwasakithe method is invoked as a TermArg (a return value is
197104470Siwasakiexpected.)
198104470Siwasaki
199104470SiwasakiFixed a reported problem where EOF conditions during a quoted
200104470Siwasakistring or comment caused a fault.
201104470Siwasaki
202104470Siwasaki
203104470Siwasaki----------------------------------------
204102550Siwasaki15 August 2002.  Summary of changes for this release.
205102550Siwasaki
206102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
207102550Siwasaki
208102550SiwasakiFixed a reported problem where a Store to a method argument
209102550Siwasakithat contains a reference did not perform the indirect store
210104470Siwasakicorrectly.  This problem was created during the conversion to
211104470Siwasakithe new reference object model - the indirect store to a
212104470Siwasakimethod argument code was not updated to reflect the new model.
213102550Siwasaki
214102550SiwasakiReworked the ACPI mode change code to better conform to ACPI
215102550Siwasaki2.0, handle corner cases, and improve code legibility (Kochi
216102550SiwasakiTakayoshi)
217102550Siwasaki
218102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
219102550Siwasakiprefix.  The heavy use of the carat operator by the new
220104470Siwasakinamepath optimization in the iASL compiler uncovered a problem
221104470Siwasakiwith the AML interpreter handling of this prefix.  In the case
222104470Siwasakiwhere one or more carats precede a single nameseg, the nameseg
223104470Siwasakiwas treated as standalone and the search rule (to root) was
224104470Siwasakiinadvertently applied.  This could cause both the iASL
225104470Siwasakicompiler and the interpreter to find the wrong object or to
226104470Siwasakimiss the error that should occur if the object does not exist
227104470Siwasakiat that exact pathname.
228102550Siwasaki
229102550SiwasakiFound and fixed the problem where the HP Pavilion DSDT would
230102550Siwasakinot load.  This was a relatively minor tweak to the table
231102550Siwasakiloading code (a problem caused by the unexpected encounter
232104470Siwasakiwith a method invocation not within a control method), but it
233104470Siwasakidoes not solve the overall issue of the execution of AML code
234104470Siwasakiat the table level.  This investigation is still ongoing.
235102550Siwasaki
236102550SiwasakiCode and Data Size: Current core subsystem library sizes are
237102550Siwasakishown below.  These are the code and data sizes for the
238104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
239104470Siwasakiand these values do not include any ACPI driver or OSPM code.
240104470SiwasakiThe debug version of the code includes the debug output trace
241104470Siwasakimechanism and has a larger code and data size.  Note that
242104470Siwasakithese values will vary depending on the efficiency of the
243104470Siwasakicompiler and the compiler options used during generation.
244102550Siwasaki
245102550Siwasaki  Previous Release
246104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
247104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
248102550Siwasaki  Current Release:
249104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
250104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
251102550Siwasaki
252102550Siwasaki
253102550Siwasaki2) Linux
254102550Siwasaki
255102550SiwasakiRemove redundant slab.h include (Brad Hards)
256102550Siwasaki
257102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
258102550Siwasaki
259102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
260102550Siwasaki
261104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
262104470SiwasakiMachek)
263102550Siwasaki
264102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
265102550Siwasaki
266102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
267102550Siwasaki
268102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
269102550Siwasaki
270102550Siwasaki
271102550Siwasaki3) iASL Compiler/Disassembler
272102550Siwasaki
273104470SiwasakiReworked the compiler options to make them more consistent and
274104470Siwasakito use two-letter options where appropriate.  We were running
275104470Siwasakiout of sensible letters.   This may break some makefiles, so
276104470Siwasakicheck the current options list by invoking the compiler with
277104470Siwasakino parameters.
278102550Siwasaki
279102550SiwasakiCompleted the design and implementation of the ASL namepath
280102550Siwasakioptimization option for the compiler.  This option optimizes
281104470Siwasakiall references to named objects to the shortest possible path.
282104470SiwasakiThe first attempt tries to utilize a single nameseg (4
283104470Siwasakicharacters) and the "search-to-root" algorithm used by the
284104470Siwasakiinterpreter.  If that cannot be used (because either the name
285104470Siwasakiis not in the search path or there is a conflict with another
286104470Siwasakiobject with the same name), the pathname is optimized using
287104470Siwasakithe carat prefix (usually a shorter string than specifying the
288104470Siwasakientire path from the root.)
289102550Siwasaki
290102550SiwasakiImplemented support to obtain the DSDT from the Windows
291102550Siwasakiregistry (when the disassembly option is specified with no
292102550Siwasakiinput file).  Added this code as the implementation for
293102550SiwasakiAcpiOsTableOverride in the Windows OSL.  Migrated the 16-bit
294102550Siwasakicode (used in the AcpiDump utility) to scan memory for the
295102550SiwasakiDSDT to the AcpiOsTableOverride function in the DOS OSL to
296102550Siwasakimake the disassembler truly OS independent.
297102550Siwasaki
298102550SiwasakiImplemented a new option to disassemble and compile in one
299102550Siwasakistep.  When used without an input filename, this option will
300102550Siwasakigrab the DSDT from the local machine, disassemble it, and
301102550Siwasakicompile it in one step.
302102550Siwasaki
303102550SiwasakiAdded a warning message for invalid escapes (a backslash
304102550Siwasakifollowed by any character other than the allowable escapes).
305104470SiwasakiThis catches the quoted string error "\_SB_" (which should be
306104470Siwasaki"\\_SB_" ).  Also, there are numerous instances in the ACPI
307104470Siwasakispecification where this error occurs.
308102550Siwasaki
309104470SiwasakiAdded a compiler option to disable all optimizations.  This is
310104470Siwasakibasically the "compatibility mode" because by using this
311102550Siwasakioption, the AML code will come out exactly the same as other
312102550SiwasakiASL compilers.
313102550Siwasaki
314102550SiwasakiAdded error messages for incorrectly ordered dependent
315102550Siwasakiresource functions.  This includes: missing EndDependentFn
316102550Siwasakimacro at end of dependent resource list, nested dependent
317102550Siwasakifunction macros (both start and end), and missing
318102550SiwasakiStartDependentFn macro.  These are common errors that should
319102550Siwasakibe caught at compile time.
320102550Siwasaki
321102550SiwasakiImplemented _OSI support for the disassembler and compiler.
322104470Siwasaki_OSI must be included in the namespace for proper disassembly
323104470Siwasaki(because the disassembler must know the number of arguments.)
324102550Siwasaki
325104470SiwasakiAdded an "optimization" message type that is optional (off by
326104470Siwasakidefault).  This message is used for all optimizations -
327104470Siwasakiincluding constant folding, integer optimization, and namepath
328104470Siwasakioptimization.
329102550Siwasaki
330102550Siwasaki----------------------------------------
331102550Siwasaki25 July 2002.  Summary of changes for this release.
332102550Siwasaki
333102550Siwasaki
334102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
335102550Siwasaki
336102550SiwasakiThe AML Disassembler has been enhanced to produce compilable
337102550SiwasakiASL code and has been integrated into the iASL compiler (see
338102550Siwasakibelow) as well as the single-step disassembly for the AML
339102550Siwasakidebugger and the disassembler for the AcpiDump utility.  All
340102550SiwasakiACPI 2.0A opcodes, resource templates and macros are fully
341102550Siwasakisupported.  The disassembler has been tested on over 30
342102550Siwasakidifferent AML files, producing identical AML when the
343102550Siwasakiresulting disassembled ASL file is recompiled with the same
344102550SiwasakiASL compiler.
345102550Siwasaki
346102550SiwasakiModified the Resource Manager to allow zero interrupts and
347102550Siwasakizero dma channels during the GetCurrentResources call.  This
348102550Siwasakiwas causing problems on some platforms.
349102550Siwasaki
350102550SiwasakiAdded the AcpiOsRedirectOutput interface to the OSL to
351102550Siwasakisimplify output redirection for the AcpiOsPrintf and
352102550SiwasakiAcpiOsVprintf interfaces.
353102550Siwasaki
354102550SiwasakiCode and Data Size: Current core subsystem library sizes are
355102550Siwasakishown below.  These are the code and data sizes for the
356104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
357104470Siwasakiand these values do not include any ACPI driver or OSPM code.
358104470SiwasakiThe debug version of the code includes the debug output trace
359104470Siwasakimechanism and has a larger code and data size.  Note that
360104470Siwasakithese values will vary depending on the efficiency of the
361104470Siwasakicompiler and the compiler options used during generation.
362102550Siwasaki
363102550Siwasaki  Previous Release
364104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
365104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
366102550Siwasaki  Current Release:
367104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
368104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
369102550Siwasaki
370102550Siwasaki
371102550Siwasaki2) Linux
372102550Siwasaki
373102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
374102550Siwasaki
375102550SiwasakiImplemented checksum of the R/XSDT itself during Linux table
376102550Siwasakiscan (Richard Schaal)
377102550Siwasaki
378102550Siwasaki
379102550Siwasaki3) iASL compiler
380102550Siwasaki
381102550SiwasakiThe AML disassembler is integrated into the compiler.  The "-
382104470Siwasakid" option invokes the disassembler  to completely disassemble
383104470Siwasakian input AML file, producing as output a text ASL file with
384104470Siwasakithe extension ".dsl" (to avoid name collisions with existing
385104470Siwasaki.asl source files.)  A future enhancement will allow the
386104470Siwasakidisassembler to obtain the BIOS DSDT from the registry under
387104470SiwasakiWindows.
388102550Siwasaki
389102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
390102550Siwasakidescriptors where an invalid AML sequence was created.
391102550Siwasaki
392102550SiwasakiImplemented a fix for BufferData term in the ASL parser.  It
393102550Siwasakiwas inadvertently defined twice, allowing invalid syntax to
394102550Siwasakipass and causing reduction conflicts.
395102550Siwasaki
396104470SiwasakiFixed a problem where the Ones opcode could get converted to a
397104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
398104470Siwasakivalue was expected.  The 64-bit value is now truncated to the
399104470Siwasakicorrect size with the correct value.
400102550Siwasaki
401102550Siwasaki
402102550Siwasaki----------------------------------------
403102550Siwasaki02 July 2002.  Summary of changes for this release.
404102550Siwasaki
405102550Siwasaki
406102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
407102550Siwasaki
408102550SiwasakiThe Table Manager code has been restructured to add several
409102550Siwasakinew features.  Tables that are not required by the core
410102550Siwasakisubsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
411102550Siwasakino longer validated in any way and are returned from
412102550SiwasakiAcpiGetFirmwareTable if requested.  The AcpiOsTableOverride
413102550Siwasakiinterface is now called for each table that is loaded by the
414104470Siwasakisubsystem in order to allow the host to override any table it
415104470Siwasakichooses.  Previously, only the DSDT could be overridden.
416102550SiwasakiAdded one new files, tbrsdt.c and tbgetall.c.
417102550Siwasaki
418102550SiwasakiFixed a problem with the conversion of internal package
419104470Siwasakiobjects to external objects (when a package is returned from a
420104470Siwasakicontrol method.)  The return buffer length was set to zero
421102550Siwasakiinstead of the proper length of the package object.
422102550Siwasaki
423104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
424104470Siwasakioperators when passing reference arguments to control methods.
425104470SiwasakiA new type of Reference object is used internally for
426104470Siwasakireferences produced by the RefOf operator.
427102550Siwasaki
428102550SiwasakiAdded additional error messages in the Resource Manager to
429102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource
430102550Siwasakiparsing.
431102550Siwasaki
432104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
433104470Siwasakifiner granularity initialization sequence.  These two calls
434104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags),
435104470SiwasakiAcpiInitializeObjects (flags).  The flags parameter remains
436104470Siwasakithe same.
437102550Siwasaki
438102550Siwasaki
439102550Siwasaki2) Linux
440102550Siwasaki
441104470SiwasakiUpdated the ACPI utilities module to understand the new style
442104470Siwasakiof fully resolved package objects that are now returned from
443104470Siwasakithe core subsystem.  This eliminates errors of the form:
444102550Siwasaki
445102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
446102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
447102550Siwasaki        Invalid element in package (not a device reference)
448102550Siwasaki
449102550SiwasakiThe method evaluation utility uses the new buffer allocation
450102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
451102550Siwasaki
452102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
453102550SiwasakiController before the namespace has been fully initialized,
454104470Siwasakiwhich is necessary for ACPI 2.0 support, and for some laptops
455104470Siwasakito initialize properly. (Laptops using ECDT are still rare, so
456104470Siwasakionly limited testing was performed of the added
457104470Siwasakifunctionality.)
458102550Siwasaki
459102550SiwasakiFixed memory leaks in the EC driver.
460102550Siwasaki
461102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
462102550Siwasaki
463104470SiwasakiEliminated the acpi_evaluate() helper function in utils.c. It
464104470Siwasakiis no longer needed since acpi_evaluate_object can optionally
465104470Siwasakiallocate memory for the return object.
466102550Siwasaki
467102550SiwasakiImplemented fix for keyboard hang when getting battery
468102550Siwasakireadings on some systems (Stephen White)
469102550Siwasaki
470102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
471102550Siwasaki
472102550SiwasakiFix an ifdef to allow compilation on UP with LAPIC but no
473102550SiwasakiIOAPIC support
474102550Siwasaki
475102550Siwasaki----------------------------------------
476102550Siwasaki11 June 2002.  Summary of changes for this release.
477102550Siwasaki
478102550Siwasaki
479102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
480102550Siwasaki
481104470SiwasakiFixed a reported problem where constants such as Zero and One
482104470Siwasakiappearing within _PRT packages were not handled correctly
483104470Siwasakiwithin the resource manager code.  Originally reported against
484104470Siwasakithe ASL compiler because the code generator now optimizes
485104470Siwasakiintegers to their minimal AML representation (i.e. AML
486104470Siwasakiconstants if possible.)  The _PRT code now handles all AML
487104470Siwasakiconstant opcodes correctly (Zero, One, Ones, Revision).
488102550Siwasaki
489102550SiwasakiFixed a problem with the Concatenate operator in the AML
490102550Siwasakiinterpreter where a buffer result object was incorrectly
491102550Siwasakimarked as not fully evaluated, causing a run-time error of
492102550SiwasakiAE_AML_INTERNAL.
493102550Siwasaki
494104470SiwasakiAll package sub-objects are now fully resolved before they are
495104470Siwasakireturned from the external ACPI interfaces.  This means that
496104470Siwasakiname strings are resolved to object handles, and constant
497104470Siwasakioperators (Zero, One, Ones, Revision) are resolved to
498104470SiwasakiIntegers.
499102550Siwasaki
500102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
501104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
502104470Siwasakiwithin the AML stream. This has simplified and reduced the
503104470Siwasakigenerated code size of the subsystem by eliminating about 10
504104470Siwasakiswitch statements for these constants (which previously were
505104470Siwasakicontained in Reference objects.)  The complicating issues are
506104470Siwasakithat the Zero opcode is used as a "placeholder" for
507104470Siwasakiunspecified optional target operands and stores to constants
508104470Siwasakiare defined to be no-ops.
509102550Siwasaki
510102550SiwasakiCode and Data Size: Current core subsystem library sizes are
511102550Siwasakishown below. These are the code and data sizes for the
512104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
513104470Siwasakiand these values do not include any ACPI driver or OSPM code.
514104470SiwasakiThe debug version of the code includes the debug output trace
515104470Siwasakimechanism and has a larger code and data size.  Note that
516104470Siwasakithese values will vary depending on the efficiency of the
517104470Siwasakicompiler and the compiler options used during generation.
518102550Siwasaki
519102550Siwasaki  Previous Release
520104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
521104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
522102550Siwasaki  Current Release:
523104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
524104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
525102550Siwasaki
526102550Siwasaki
527102550Siwasaki2) Linux
528102550Siwasaki
529104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
530104470Siwasakibridges (Bjorn Helgaas).
531102550Siwasaki
532102550Siwasaki
533102550Siwasaki3) iASL Compiler Version X2046:
534102550Siwasaki
535104470SiwasakiFixed a problem where the "_DDN" reserved name was defined to
536104470Siwasakibe a control method with one argument.  There are no
537102550Siwasakiarguments, and _DDN does not have to be a control method.
538102550Siwasaki
539102550SiwasakiFixed a problem with the Linux version of the compiler where
540102550Siwasakithe source lines printed with error messages were the wrong
541104470Siwasakilines.  This turned out to be the "LF versus CR/LF" difference
542104470Siwasakibetween Windows and Unix.  This appears to be the longstanding
543104470Siwasakiissue concerning listing output and error messages.
544102550Siwasaki
545102550SiwasakiFixed a problem with the Linux version of compiler where
546102550Siwasakiopcode names within error messages were wrong.  This was
547102550Siwasakicaused by a slight difference in the output of the Flex tool
548102550Siwasakion Linux versus Windows.
549102550Siwasaki
550102550SiwasakiFixed a problem with the Linux compiler where the hex output
551104470Siwasakifiles contained some garbage data caused by an internal buffer
552104470Siwasakioverrun.
553102550Siwasaki
554102550Siwasaki
555102550Siwasaki----------------------------------------
556102550Siwasaki17 May 2002.  Summary of changes for this release.
557102550Siwasaki
558102550Siwasaki
559102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
560102550Siwasaki
561102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
562104470SiwasakiOmniBook where the FADT revision number and the table size are
563104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
564104470Siwasakinew behavior is to fallback to using only the ACPI 1.0 fields
565104470Siwasakiof the FADT if the table is too small to be a ACPI 2.0 table
566104470Siwasakias claimed by the revision number.  Although this is a BIOS
567104470Siwasakibug, this is a case where the workaround is simple enough and
568104470Siwasakiwith no side effects, so it seemed prudent to add it.  A
569104470Siwasakiwarning message is issued, however.
570102550Siwasaki
571102550SiwasakiImplemented minimum size checks for the fixed-length ACPI
572102550Siwasakitables -- the FADT and FACS, as well as consistency checks
573102550Siwasakibetween the revision number and the table size.
574102550Siwasaki
575102550SiwasakiFixed a reported problem in the table override support where
576102550Siwasakithe new table pointer was incorrectly treated as a physical
577102550Siwasakiaddress instead of a logical address.
578102550Siwasaki
579104470SiwasakiEliminated the use of the AE_AML_ERROR exception and replaced
580104470Siwasakiit with more descriptive codes.
581102550Siwasaki
582104470SiwasakiFixed a problem where an exception would occur if an ASL Field
583104470Siwasakiwas defined with no named Field Units underneath it (used by
584104470Siwasakisome index fields).
585102550Siwasaki
586102550SiwasakiCode and Data Size: Current core subsystem library sizes are
587102550Siwasakishown below.  These are the code and data sizes for the
588104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
589104470Siwasakiand these values do not include any ACPI driver or OSPM code.
590104470SiwasakiThe debug version of the code includes the debug output trace
591104470Siwasakimechanism and has a larger code and data size.  Note that
592104470Siwasakithese values will vary depending on the efficiency of the
593104470Siwasakicompiler and the compiler options used during generation.
594102550Siwasaki
595102550Siwasaki  Previous Release
596104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
597104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
598102550Siwasaki  Current Release:
599104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
600104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
601102550Siwasaki
602102550Siwasaki
603102550Siwasaki
604102550Siwasaki2) Linux
605102550Siwasaki
606102550SiwasakiMuch work done on ACPI init (MADT and PCI IRQ routing
607102550Siwasakisupport). (Paul D. and Dominik Brodowski)
608102550Siwasaki
609102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
610102550Siwasaki
611102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
612102550Siwasaki
613102550SiwasakiFix "MHz" typo (Dominik Brodowski)
614102550Siwasaki
615102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
616102550Siwasaki
617102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
618102550Siwasaki
619102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
620102550Siwasaki
621102550Siwasaki3) iASL Compiler Version X2044:
622102550Siwasaki
623102550SiwasakiImplemented error checking for the string used in the EISAID
624102550Siwasakimacro (Usually used in the definition of the _HID object.)
625102550SiwasakiThe code now strictly enforces the PnP format - exactly 7
626102550Siwasakicharacters, 3 uppercase letters and 4 hex digits.
627102550Siwasaki
628102550SiwasakiIf a raw string is used in the definition of the _HID object
629102550Siwasaki(instead of the EISAID macro), the string must contain all
630102550Siwasakialphanumeric characters (e.g., "*PNP0011" is not allowed
631102550Siwasakibecause of the asterisk.)
632102550Siwasaki
633102550SiwasakiImplemented checking for invalid use of ACPI reserved names
634104470Siwasakifor most of the name creation operators (Name, Device, Event,
635104470SiwasakiMutex, OperationRegion, PowerResource, Processor, and
636102550SiwasakiThermalZone.)  Previously, this check was only performed for
637102550Siwasakicontrol methods.
638102550Siwasaki
639102550SiwasakiImplemented an additional check on the Name operator to emit
640104470Siwasakian error if a reserved name that must be implemented in ASL as
641104470Siwasakia control method is used.  We know that a reserved name must
642104470Siwasakibe a method if it is defined with input arguments.
643102550Siwasaki
644102550SiwasakiThe warning emitted when a namespace object reference is not
645102550Siwasakifound during the cross reference phase has been changed into
646102550Siwasakian error.  The "External" directive should be used for names
647102550Siwasakidefined in other modules.
648102550Siwasaki
649102550Siwasaki
650102550Siwasaki4) Tools and Utilities
651102550Siwasaki
652102550SiwasakiThe 16-bit tools (adump16 and aexec16) have been regenerated
653102550Siwasakiand tested.
654102550Siwasaki
655102550SiwasakiFixed a problem with the output of both acpidump and adump16
656104470Siwasakiwhere the indentation of closing parentheses and brackets was
657104470Siwasakinot aligned properly with the parent block.
658102550Siwasaki
659102550Siwasaki
660102550Siwasaki----------------------------------------
661102550Siwasaki03 May 2002.  Summary of changes for this release.
662102550Siwasaki
663102550Siwasaki
664102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
665102550Siwasaki
666102550SiwasakiAdded support a new OSL interface that allows the host
667102550Siwasakioperating system software to override the DSDT found in the
668104470Siwasakifirmware - AcpiOsTableOverride.  With this interface, the OSL
669104470Siwasakican examine the version of the firmware DSDT and replace it
670104470Siwasakiwith a different one if desired.
671102550Siwasaki
672102550SiwasakiAdded new external interfaces for accessing ACPI registers
673102550Siwasakifrom device drivers and other system software -
674102550SiwasakiAcpiGetRegister and AcpiSetRegister.  This was simply an
675104470Siwasakiexternalization of the existing AcpiHwBitRegister interfaces.
676102550Siwasaki
677104470SiwasakiFixed a regression introduced in the previous build where the
678104470SiwasakiASL/AML CreateField operator always returned an error,
679102550Siwasaki"destination must be a NS Node".
680102550Siwasaki
681102550SiwasakiExtended the maximum time (before failure) to successfully
682102550Siwasakienable ACPI mode to 3 seconds.
683102550Siwasaki
684102550SiwasakiCode and Data Size: Current core subsystem library sizes are
685102550Siwasakishown below.  These are the code and data sizes for the
686104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
687104470Siwasakiand these values do not include any ACPI driver or OSPM code.
688104470SiwasakiThe debug version of the code includes the debug output trace
689104470Siwasakimechanism and has a larger code and data size.  Note that
690104470Siwasakithese values will vary depending on the efficiency of the
691104470Siwasakicompiler and the compiler options used during generation.
692102550Siwasaki
693102550Siwasaki  Previous Release
694104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
695104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
696102550Siwasaki  Current Release:
697104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
698104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
699102550Siwasaki
700102550Siwasaki
701102550Siwasaki2) Linux
702102550Siwasaki
703104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
704104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
705104470Siwasakilast one still hangs when testing the LAPIC timer.
706102550Siwasaki
707104470SiwasakiRenamed many files in 2.5 kernel release to omit "acpi_" from
708104470Siwasakithe name.
709102550Siwasaki
710102550SiwasakiAdded warning on boot for Presario 711FR.
711102550Siwasaki
712102550SiwasakiSleep improvements (Pavel Machek)
713102550Siwasaki
714102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
715102550Siwasaki
716102550SiwasakiIA64: Fixed memory map functions (JI Lee)
717102550Siwasaki
718102550Siwasaki
719102550Siwasaki3) iASL Compiler Version X2043:
720102550Siwasaki
721104470SiwasakiAdded support to allow the compiler to be integrated into the
722104470SiwasakiMS VC++ development environment for one-button compilation of
723104470Siwasakisingle files or entire projects -- with error-to-source-line
724104470Siwasakimapping.
725102550Siwasaki
726104470SiwasakiImplemented support for compile-time constant folding for the
727104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
728104470Siwasakispecification.  This allows the ASL writer to use expressions
729104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
730104470Siwasakievaluate to constants at compile time and will also simplify
731104470Siwasakithe emitted AML in any such sub-expressions that can be folded
732104470Siwasaki(evaluated at compile-time.)  This increases the size of the
733104470Siwasakicompiler significantly because a portion of the ACPI CA AML
734104470Siwasakiinterpreter is included within the compiler in order to pre-
735104470Siwasakievaluate constant expressions.
736102550Siwasaki
737102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
738102550Siwasakicompiler to fault.  (This macro is used in conjunction with
739102550Siwasakithe _STR reserved name.)
740102550Siwasaki
741102550SiwasakiImplemented an AML opcode optimization to use the Zero, One,
742104470Siwasakiand Ones opcodes where possible to further reduce the size of
743104470Siwasakiinteger constants and thus reduce the overall size of the
744102550Siwasakigenerated AML code.
745102550Siwasaki
746102550SiwasakiImplemented error checking for new reserved terms for ACPI
747102550Siwasakiversion 2.0A.
748102550Siwasaki
749104470SiwasakiImplemented the -qr option to display the current list of ACPI
750104470Siwasakireserved names known to the compiler.
751102550Siwasaki
752104470SiwasakiImplemented the -qc option to display the current list of ASL
753104470Siwasakioperators that are allowed within constant expressions and can
754104470Siwasakitherefore be folded at compile time if the operands are
755104470Siwasakiconstants.
756102550Siwasaki
757102550Siwasaki
758102550Siwasaki4) Documentation
759102550Siwasaki
760102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
761102550Siwasakitypes, and memory allocation model options.
762102550Siwasaki
763102550SiwasakiUpdated the iASL Compiler User Reference to apply new format
764102550Siwasakiand add information about new features and options.
765102550Siwasaki
766102550Siwasaki----------------------------------------
767102550Siwasaki19 April 2002.  Summary of changes for this release.
768102550Siwasaki
769102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
770102550Siwasaki
771102550SiwasakiThe source code base for the Core Subsystem has been
772104470Siwasakicompletely cleaned with PC-lint (FlexLint) for both 32-bit and
773104470Siwasaki64-bit versions.  The Lint option files used are included in
774104470Siwasakithe /acpi/generate/lint directory.
775102550Siwasaki
776102550SiwasakiImplemented enhanced status/error checking across the entire
777102550SiwasakiHardware manager subsystem.  Any hardware errors (reported
778102550Siwasakifrom the OSL) are now bubbled up and will abort a running
779102550Siwasakicontrol method.
780102550Siwasaki
781104470SiwasakiFixed a problem where the per-ACPI-table integer width (32 or
782104470Siwasaki64) was stored only with control method nodes, causing a fault
783104470Siwasakiwhen non-control method code was executed during table
784102550Siwasakiloading.  The solution implemented uses a global variable to
785102550Siwasakiindicate table width across the entire ACPI subsystem.
786102550SiwasakiTherefore, ACPI CA does not support mixed integer widths
787102550Siwasakiacross different ACPI tables (DSDT, SSDT).
788102550Siwasaki
789102550SiwasakiFixed a problem where NULL extended fields (X fields) in an
790102550SiwasakiACPI 2.0 ACPI FADT caused the table load to fail.  Although
791104470Siwasakithe existing ACPI specification is a bit fuzzy on this topic,
792104470Siwasakithe new behavior is to fall back on a ACPI 1.0 field if the
793104470Siwasakicorresponding ACPI 2.0 X field is zero (even though the table
794104470Siwasakirevision indicates a full ACPI 2.0 table.)  The ACPI
795104470Siwasakispecification will be updated to clarify this issue.
796102550Siwasaki
797104470SiwasakiFixed a problem with the SystemMemory operation region handler
798104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
799104470Siwasakispecified access width was larger than a byte.  This caused
800104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
801104470Siwasakiaccessed with the width specified.  On systems that do not
802104470Siwasakisupport non-aligned transfers, a check is made to guarantee
803104470Siwasakiproper address alignment before proceeding in order to avoid
804104470Siwasakian AML-caused alignment fault within the kernel.
805102550Siwasaki
806102550SiwasakiFixed a problem with the ExtendedIrq resource where only one
807102550Siwasakibyte of the 4-byte Irq field was extracted.
808102550Siwasaki
809102550SiwasakiFixed the AcpiExDigitsNeeded() procedure to support _UID.
810102550SiwasakiThis function was out of date and required a rewrite.
811102550Siwasaki
812102550SiwasakiCode and Data Size: Current core subsystem library sizes are
813102550Siwasakishown below.  These are the code and data sizes for the
814104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
815104470Siwasakiand these values do not include any ACPI driver or OSPM code.
816104470SiwasakiThe debug version of the code includes the debug output trace
817104470Siwasakimechanism and has a larger code and data size.  Note that
818104470Siwasakithese values will vary depending on the efficiency of the
819104470Siwasakicompiler and the compiler options used during generation.
820102550Siwasaki
821102550Siwasaki  Previous Release
822104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
823104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
824102550Siwasaki  Current Release:
825104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
826104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
827102550Siwasaki
828102550Siwasaki
829102550Siwasaki2) Linux
830102550Siwasaki
831102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
832102550Siwasaki
833102550Siwasaki
834102550Siwasaki3) iASL Compiler Version X2042:
835102550Siwasaki
836104470SiwasakiImplemented an additional compile-time error check for a field
837104470Siwasakiunit whose size + minimum access width would cause a run-time
838104470Siwasakiaccess beyond the end-of-region.  Previously, only the field
839104470Siwasakisize itself was checked.
840102550Siwasaki
841104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
842104470Siwasakiobject in preparation for compile-time evaluation of the type
843104470Siwasaki3/4/5 ASL operators.
844102550Siwasaki
845102550Siwasaki
846102550Siwasaki----------------------------------------
847102550SiwasakiSummary of changes for this release: 03_29_02
848102550Siwasaki
849102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
850102550Siwasaki
851104470SiwasakiImplemented support for late evaluation of TermArg operands to
852104470SiwasakiBuffer and Package objects.  This allows complex expressions
853104470Siwasakito be used in the declarations of these object types.
854102550Siwasaki
855104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
856104470SiwasakiACPI 1.0, if the field was larger than 32 bits, it was
857104470Siwasakireturned as a buffer - otherwise it was returned as an
858104470Siwasakiinteger.  In ACPI 2.0, the field is returned as a buffer only
859104470Siwasakiif the field is larger than 64 bits.  The TableRevision is now
860104470Siwasakiconsidered when making this conversion to avoid
861102550Siwasakiincompatibility with existing ASL code.
862102550Siwasaki
863104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
864104470Siwasakiallows an RSDP with either a logical or physical address.
865104470SiwasakiWith this support, the host OS can now override all ACPI
866104470Siwasakitables with one logical RSDP.  Includes implementation of
867104470Siwasaki"typed" pointer support to allow a common data type for both
868104470Siwasakiphysical and logical pointers internally.  This required a
869104470Siwasakichange to the AcpiOsGetRootPointer interface.
870102550Siwasaki
871104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
872104470Siwasakiall GPE, Fixed Event, and PM Timer I/O.  This allows the use
873104470Siwasakiof memory mapped I/O for these ACPI features.
874102550Siwasaki
875102550SiwasakiInitialization now ignores not only non-required tables (All
876102550Siwasakitables other than the FADT, FACS, DSDT, and SSDTs), but also
877102550Siwasakidoes not validate the table headers of unrecognized tables.
878102550Siwasaki
879102550SiwasakiFixed a problem where a notify handler could only be
880102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
881102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
882102550SiwasakiThermal.
883102550Siwasaki
884102550SiwasakiRemoved most verbosity from the ACPI_DB_INFO debug level.
885104470SiwasakiOnly critical information is returned when this debug level is
886104470Siwasakienabled.
887102550Siwasaki
888102550SiwasakiCode and Data Size: Current core subsystem library sizes are
889102550Siwasakishown below.  These are the code and data sizes for the
890104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
891104470Siwasakiand these values do not include any ACPI driver or OSPM code.
892104470SiwasakiThe debug version of the code includes the debug output trace
893104470Siwasakimechanism and has a larger code and data size.  Note that
894104470Siwasakithese values will vary depending on the efficiency of the
895104470Siwasakicompiler and the compiler options used during generation.
896102550Siwasaki
897102550Siwasaki  Previous Release
898104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
899104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
900102550Siwasaki  Current Release:
901104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
902104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
903102550Siwasaki
904102550Siwasaki
905102550Siwasaki2) Linux:
906102550Siwasaki
907102550SiwasakiThe processor driver (acpi_processor.c) now fully supports
908102550SiwasakiACPI 2.0-based processor performance control (e.g. Intel(R)
909102550SiwasakiSpeedStep(TM) technology) Note that older laptops that only
910102550Siwasakihave the Intel "applet" interface are not supported through
911102550Siwasakithis.  The 'limit' and 'performance' interface (/proc) are
912102550Siwasakifully functional.  [Note that basic policy for controlling
913102550Siwasakiperformance state transitions will be included in the next
914102550Siwasakiversion of ospmd.]  The idle handler was modified to more
915102550Siwasakiaggressively use C2, and PIIX4 errata handling underwent a
916102550Siwasakicomplete overhaul (big thanks to Dominik Brodowski).
917102550Siwasaki
918102550SiwasakiAdded support for ACPI-PCI device binding (acpi_pci_root.c).
919102550Siwasaki_ADR-based devices in the ACPI namespace are now dynamically
920102550Siwasakibound (associated) with their PCI counterparts (e.g. PCI1-
921102550Siwasaki>01:00.0).  This allows, among other things, ACPI to resolve
922102550Siwasakibus numbers for subordinate PCI bridges.
923102550Siwasaki
924104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
925104470Siwasakientries defined underneath PCI bridges.
926102550Siwasaki
927104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
928104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
929102550Siwasaki
930102550SiwasakiIn the process of adding full MADT support (e.g. IOAPIC) for
931102550SiwasakiIA32 (acpi.c, mpparse.c) -- stay tuned.
932102550Siwasaki
933102550SiwasakiAdded back visual differentiation between fixed-feature and
934102550Siwasakicontrol-method buttons in dmesg.  Buttons are also subtyped
935102550Siwasaki(e.g. button/power/PWRF) to simplify button identification.
936102550Siwasaki
937102550SiwasakiWe no longer use -Wno-unused when compiling debug. Please
938102550Siwasakiignore any "_THIS_MODULE defined but not used" messages.
939102550Siwasaki
940102550SiwasakiCan now shut down the system using "magic sysrq" key.
941102550Siwasaki
942102550Siwasaki
943102550Siwasaki3) iASL Compiler version 2041:
944102550Siwasaki
945104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
946104470Siwasakiconstants were not reported.
947102550Siwasaki
948102550SiwasakiImplemented a fix for the General Register template Address
949102550Siwasakifield.  This field was 8 bits when it should be 64.
950102550Siwasaki
951102550SiwasakiFixed a problem where errors/warnings were no longer being
952102550Siwasakiemitted within the listing output file.
953102550Siwasaki
954104470SiwasakiImplemented the ACPI 2.0A restriction on ACPI Table Signatures
955104470Siwasakito exactly 4 characters, alphanumeric only.
956102550Siwasaki
957102550Siwasaki
958102550Siwasaki
959102550Siwasaki
960102550Siwasaki----------------------------------------
961102550SiwasakiSummary of changes for this release: 03_08_02
962102550Siwasaki
963102550Siwasaki
964102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
965102550Siwasaki
966102550SiwasakiFixed a problem with AML Fields where the use of the
967102550Siwasaki"AccessAny" keyword could cause an interpreter error due to
968102550Siwasakiattempting to read or write beyond the end of the parent
969102550SiwasakiOperation Region.
970102550Siwasaki
971102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
972104470Siwasakiwhere an attempt was made to map memory beyond the end of the
973104470Siwasakiregion.  This was the root cause of the "AE_ERROR" and
974102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems.
975102550Siwasaki
976102550SiwasakiFixed a problem where the interpreter/namespace "search to
977102550Siwasakiroot" algorithm was not functioning for some object types.
978102550SiwasakiRelaxed the internal restriction on the search to allow
979102550Siwasakiupsearches for all external object types as well as most
980102550Siwasakiinternal types.
981102550Siwasaki
982102550Siwasaki
983102550Siwasaki2) Linux:
984102550Siwasaki
985104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
986104470Siwasakihlt.
987102550Siwasaki
988102550SiwasakiWriting to the processor limit interface should now work.
989104470Siwasaki"echo 1" will increase the limit, 2 will decrease, and 0 will
990104470Siwasakireset to the default.
991102550Siwasaki
992102550Siwasaki
993102550Siwasaki3) ASL compiler:
994102550Siwasaki
995102550SiwasakiFixed segfault on Linux version.
996102550Siwasaki
997102550Siwasaki
998102550Siwasaki----------------------------------------
999102550SiwasakiSummary of changes for this release: 02_25_02
1000102550Siwasaki
1001102550Siwasaki1) ACPI CA Core Subsystem:
1002102550Siwasaki
1003102550Siwasaki
1004102550SiwasakiFixed a problem where the GPE bit masks were not initialized
1005102550Siwasakiproperly, causing erratic GPE behavior.
1006102550Siwasaki
1007104470SiwasakiImplemented limited support for multiple calling conventions.
1008104470SiwasakiThe code can be generated with either the VPL (variable
1009104470Siwasakiparameter list, or "C") convention, or the FPL (fixed
1010104470Siwasakiparameter list, or "Pascal") convention.  The core subsystem
1011104470Siwasakiis about 3.4% smaller when generated with FPL.
1012102550Siwasaki
1013102550Siwasaki
1014102550Siwasaki2) Linux
1015102550Siwasaki
1016102550SiwasakiRe-add some /proc/acpi/event functionality that was lost
1017102550Siwasakiduring the rewrite
1018102550Siwasaki
1019102550SiwasakiResolved issue with /proc events for fixed-feature buttons
1020102550Siwasakishowing up as the system device.
1021102550Siwasaki
1022102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
1023102550Siwasakivalues.
1024102550Siwasaki
1025102550SiwasakiReplaced AE_ERRORs in acpi_osl.c with more specific error
1026102550Siwasakicodes.
1027102550Siwasaki
1028102550SiwasakiChanged ACPI PRT option from "pci=noacpi-routing" to
1029102550Siwasaki"pci=noacpi"
1030102550Siwasaki
1031104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
1032104470Siwasakihysterisis.
1033102550Siwasaki
1034102550SiwasakiRestructured PRT support.
1035102550Siwasaki
1036102550Siwasaki
1037102550Siwasaki----------------------------------------
1038102550SiwasakiSummary of changes for this label: 02_14_02
1039102550Siwasaki
1040102550Siwasaki
1041102550Siwasaki1) ACPI CA Core Subsystem:
1042102550Siwasaki
1043104470SiwasakiImplemented support in AcpiLoadTable to allow loading of FACS
1044104470Siwasakiand FADT tables.
1045102550Siwasaki
1046102550SiwasakiSuport for the now-obsolete interim 0.71 64-bit ACPI tables
1047104470Siwasakihas been removed.  All 64-bit platforms should be migrated to
1048104470Siwasakithe ACPI 2.0 tables.  The actbl71.h header has been removed
1049104470Siwasakifrom the source tree.
1050102550Siwasaki
1051102550SiwasakiAll C macros defined within the subsystem have been prefixed
1052102550Siwasakiwith "ACPI_" to avoid collision with other system include
1053102550Siwasakifiles.
1054102550Siwasaki
1055102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
1056102550Siwasakisince it is never used and causes lint warnings for ignoring
1057102550Siwasakithe return value.
1058102550Siwasaki
1059104470SiwasakiAdded error checking to all internal mutex acquire and release
1060104470Siwasakicalls.  Although a failure from one of these interfaces is
1061104470Siwasakiprobably a fatal system error, these checks will cause the
1062104470Siwasakiimmediate abort of the currently executing method or
1063104470Siwasakiinterface.
1064102550Siwasaki
1065102550SiwasakiFixed a problem where the AcpiSetCurrentResources interface
1066104470Siwasakicould fault.  This was a side effect of the deployment of the
1067104470Siwasakinew memory allocation model.
1068102550Siwasaki
1069102550SiwasakiFixed a couple of problems with the Global Lock support
1070102550Siwasakiintroduced in the last major build.  The "common" (1.0/2.0)
1071102550Siwasakiinternal FACS was being overwritten with the FACS signature
1072102550Siwasakiand clobbering the Global Lock pointer.  Also, the actual
1073102550Siwasakifirmware FACS was being unmapped after construction of the
1074102550Siwasaki"common" FACS, preventing access to the actual Global Lock
1075102550Siwasakifield within it.  The "common" internal FACS is no longer
1076102550Siwasakiinstalled as an actual ACPI table; it is used simply as a
1077102550Siwasakiglobal.
1078102550Siwasaki
1079102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1080102550Siwasakishown below.  These are the code and data sizes for the
1081104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1082104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1083104470SiwasakiThe debug version of the code includes the debug output trace
1084104470Siwasakimechanism and has a larger code and data size.  Note that
1085104470Siwasakithese values will vary depending on the efficiency of the
1086104470Siwasakicompiler and the compiler options used during generation.
1087102550Siwasaki
1088102550Siwasaki  Previous Release (02_07_01)
1089104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
1090104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
1091102550Siwasaki  Current Release:
1092104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1093104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1094102550Siwasaki
1095102550Siwasaki
1096102550Siwasaki2) Linux
1097102550Siwasaki
1098102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
1099102550Siwasakichanges described above.
1100102550Siwasaki
1101104470SiwasakiImproved /proc/acpi/event. It now can be opened only once and
1102104470Siwasakihas proper poll functionality.
1103102550Siwasaki
1104102550SiwasakiFixed and restructured power management (acpi_bus).
1105102550Siwasaki
1106102550SiwasakiOnly create /proc "view by type" when devices of that class
1107102550Siwasakiexist.
1108102550Siwasaki
1109104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
1110102550Siwasaki
1111102550SiwasakiImproved thermal zone code.
1112102550Siwasaki
1113102550Siwasaki
1114102550Siwasaki3) ASL Compiler, version X2039:
1115102550Siwasaki
1116102550SiwasakiImplemented the new compiler restriction on ASL String
1117104470Siwasakihex/octal escapes to non-null, ASCII values.  An error results
1118104470Siwasakiif an invalid value is used.  (This will require an ACPI 2.0
1119104470Siwasakispecification change.)
1120102550Siwasaki
1121102550SiwasakiAML object labels that are output to the optional C and ASM
1122104470Siwasakisource are now prefixed with both the ACPI table signature and
1123104470Siwasakitable ID to help guarantee uniqueness within a large BIOS
1124104470Siwasakiproject.
1125102550Siwasaki
1126102550Siwasaki
1127102550Siwasaki----------------------------------------
1128102550SiwasakiSummary of changes for this label: 02_01_02
1129102550Siwasaki
1130102550Siwasaki1) ACPI CA Core Subsystem:
1131102550Siwasaki
1132104470SiwasakiACPI 2.0 support is complete in the entire Core Subsystem and
1133104470Siwasakithe ASL compiler. All new ACPI 2.0 operators are implemented
1134104470Siwasakiand all other changes for ACPI 2.0 support are complete.  With
1135104470Siwasakisimultaneous code and data optimizations throughout the
1136104470Siwasakisubsystem, ACPI 2.0 support has been implemented with almost
1137104470Siwasakino additional cost in terms of code and data size.
1138102550Siwasaki
1139104470SiwasakiImplemented a new mechanism for allocation of return buffers.
1140104470SiwasakiIf the buffer length is set to ACPI_ALLOCATE_BUFFER, the
1141104470Siwasakibuffer will be allocated on behalf of the caller.
1142104470SiwasakiConsolidated all return buffer validation and allocation to a
1143104470Siwasakicommon procedure.  Return buffers will be allocated via the
1144104470Siwasakiprimary OSL allocation interface since it appears that a
1145104470Siwasakiseparate pool is not needed by most users.  If a separate pool
1146104470Siwasakiis required for these buffers, the caller can still use the
1147104470Siwasakioriginal mechanism and pre-allocate the buffer(s).
1148102550Siwasaki
1149102550SiwasakiImplemented support for string operands within the DerefOf
1150102550Siwasakioperator.
1151102550Siwasaki
1152102550SiwasakiRestructured the Hardware and Event managers to be table
1153104470Siwasakidriven, simplifying the source code and reducing the amount of
1154104470Siwasakigenerated code.
1155102550Siwasaki
1156102550SiwasakiSplit the common read/write low-level ACPI register bitfield
1157104470Siwasakiprocedure into a separate read and write, simplifying the code
1158104470Siwasakiconsiderably.
1159102550Siwasaki
1160102550SiwasakiObsoleted the AcpiOsCallocate OSL interface.  This interface
1161102550Siwasakiwas used only a handful of times and didn't have enough
1162102550Siwasakicritical mass for a separate interface.  Replaced with a
1163102550Siwasakicommon calloc procedure in the core.
1164102550Siwasaki
1165104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
1166104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
1167104470SiwasakiReorganized the GPE information and shrunk a large array that
1168104470Siwasakiwas originally large enough to hold info for all possible GPEs
1169104470Siwasaki(256) to simply large enough to hold all GPEs up to the
1170104470Siwasakilargest GPE number on the machine.
1171102550Siwasaki
1172104470SiwasakiFixed a reported problem with resource structure alignment on
1173104470Siwasaki64-bit platforms.
1174102550Siwasaki
1175102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
1176102550Siwasakiinterfaces to not require any flags for the common case of
1177102550Siwasakienabling/disabling a GPE.
1178102550Siwasaki
1179104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
1180102550Siwasaki
1181102550SiwasakiMost TBDs in comments within the source code have been
1182102550Siwasakiresolved and eliminated.
1183102550Siwasaki
1184102550SiwasakiFixed a problem in the interpreter where a standalone parent
1185102550Siwasakiprefix (^) was not handled correctly in the interpreter and
1186102550Siwasakidebugger.
1187102550Siwasaki
1188102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
1189102550Siwasaki
1190102550SiwasakiImplemented Field support in the ASL Load operator.  This
1191104470Siwasakiallows a table to be loaded from a named field, in addition to
1192104470Siwasakiloading a table directly from an Operation Region.
1193102550Siwasaki
1194104470SiwasakiImplemented timeout and handle support in the external Global
1195104470SiwasakiLock interfaces.
1196102550Siwasaki
1197102550SiwasakiFixed a problem in the AcpiDump utility where pathnames were
1198102550Siwasakino longer being generated correctly during the dump of named
1199102550Siwasakiobjects.
1200102550Siwasaki
1201102550SiwasakiModified the AML debugger to give a full display of if/while
1202102550Siwasakipredicates instead of just one AML opcode at a time.  (The
1203102550Siwasakipredicate can have several nested ASL statements.)  The old
1204102550Siwasakimethod was confusing during single stepping.
1205102550Siwasaki
1206102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1207102550Siwasakishown below. These are the code and data sizes for the
1208104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1209104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1210104470SiwasakiThe debug version of the code includes the debug output trace
1211104470Siwasakimechanism and has a larger code and data size.  Note that
1212104470Siwasakithese values will vary depending on the efficiency of the
1213104470Siwasakicompiler and the compiler options used during generation.
1214102550Siwasaki
1215102550Siwasaki  Previous Release (12_18_01)
1216102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1217102550SiwasakiTotal
1218102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1219102550SiwasakiTotal
1220102550Siwasaki   Current Release:
1221102550Siwasaki     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
1222102550SiwasakiTotal
1223102550Siwasaki     Debug Version:     136.9K Code,  56.4K Data,  193.3K
1224102550SiwasakiTotal
1225102550Siwasaki
1226102550Siwasaki2) Linux
1227102550Siwasaki
1228104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
1229104470Siwasakidriver)
1230102550Siwasaki
1231102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
1232102550Siwasaki
1233102550SiwasakiNew thermal policy (Thermal driver)
1234102550Siwasaki
1235102550SiwasakiMany updates to /proc
1236102550Siwasaki
1237102550SiwasakiBattery "low" event support (Battery driver)
1238102550Siwasaki
1239104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
1240102550Siwasaki
1241104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
1242102550Siwasaki
1243102550SiwasakiMenuconfig options redesigned
1244102550Siwasaki
1245102550Siwasaki3) ASL Compiler, version X2037:
1246102550Siwasaki
1247102550SiwasakiImplemented several new output features to simplify
1248104470Siwasakiintegration of AML code into  firmware: 1) Output the AML in C
1249104470Siwasakisource code with labels for each named ASL object.  The
1250102550Siwasakioriginal ASL source code is interleaved as C comments. 2)
1251104470SiwasakiOutput the AML in ASM source code with labels and interleaved
1252104470SiwasakiASL    source. 3) Output the AML in raw hex table form, in
1253104470Siwasakieither C or ASM.
1254102550Siwasaki
1255102550SiwasakiImplemented support for optional string parameters to the
1256102550SiwasakiLoadTable operator.
1257102550Siwasaki
1258104470SiwasakiCompleted support for embedded escape sequences within string
1259104470Siwasakiliterals.  The compiler now supports all single character
1260104470Siwasakiescapes as well as the Octal and Hex escapes.  Note: the
1261104470Siwasakiinsertion of a null byte into a string literal (via the
1262104470Siwasakihex/octal escape) causes the string to be immediately
1263104470Siwasakiterminated.  A warning is issued.
1264102550Siwasaki
1265104470SiwasakiFixed a problem where incorrect AML was generated for the case
1266104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
1267102550Siwasaki
1268102550Siwasaki) with no trailing name segments.
1269102550Siwasaki
1270102550SiwasakiThe compiler has been successfully generated with a 64-bit C
1271102550Siwasakicompiler.
1272102550Siwasaki
1273102550Siwasaki
1274102550Siwasaki
1275102550Siwasaki
1276102550Siwasaki----------------------------------------
1277102550SiwasakiSummary of changes for this label: 12_18_01
1278102550Siwasaki
1279102550Siwasaki1) Linux
1280102550Siwasaki
1281102550SiwasakiEnhanced blacklist with reason and severity fields. Any
1282102550Siwasakitable's signature may now be used to identify a blacklisted
1283102550Siwasakisystem.
1284102550Siwasaki
1285102550SiwasakiCall _PIC control method to inform the firmware which
1286102550Siwasakiinterrupt model the OS is using. Turn on any disabled link
1287102550Siwasakidevices.
1288102550Siwasaki
1289102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
1290102550Siwasaki
1291102550Siwasaki 2) ACPI CA Core Subsystem:
1292102550Siwasaki
1293104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
1294104470Siwasakifrom while loop)
1295102550Siwasaki
1296102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
1297102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
1298104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
1299104470Siwasakiboth the ASL compiler and the AML interpreter.  The only
1300104470Siwasakiremaining ACPI 2.0 task is support for the String data type in
1301104470Siwasakithe DerefOf operator.  Fixed a problem with AcquireMutex where
1302104470Siwasakithe status code was lost if the caller had to actually wait
1303104470Siwasakifor the mutex.
1304102550Siwasaki
1305104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
1306102550Siwasaki
1307102550SiwasakiCompleted implementation of the external Global Lock
1308104470Siwasakiinterfaces -- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.
1309104470SiwasakiThe Timeout and Handler parameters were added.
1310102550Siwasaki
1311102550SiwasakiCompleted another pass at removing warnings and issues when
1312102550Siwasakicompiling with 64-bit compilers.  The code now compiles
1313102550Siwasakicleanly with the Intel 64-bit C/C++ compiler.  Most notably,
1314102550Siwasakithe pointer add and subtract (diff) macros have changed
1315102550Siwasakiconsiderably.
1316102550Siwasaki
1317104470SiwasakiCreated and deployed a new ACPI_SIZE type that is 64-bits wide
1318104470Siwasakion 64-bit platforms, 32-bits on all others.  This type is used
1319104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
1320104470Siwasakiused, and affects the OSL memory allocation interfaces
1321104470SiwasakiAcpiOsAllocate and AcpiOsCallocate.
1322102550Siwasaki
1323102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
1324102550Siwasaki
1325102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1326102550Siwasakishown below. These are the code and data sizes for the
1327104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1328104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1329104470SiwasakiThe debug version of the code includes the debug output trace
1330104470Siwasakimechanism and has a larger code and data size. Note that these
1331104470Siwasakivalues will vary depending on the efficiency of the compiler
1332104470Siwasakiand the compiler options used during generation.
1333102550Siwasaki
1334102550Siwasaki  Previous Release (12_05_01)
1335102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1336102550SiwasakiTotal
1337102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1338102550SiwasakiTotal
1339102550Siwasaki   Current Release:
1340102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1341102550SiwasakiTotal
1342102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1343102550SiwasakiTotal
1344102550Siwasaki
1345102550Siwasaki 3) ASL Compiler, version X2034:
1346102550Siwasaki
1347104470SiwasakiNow checks for (and generates an error if detected) the use of
1348104470Siwasakia Break or Continue statement without an enclosing While
1349102550Siwasakistatement.
1350102550Siwasaki
1351102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
1352102550Siwasakicompiler.
1353102550Siwasaki
1354102550Siwasaki ----------------------------------------
1355102550SiwasakiSummary of changes for this label: 12_05_01
1356102550Siwasaki
1357102550Siwasaki 1) ACPI CA Core Subsystem:
1358102550Siwasaki
1359102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
1360104470Siwasakioperator creates a new copy of an object (and is also used to
1361104470Siwasakibypass the "implicit conversion" mechanism of the Store
1362102550Siwasakioperator.)
1363102550Siwasaki
1364102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
1365102550Siwasakiimplemented.  The change is that performing a SizeOf on a
1366104470Siwasakireference object causes an automatic dereference of the object
1367104470Siwasakito tha actual value before the size is evaluated. This
1368104470Siwasakibehavior was undefined in ACPI 1.0.
1369102550Siwasaki
1370102550SiwasakiThe ACPI 2.0 semantics for the Extended IRQ resource
1371104470Siwasakidescriptor have been implemented.  The interrupt polarity and
1372104470Siwasakimode are now independently set.
1373102550Siwasaki
1374102550SiwasakiFixed a problem where ASL Constants (Zero, One, Ones,
1375102550SiwasakiRevision) appearing in Package objects were not properly
1376104470Siwasakiconverted to integers when the internal Package was converted
1377104470Siwasakito an external object (via the AcpiEvaluateObject interface.)
1378102550Siwasaki
1379102550SiwasakiFixed a problem with the namespace object deletion mechanism
1380104470Siwasakifor objects created by control methods.  There were two parts
1381104470Siwasakito this problem: 1) Objects created during the initialization
1382104470Siwasakiphase method parse were not being deleted, and 2) The object
1383104470Siwasakiowner ID mechanism to track objects was broken.
1384102550Siwasaki
1385104470SiwasakiFixed a problem where the use of the ASL Scope operator within
1386104470Siwasakia control method would result in an invalid opcode exception.
1387102550Siwasaki
1388102550SiwasakiFixed a problem introduced in the previous label where the
1389102550Siwasakibuffer length required for the _PRT structure was not being
1390102550Siwasakireturned correctly.
1391102550Siwasaki
1392102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1393102550Siwasakishown below. These are the code and data sizes for the
1394104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1395104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1396104470SiwasakiThe debug version of the code includes the debug output trace
1397104470Siwasakimechanism and has a larger code and data size.  Note that
1398104470Siwasakithese values will vary depending on the efficiency of the
1399104470Siwasakicompiler and the compiler options used during generation.
1400102550Siwasaki
1401102550Siwasaki  Previous Release (11_20_01)
1402102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1403102550SiwasakiTotal
1404102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1405102550SiwasakiTotal
1406102550Siwasaki
1407102550Siwasaki  Current Release:
1408102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1409102550SiwasakiTotal
1410102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1411102550SiwasakiTotal
1412102550Siwasaki
1413102550Siwasaki 2) Linux:
1414102550Siwasaki
1415102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
1416102550Siwasaki
1417104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
1418104470Siwasaki(acpi_pci.c), and unified the PRT code for IA32 and IA64.
1419104470SiwasakiThis version supports both static and dyanmic PRT entries, but
1420104470Siwasakidynamic entries are treated as if they were static (not yet
1421104470Siwasakireconfigurable).  Architecture- specific code to use this data
1422104470Siwasakiis absent on IA32 but should be available shortly.
1423102550Siwasaki
1424102550SiwasakiChanged the initialization sequence to start the ACPI
1425102550Siwasakiinterpreter (acpi_init) prior to initialization of the PCI
1426102550Siwasakidriver (pci_init) in init/main.c.  This ordering is required
1427102550Siwasakito support PRT and facilitate other (future) enhancement.  A
1428102550Siwasakiside effect is that the ACPI bus driver and certain device
1429102550Siwasakidrivers can no longer be loaded as modules.
1430102550Siwasaki
1431104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
1432104470SiwasakiRouting support to be included without the ACPI Bus and other
1433104470Siwasakidevice drivers.
1434102550Siwasaki
1435102550Siwasaki 3) ASL Compiler, version X2033:
1436102550Siwasaki
1437102550SiwasakiFixed some issues with the use of the new CopyObject and
1438102550SiwasakiDataTableRegion operators.  Both are fully functional.
1439102550Siwasaki
1440102550Siwasaki ----------------------------------------
1441102550SiwasakiSummary of changes for this label: 11_20_01
1442102550Siwasaki
1443102550Siwasaki 20 November 2001.  Summary of changes for this release.
1444102550Siwasaki
1445102550Siwasaki 1) ACPI CA Core Subsystem:
1446102550Siwasaki
1447104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
1448104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
1449104470Siwasakionly the least-significant byte of the source to the Indexed
1450104470Siwasakibuffer byte.  Multiple writes are not performed.
1451102550Siwasaki
1452104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
1453104470Siwasakioperator was not recorded correctly into the field object.
1454102550Siwasaki
1455102550SiwasakiFixed a problem where ASL Event objects were created in a
1456102550Siwasakisignalled state. Events are now created in an unsignalled
1457102550Siwasakistate.
1458102550Siwasaki
1459102550SiwasakiThe internal object cache is now purged after table loading
1460104470Siwasakiand initialization to reduce the use of dynamic kernel memory
1461104470Siwasaki-- on the assumption that object use is greatest during the
1462104470Siwasakiparse phase of the entire table (versus the run-time use of
1463104470Siwasakiindividual control methods.)
1464102550Siwasaki
1465102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
1466102550Siwasaki
1467104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
1468104470Siwasakinew feature development with an actual reduction in the
1469104470Siwasakilibrary size.  Current core subsystem library sizes are shown
1470104470Siwasakibelow.  These are the code and data sizes for the acpica.lib
1471104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1472104470Siwasakivalues do not include any ACPI driver or OSPM code.  The debug
1473104470Siwasakiversion of the code includes the debug output trace mechanism
1474104470Siwasakiand has a larger code and data size.  Note that these values
1475104470Siwasakiwill vary depending on the efficiency of the compiler and the
1476104470Siwasakicompiler options used during generation.
1477102550Siwasaki
1478102550Siwasaki  Previous Release (11_09_01):
1479102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1480102550SiwasakiTotal
1481102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1482102550SiwasakiTotal
1483102550Siwasaki
1484102550Siwasaki  Current Release:
1485102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1486102550SiwasakiTotal
1487102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1488102550SiwasakiTotal
1489102550Siwasaki
1490102550Siwasaki 2) Linux:
1491102550Siwasaki
1492102550SiwasakiEnhanced the ACPI boot-time initialization code to allow the
1493102550Siwasakiuse of Local APIC tables for processor enumeration on IA-32,
1494104470Siwasakiand to pave the way for a fully MPS-free boot (on SMP systems)
1495104470Siwasakiin the near future.  This functionality replaces
1496102550Siwasakiarch/i386/kernel/acpitables.c, which was introduced in an
1497104470Siwasakiearlier 2.4.15-preX release.  To enable this feature you must
1498104470Siwasakiadd "acpi_boot=on" to the kernel command line -- see the help
1499104470Siwasakientry for CONFIG_ACPI_BOOT for more information.  An IA-64
1500104470Siwasakirelease is in the works...
1501102550Siwasaki
1502102550SiwasakiRestructured the configuration options to allow boot-time
1503102550Siwasakitable parsing support without inclusion of the ACPI
1504102550SiwasakiInterpreter (and other) code.
1505102550Siwasaki
1506102550SiwasakiNOTE: This release does not include fixes for the reported
1507104470Siwasakievents, power-down, and thermal passive cooling issues (coming
1508104470Siwasakisoon).
1509102550Siwasaki
1510102550Siwasaki 3) ASL Compiler:
1511102550Siwasaki
1512102550SiwasakiAdded additional typechecking for Fields within restricted
1513102550Siwasakiaccess Operation Regions.  All fields within EC and CMOS
1514102550Siwasakiregions must be declared with ByteAcc. All fields withing
1515104470SiwasakiSMBus regions must be declared with the BufferAcc access type.
1516102550Siwasaki
1517102550SiwasakiFixed a problem where the listing file output of control
1518104470Siwasakimethods no longer interleaved the actual AML code with the ASL
1519104470Siwasakisource code.
1520102550Siwasaki
1521102550Siwasaki
1522102550Siwasaki
1523102550Siwasaki----------------------------------------
1524102550SiwasakiSummary of changes for this label: 11_09_01
1525102550Siwasaki
1526102550Siwasaki1) ACPI CA Core Subsystem:
1527102550Siwasaki
1528104470SiwasakiImplemented ACPI 2.0-defined support for writes to fields with
1529104470Siwasakia Buffer, String, or Integer source operand that is smaller
1530104470Siwasakithan the target field. In these cases, the source operand is
1531104470Siwasakizero-extended to fill the target field.
1532102550Siwasaki
1533104470SiwasakiFixed a problem where a Field starting bit offset (within the
1534104470Siwasakiparent operation region) was calculated incorrectly if the
1535104470Siwasakialignment of the field differed from the access width.  This
1536104470Siwasakiaffected CreateWordField, CreateDwordField, CreateQwordField,
1537104470Siwasakiand possibly other fields that use the "AccessAny" keyword.
1538102550Siwasaki
1539102550SiwasakiFixed a problem introduced in the 11_02_01 release where
1540102550Siwasakiindirect stores through method arguments did not operate
1541102550Siwasakicorrectly.
1542102550Siwasaki
1543102550Siwasaki2) Linux:
1544102550Siwasaki
1545102550SiwasakiImplemented boot-time ACPI table parsing support
1546102550Siwasaki(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This
1547102550Siwasakicode facilitates the use of ACPI tables (e.g. MADT, SRAT)
1548102550Siwasakirather than legacy BIOS interfaces (e.g. MPS) for the
1549102550Siwasakiconfiguration of system processors, memory, and interrupts
1550102550Siwasakiduring setup_arch().  Note that this patch does not include
1551102550Siwasakithe required architecture-specific changes required to apply
1552104470Siwasakithis information -- subsequent patches will be posted for both
1553104470SiwasakiIA32 and IA64 to achieve this.
1554102550Siwasaki
1555104470SiwasakiAdded low-level sleep support for IA32 platforms, courtesy of
1556104470SiwasakiPat Mochel. This allows IA32 systems to transition to/from
1557104470Siwasakivarious sleeping states (e.g. S1, S3), although the lack of a
1558104470Siwasakicentralized driver model and power-manageable drivers will
1559104470Siwasakiprevent its (successful) use on most systems.
1560102550Siwasaki
1561102550SiwasakiRevamped the ACPI 'menuconfig' layout: created new "ACPI
1562102550SiwasakiSupport" submenu, unified IA32 and IA64 options, added new
1563102550Siwasaki"Boot using ACPI tables" option, etc.
1564102550Siwasaki
1565102550SiwasakiIncreased the default timeout for the EC driver from 1ms to
1566102550Siwasaki10ms (1000 cycles of 10us) to try to address AE_TIME errors
1567102550Siwasakiduring EC transactions.
1568102550Siwasaki
1569102550Siwasaki ----------------------------------------
1570102550SiwasakiSummary of changes for this label: 11_02_01
1571102550Siwasaki
1572102550Siwasaki1) ACPI CA Core Subsystem:
1573102550Siwasaki
1574102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
1575102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
1576102550Siwasakiimplemented.
1577102550Siwasaki
1578102550SiwasakiOSL Interfaces: Several of the OSL (AcpiOs*) interfaces
1579102550Siwasakirequired changes to support ACPI 2.0 Qword field access.
1580102550SiwasakiRead/Write PciConfiguration(), Read/Write Memory(), and
1581104470SiwasakiRead/Write Port() now accept an ACPI_INTEGER (64 bits) as the
1582104470Siwasakivalue parameter.  Also, the value parameter for the address
1583104470Siwasakispace handler interface is now an ACPI_INTEGER.  OSL
1584102550Siwasakiimplementations of these interfaces must now handle the case
1585102550Siwasakiwhere the Width parameter is 64.
1586102550Siwasaki
1587104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
1588104470Siwasakidisassembly for IndexFields was not supported correctly.
1589102550Siwasaki
1590102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
1591104470Siwasakisupported. During field access, a check is performed to ensure
1592104470Siwasakithat the value written to an Index or Bank register is not out
1593104470Siwasakiof the range of the register.  The Index (or Bank) register is
1594104470Siwasakiwritten before each access to the field data. Future support
1595104470Siwasakiwill include allowing individual IndexFields to be wider than
1596104470Siwasakithe DataRegister width.
1597102550Siwasaki
1598102550SiwasakiFields: Fixed a problem where the AML interpreter was
1599102550Siwasakiincorrectly attempting to write beyond the end of a
1600104470SiwasakiField/OpRegion.  This was a boundary case that occurred when a
1601104470SiwasakiDWORD field was written to a BYTE access OpRegion, forcing
1602104470Siwasakimultiple writes and causing the interpreter to write one datum
1603104470Siwasakitoo many.
1604102550Siwasaki
1605102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
1606104470Siwasakistarting bit address of a field was incorrectly calculated if
1607104470Siwasakithe current access type was wider than a byte (WordAcc,
1608102550SiwasakiDwordAcc, or QwordAcc).
1609102550Siwasaki
1610104470SiwasakiFields: Fixed a problem where forward references to individual
1611104470SiwasakiFieldUnits (individual Field names within a Field definition)
1612102550Siwasakiwere not resolved during the AML table load.
1613102550Siwasaki
1614104470SiwasakiFields: Fixed a problem where forward references from a Field
1615104470Siwasakidefinition to the parent Operation Region definition were not
1616104470Siwasakiresolved during the AML table load.
1617104470Siwasaki
1618102550SiwasakiFields: Duplicate FieldUnit names within a scope are now
1619102550Siwasakidetected during AML table load.
1620102550Siwasaki
1621102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
1622102550Siwasakiinterface returned an incorrect name for the root node.
1623102550Siwasaki
1624104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
1625104470Siwasakinew feature development with an actual reduction in the
1626104470Siwasakilibrary size.  Current core subsystem library sizes are shown
1627104470Siwasakibelow.  These are the code and data sizes for the acpica.lib
1628104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1629104470Siwasakivalues do not include any ACPI driver or OSPM code.  The debug
1630104470Siwasakiversion of the code includes the debug output trace mechanism
1631104470Siwasakiand has a larger code and data size.  Note that these values
1632104470Siwasakiwill vary depending on the efficiency of the compiler and the
1633104470Siwasakicompiler options used during generation.
1634102550Siwasaki
1635102550Siwasaki  Previous Release (10_18_01):
1636102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1637102550SiwasakiTotal
1638102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1639102550SiwasakiTotal
1640102550Siwasaki
1641102550Siwasaki  Current Release:
1642102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1643102550SiwasakiTotal
1644102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1645102550SiwasakiTotal
1646102550Siwasaki
1647102550Siwasaki 2) Linux:
1648102550Siwasaki
1649102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
1650102550SiwasakiMODULE_LICENSE("GPL") to all modules.
1651102550Siwasaki
1652102550Siwasaki 3) ASL Compiler version X2030:
1653102550Siwasaki
1654104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
1655104470Siwasakiflagged as errors.
1656102550Siwasaki
1657102550Siwasaki 4) Documentation:
1658102550Siwasaki
1659104470SiwasakiProgrammer Reference updated to reflect OSL and address space
1660104470Siwasakihandler interface changes described above.
1661102550Siwasaki
1662102550Siwasaki----------------------------------------
1663102550SiwasakiSummary of changes for this label: 10_18_01
1664102550Siwasaki
1665102550SiwasakiACPI CA Core Subsystem:
1666102550Siwasaki
1667102550SiwasakiFixed a problem with the internal object reference count
1668104470Siwasakimechanism that occasionally caused premature object deletion.
1669104470SiwasakiThis resolves all of the outstanding problem reports where an
1670104470Siwasakiobject is deleted in the middle of an interpreter evaluation.
1671104470SiwasakiAlthough this problem only showed up in rather obscure cases,
1672104470Siwasakithe solution to the problem involved an adjustment of all
1673104470Siwasakireference counts involving objects attached to namespace
1674104470Siwasakinodes.
1675102550Siwasaki
1676102550SiwasakiFixed a problem with Field support in the interpreter where
1677104470Siwasakiwriting to an aligned field whose length is an exact multiple
1678104470Siwasaki(2 or greater) of the field access granularity would cause an
1679104470Siwasakiattempt to write beyond the end of the field.
1680102550Siwasaki
1681102550SiwasakiThe top level AML opcode execution functions within the
1682102550Siwasakiinterpreter have been renamed with a more meaningful and
1683102550Siwasakiconsistent naming convention.  The modules exmonad.c and
1684102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
1685102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
1686102550Siwasaki
1687102550SiwasakiSupport for the ACPI 2.0 "Mid" ASL operator has been
1688102550Siwasakiimplemented.
1689102550Siwasaki
1690102550SiwasakiFixed a problem where the AML debugger was causing some
1691102550Siwasakiinternal objects to not be deleted during subsystem
1692102550Siwasakitermination.
1693102550Siwasaki
1694104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
1695104470Siwasakiwhere the subsystem would fault if the named object to be
1696104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
1697102550Siwasaki
1698102550SiwasakiFixed a problem with IndexFields and BankFields where the
1699102550Siwasakisubsystem would fault if the index, data, or bank registers
1700102550Siwasakiwere not defined in the same scope as the field itself.
1701102550Siwasaki
1702104470SiwasakiAdded printf format string checking for compilers that support
1703104470Siwasakithis feature.  Corrected more than 50 instances of issues with
1704104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
1705104470Siwasakithroughout the core subsystem code.
1706102550Siwasaki
1707104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
1708104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
1709104470Siwasakisupport is more than 50% implemented.
1710102550Siwasaki
1711102550SiwasakiEnhanced the output of the AML debugger "dump namespace"
1712102550Siwasakicommand to output in a more human-readable form.
1713102550Siwasaki
1714102550SiwasakiCurrent core subsystem library code sizes are shown below.
1715104470SiwasakiThese are the code and data sizes for the acpica.lib produced
1716104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
1717104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
1718104470Siwasakiof the code includes the full debug trace mechanism -- leading
1719104470Siwasakito a much larger code and data size.  Note that these values
1720104470Siwasakiwill vary depending on the efficiency of the compiler and the
1721104470Siwasakicompiler options used during generation.
1722102550Siwasaki
1723102550Siwasaki     Previous Label (09_20_01):
1724102550Siwasaki     Non-Debug Version:    65K Code,     5K Data,     70K
1725102550SiwasakiTotal
1726102550Siwasaki     Debug Version:       138K Code,    58K Data,    196K
1727102550SiwasakiTotal
1728102550Siwasaki
1729102550Siwasaki     This Label:
1730102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1731102550SiwasakiTotal
1732102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1733102550SiwasakiTotal
1734102550Siwasaki
1735102550SiwasakiLinux:
1736102550Siwasaki
1737104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
1738104470Siwasakiknown ASL/AML problems.
1739102550Siwasaki
1740102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
1741104470Siwasakiadded support for _HOT (the critical suspend trip point).  The
1742104470Siwasaki'info' file now includes threshold/policy information, and
1743104470Siwasakiallows setting of _SCP (cooling preference) and _TZP (polling
1744104470Siwasakifrequency) values to the 'info' file. Examples: "echo tzp=5 >
1745104470Siwasakiinfo" sets the polling frequency to 5 seconds, and "echo scp=1
1746104470Siwasaki> info" sets the cooling preference to the passive/quiet mode
1747104470Siwasaki(if supported by the ASL).
1748102550Siwasaki
1749104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
1750104470Siwasakiwhen loading the control method battery driver.
1751102550Siwasaki
1752102550Siwasaki ----------------------------------------
1753102550SiwasakiSummary of changes for this label: 09_20_01
1754102550Siwasaki
1755102550Siwasaki ACPI CA Core Subsystem:
1756102550Siwasaki
1757104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
1758104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
1759104470Siwasakienabled (i.e., these GPEs are to remain enabled when the
1760104470Siwasakiplatform sleeps.)
1761102550Siwasaki
1762104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
1763104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
1764104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
1765104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
1766102550Siwasaki
1767102550SiwasakiA local double-precision divide/modulo module has been added
1768102550Siwasakito enhance portability to OS kernels where a 64-bit math
1769102550Siwasakilibrary is not available.  The new module is "utmath.c".
1770102550Siwasaki
1771104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
1772104470Siwasakistack.  Originally over 2K, the maximum stack usage is now
1773104470Siwasakibelow 2K at 1860  bytes (1.82k)
1774102550Siwasaki
1775104470SiwasakiFixed a problem with the AcpiGetFirmwareTable interface where
1776104470Siwasakithe root table pointer was not mapped into a logical address
1777104470Siwasakiproperly.
1778102550Siwasaki
1779104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
1780104470Siwasakithe interpreter code for the ASL Notify operator.
1781102550Siwasaki
1782102550SiwasakiFixed a problem where the use of the ASL Revision operator
1783102550Siwasakireturned an error. This operator now returns the current
1784102550Siwasakiversion of the ACPI CA core subsystem.
1785102550Siwasaki
1786102550SiwasakiFixed a problem where objects passed as control method
1787104470Siwasakiparameters to AcpiEvaluateObject were always deleted at method
1788104470Siwasakitermination.  However, these objects may end up being stored
1789104470Siwasakiinto the namespace by the called method.  The object reference
1790104470Siwasakicount mechanism was applied to these objects instead of a
1791104470Siwasakiforce delete.
1792102550Siwasaki
1793104470SiwasakiFixed a problem where static strings or buffers (contained in
1794104470Siwasakithe AML code) that are declared as package elements within the
1795104470SiwasakiASL code could cause a fault because the interpreter would
1796104470Siwasakiattempt to delete them.  These objects are now marked with the
1797104470Siwasaki"static object" flag to prevent any attempt to delete them.
1798102550Siwasaki
1799102550SiwasakiImplemented an interpreter optimization to use operands
1800102550Siwasakidirectly from the state object instead of extracting the
1801104470Siwasakioperands to local variables.  This reduces stack use and code
1802104470Siwasakisize, and improves performance.
1803102550Siwasaki
1804102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
1805102550Siwasakiextra layer of code.
1806102550Siwasaki
1807102550SiwasakiCurrent core subsystem library code sizes are shown below.
1808104470SiwasakiThese are the code and data sizes for the acpica.lib produced
1809104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
1810104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
1811104470Siwasakiof the code includes the full debug trace mechanism -- leading
1812104470Siwasakito a much larger code and data size.  Note that these values
1813104470Siwasakiwill vary depending on the efficiency of the compiler and the
1814104470Siwasakicompiler options used during generation.
1815102550Siwasaki
1816102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
1817102550Siwasaki(Previously 69K)   Debug Version:     138K Code,  58K Data,
1818102550Siwasaki196K Total  (Previously 195K)
1819102550Siwasaki
1820102550SiwasakiLinux:
1821102550Siwasaki
1822102550SiwasakiSupport for ACPI 2.0 64-bit integers has been added.   All
1823102550SiwasakiACPI Integer objects are now 64 bits wide
1824102550Siwasaki
1825102550SiwasakiAll Acpi data types and structures are now in lower case.
1826102550SiwasakiOnly Acpi macros are upper case for differentiation.
1827102550Siwasaki
1828102550Siwasaki Documentation:
1829102550Siwasaki
1830102550SiwasakiChanges to the external interfaces as described above.
1831102550Siwasaki
1832102550Siwasaki ----------------------------------------
1833102550SiwasakiSummary of changes for this label: 08_31_01
1834102550Siwasaki
1835102550Siwasaki ACPI CA Core Subsystem:
1836102550Siwasaki
1837102550SiwasakiA bug with interpreter implementation of the ASL Divide
1838102550Siwasakioperator was found and fixed.  The implicit function return
1839102550Siwasakivalue (not the explicit store operands) was returning the
1840102550Siwasakiremainder instead of the quotient.  This was a longstanding
1841102550Siwasakibug and it fixes several known outstanding issues on various
1842102550Siwasakiplatforms.
1843102550Siwasaki
1844104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
1845104470Siwasakibeen further optimized for size.  There are 700 invocations of
1846104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the
1847104470Siwasakisize of the debug version of the subsystem significantly.
1848102550Siwasaki
1849102550SiwasakiA stack trace mechanism has been implemented.  The maximum
1850102550Siwasakistack usage is about 2K on 32-bit platforms.  The debugger
1851102550Siwasakicommand "stat stack" will display the current maximum stack
1852102550Siwasakiusage.
1853102550Siwasaki
1854102550SiwasakiAll public symbols and global variables within the subsystem
1855102550Siwasakiare now prefixed with the string "Acpi".  This keeps all of
1856102550Siwasakithe symbols grouped together in a kernel map, and avoids
1857102550Siwasakiconflicts with other kernel subsystems.
1858102550Siwasaki
1859104470SiwasakiMost of the internal fixed lookup tables have been moved into
1860104470Siwasakithe code segment via the const operator.
1861102550Siwasaki
1862104470SiwasakiSeveral enhancements have been made to the interpreter to both
1863104470Siwasakireduce the code size and improve performance.
1864102550Siwasaki
1865102550SiwasakiCurrent core subsystem library code sizes are shown below.
1866104470SiwasakiThese are the code and data sizes for the acpica.lib produced
1867104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
1868104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
1869104470Siwasakiof the code includes the full debug trace mechanism which
1870104470Siwasakicontains over 700 invocations of the DEBUG_PRINT macro, 500
1871104470Siwasakifunction entry macro invocations, and over 900 function exit
1872104470Siwasakimacro invocations -- leading to a much larger code and data
1873104470Siwasakisize.  Note that these values will vary depending on the
1874104470Siwasakiefficiency of the compiler and the compiler options used
1875104470Siwasakiduring generation.
1876102550Siwasaki
1877102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
1878102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
1879102550Siwasaki
1880102550Siwasaki Linux:
1881102550Siwasaki
1882104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
1883102550Siwasaki
1884102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
1885102550Siwasaki
1886102550Siwasaki ASL Compiler, version X2026:
1887102550Siwasaki
1888104470SiwasakiFixed a problem introduced in the previous label where the AML
1889104470Siwasakicode emitted for package objects produced packages with zero
1890104470Siwasakilength.
1891102550Siwasaki
1892102550Siwasaki ----------------------------------------
1893102550SiwasakiSummary of changes for this label: 08_16_01
1894102550Siwasaki
1895102550SiwasakiACPI CA Core Subsystem:
1896102550Siwasaki
1897104470SiwasakiThe following ACPI 2.0 ASL operators have been implemented in
1898104470Siwasakithe AML interpreter (These are already supported by the Intel
1899104470SiwasakiASL compiler):  ToDecimalString, ToHexString, ToString,
1900104470SiwasakiToInteger, and ToBuffer.  Support for 64-bit AML constants is
1901104470Siwasakiimplemented in the AML parser, debugger, and disassembler.
1902102550Siwasaki
1903102550SiwasakiThe internal memory tracking mechanism (leak detection code)
1904102550Siwasakihas been upgraded to reduce the memory overhead (a separate
1905102550Siwasakitracking block is no longer allocated for each memory
1906102550Siwasakiallocation), and now supports all of the internal object
1907102550Siwasakicaches.
1908102550Siwasaki
1909102550SiwasakiThe data structures and code for the internal object caches
1910102550Siwasakihave been coelesced and optimized so that there is a single
1911102550Siwasakicache and memory list data structure and a single group of
1912102550Siwasakifunctions that implement generic cache management.  This has
1913102550Siwasakireduced the code size in both the debug and release versions
1914102550Siwasakiof the subsystem.
1915102550Siwasaki
1916102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
1917102550Siwasakireplaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
1918102550Siwasakislightly different, because it generates a single call to an
1919102550Siwasakiinternal function.  This results in a savings of about 90
1920102550Siwasakibytes per invocation, resulting in an overall code and data
1921102550Siwasakisavings of about 16% in the debug version of the subsystem.
1922102550Siwasaki
1923102550Siwasaki Linux:
1924102550Siwasaki
1925102550SiwasakiFixed C3 disk corruption problems and re-enabled C3 on
1926102550Siwasakisupporting machines.
1927102550Siwasaki
1928102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
1929102550Siwasaki
1930102550SiwasakiFurther tweaked source code Linuxization.
1931102550Siwasaki
1932102550SiwasakiOther minor fixes.
1933102550Siwasaki
1934102550Siwasaki ASL Compiler:
1935102550Siwasaki
1936102550SiwasakiSupport for ACPI 2.0 variable length packages is
1937102550Siwasakifixed/completed.
1938102550Siwasaki
1939102550SiwasakiFixed a problem where the optional length parameter for the
1940102550SiwasakiACPI 2.0 ToString operator.
1941102550Siwasaki
1942102550SiwasakiFixed multiple extraneous error messages when a syntax error
1943102550Siwasakiis detected within the declaration line of a control method.
1944102550Siwasaki
1945102550Siwasaki ----------------------------------------
1946102550SiwasakiSummary of changes for this label: 07_17_01
1947102550Siwasaki
1948102550SiwasakiACPI CA Core Subsystem:
1949102550Siwasaki
1950104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
1951104470SiwasakiACPI table via the ACPI signature.  The interface can be
1952102550Siwasakicalled at any time during kernel initialization, even before
1953104470Siwasakithe kernel virtual memory manager is initialized and paging is
1954104470Siwasakienabled.  This allows kernel subsystems to obtain ACPI tables
1955104470Siwasakivery early, even before the ACPI CA subsystem is initialized.
1956102550Siwasaki
1957104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
1958104470Siwasakicould be resolved to the incorrect address under the following
1959104470Siwasakiconditions: 1) the field width is larger than 8 bits and 2)
1960104470Siwasakithe parent operation region is not defined on a DWORD
1961104470Siwasakiboundary.
1962102550Siwasaki
1963102550SiwasakiFixed a problem where the interpreter is not being locked
1964104470Siwasakiduring namespace initialization (during execution of the _INI
1965104470Siwasakicontrol methods), causing an error when an attempt is made to
1966104470Siwasakirelease it later.
1967102550Siwasaki
1968104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
1969104470Siwasakiongoing throughout the rest of this year.  In this label, The
1970104470SiwasakiMod operator is implemented.
1971102550Siwasaki
1972102550SiwasakiAdded a new data type to contain full PCI addresses named
1973102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
1974102550SiwasakiDevice, and Function values.
1975102550Siwasaki
1976102550Siwasaki Linux:
1977102550Siwasaki
1978102550SiwasakiEnhanced the Linux version of the source code to change most
1979102550Siwasakicapitalized ACPI type names to lowercase. For example, all
1980102550Siwasakiinstances of ACPI_STATUS are changed to acpi_status.  This
1981102550Siwasakiwill result in a large diff, but the change is strictly
1982102550Siwasakicosmetic and aligns the CA code closer to the Linux coding
1983102550Siwasakistandard.
1984102550Siwasaki
1985102550SiwasakiOSL Interfaces:
1986102550Siwasaki
1987102550SiwasakiThe interfaces to the PCI configuration space have been
1988104470Siwasakichanged to add the PCI Segment number and to split the single
1989104470Siwasaki32-bit combined DeviceFunction field into two 16-bit fields.
1990104470SiwasakiThis was accomplished by moving the four values that define an
1991104470Siwasakiaddress in PCI configuration space (segment, bus, device, and
1992104470Siwasakifunction) to the new ACPI_PCI_ID structure.
1993102550Siwasaki
1994104470SiwasakiThe changes to the PCI configuration space interfaces led to a
1995104470Siwasakireexamination of the complete set of address space access
1996104470Siwasakiinterfaces for PCI, I/O, and Memory.  The previously existing
1997104470Siwasaki18 interfaces have proven difficult to maintain (any small
1998104470Siwasakichange must be propagated across at least 6 interfaces) and do
1999104470Siwasakinot easily allow for future expansion to 64 bits if necessary.
2000104470SiwasakiAlso, on some systems, it would not be appropriate to
2001104470Siwasakidemultiplex the access width (8, 16, 32,or 64) before calling
2002104470Siwasakithe OSL if the corresponding native OS interfaces contain a
2003104470Siwasakisimilar access width parameter.  For these reasons, the 18
2004104470Siwasakiaddress space interfaces have been replaced by these 6 new
2005104470Siwasakiones:
2006102550Siwasaki
2007102550SiwasakiAcpiOsReadPciConfiguration
2008102550SiwasakiAcpiOsWritePciConfiguration
2009102550SiwasakiAcpiOsReadMemory
2010102550SiwasakiAcpiOsWriteMemory
2011102550SiwasakiAcpiOsReadPort
2012102550SiwasakiAcpiOsWritePort
2013102550Siwasaki
2014104470SiwasakiAdded a new interface named AcpiOsGetRootPointer to allow the
2015104470SiwasakiOSL to perform the platform and/or OS-specific actions
2016102550Siwasakinecessary to obtain the ACPI RSDP table pointer.  On IA-32
2017104470Siwasakiplatforms, this interface will simply call down to the CA core
2018104470Siwasakito perform the low-memory search for the table.  On IA-64, the
2019104470SiwasakiRSDP is obtained from EFI.  Migrating this interface to the
2020104470SiwasakiOSL allows the CA core to remain OS and platform independent.
2021102550Siwasaki
2022104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
2023104470Siwasaki"function code and pointer" interface for various
2024102550Siwasakimiscellaneous signals and notifications that must be made to
2025104470Siwasakithe host OS.   The first such signals are intended to support
2026104470Siwasakithe ASL Fatal and Breakpoint operators.  In the latter case,
2027104470Siwasakithe AcpiOsBreakpoint interface has been obsoleted.
2028102550Siwasaki
2029102550SiwasakiThe definition of the AcpiFormatException interface has been
2030104470Siwasakichanged to simplify its use.  The caller no longer must supply
2031104470Siwasakia buffer to the call; A pointer to a const string is now
2032104470Siwasakireturned directly.  This allows the call to be easily used in
2033104470Siwasakiprintf statements, etc. since the caller does not have to
2034104470Siwasakimanage a local buffer.
2035102550Siwasaki
2036102550Siwasaki ASL Compiler, Version X2025:
2037102550Siwasaki
2038102550SiwasakiThe ACPI 2.0 Switch/Case/Default operators have been
2039104470Siwasakiimplemented and are fully functional.  They will work with all
2040104470SiwasakiACPI 1.0 interpreters, since the operators are simply
2041102550Siwasakitranslated to If/Else pairs.
2042102550Siwasaki
2043104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
2044104470Siwasakiwith 1.0 interpreters, for the same reason.
2045102550Siwasaki
2046102550SiwasakiImplemented support for ACPI 2.0 variable-length packages.
2047102550SiwasakiThese packages have a separate opcode, and their size is
2048102550Siwasakidetermined by the interpreter at run-time.
2049102550Siwasaki
2050102550SiwasakiDocumentation The ACPI CA Programmer Reference has been
2051104470Siwasakiupdated to reflect the new interfaces and changes to existing
2052104470Siwasakiinterfaces.
2053102550Siwasaki
2054102550Siwasaki ------------------------------------------
2055102550SiwasakiSummary of changes for this label: 06_15_01
2056102550Siwasaki
2057102550Siwasaki ACPI CA Core Subsystem:
2058102550Siwasaki
2059102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
2060102550Siwasakiobject would get its byte address inadvertently rounded down
2061102550Siwasakito the nearest DWORD.  Buffers are always Byte-accessible.
2062102550Siwasaki
2063102550Siwasaki ASL Compiler, version X2024:
2064102550Siwasaki
2065104470SiwasakiFixed a problem where the Switch() operator would either fault
2066104470Siwasakior hang the compiler.  Note however, that the AML code for
2067104470Siwasakithis ACPI 2.0 operator is not yet implemented.
2068102550Siwasaki
2069102550SiwasakiCompiler uses the new AcpiOsGetTimer interface to obtain
2070102550Siwasakicompile timings.
2071102550Siwasaki
2072102550SiwasakiImplementation of the CreateField operator automatically
2073102550Siwasakiconverts a reference to a named field within a resource
2074102550Siwasakidescriptor from a byte offset to a bit offset if required.
2075102550Siwasaki
2076102550SiwasakiAdded some missing named fields from the resource descriptor
2077104470Siwasakisupport. These are the names that are automatically created by
2078104470Siwasakithe compiler to reference fields within a descriptor.  They
2079104470Siwasakiare only valid at compile time and are not passed through to
2080104470Siwasakithe AML interpreter.
2081102550Siwasaki
2082104470SiwasakiResource descriptor named fields are now typed as Integers and
2083104470Siwasakisubject to compile-time typechecking when used in expressions.
2084102550Siwasaki
2085102550Siwasaki ------------------------------------------
2086102550SiwasakiSummary of changes for this label: 05_18_01
2087102550Siwasaki
2088102550Siwasaki ACPI CA Core Subsystem:
2089102550Siwasaki
2090102550SiwasakiFixed a couple of problems in the Field support code where
2091102550Siwasakibits from adjacent fields could be returned along with the
2092102550Siwasakiproper field bits. Restructured the field support code to
2093102550Siwasakiimprove performance, readability and maintainability.
2094102550Siwasaki
2095102550SiwasakiNew DEBUG_PRINTP macro automatically inserts the procedure
2096102550Siwasakiname into the output, saving hundreds of copies of procedure
2097104470Siwasakiname strings within the source, shrinking the memory footprint
2098104470Siwasakiof the debug version of the core subsystem.
2099102550Siwasaki
2100102550Siwasaki Source Code Structure:
2101102550Siwasaki
2102104470SiwasakiThe source code directory tree was restructured to reflect the
2103104470Siwasakicurrent organization of the component architecture.  Some
2104104470Siwasakifiles and directories have been moved and/or renamed.
2105102550Siwasaki
2106102550Siwasaki Linux:
2107102550Siwasaki
2108102550SiwasakiFixed leaking kacpidpc processes.
2109102550Siwasaki
2110102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
2111102550Siwasakiopened.
2112102550Siwasaki
2113102550Siwasaki ASL Compiler, version X2020:
2114102550Siwasaki
2115102550SiwasakiMemory allocation performance enhancement - over 24X compile
2116102550Siwasakitime improvement on large ASL files.  Parse nodes and
2117102550Siwasakinamestring buffers are now allocated from a large internal
2118102550Siwasakicompiler buffer.
2119102550Siwasaki
2120102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
2121102550Siwasakispecified
2122102550Siwasaki
2123104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
2124104470Siwasakifile instead of the console.
2125102550Siwasaki
2126102550Siwasaki"External" second parameter is now optional
2127102550Siwasaki
2128102550Siwasaki"ElseIf" syntax now properly allows the predicate
2129102550Siwasaki
2130102550SiwasakiLast operand to "Load" now recognized as a Target operand
2131102550Siwasaki
2132102550SiwasakiDebug object can now be used anywhere as a normal object.
2133102550Siwasaki
2134102550SiwasakiResourceTemplate now returns an object of type BUFFER
2135102550Siwasaki
2136102550SiwasakiEISAID now returns an object of type INTEGER
2137102550Siwasaki
2138102550Siwasaki"Index" now works with a STRING operand
2139102550Siwasaki
2140102550Siwasaki"LoadTable" now accepts optional parameters
2141102550Siwasaki
2142102550Siwasaki"ToString" length parameter is now optional
2143102550Siwasaki
2144102550Siwasaki"Interrupt (ResourceType," parse error fixed.
2145102550Siwasaki
2146104470Siwasaki"Register" with a user-defined region space parse error fixed
2147102550Siwasaki
2148102550SiwasakiEscaped backslash at the end of a string ("\\") scan/parse
2149102550Siwasakierror fixed
2150102550Siwasaki
2151102550Siwasaki"Revision" is now an object of type INTEGER.
2152102550Siwasaki
2153102550Siwasaki
2154102550Siwasaki
2155102550Siwasaki------------------------------------------
2156102550SiwasakiSummary of changes for this label: 05_02_01
2157102550Siwasaki
2158102550SiwasakiLinux:
2159102550Siwasaki
2160102550Siwasaki/proc/acpi/event now blocks properly.
2161102550Siwasaki
2162102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
2163102550Siwasaki/proc/acpi/dsdt.
2164102550Siwasaki
2165102550Siwasaki ACPI CA Core Subsystem:
2166102550Siwasaki
2167104470SiwasakiFixed a problem introduced in the previous label where some of
2168104470Siwasakithe "small" resource descriptor types were not recognized.
2169102550Siwasaki
2170102550SiwasakiImproved error messages for the case where an ASL Field is
2171102550Siwasakioutside the range of the parent operation region.
2172102550Siwasaki
2173102550Siwasaki ASL Compiler, version X2018:
2174102550Siwasaki
2175102550SiwasakiAdded error detection for ASL Fields that extend beyond the
2176102550Siwasakilength of the parent operation region (only if the length of
2177102550Siwasakithe region is known at compile time.)  This includes fields
2178102550Siwasakithat have a minimum access width that is smaller than the
2179102550Siwasakiparent region, and individual field units that are partially
2180102550Siwasakior entirely beyond the extent of the parent.
2181102550Siwasaki
2182102550Siwasaki
2183102550Siwasaki
2184102550Siwasaki------------------------------------------
2185102550SiwasakiSummary of changes for this label: 04_27_01
2186102550Siwasaki
2187102550Siwasaki ACPI CA Core Subsystem:
2188102550Siwasaki
2189104470SiwasakiFixed a problem where the namespace mutex could be released at
2190104470Siwasakithe wrong time during execution of
2191102550SiwasakiAcpiRemoveAddressSpaceHandler.
2192102550Siwasaki
2193104470SiwasakiAdded optional thread ID output for debug traces, to simplify
2194104470Siwasakidebugging of multiple threads.  Added context switch
2195104470Siwasakinotification when the debug code realizes that a different
2196104470Siwasakithread is now executing ACPI code.
2197102550Siwasaki
2198102550SiwasakiSome additional external data types have been prefixed with
2199104470Siwasakithe string "ACPI_" for consistency.  This may effect existing
2200104470Siwasakicode.  The data types affected are the external callback
2201104470Siwasakitypedefs - e.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
2202102550Siwasaki
2203102550Siwasaki Linux:
2204102550Siwasaki
2205102550SiwasakiFixed an issue with the OSL semaphore implementation where a
2206102550Siwasakithread was waking up with an error from receiving a SIGCHLD
2207102550Siwasakisignal.
2208102550Siwasaki
2209102550SiwasakiLinux version of ACPI CA now uses the system C library for
2210102550Siwasakistring manipulation routines instead of a local
2211102550Siwasakiimplementation.
2212102550Siwasaki
2213102550SiwasakiCleaned up comments and removed TBDs.
2214102550Siwasaki
2215102550Siwasaki ASL Compiler, version X2017:
2216102550Siwasaki
2217102550SiwasakiEnhanced error detection and reporting for all file I/O
2218102550Siwasakioperations.
2219102550Siwasaki
2220102550Siwasaki Documentation:
2221102550Siwasaki
2222102550SiwasakiProgrammer Reference updated to version 1.06.
2223102550Siwasaki
2224102550Siwasaki
2225102550Siwasaki
2226102550Siwasaki------------------------------------------
2227102550SiwasakiSummary of changes for this label: 04_13_01
2228102550Siwasaki
2229102550Siwasaki ACPI CA Core Subsystem:
2230102550Siwasaki
2231102550SiwasakiRestructured support for BufferFields and RegionFields.
2232104470SiwasakiBankFields support is now fully operational.  All known 32-bit
2233104470Siwasakilimitations on field sizes have been removed.  Both
2234104470SiwasakiBufferFields and (Operation) RegionFields are now supported by
2235104470Siwasakithe same field management code.
2236102550Siwasaki
2237104470SiwasakiResource support now supports QWORD address and IO resources.
2238104470SiwasakiThe 16/32/64 bit address structures and the Extended IRQ
2239104470Siwasakistructure have been changed to properly handle Source Resource
2240104470Siwasakistrings.
2241102550Siwasaki
2242102550SiwasakiA ThreadId of -1 is now used to indicate a "mutex not
2243102550Siwasakiacquired" condition internally and must never be returned by
2244102550SiwasakiAcpiOsThreadId. This reserved value was changed from 0 since
2245102550SiwasakiUnix systems allow a thread ID of 0.
2246102550Siwasaki
2247102550SiwasakiLinux:
2248102550Siwasaki
2249102550SiwasakiDriver code reorganized to enhance portability
2250102550Siwasaki
2251102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
2252102550Siwasaki
2253102550SiwasakiFixed the EC driver to honor _GLK.
2254102550Siwasaki
2255102550SiwasakiASL Compiler, version X2016:
2256102550Siwasaki
2257102550SiwasakiFixed support for the "FixedHw" keyword.  Previously, the
2258104470SiwasakiFixedHw address space was set to 0, not 0x7f as it should be.
2259102550Siwasaki
2260102550Siwasaki ------------------------------------------
2261102550SiwasakiSummary of changes for this label: 03_13_01
2262102550Siwasaki
2263102550Siwasaki ACPI CA Core Subsystem:
2264102550Siwasaki
2265104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
2266104470Siwasakipresent.
2267102550Siwasaki
2268102550SiwasakiNotify handler fix - notifies are deferred until the parent
2269102550Siwasakimethod completes execution.  This fixes the "mutex already
2270102550Siwasakiacquired" issue seen occasionally.
2271102550Siwasaki
2272104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
2273104470Siwasakifound to cause compatibility problems with existing ASL/AML.
2274104470SiwasakiThe convert "result-to-target-type" implementation has been
2275104470Siwasakiremoved for stores to method Args and Locals.  Source operand
2276104470Siwasakiconversion is still fully implemented.  Possible changes to
2277104470SiwasakiACPI 2.0 specification pending.
2278102550Siwasaki
2279104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
2280104470Siwasakilength.
2281102550Siwasaki
2282102550SiwasakiFix for compiler warnings for 64-bit compiles.
2283102550Siwasaki
2284102550Siwasaki Linux:
2285102550Siwasaki
2286102550Siwasaki/proc output aligned for easier parsing.
2287102550Siwasaki
2288102550SiwasakiRelease-version compile problem fixed.
2289102550Siwasaki
2290104470SiwasakiNew kernel configuration options documented in Configure.help.
2291102550Siwasaki
2292102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
2293102550Siwasakicontext" message.
2294102550Siwasaki
2295102550Siwasaki OSPM:
2296102550Siwasaki
2297102550SiwasakiPower resource driver integrated with bus manager.
2298102550Siwasaki
2299102550SiwasakiFixed kernel fault during active cooling for thermal zones.
2300102550Siwasaki
2301102550SiwasakiSource Code:
2302102550Siwasaki
2303102550SiwasakiThe source code tree has been restructured.
2304102550Siwasaki
2305102550Siwasaki
2306102550Siwasaki
2307102550Siwasaki------------------------------------------
2308102550SiwasakiSummary of changes for this label: 03_02_01
2309102550Siwasaki
2310102550Siwasaki Linux OS Services Layer (OSL):
2311102550Siwasaki
2312102550SiwasakiMajor revision of all Linux-specific code.
2313102550Siwasaki
2314102550SiwasakiModularized all ACPI-specific drivers.
2315102550Siwasaki
2316102550SiwasakiAdded new thermal zone and power resource drivers.
2317102550Siwasaki
2318102550SiwasakiRevamped /proc interface (new functionality is under
2319102550Siwasaki/proc/acpi).
2320102550Siwasaki
2321102550SiwasakiNew kernel configuration options.
2322102550Siwasaki
2323102550Siwasaki Linux known issues:
2324102550Siwasaki
2325102550SiwasakiNew kernel configuration options not documented in
2326102550SiwasakiConfigure.help yet.
2327102550Siwasaki
2328102550SiwasakiModule dependencies not currently implemented. If used, they
2329102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
2330102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
2331102550Siwasaki
2332102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
2333102550Siwasaki
2334102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
2335102550Siwasaki
2336104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
2337104470Siwasakimessage.
2338102550Siwasaki
2339104470SiwasakiSome systems may fail with "execution mutex already acquired"
2340104470Siwasakimessage.
2341102550Siwasaki
2342102550Siwasaki ACPI CA Core Subsystem:
2343102550Siwasaki
2344102550SiwasakiAdded a new OSL Interface, AcpiOsGetThreadId.  This was
2345104470Siwasakirequired for the  deadlock detection code. Defined to return a
2346104470Siwasakinon-zero, 32-bit thread ID for the currently executing thread.
2347104470SiwasakiMay be a non-zero constant integer on single-thread systems.
2348102550Siwasaki
2349104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
2350104470SiwasakiWe may add conditional compilation for this code (debug only)
2351104470Siwasakilater.
2352102550Siwasaki
2353104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
2354104470Siwasakiincludes multiple acquires/releases by owner and support for
2355104470Siwasakithe Mutex SyncLevel parameter.
2356102550Siwasaki
2357102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
2358104470SiwasakiMutexes that have been acquired but not released when a thread
2359104470Siwasakiexits the interpreter.  This forces conformance to the ACPI
2360104470Siwasakispec ("All mutexes must be released when an invocation exits")
2361104470Siwasakiand prevents deadlocked ASL threads.  This mechanism can be
2362104470Siwasakiexpanded (later) to monitor other resource acquisitions if OEM
2363104470SiwasakiASL code continues to misbehave (which it will).
2364102550Siwasaki
2365104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
2366104470Siwasakisupport.
2367102550Siwasaki
2368104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
2369104470Siwasakispec does in fact allow recursive method calls.)  The number
2370104470Siwasakiof recursive calls is subject to the restrictions imposed by
2371104470Siwasakithe SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
2372104470Siwasakiparameter.
2373102550Siwasaki
2374102550SiwasakiImplemented support for the SyncLevel parameter for control
2375102550Siwasakimethods (ACPI 2.0 feature)
2376102550Siwasaki
2377102550SiwasakiFixed a deadlock problem when multiple threads attempted to
2378102550Siwasakiuse the interpreter.
2379102550Siwasaki
2380102550SiwasakiFixed a problem where the string length of a String package
2381102550Siwasakielement was not always set in a package returned from
2382102550SiwasakiAcpiEvaluateObject.
2383102550Siwasaki
2384102550SiwasakiFixed a problem where the length of a String package element
2385102550Siwasakiwas not always included in the length of the overall package
2386102550Siwasakireturned from AcpiEvaluateObject.
2387102550Siwasaki
2388102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
2389102550Siwasakimanager.  This manager keeps a list of all outstanding
2390102550Siwasakiallocations, and can therefore detect memory leaks and
2391104470Siwasakiattempts to free memory blocks more than once. Useful for code
2392104470Siwasakisuch as the power manager, etc.  May not be appropriate for
2393104470Siwasakidevice drivers.  Performance with the debug code enabled is
2394104470Siwasakislow.
2395102550Siwasaki
2396102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
2397102550Siwasaki
2398102550Siwasaki ASL Compiler Version X2015:
2399102550Siwasaki
2400102550SiwasakiIntegrated changes to allow the compiler to be generated on
2401102550Siwasakimultiple platforms.
2402102550Siwasaki
2403102550SiwasakiLinux makefile added to generate the compiler on Linux
2404102550Siwasaki
2405102550Siwasaki Source Code:
2406102550Siwasaki
2407102550SiwasakiAll platform-specific headers have been moved to their own
2408102550Siwasakisubdirectory, Include/Platform.
2409102550Siwasaki
2410102550SiwasakiNew source file added, Interpreter/ammutex.c
2411102550Siwasaki
2412102550SiwasakiNew header file, Include/acstruct.h
2413102550Siwasaki
2414102550Siwasaki Documentation:
2415102550Siwasaki
2416102550SiwasakiThe programmer reference has been updated for the following
2417102550Siwasakinew interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
2418102550SiwasakiAcpiFree
2419102550Siwasaki
2420102550Siwasaki ------------------------------------------
2421102550SiwasakiSummary of changes for this label: 02_08_01
2422102550Siwasaki
2423102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
2424104470Siwasakiincorrectly returned if the return resource buffer was larger
2425104470Siwasakithan the actual data (in the resource interfaces).
2426102550Siwasaki
2427102550SiwasakiReferences to named objects within packages are resolved to
2428104470Siwasakithe full pathname string before packages are returned directly
2429104470Siwasaki(via the AcpiEvaluateObject interface) or indirectly via the
2430104470Siwasakiresource interfaces.
2431102550Siwasaki
2432102550SiwasakiLinux OS Services Layer (OSL):
2433102550Siwasaki
2434102550SiwasakiImproved /proc battery interface.
2435102550Siwasaki
2436102550Siwasaki
2437104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
2438102550Siwasaki
2439102550SiwasakiASL Compiler Version X2014:
2440102550Siwasaki
2441102550SiwasakiAll defined method arguments can now be used as local
2442104470Siwasakivariables, including the ones that are not actually passed in
2443104470Siwasakias parameters.  The compiler tracks initialization of the
2444102550Siwasakiarguments and issues an exception if they are used without
2445102550Siwasakiprior assignment (just like locals).
2446102550Siwasaki
2447104470SiwasakiThe -o option now specifies a filename prefix that is used for
2448104470Siwasakiall output files, including the AML output file.  Otherwise,
2449104470Siwasakithe default behavior is as follows:  1) the AML goes to the
2450104470Siwasakifile specified in the DSDT.  2) all other output files use the
2451104470Siwasakiinput source filename as the base.
2452102550Siwasaki
2453102550Siwasaki ------------------------------------------
2454102550SiwasakiSummary of changes for this label: 01_25_01
2455102550Siwasaki
2456102550SiwasakiCore ACPI CA Subsystem: Restructured the implementation of
2457102550Siwasakiobject store support within the  interpreter.  This includes
2458102550Siwasakisupport for the Store operator as well  as any ASL operators
2459102550Siwasakithat include a target operand.
2460102550Siwasaki
2461102550SiwasakiPartially implemented support for Implicit Result-to-Target
2462102550Siwasakiconversion. This is when a result object is converted on the
2463104470Siwasakifly to the type of  an existing target object.  Completion of
2464104470Siwasakithis support is pending  further analysis of the ACPI
2465102550Siwasakispecification concerning this matter.
2466102550Siwasaki
2467102550SiwasakiCPU-specific code has been removed from the subsystem
2468102550Siwasaki(hardware directory).
2469102550Siwasaki
2470102550SiwasakiNew Power Management Timer functions added
2471102550Siwasaki
2472102550SiwasakiLinux OS Services Layer (OSL): Moved system state transition
2473102550Siwasakicode to the core, fixed it, and modified  Linux OSL
2474102550Siwasakiaccordingly.
2475102550Siwasaki
2476102550SiwasakiFixed C2 and C3 latency calculations.
2477102550Siwasaki
2478102550Siwasaki
2479104470SiwasakiWe no longer use the compilation date for the version message
2480104470Siwasakion  initialization, but retrieve the version from
2481102550SiwasakiAcpiGetSystemInfo().
2482102550Siwasaki
2483102550SiwasakiIncorporated for fix Sony VAIO machines.
2484102550Siwasaki
2485104470SiwasakiDocumentation:  The Programmer Reference has been updated and
2486104470Siwasakireformatted.
2487102550Siwasaki
2488102550Siwasaki
2489102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
2490102550Siwasakinumbering and error reporting could get out  of sync in the
2491102550Siwasakipresence of multiple include files.
2492102550Siwasaki
2493102550Siwasaki ------------------------------------------
2494102550SiwasakiSummary of changes for this label: 01_15_01
2495102550Siwasaki
2496102550SiwasakiCore ACPI CA Subsystem:
2497102550Siwasaki
2498102550SiwasakiImplemented support for type conversions in the execution of
2499104470Siwasakithe ASL  Concatenate operator (The second operand is converted
2500104470Siwasakito match the type  of the first operand before concatenation.)
2501102550Siwasaki
2502102550SiwasakiSupport for implicit source operand conversion is partially
2503102550Siwasakiimplemented.   The ASL source operand types Integer, Buffer,
2504104470Siwasakiand String are freely  interchangeable for most ASL operators
2505104470Siwasakiand are converted by the interpreter  on the fly as required.
2506104470SiwasakiImplicit Target operand conversion (where the  result is
2507104470Siwasakiconverted to the target type before storing) is not yet
2508104470Siwasakiimplemented.
2509102550Siwasaki
2510102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
2511102550Siwasaki
2512102550SiwasakiProblem fixed where a field read on an aligned field could
2513102550Siwasakicause a read  past the end of the field.
2514102550Siwasaki
2515102550SiwasakiNew exception, AE_AML_NO_RETURN_VALUE, is returned when a
2516102550Siwasakimethod does not return a value, but the caller expects one.
2517102550Siwasaki(The ASL compiler flags this as a warning.)
2518102550Siwasaki
2519102550SiwasakiASL Compiler:
2520102550Siwasaki
2521102550SiwasakiVersion X2011:
2522102550Siwasaki1. Static typechecking of all operands is implemented. This
2523102550Siwasakiprevents the use of invalid objects (such as using a Package
2524102550Siwasakiwhere an Integer is required) at compile time instead of at
2525102550Siwasakiinterpreter run-time.
2526102550Siwasaki2. The ASL source line is printed with ALL errors and
2527102550Siwasakiwarnings.
2528102550Siwasaki3. Bug fix for source EOF without final linefeed.
2529102550Siwasaki4. Debug option is split into a parse trace and a namespace
2530102550Siwasakitrace.
2531102550Siwasaki5. Namespace output option (-n) includes initial values for
2532102550Siwasakiintegers and strings.
2533102550Siwasaki6. Parse-only option added for quick syntax checking.
2534102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
2535102550Siwasaki
2536102550SiwasakiVersion X2012:
2537102550Siwasaki1. Relaxed typechecking to allow interchangeability between
2538104470Siwasakistrings, integers, and buffers.  These types are now converted
2539104470Siwasakiby the interpreter at runtime.
2540102550Siwasaki2. Compiler reports time taken by each internal subsystem in
2541102550Siwasakithe debug         output file.
2542102550Siwasaki
2543102550Siwasaki
2544102550Siwasaki ------------------------------------------
2545102550SiwasakiSummary of changes for this label: 12_14_00
2546102550Siwasaki
2547102550SiwasakiASL Compiler:
2548102550Siwasaki
2549104470SiwasakiThis is the first official release of the compiler. Since the
2550104470Siwasakicompiler requires elements of the Core Subsystem, this label
2551104470Siwasakisynchronizes everything.
2552102550Siwasaki
2553102550Siwasaki------------------------------------------
2554102550SiwasakiSummary of changes for this label: 12_08_00
2555102550Siwasaki
2556102550SiwasakiFixed a problem where named references within the ASL
2557102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2558102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2559102550Siwasakiduring initialization of the region/field. This is similar
2560104470Siwasaki(but not related internally) to the problem that was fixed in
2561104470Siwasakithe last label.
2562102550Siwasaki
2563102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
2564102550Siwasakifunctions ToBCD and FromBCD.
2565102550Siwasaki
2566102550SiwasakiUpdated all legal headers to include "2000" in the copyright
2567102550Siwasakiyears.
2568102550Siwasaki
2569102550Siwasaki ------------------------------------------
2570102550SiwasakiSummary of changes for this label: 12_01_00
2571102550Siwasaki
2572102550SiwasakiFixed a problem where method invocations within the ASL
2573102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2574102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2575102550Siwasakiduring initialization of the region/field:
2576102550Siwasaki
2577102550Siwasaki  nsinit-0209: AE_AML_OPERAND_TYPE while getting region
2578102550Siwasakiarguments [DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad
2579102550Siwasakioperand(s) (0x3005)
2580102550Siwasaki
2581102550SiwasakiFixed a problem where operators with more than one nested
2582104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
2583104470SiwasakiAE_AML_OPERAND_TYPE errors.  This was actually a rather
2584104470Siwasakiserious problem that has gone unnoticed until now.
2585102550Siwasaki
2586102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
2587102550Siwasaki
2588104470SiwasakiFixed a problem where AcpiGetHandle didn't quite get fixed in
2589104470Siwasakithe previous build (The prefix part of a relative path was
2590104470Siwasakihandled incorrectly).
2591102550Siwasaki
2592102550SiwasakiFixed a problem where Operation Region initialization failed
2593102550Siwasakiif the operation region name was a "namepath" instead of a
2594102550Siwasakisimple "nameseg". Symptom was an AE_NO_OPERAND error.
2595102550Siwasaki
2596102550SiwasakiFixed a problem where an assignment to a local variable via
2597102550Siwasakithe indirect RefOf mechanism only worked for the first such
2598102550Siwasakiassignment.  Subsequent assignments were ignored.
2599102550Siwasaki
2600102550Siwasaki ------------------------------------------
2601102550SiwasakiSummary of changes for this label: 11_15_00
2602102550Siwasaki
2603104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
2604104470Siwasakithe 0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
2605104470Siwasakitables, the AML  interpreter does NOT have support for the new
2606104470Siwasaki2.0 ASL grammar terms at this time.
2607102550Siwasaki
2608104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
2609104470Siwasaki2.0 FADT.
2610102550Siwasaki
2611104470SiwasakiAll physical memory addresses across all platforms are now 64
2612104470Siwasakibits wide. Logical address width remains dependent on the
2613102550Siwasakiplatform (i.e., "void *").
2614102550Siwasaki
2615102550SiwasakiAcpiOsMapMemory interface changed to a 64-bit physical
2616102550Siwasakiaddress.
2617102550Siwasaki
2618102550SiwasakiThe AML interpreter integer size is now 64 bits, as per the
2619102550SiwasakiACPI 2.0 specification.
2620102550Siwasaki
2621104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
2622104470Siwasakirevision number less than 2 use 32-bit integers only.
2623102550Siwasaki
2624104470SiwasakiFixed a problem where the evaluation of OpRegion operands did
2625104470Siwasakinot always resolve them to numbers properly.
2626102550Siwasaki
2627102550Siwasaki------------------------------------------
2628102550SiwasakiSummary of changes for this label: 10_20_00
2629102550Siwasaki
2630102550SiwasakiFix for CBN_._STA issue.  This fix will allow correct access
2631102550Siwasakito CBN_ OpRegions when the _STA returns 0x8.
2632102550Siwasaki
2633104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
2634104470Siwasakivalues before a package object is returned
2635102550Siwasaki
2636104470SiwasakiFix for method call as predicate to if/while construct causing
2637104470Siwasakiincorrect if/while behavior
2638102550Siwasaki
2639104470SiwasakiFix for Else block package lengths sometimes calculated wrong
2640104470Siwasaki(if block > 63 bytes)
2641102550Siwasaki
2642102550SiwasakiFix for Processor object length field, was always zero
2643102550Siwasaki
2644102550SiwasakiTable load abort if FACP sanity check fails
2645102550Siwasaki
2646102550SiwasakiFix for problem with Scope(name) if name already exists
2647102550Siwasaki
2648102550SiwasakiWarning emitted if a named object referenced cannot be found
2649102550Siwasaki(resolved) during method execution.
2650102550Siwasaki
2651102550Siwasaki
2652102550Siwasaki
2653102550Siwasaki
2654102550Siwasaki
2655102550Siwasaki------------------------------------------
2656102550SiwasakiSummary of changes for this label: 9_29_00
2657102550Siwasaki
2658102550SiwasakiNew table initialization interfaces: AcpiInitializeSubsystem
2659102550Siwasakino longer has any parameters AcpiFindRootPointer - Find the
2660102550SiwasakiRSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
2661104470Siwasakifound at RSDP->RSDT Obsolete Interfaces AcpiLoadFirmwareTables
2662104470Siwasaki- replaced by AcpiLoadTables
2663102550Siwasaki
2664104470SiwasakiNote: These interface changes require changes to all existing
2665104470SiwasakiOSDs
2666102550Siwasaki
2667102550SiwasakiThe PCI_Config default address space handler is always
2668102550Siwasakiinstalled at the root namespace object.
2669102550Siwasaki
2670102550Siwasaki-------------------------------------------
2671102550SiwasakiSummary of changes for this label: 09_15_00
2672102550Siwasaki
2673102550SiwasakiThe new initialization architecture is implemented.  New
2674102550Siwasakiinterfaces are: AcpiInitializeSubsystem (replaces
2675102550SiwasakiAcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
2676102550SiwasakiAcpiLoadNamespace (Namespace is automatically loaded when a
2677102550Siwasakitable is loaded)
2678102550Siwasaki
2679104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
2680104470Siwasakifrom 52 bytes to 32 bytes.  There is usually one of these for
2681104470Siwasakievery namespace object, so the memory savings is significant.
2682102550Siwasaki
2683102550SiwasakiImplemented just-in-time evaluation of the CreateField
2684102550Siwasakioperators.
2685102550Siwasaki
2686102550SiwasakiBug fixes for IA-64 support have been integrated.
2687102550Siwasaki
2688102550SiwasakiAdditional code review comments have been implemented
2689102550Siwasaki
2690104470SiwasakiThe so-called "third pass parse" has been replaced by a final
2691104470Siwasakiwalk through the namespace to initialize all operation regions
2692104470Siwasaki(address spaces) and fields that have not yet been initialized
2693104470Siwasakiduring the execution of the various _INI and REG methods.
2694102550Siwasaki
2695102550SiwasakiNew file - namespace/nsinit.c
2696102550Siwasaki
2697102550Siwasaki-------------------------------------------
2698102550SiwasakiSummary of changes for this label: 09_01_00
2699102550Siwasaki
2700104470SiwasakiNamespace manager data structures have been reworked to change
2701104470Siwasakithe primary  object from a table to a single object.  This has
2702104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
2703104470Siwasakiand 2X overall in the ACPI CA subsystem.
2704102550Siwasaki
2705102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
2706102550Siwasakiinadvertently left  commented out.
2707102550Siwasaki
2708104470SiwasakiReduced the warning count when generating the source with the
2709104470SiwasakiGCC compiler.
2710102550Siwasaki
2711102550SiwasakiRevision numbers added to each module header showing the
2712104470SiwasakiSourceSafe version of the file.  Please refer to this version
2713104470Siwasakinumber when giving us feedback or comments on individual
2714104470Siwasakimodules.
2715102550Siwasaki
2716102550SiwasakiThe main object types within the subsystem have been renamed
2717102550Siwasakito clarify their  purpose:
2718102550Siwasaki
2719102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
2720102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
2721102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
2722102550Siwasaki
2723102550SiwasakiNOTE: no changes to the initialization sequence are included
2724102550Siwasakiin this label.
2725102550Siwasaki
2726102550Siwasaki-------------------------------------------
2727102550SiwasakiSummary of changes for this label: 08_23_00
2728102550Siwasaki
2729102550SiwasakiFixed problem where TerminateControlMethod was being called
2730102550Siwasakimultiple times per  method
2731102550Siwasaki
2732102550SiwasakiFixed debugger problem where single stepping caused a
2733102550Siwasakisemaphore to be  oversignalled
2734102550Siwasaki
2735104470SiwasakiImproved performance through additional parse object caching -
2736104470Siwasakiadded  ACPI_EXTENDED_OP type
2737102550Siwasaki
2738102550Siwasaki-------------------------------------------
2739102550SiwasakiSummary of changes for this label: 08_10_00
2740102550Siwasaki
2741102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
2742102550Siwasakicomplete parse trees  for ACPI tables and control methods.
2743104470SiwasakiInstead, parse subtrees are created and  then deleted as soon
2744104470Siwasakias they are processed (Either entered into the namespace or
2745104470Siwasakiexecuted by the interpreter).  This reduces the use of dynamic
2746104470Siwasakikernel memory  significantly. (about 10X)
2747102550Siwasaki
2748102550SiwasakiException codes broken into classes and renumbered.  Be sure
2749104470Siwasakito recompile all  code that includes acexcep.h.  Hopefully we
2750104470Siwasakiwon't have to renumber the codes  again now that they are
2751102550Siwasakisplit into classes (environment, programmer, AML code,  ACPI
2752102550Siwasakitable, and internal).
2753102550Siwasaki
2754104470SiwasakiFixed some additional alignment issues in the Resource Manager
2755104470Siwasakisubcomponent
2756102550Siwasaki
2757102550SiwasakiImplemented semaphore tracking in the AcpiExec utility, and
2758102550Siwasakifixed several places  where mutexes/semaphores were being
2759102550Siwasakiunlocked without a corresponding lock  operation.  There are
2760102550Siwasakino known semaphore or mutex "leaks" at this time.
2761102550Siwasaki
2762104470SiwasakiFixed the case where an ASL Return operator is used to return
2763104470Siwasakian unnamed  package.
2764102550Siwasaki
2765102550Siwasaki-------------------------------------------
2766102550SiwasakiSummary of changes for this label: 07_28_00
2767102550Siwasaki
2768102550SiwasakiFixed a problem with the way addresses were calculated in
2769102550SiwasakiAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This
2770102550Siwasakiproblem manifested itself when a Field was  created with
2771102550SiwasakiWordAccess or DwordAccess, but the field unit defined within
2772102550Siwasakithe  Field was less than a Word or Dword.
2773102550Siwasaki
2774102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
2775104470Siwasakioperands off of the  operand stack to display information. The
2776104470Siwasakiproblem manifested itself as a TLB  error on 64-bit systems
2777104470Siwasakiwhen accessing an operand stack with two or more  operands.
2778102550Siwasaki
2779102550SiwasakiFixed a problem with the PCI configuration space handlers
2780102550Siwasakiwhere context was  getting confused between accesses. This
2781102550Siwasakirequired a change to the generic address  space handler and
2782102550Siwasakiaddress space setup definitions. Handlers now get both a
2783104470Siwasakiglobal handler context (this is the one passed in by the user
2784104470Siwasakiwhen executing  AcpiInstallAddressSpaceHandler() and a
2785102550Siwasakispecific region context that is unique to  each region (For
2786102550Siwasakiexample, the _ADR, _SEG and _BBN values associated with a
2787102550Siwasakispecific region). The generic function definitions have
2788102550Siwasakichanged to the  following:
2789102550Siwasaki
2790102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
2791104470SiwasakiFunction, UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
2792104470Siwasaki*HandlerContext, // This used to be void *Context void
2793102550Siwasaki*RegionContext); // This is an additional parameter
2794102550Siwasaki
2795102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
2796102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
2797102550Siwasaki**RegionContext); // This used to be **ReturnContext
2798102550Siwasaki
2799102550Siwasaki-------------------------------------------
2800102550SiwasakiSummary of changes for this label: 07_21_00
2801102550Siwasaki
2802102550SiwasakiMajor file consolidation and rename.  All files within the
2803102550Siwasakiinterpreter have been  renamed as well as most header files.
2804102550SiwasakiThis was done to prevent collisions with  existing files in
2805102550Siwasakithe host OSs -- filenames such as "config.h" and "global.h"
2806102550Siwasakiseem to be quite common.  The VC project files have been
2807102550Siwasakiupdated.  All makefiles  will require modification.
2808102550Siwasaki
2809102550SiwasakiThe parser/interpreter integration continues in Phase 5 with
2810102550Siwasakithe implementation  of a complete 2-pass parse (the AML is
2811102550Siwasakiparsed twice) for each table;  This  avoids the construction
2812102550Siwasakiof a huge parse tree and therefore reduces the amount of
2813104470Siwasakidynamic memory required by the subsystem.  Greater use of the
2814104470Siwasakiparse object cache  means that performance is unaffected.
2815102550Siwasaki
2816102550SiwasakiMany comments from the two code reviews have been rolled in.
2817102550Siwasaki
2818102550SiwasakiThe 64-bit alignment support is complete.
2819102550Siwasaki
2820102550Siwasaki-------------------------------------------
2821102550SiwasakiSummary of changes for this label: 06_30_00
2822102550Siwasaki
2823102550SiwasakiWith a nod and a tip of the hat to the technology of
2824102550Siwasakiyesteryear, we've added  support in the source code for 80
2825104470Siwasakicolumn output devices.  The code is now mostly  constrained to
2826104470Siwasaki80 columns or less to support environments and editors that 1)
2827104470Siwasakicannot display or print more than 80 characters on a single
2828104470Siwasakiline, and 2) cannot  disable line wrapping.
2829102550Siwasaki
2830104470SiwasakiA major restructuring of the namespace data structure has been
2831104470Siwasakicompleted.  The  result is 1) cleaner and more
2832102550Siwasakiunderstandable/maintainable code, and 2) a  significant
2833102550Siwasakireduction in the dynamic memory requirement for each named
2834102550SiwasakiACPI  object (almost half).
2835102550Siwasaki
2836102550Siwasaki-------------------------------------------
2837102550SiwasakiSummary of changes for this label: 06_23_00
2838102550Siwasaki
2839104470SiwasakiLinux support has been added.  In order to obtain approval to
2840104470Siwasakiget the ACPI CA  subsystem into the Linux kernel, we've had to
2841104470Siwasakimake quite a few changes to the  base subsystem that will
2842104470Siwasakiaffect all users (all the changes are generic and OS-
2843102550Siwasakiindependent).  The effects of these global changes have been
2844104470Siwasakisomewhat far  reaching.  Files have been merged and/or renamed
2845104470Siwasakiand interfaces have been  renamed.   The major changes are
2846104470Siwasakidescribed below.
2847102550Siwasaki
2848102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
2849102550Siwasakipollution/confusion  within our target kernels.  All OSD
2850102550Siwasakiinterfaces must be modified to match the new  naming
2851102550Siwasakiconvention.
2852102550Siwasaki
2853102550SiwasakiFiles merged across the subsystem.  A number of the smaller
2854102550Siwasakisource and header  files have been merged to reduce the file
2855104470Siwasakicount and increase the density of the  existing files.  There
2856104470Siwasakiare too many to list here.  In general, makefiles that  call
2857104470Siwasakiout individual files will require rebuilding.
2858102550Siwasaki
2859104470SiwasakiInterpreter files renamed.  All interpreter files now have the
2860104470Siwasakiprefix am*  instead of ie* and is*.
2861102550Siwasaki
2862104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
2863104470Siwasakiacpiosd.h file is  now acpiosxf.h.  We are removing references
2864104470Siwasakito the acronym "API" since it is  somewhat windowsy. The new
2865104470Siwasakiname is "external interface" or xface or xf in the
2866104470Siwasakifilenames.j
2867102550Siwasaki
2868102550Siwasaki
2869102550SiwasakiAll manifest constants have been forced to upper case (some
2870102550Siwasakiwere mixed case.)   Also, the string "ACPI_" has been
2871102550Siwasakiprepended to many (not all) of the constants,  typedefs, and
2872102550Siwasakistructs.
2873102550Siwasaki
2874102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
2875102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
2876102550Siwasaki
2877102550SiwasakiAll other globals within the subsystem are now prefixed with
2878102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
2879102550Siwasakiprefixed with "Acpi" (with only  a few exceptions).  The
2880104470Siwasakioriginal two-letter abbreviation for the subcomponent  remains
2881104470Siwasakiafter "Acpi" - for example, CmCallocate became
2882102550SiwasakiAcpiCmCallocate.
2883102550Siwasaki
2884102550SiwasakiAdded a source code translation/conversion utility.  Used to
2885102550Siwasakigenerate the Linux  source code, it can be modified to
2886102550Siwasakigenerate other types of source as well. Can  also be used to
2887102550Siwasakicleanup existing source by removing extraneous spaces and
2888102550Siwasakiblank  lines.  Found in tools/acpisrc/*
2889102550Siwasaki
2890102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
2891102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
2892102550Siwasaki
2893102550SiwasakiA "MaxUnits" parameter has been added to
2894104470SiwasakiAcpiOsCreateSemaphore.  When set to  one, this indicates that
2895104470Siwasakithe caller wants to use the semaphore as a mutex, not a
2896102550Siwasakicounting semaphore.  ACPI CA uses both types.  However,
2897102550Siwasakiimplementers of this  call may want to use different OS
2898104470Siwasakiprimitives depending on the type of semaphore  requested.  For
2899104470Siwasakiexample, some operating systems provide separate "mutex" and
2900104470Siwasaki"semaphore" interfaces - where the mutex interface is much
2901104470Siwasakifaster because it  doesn't have all the overhead of a full
2902104470Siwasakisemaphore implementation.
2903102550Siwasaki
2904104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
2905104470Siwasakiaddress space can  block forever if it is the first access to
2906104470Siwasakithe space.
2907102550Siwasaki
2908102550Siwasaki-------------------------------------------
2909102550SiwasakiSummary of changes for this label: 06_02_00
2910102550Siwasaki
2911102550SiwasakiSupport for environments that cannot handle unaligned data
2912102550Siwasakiaccesses (e.g.  firmware and OS environments devoid of
2913102550Siwasakialignment handler technology namely  SAL/EFI and the IA-64
2914102550SiwasakiLinux kernel) has been added (via configurable macros) in
2915102550Siwasakithese three areas: - Transfer of data from the raw AML byte
2916102550Siwasakistream is done via byte moves instead of    word/dword/qword
2917104470Siwasakimoves. - External objects are aligned within the user buffer,
2918104470Siwasakiincluding package   elements (sub-objects). - Conversion of
2919104470Siwasakiname strings to UINT32 Acpi Names is now done byte-wise.
2920102550Siwasaki
2921102550SiwasakiThe Store operator was modified to mimic Microsoft's
2922102550Siwasakiimplementation when storing  to a Buffer Field.
2923102550Siwasaki
2924102550SiwasakiAdded a check of the BM_STS bit before entering C3.
2925102550Siwasaki
2926102550SiwasakiThe methods subdirectory has been obsoleted and removed.  A
2927102550Siwasakinew file, cmeval.c  subsumes the functionality.
2928102550Siwasaki
2929102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
2930102550Siwasakimakefile is under  the acpiexec directory.
2931