changes.txt revision 107325
1102550Siwasaki----------------------------------------
2107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
3104470Siwasaki
4107325Siwasaki1) ACPI CA Core Subsystem:
5107325Siwasaki
6107325SiwasakiFixed a memory leak problem where an error during resolution
7107325Siwasakiof method arguments during a method invocation from another
8107325Siwasakimethod failed to cleanup properly by deleting all successfully
9107325Siwasakiresolved argument objects.
10107325Siwasaki
11107325SiwasakiFixed a problem where the target of the Index() operator was
12107325Siwasakinot correctly constructed if the source object was a package.
13107325SiwasakiThis problem has not been detected because the use of a target
14107325Siwasakioperand with Index() is very rare.
15107325Siwasaki
16107325SiwasakiFixed a problem with the Index() operator where an attempt was
17107325Siwasakimade to delete the operand objects twice.
18107325Siwasaki
19107325SiwasakiFixed a problem where an attempt was made to delete an operand
20107325Siwasakitwice during execution of the CondRefOf() operator if the
21107325Siwasakitarget did not exist.
22107325Siwasaki
23107325SiwasakiImplemented the first of perhaps several internal create
24107325Siwasakiobject functions that create and initialize a specific object
25107325Siwasakitype.  This consolidates duplicated code wherever the object
26107325Siwasakiis created, thus shrinking the size of the subsystem.
27107325Siwasaki
28107325SiwasakiImplemented improved debug/error messages for errors that
29107325Siwasakioccur during nested method invocations.  All executing method
30107325Siwasakipathnames are displayed (with the error) as the call stack is
31107325Siwasakiunwound - thus simplifying debug.
32107325Siwasaki
33107325SiwasakiFixed a problem introduced in the 10/02 release that caused
34107325Siwasakipremature deletion of a buffer object if a buffer was used as
35107325Siwasakian ASL operand where an integer operand is required (Thus
36107325Siwasakicausing an implicit object conversion from Buffer to Integer.)
37107325SiwasakiThe change in the 10/02 release was attempting to fix a memory
38107325Siwasakileak (albeit incorrectly.)
39107325Siwasaki
40107325SiwasakiCode and Data Size: Current core subsystem library sizes are
41107325Siwasakishown below.  These are the code and data sizes for the
42107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
43107325Siwasakiand these values do not include any ACPI driver or OSPM code.
44107325SiwasakiThe debug version of the code includes the debug output trace
45107325Siwasakimechanism and has a much larger code and data size.  Note that
46107325Siwasakithese values will vary depending on the efficiency of the
47107325Siwasakicompiler and the compiler options used during generation.
48107325Siwasaki
49107325Siwasaki  Previous Release
50107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
51107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
52107325Siwasaki  Current Release:
53107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
54107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
55107325Siwasaki
56107325Siwasaki
57107325Siwasaki2) Linux
58107325Siwasaki
59107325SiwasakiChanged the implementation of the ACPI semaphores to use
60107325Siwasakidown() instead of down_interruptable().  It is important that
61107325Siwasakithe execution of ACPI control methods not be interrupted by
62107325Siwasakisignals.  Methods must run to completion, or the system may be
63107325Siwasakileft in an unknown/unstable state.
64107325Siwasaki
65107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
66107325Siwasakiset. (Shawn Starr)
67107325Siwasaki
68107325Siwasaki
69107325Siwasaki3) iASL Compiler/Disassembler
70107325Siwasaki
71107325SiwasakiChanged the default location of output files.  All output
72107325Siwasakifiles are now placed in the current directory by default
73107325Siwasakiinstead of in the directory of the source file.  This change
74107325Siwasakimay affect some existing makefiles, but it brings the behavior
75107325Siwasakiof the compiler in line with other similar tools.  The
76107325Siwasakilocation of the output files can be overridden with the -p
77107325Siwasakicommand line switch.
78107325Siwasaki
79107325Siwasaki
80107325Siwasaki----------------------------------------
81107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
82107325Siwasaki
83107325Siwasaki
84107325Siwasaki0) ACPI Specification 2.0B is released and is now available
85107325Siwasakiat:  http://www.acpi.info/index.html
86107325Siwasaki
87107325Siwasaki
88107325Siwasaki1) ACPI CA Core Subsystem:
89107325Siwasaki
90107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
91107325SiwasakiThis includes the early detection and handoff of the request
92107325Siwasakito the SMBus region handler (avoiding all of the complex field
93107325Siwasakisupport code), and support for the bidirectional return packet
94107325Siwasakifrom an SMBus write operation.  This paves the way for the
95107325Siwasakidevelopment of SMBus drivers in each host operating system.
96107325Siwasaki
97107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
98107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
99107325Siwasakispecification.  This had the side effect of causing ASL
100107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
101107325Siwasakiforever.  Changed all internal references to the ACPI timeout
102107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
103107325Siwasakiname of WAIT_FOREVER to ACPI_WAIT_FOREVER.
104107325Siwasaki
105107325SiwasakiCode and Data Size: Current core subsystem library sizes are
106107325Siwasakishown below.  These are the code and data sizes for the
107107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
108107325Siwasakiand these values do not include any ACPI driver or OSPM code.
109107325SiwasakiThe debug version of the code includes the debug output trace
110107325Siwasakimechanism and has a much larger code and data size.  Note that
111107325Siwasakithese values will vary depending on the efficiency of the
112107325Siwasakicompiler and the compiler options used during generation.
113107325Siwasaki
114107325Siwasaki  Previous Release
115107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
116107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
117107325Siwasaki  Current Release:
118107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
119107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
120107325Siwasaki
121107325Siwasaki
122107325Siwasaki2) Linux
123107325Siwasaki
124107325SiwasakiModule loading/unloading fixes (John Cagle)
125107325Siwasaki
126107325Siwasaki
127107325Siwasaki3) iASL Compiler/Disassembler
128107325Siwasaki
129107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
130107325Siwasaki
131107325SiwasakiImplemented support for the disassembly of all SMBus protocol
132107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
133107325Siwasaki
134107325Siwasaki----------------------------------------
135107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
136107325Siwasaki
137107325Siwasaki
138107325Siwasaki1) ACPI CA Core Subsystem:
139107325Siwasaki
140107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
141107325SiwasakiGPE0 block were not handled correctly.  This resulted in a
142107325Siwasaki"GPE overlap" error message.  GPE0 is no longer required.
143107325Siwasaki
144107325SiwasakiRemoved code added in the previous release that inserted nodes
145107325Siwasakiinto the namespace in alphabetical order.  This caused some
146107325Siwasakiside-effects on various machines.  The root cause of the
147107325Siwasakiproblem is still under investigation since in theory, the
148107325Siwasakiinternal ordering of the namespace nodes should not matter.
149107325Siwasaki
150107325SiwasakiEnhanced error reporting for the case where a named object is
151107325Siwasakinot found during control method execution.  The full ACPI
152107325Siwasakinamepath (name reference) of the object that was not found is
153107325Siwasakidisplayed in this case.
154107325Siwasaki
155107325SiwasakiNote: as a result of the overhaul of the namespace object
156107325Siwasakitypes in the previous release, the namespace nodes for the
157107325Siwasakipredefined scopes (_TZ, _PR, etc.) are now of the type
158107325SiwasakiACPI_TYPE_LOCAL_SCOPE instead of ACPI_TYPE_ANY.  This
159107325Siwasakisimplifies the namespace management code but may affect code
160107325Siwasakithat walks the namespace tree looking for specific object
161107325Siwasakitypes.
162107325Siwasaki
163107325SiwasakiCode and Data Size: Current core subsystem library sizes are
164107325Siwasakishown below.  These are the code and data sizes for the
165107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
166107325Siwasakiand these values do not include any ACPI driver or OSPM code.
167107325SiwasakiThe debug version of the code includes the debug output trace
168107325Siwasakimechanism and has a much larger code and data size.  Note that
169107325Siwasakithese values will vary depending on the efficiency of the
170107325Siwasakicompiler and the compiler options used during generation.
171107325Siwasaki
172107325Siwasaki  Previous Release
173107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
174107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
175107325Siwasaki  Current Release:
176107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
177107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
178107325Siwasaki
179107325Siwasaki
180107325Siwasaki2) Linux
181107325Siwasaki
182107325SiwasakiFixed a problem introduced in the previous release where the
183107325SiwasakiProcessor and Thermal objects were not recognized and
184107325Siwasakiinstalled in /proc.  This was related to the scope type change
185107325Siwasakidescribed above.
186107325Siwasaki
187107325Siwasaki
188107325Siwasaki3) iASL Compiler/Disassembler
189107325Siwasaki
190107325SiwasakiImplemented the -g option to get all of the required ACPI
191107325Siwasakitables from the registry and save them to files (Windows
192107325Siwasakiversion of the compiler only.)  The required tables are the
193107325SiwasakiFADT, FACS, and DSDT.
194107325Siwasaki
195107325SiwasakiAdded ACPI table checksum validation during table disassembly
196107325Siwasakiin order to catch corrupted tables.
197107325Siwasaki
198107325Siwasaki
199107325Siwasaki----------------------------------------
200107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
201107325Siwasaki
202107325Siwasaki1) ACPI CA Core Subsystem:
203107325Siwasaki
204107325SiwasakiImplemented a restriction on the Scope operator that the
205107325Siwasakitarget must already exist in the namespace at the time the
206107325Siwasakioperator is encountered (during table load or method
207107325Siwasakiexecution).  In other words, forward references are not
208107325Siwasakiallowed and Scope() cannot create a new object. This changes
209107325Siwasakithe previous behavior where the interpreter would create the
210107325Siwasakiname if not found.  This new behavior correctly enables the
211107325Siwasakisearch-to-root algorithm during namespace lookup of the target
212107325Siwasakiname.  Because of this upsearch, this fixes the known Compaq
213107325Siwasaki_SB_.OKEC problem and makes both the AML interpreter and iASL
214107325Siwasakicompiler compatible with other ACPI implementations.
215107325Siwasaki
216107325SiwasakiCompleted a major overhaul of the internal ACPI object types
217107325Siwasakifor the ACPI Namespace and the associated operand objects.
218107325SiwasakiMany of these types had become obsolete with the introduction
219107325Siwasakiof the two-pass namespace load.  This cleanup simplifies the
220107325Siwasakicode and makes the entire namespace load mechanism much
221107325Siwasakiclearer and easier to understand.
222107325Siwasaki
223107325SiwasakiImproved debug output for tracking scope opening/closing to
224107325Siwasakihelp diagnose scoping issues.  The old scope name as well as
225107325Siwasakithe new scope name are displayed.  Also improved error
226107325Siwasakimessages for problems with ASL Mutex objects and error
227107325Siwasakimessages for GPE problems.
228107325Siwasaki
229107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
230107325Siwasaki
231107325SiwasakiAll string output (for all namespace/object dumps) now uses
232107325Siwasakithe common ACPI string output procedure which handles escapes
233107325Siwasakiproperly and does not emit non-printable characters.
234107325Siwasaki
235107325SiwasakiFixed some issues with constants in the 64-bit version of the
236107325Siwasakilocal C library (utclib.c)
237107325Siwasaki
238107325Siwasaki
239107325Siwasaki2) Linux
240107325Siwasaki
241107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
242107325Siwasakiinterrupt level.
243107325Siwasaki
244107325Siwasaki
245107325Siwasaki3) iASL Compiler/Disassembler
246107325Siwasaki
247107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
248107325Siwasakiand 2 opcodes outside of a control method.  This means that
249107325Siwasakithe "executable" operators (versus the "namespace" operators)
250107325Siwasakicannot be used at the table level; they can only be used
251107325Siwasakiwithin a control method.
252107325Siwasaki
253107325SiwasakiImplemented the restriction on the Scope() operator where the
254107325Siwasakitarget must already exist in the namespace at the time the
255107325Siwasakioperator is encountered (during ASL compilation). In other
256107325Siwasakiwords, forward references are not allowed and Scope() cannot
257107325Siwasakicreate a new object.  This makes the iASL compiler compatible
258107325Siwasakiwith other ACPI implementations and makes the Scope()
259107325Siwasakiimplementation adhere to the ACPI specification.
260107325Siwasaki
261107325SiwasakiFixed a problem where namepath optimization for the Alias
262107325Siwasakioperator was optimizing the wrong path (of the two namepaths.)
263107325SiwasakiThis caused a "Missing alias link" error message.
264107325Siwasaki
265107325SiwasakiFixed a problem where an "unknown reserved name" warning could
266107325Siwasakibe incorrectly generated for names like "_SB" when the
267107325Siwasakitrailing underscore is not used in the original ASL.
268107325Siwasaki
269107325SiwasakiFixed a problem where the reserved name check did not handle
270107325SiwasakiNamePaths with multiple NameSegs correctly.  The first nameseg
271107325Siwasakiof the NamePath was examined instead of the last NameSeg.
272107325Siwasaki
273107325Siwasaki
274107325Siwasaki----------------------------------------
275107325Siwasaki
276104470Siwasaki02 October 2002.  Summary of changes for this release.
277104470Siwasaki
278104470Siwasaki
279104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
280104470Siwasaki
281104470SiwasakiFixed a problem where a store/copy of a string to an existing
282104470Siwasakistring did not always set the string length properly in the
283104470SiwasakiString object.
284104470Siwasaki
285104470SiwasakiFixed a reported problem with the ToString operator where the
286104470Siwasakibehavior was identical to the ToHexString operator instead of
287104470Siwasakijust simply converting a raw buffer to a string data type.
288104470Siwasaki
289104470SiwasakiFixed a problem where CopyObject and the other "explicit"
290104470Siwasakiconversion operators were not updating the internal namespace
291104470Siwasakinode type as part of the store operation.
292104470Siwasaki
293104470SiwasakiFixed a memory leak during implicit source operand conversion
294104470Siwasakiwhere the original object was not deleted if it was converted
295104470Siwasakito a new object of a different type.
296104470Siwasaki
297104470SiwasakiEnhanced error messages for all problems associated with
298104470Siwasakinamespace lookups.  Common procedure generates and prints the
299104470Siwasakilookup name as well as the formatted status.
300104470Siwasaki
301104470SiwasakiCompleted implementation of a new design for the Alias support
302104470Siwasakiwithin the namespace.  The existing design did not handle the
303104470Siwasakicase where a new object was assigned to one of the two names
304104470Siwasakidue to the use of an explicit conversion operator, resulting
305104470Siwasakiin the two names pointing to two different objects.  The new
306104470Siwasakidesign simply points the Alias name to the original name node
307104470Siwasaki- not to the object.  This results in a level of indirection
308104470Siwasakithat must be handled in the name resolution mechanism.
309104470Siwasaki
310104470SiwasakiCode and Data Size: Current core subsystem library sizes are
311104470Siwasakishown below.  These are the code and data sizes for the
312104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
313104470Siwasakiand these values do not include any ACPI driver or OSPM code.
314104470SiwasakiThe debug version of the code includes the debug output trace
315104470Siwasakimechanism and has a larger code and data size.  Note that
316104470Siwasakithese values will vary depending on the efficiency of the
317104470Siwasakicompiler and the compiler options used during generation.
318104470Siwasaki
319104470Siwasaki  Previous Release
320104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
321104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
322104470Siwasaki  Current Release:
323104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
324104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
325104470Siwasaki
326104470Siwasaki
327104470Siwasaki2) Linux
328104470Siwasaki
329104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
330104470SiwasakiNeumann)
331104470Siwasaki
332104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
333104470Siwasaki
334104470SiwasakiFix thermal management and make trip points. R/W (Pavel
335104470SiwasakiMachek)
336104470Siwasaki
337104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
338104470Siwasaki
339104470SiwasakiIA64 fixes. (David Mosberger)
340104470Siwasaki
341104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
342104470Siwasaki
343104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
344104470SiwasakiBrodowski)
345104470Siwasaki
346104470Siwasaki
347104470Siwasaki3) iASL Compiler/Disassembler
348104470Siwasaki
349104470SiwasakiClarified some warning/error messages.
350104470Siwasaki
351104470Siwasaki
352104470Siwasaki----------------------------------------
353104470Siwasaki18 September 2002.  Summary of changes for this release.
354104470Siwasaki
355104470Siwasaki
356104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
357104470Siwasaki
358104470SiwasakiFixed a reported problem with reference chaining (via the
359104470SiwasakiIndex() and RefOf() operators) in the ObjectType() and
360104470SiwasakiSizeOf() operators.  The definition of these operators
361104470Siwasakiincludes the dereferencing of all chained references to return
362104470Siwasakiinformation on the base object.
363104470Siwasaki
364104470SiwasakiFixed a problem with stores to indexed package elements - the
365104470Siwasakiexisting code would not complete the store if an "implicit
366104470Siwasakiconversion" was not performed.  In other words, if the
367104470Siwasakiexisting object (package element) was to be replaced
368104470Siwasakicompletely, the code didn't handle this case.
369104470Siwasaki
370104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
371104470Siwasakitarget name to refer to an object of type Integer, String, or
372104470SiwasakiBuffer, in addition to the scoping object types (Device,
373104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
374104470SiwasakiThis allows existing AML code that has workarounds for a bug
375104470Siwasakiin Windows to function properly.  A warning is issued,
376104470Siwasakihowever.  This affects both the AML interpreter and the iASL
377104470Siwasakicompiler. Below is an example of this type of ASL code:
378104470Siwasaki
379104470Siwasaki      Name(DEB,0x00)
380104470Siwasaki      Scope(DEB)
381104470Siwasaki      {
382104470Siwasaki
383104470SiwasakiFixed some reported problems with 64-bit integer support in
384104470Siwasakithe local implementation of C library functions (clib.c)
385104470Siwasaki
386104470Siwasaki
387104470Siwasaki2) Linux
388104470Siwasaki
389104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
390104470Siwasakiundefined in non-SMP.
391104470Siwasaki
392104470SiwasakiEnsure that the SCI has the proper polarity and trigger, even
393104470Siwasakion systems that do not have an interrupt override entry in the
394104470SiwasakiMADT.
395104470Siwasaki
396104470Siwasaki2.5 big driver reorganization (Pat Mochel)
397104470Siwasaki
398104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
399104470Siwasaki
400104470SiwasakiNew blacklist entries (Andi Kleen)
401104470Siwasaki
402104470SiwasakiBlacklist improvements. Split blacklist code out into a
403104470Siwasakiseparate file. Move checking the blacklist to very early.
404104470SiwasakiPreviously, we would use ACPI tables, and then halfway through
405104470Siwasakiinit, check the blacklist -- too late. Now, it's early enough
406104470Siwasakito completely fall-back to non-ACPI.
407104470Siwasaki
408104470Siwasaki
409104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
410104470Siwasaki
411104470SiwasakiFixed a problem where the typechecking code didn't know that
412104470Siwasakian alias could point to a method.  In other words, aliases
413104470Siwasakiwere not being dereferenced during typechecking.
414104470Siwasaki
415104470Siwasaki
416104470Siwasaki----------------------------------------
417104470Siwasaki29 August 2002.  Summary of changes for this release.
418104470Siwasaki
419104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
420104470Siwasaki
421104470SiwasakiIf the target of a Scope() operator already exists, it must be
422104470Siwasakian object type that actually opens a scope -- such as a
423104470SiwasakiDevice, Method, Scope, etc.  This is a fatal runtime error.
424104470SiwasakiSimilar error check has been added to the iASL compiler also.
425104470Siwasaki
426104470SiwasakiTightened up the namespace load to disallow multiple names in
427104470Siwasakithe same scope.  This previously was allowed if both objects
428104470Siwasakiwere of the same type.  (i.e., a lookup was the same as
429104470Siwasakientering a new name).
430104470Siwasaki
431104470Siwasaki
432104470Siwasaki2) Linux
433104470Siwasaki
434104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
435104470Siwasakipolarity.
436104470Siwasaki
437104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
438104470Siwasaki
439104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
440104470Siwasakiinterpreter *or* the tables.
441104470Siwasaki
442104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
443104470Siwasaki(Kochi Takayoshi)
444104470Siwasaki
445104470Siwasaki
446104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
447104470Siwasaki
448104470SiwasakiImplemented namepath optimization for name declarations.  For
449104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
450104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
451104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
452104470Siwasakireference path optimization first released in the previous
453104470Siwasakiversion. This would seem to complete all possible
454104470Siwasakioptimizations for namepaths within the ASL/AML.
455104470Siwasaki
456104470SiwasakiIf the target of a Scope() operator already exists, it must be
457104470Siwasakian object type that actually opens a scope -- such as a
458104470SiwasakiDevice, Method, Scope, etc.
459104470Siwasaki
460104470SiwasakiImplemented a check and warning for unreachable code in the
461104470Siwasakisame block below a Return() statement.
462104470Siwasaki
463104470SiwasakiFixed a problem where the listing file was not generated if
464104470Siwasakithe compiler aborted if the maximum error count was exceeded
465104470Siwasaki(200).
466104470Siwasaki
467104470SiwasakiFixed a problem where the typechecking of method return values
468104470Siwasakiwas broken.  This includes the check for a return value when
469104470Siwasakithe method is invoked as a TermArg (a return value is
470104470Siwasakiexpected.)
471104470Siwasaki
472104470SiwasakiFixed a reported problem where EOF conditions during a quoted
473104470Siwasakistring or comment caused a fault.
474104470Siwasaki
475104470Siwasaki
476104470Siwasaki----------------------------------------
477102550Siwasaki15 August 2002.  Summary of changes for this release.
478102550Siwasaki
479102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
480102550Siwasaki
481102550SiwasakiFixed a reported problem where a Store to a method argument
482102550Siwasakithat contains a reference did not perform the indirect store
483104470Siwasakicorrectly.  This problem was created during the conversion to
484104470Siwasakithe new reference object model - the indirect store to a
485104470Siwasakimethod argument code was not updated to reflect the new model.
486102550Siwasaki
487102550SiwasakiReworked the ACPI mode change code to better conform to ACPI
488102550Siwasaki2.0, handle corner cases, and improve code legibility (Kochi
489102550SiwasakiTakayoshi)
490102550Siwasaki
491102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
492102550Siwasakiprefix.  The heavy use of the carat operator by the new
493104470Siwasakinamepath optimization in the iASL compiler uncovered a problem
494104470Siwasakiwith the AML interpreter handling of this prefix.  In the case
495104470Siwasakiwhere one or more carats precede a single nameseg, the nameseg
496104470Siwasakiwas treated as standalone and the search rule (to root) was
497104470Siwasakiinadvertently applied.  This could cause both the iASL
498104470Siwasakicompiler and the interpreter to find the wrong object or to
499104470Siwasakimiss the error that should occur if the object does not exist
500104470Siwasakiat that exact pathname.
501102550Siwasaki
502102550SiwasakiFound and fixed the problem where the HP Pavilion DSDT would
503102550Siwasakinot load.  This was a relatively minor tweak to the table
504102550Siwasakiloading code (a problem caused by the unexpected encounter
505104470Siwasakiwith a method invocation not within a control method), but it
506104470Siwasakidoes not solve the overall issue of the execution of AML code
507104470Siwasakiat the table level.  This investigation is still ongoing.
508102550Siwasaki
509102550SiwasakiCode and Data Size: Current core subsystem library sizes are
510102550Siwasakishown below.  These are the code and data sizes for the
511104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
512104470Siwasakiand these values do not include any ACPI driver or OSPM code.
513104470SiwasakiThe debug version of the code includes the debug output trace
514104470Siwasakimechanism and has a larger code and data size.  Note that
515104470Siwasakithese values will vary depending on the efficiency of the
516104470Siwasakicompiler and the compiler options used during generation.
517102550Siwasaki
518102550Siwasaki  Previous Release
519104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
520104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
521102550Siwasaki  Current Release:
522104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
523104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
524102550Siwasaki
525102550Siwasaki
526102550Siwasaki2) Linux
527102550Siwasaki
528102550SiwasakiRemove redundant slab.h include (Brad Hards)
529102550Siwasaki
530102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
531102550Siwasaki
532102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
533102550Siwasaki
534104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
535104470SiwasakiMachek)
536102550Siwasaki
537102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
538102550Siwasaki
539102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
540102550Siwasaki
541102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
542102550Siwasaki
543102550Siwasaki
544102550Siwasaki3) iASL Compiler/Disassembler
545102550Siwasaki
546104470SiwasakiReworked the compiler options to make them more consistent and
547104470Siwasakito use two-letter options where appropriate.  We were running
548104470Siwasakiout of sensible letters.   This may break some makefiles, so
549104470Siwasakicheck the current options list by invoking the compiler with
550104470Siwasakino parameters.
551102550Siwasaki
552102550SiwasakiCompleted the design and implementation of the ASL namepath
553102550Siwasakioptimization option for the compiler.  This option optimizes
554104470Siwasakiall references to named objects to the shortest possible path.
555104470SiwasakiThe first attempt tries to utilize a single nameseg (4
556104470Siwasakicharacters) and the "search-to-root" algorithm used by the
557104470Siwasakiinterpreter.  If that cannot be used (because either the name
558104470Siwasakiis not in the search path or there is a conflict with another
559104470Siwasakiobject with the same name), the pathname is optimized using
560104470Siwasakithe carat prefix (usually a shorter string than specifying the
561104470Siwasakientire path from the root.)
562102550Siwasaki
563102550SiwasakiImplemented support to obtain the DSDT from the Windows
564102550Siwasakiregistry (when the disassembly option is specified with no
565102550Siwasakiinput file).  Added this code as the implementation for
566102550SiwasakiAcpiOsTableOverride in the Windows OSL.  Migrated the 16-bit
567102550Siwasakicode (used in the AcpiDump utility) to scan memory for the
568102550SiwasakiDSDT to the AcpiOsTableOverride function in the DOS OSL to
569102550Siwasakimake the disassembler truly OS independent.
570102550Siwasaki
571102550SiwasakiImplemented a new option to disassemble and compile in one
572102550Siwasakistep.  When used without an input filename, this option will
573102550Siwasakigrab the DSDT from the local machine, disassemble it, and
574102550Siwasakicompile it in one step.
575102550Siwasaki
576102550SiwasakiAdded a warning message for invalid escapes (a backslash
577102550Siwasakifollowed by any character other than the allowable escapes).
578104470SiwasakiThis catches the quoted string error "\_SB_" (which should be
579104470Siwasaki"\\_SB_" ).  Also, there are numerous instances in the ACPI
580104470Siwasakispecification where this error occurs.
581102550Siwasaki
582104470SiwasakiAdded a compiler option to disable all optimizations.  This is
583104470Siwasakibasically the "compatibility mode" because by using this
584102550Siwasakioption, the AML code will come out exactly the same as other
585102550SiwasakiASL compilers.
586102550Siwasaki
587102550SiwasakiAdded error messages for incorrectly ordered dependent
588102550Siwasakiresource functions.  This includes: missing EndDependentFn
589102550Siwasakimacro at end of dependent resource list, nested dependent
590102550Siwasakifunction macros (both start and end), and missing
591102550SiwasakiStartDependentFn macro.  These are common errors that should
592102550Siwasakibe caught at compile time.
593102550Siwasaki
594102550SiwasakiImplemented _OSI support for the disassembler and compiler.
595104470Siwasaki_OSI must be included in the namespace for proper disassembly
596104470Siwasaki(because the disassembler must know the number of arguments.)
597102550Siwasaki
598104470SiwasakiAdded an "optimization" message type that is optional (off by
599104470Siwasakidefault).  This message is used for all optimizations -
600104470Siwasakiincluding constant folding, integer optimization, and namepath
601104470Siwasakioptimization.
602102550Siwasaki
603102550Siwasaki----------------------------------------
604102550Siwasaki25 July 2002.  Summary of changes for this release.
605102550Siwasaki
606102550Siwasaki
607102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
608102550Siwasaki
609102550SiwasakiThe AML Disassembler has been enhanced to produce compilable
610102550SiwasakiASL code and has been integrated into the iASL compiler (see
611102550Siwasakibelow) as well as the single-step disassembly for the AML
612102550Siwasakidebugger and the disassembler for the AcpiDump utility.  All
613102550SiwasakiACPI 2.0A opcodes, resource templates and macros are fully
614102550Siwasakisupported.  The disassembler has been tested on over 30
615102550Siwasakidifferent AML files, producing identical AML when the
616102550Siwasakiresulting disassembled ASL file is recompiled with the same
617102550SiwasakiASL compiler.
618102550Siwasaki
619102550SiwasakiModified the Resource Manager to allow zero interrupts and
620102550Siwasakizero dma channels during the GetCurrentResources call.  This
621102550Siwasakiwas causing problems on some platforms.
622102550Siwasaki
623102550SiwasakiAdded the AcpiOsRedirectOutput interface to the OSL to
624102550Siwasakisimplify output redirection for the AcpiOsPrintf and
625102550SiwasakiAcpiOsVprintf interfaces.
626102550Siwasaki
627102550SiwasakiCode and Data Size: Current core subsystem library sizes are
628102550Siwasakishown below.  These are the code and data sizes for the
629104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
630104470Siwasakiand these values do not include any ACPI driver or OSPM code.
631104470SiwasakiThe debug version of the code includes the debug output trace
632104470Siwasakimechanism and has a larger code and data size.  Note that
633104470Siwasakithese values will vary depending on the efficiency of the
634104470Siwasakicompiler and the compiler options used during generation.
635102550Siwasaki
636102550Siwasaki  Previous Release
637104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
638104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
639102550Siwasaki  Current Release:
640104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
641104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
642102550Siwasaki
643102550Siwasaki
644102550Siwasaki2) Linux
645102550Siwasaki
646102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
647102550Siwasaki
648102550SiwasakiImplemented checksum of the R/XSDT itself during Linux table
649102550Siwasakiscan (Richard Schaal)
650102550Siwasaki
651102550Siwasaki
652102550Siwasaki3) iASL compiler
653102550Siwasaki
654102550SiwasakiThe AML disassembler is integrated into the compiler.  The "-
655104470Siwasakid" option invokes the disassembler  to completely disassemble
656104470Siwasakian input AML file, producing as output a text ASL file with
657104470Siwasakithe extension ".dsl" (to avoid name collisions with existing
658104470Siwasaki.asl source files.)  A future enhancement will allow the
659104470Siwasakidisassembler to obtain the BIOS DSDT from the registry under
660104470SiwasakiWindows.
661102550Siwasaki
662102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
663102550Siwasakidescriptors where an invalid AML sequence was created.
664102550Siwasaki
665102550SiwasakiImplemented a fix for BufferData term in the ASL parser.  It
666102550Siwasakiwas inadvertently defined twice, allowing invalid syntax to
667102550Siwasakipass and causing reduction conflicts.
668102550Siwasaki
669104470SiwasakiFixed a problem where the Ones opcode could get converted to a
670104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
671104470Siwasakivalue was expected.  The 64-bit value is now truncated to the
672104470Siwasakicorrect size with the correct value.
673102550Siwasaki
674102550Siwasaki
675102550Siwasaki----------------------------------------
676102550Siwasaki02 July 2002.  Summary of changes for this release.
677102550Siwasaki
678102550Siwasaki
679102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
680102550Siwasaki
681102550SiwasakiThe Table Manager code has been restructured to add several
682102550Siwasakinew features.  Tables that are not required by the core
683102550Siwasakisubsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
684102550Siwasakino longer validated in any way and are returned from
685102550SiwasakiAcpiGetFirmwareTable if requested.  The AcpiOsTableOverride
686102550Siwasakiinterface is now called for each table that is loaded by the
687104470Siwasakisubsystem in order to allow the host to override any table it
688104470Siwasakichooses.  Previously, only the DSDT could be overridden.
689102550SiwasakiAdded one new files, tbrsdt.c and tbgetall.c.
690102550Siwasaki
691102550SiwasakiFixed a problem with the conversion of internal package
692104470Siwasakiobjects to external objects (when a package is returned from a
693104470Siwasakicontrol method.)  The return buffer length was set to zero
694102550Siwasakiinstead of the proper length of the package object.
695102550Siwasaki
696104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
697104470Siwasakioperators when passing reference arguments to control methods.
698104470SiwasakiA new type of Reference object is used internally for
699104470Siwasakireferences produced by the RefOf operator.
700102550Siwasaki
701102550SiwasakiAdded additional error messages in the Resource Manager to
702102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource
703102550Siwasakiparsing.
704102550Siwasaki
705104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
706104470Siwasakifiner granularity initialization sequence.  These two calls
707104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags),
708104470SiwasakiAcpiInitializeObjects (flags).  The flags parameter remains
709104470Siwasakithe same.
710102550Siwasaki
711102550Siwasaki
712102550Siwasaki2) Linux
713102550Siwasaki
714104470SiwasakiUpdated the ACPI utilities module to understand the new style
715104470Siwasakiof fully resolved package objects that are now returned from
716104470Siwasakithe core subsystem.  This eliminates errors of the form:
717102550Siwasaki
718102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
719102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
720102550Siwasaki        Invalid element in package (not a device reference)
721102550Siwasaki
722102550SiwasakiThe method evaluation utility uses the new buffer allocation
723102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
724102550Siwasaki
725102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
726102550SiwasakiController before the namespace has been fully initialized,
727104470Siwasakiwhich is necessary for ACPI 2.0 support, and for some laptops
728104470Siwasakito initialize properly. (Laptops using ECDT are still rare, so
729104470Siwasakionly limited testing was performed of the added
730104470Siwasakifunctionality.)
731102550Siwasaki
732102550SiwasakiFixed memory leaks in the EC driver.
733102550Siwasaki
734102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
735102550Siwasaki
736104470SiwasakiEliminated the acpi_evaluate() helper function in utils.c. It
737104470Siwasakiis no longer needed since acpi_evaluate_object can optionally
738104470Siwasakiallocate memory for the return object.
739102550Siwasaki
740102550SiwasakiImplemented fix for keyboard hang when getting battery
741102550Siwasakireadings on some systems (Stephen White)
742102550Siwasaki
743102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
744102550Siwasaki
745102550SiwasakiFix an ifdef to allow compilation on UP with LAPIC but no
746102550SiwasakiIOAPIC support
747102550Siwasaki
748102550Siwasaki----------------------------------------
749102550Siwasaki11 June 2002.  Summary of changes for this release.
750102550Siwasaki
751102550Siwasaki
752102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
753102550Siwasaki
754104470SiwasakiFixed a reported problem where constants such as Zero and One
755104470Siwasakiappearing within _PRT packages were not handled correctly
756104470Siwasakiwithin the resource manager code.  Originally reported against
757104470Siwasakithe ASL compiler because the code generator now optimizes
758104470Siwasakiintegers to their minimal AML representation (i.e. AML
759104470Siwasakiconstants if possible.)  The _PRT code now handles all AML
760104470Siwasakiconstant opcodes correctly (Zero, One, Ones, Revision).
761102550Siwasaki
762102550SiwasakiFixed a problem with the Concatenate operator in the AML
763102550Siwasakiinterpreter where a buffer result object was incorrectly
764102550Siwasakimarked as not fully evaluated, causing a run-time error of
765102550SiwasakiAE_AML_INTERNAL.
766102550Siwasaki
767104470SiwasakiAll package sub-objects are now fully resolved before they are
768104470Siwasakireturned from the external ACPI interfaces.  This means that
769104470Siwasakiname strings are resolved to object handles, and constant
770104470Siwasakioperators (Zero, One, Ones, Revision) are resolved to
771104470SiwasakiIntegers.
772102550Siwasaki
773102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
774104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
775104470Siwasakiwithin the AML stream. This has simplified and reduced the
776104470Siwasakigenerated code size of the subsystem by eliminating about 10
777104470Siwasakiswitch statements for these constants (which previously were
778104470Siwasakicontained in Reference objects.)  The complicating issues are
779104470Siwasakithat the Zero opcode is used as a "placeholder" for
780104470Siwasakiunspecified optional target operands and stores to constants
781104470Siwasakiare defined to be no-ops.
782102550Siwasaki
783102550SiwasakiCode and Data Size: Current core subsystem library sizes are
784102550Siwasakishown below. These are the code and data sizes for the
785104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
786104470Siwasakiand these values do not include any ACPI driver or OSPM code.
787104470SiwasakiThe debug version of the code includes the debug output trace
788104470Siwasakimechanism and has a larger code and data size.  Note that
789104470Siwasakithese values will vary depending on the efficiency of the
790104470Siwasakicompiler and the compiler options used during generation.
791102550Siwasaki
792102550Siwasaki  Previous Release
793104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
794104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
795102550Siwasaki  Current Release:
796104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
797104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
798102550Siwasaki
799102550Siwasaki
800102550Siwasaki2) Linux
801102550Siwasaki
802104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
803104470Siwasakibridges (Bjorn Helgaas).
804102550Siwasaki
805102550Siwasaki
806102550Siwasaki3) iASL Compiler Version X2046:
807102550Siwasaki
808104470SiwasakiFixed a problem where the "_DDN" reserved name was defined to
809104470Siwasakibe a control method with one argument.  There are no
810102550Siwasakiarguments, and _DDN does not have to be a control method.
811102550Siwasaki
812102550SiwasakiFixed a problem with the Linux version of the compiler where
813102550Siwasakithe source lines printed with error messages were the wrong
814104470Siwasakilines.  This turned out to be the "LF versus CR/LF" difference
815104470Siwasakibetween Windows and Unix.  This appears to be the longstanding
816104470Siwasakiissue concerning listing output and error messages.
817102550Siwasaki
818102550SiwasakiFixed a problem with the Linux version of compiler where
819102550Siwasakiopcode names within error messages were wrong.  This was
820102550Siwasakicaused by a slight difference in the output of the Flex tool
821102550Siwasakion Linux versus Windows.
822102550Siwasaki
823102550SiwasakiFixed a problem with the Linux compiler where the hex output
824104470Siwasakifiles contained some garbage data caused by an internal buffer
825104470Siwasakioverrun.
826102550Siwasaki
827102550Siwasaki
828102550Siwasaki----------------------------------------
829102550Siwasaki17 May 2002.  Summary of changes for this release.
830102550Siwasaki
831102550Siwasaki
832102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
833102550Siwasaki
834102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
835104470SiwasakiOmniBook where the FADT revision number and the table size are
836104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
837104470Siwasakinew behavior is to fallback to using only the ACPI 1.0 fields
838104470Siwasakiof the FADT if the table is too small to be a ACPI 2.0 table
839104470Siwasakias claimed by the revision number.  Although this is a BIOS
840104470Siwasakibug, this is a case where the workaround is simple enough and
841104470Siwasakiwith no side effects, so it seemed prudent to add it.  A
842104470Siwasakiwarning message is issued, however.
843102550Siwasaki
844102550SiwasakiImplemented minimum size checks for the fixed-length ACPI
845102550Siwasakitables -- the FADT and FACS, as well as consistency checks
846102550Siwasakibetween the revision number and the table size.
847102550Siwasaki
848102550SiwasakiFixed a reported problem in the table override support where
849102550Siwasakithe new table pointer was incorrectly treated as a physical
850102550Siwasakiaddress instead of a logical address.
851102550Siwasaki
852104470SiwasakiEliminated the use of the AE_AML_ERROR exception and replaced
853104470Siwasakiit with more descriptive codes.
854102550Siwasaki
855104470SiwasakiFixed a problem where an exception would occur if an ASL Field
856104470Siwasakiwas defined with no named Field Units underneath it (used by
857104470Siwasakisome index fields).
858102550Siwasaki
859102550SiwasakiCode and Data Size: Current core subsystem library sizes are
860102550Siwasakishown below.  These are the code and data sizes for the
861104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
862104470Siwasakiand these values do not include any ACPI driver or OSPM code.
863104470SiwasakiThe debug version of the code includes the debug output trace
864104470Siwasakimechanism and has a larger code and data size.  Note that
865104470Siwasakithese values will vary depending on the efficiency of the
866104470Siwasakicompiler and the compiler options used during generation.
867102550Siwasaki
868102550Siwasaki  Previous Release
869104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
870104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
871102550Siwasaki  Current Release:
872104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
873104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
874102550Siwasaki
875102550Siwasaki
876102550Siwasaki
877102550Siwasaki2) Linux
878102550Siwasaki
879102550SiwasakiMuch work done on ACPI init (MADT and PCI IRQ routing
880102550Siwasakisupport). (Paul D. and Dominik Brodowski)
881102550Siwasaki
882102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
883102550Siwasaki
884102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
885102550Siwasaki
886102550SiwasakiFix "MHz" typo (Dominik Brodowski)
887102550Siwasaki
888102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
889102550Siwasaki
890102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
891102550Siwasaki
892102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
893102550Siwasaki
894102550Siwasaki3) iASL Compiler Version X2044:
895102550Siwasaki
896102550SiwasakiImplemented error checking for the string used in the EISAID
897102550Siwasakimacro (Usually used in the definition of the _HID object.)
898102550SiwasakiThe code now strictly enforces the PnP format - exactly 7
899102550Siwasakicharacters, 3 uppercase letters and 4 hex digits.
900102550Siwasaki
901102550SiwasakiIf a raw string is used in the definition of the _HID object
902102550Siwasaki(instead of the EISAID macro), the string must contain all
903102550Siwasakialphanumeric characters (e.g., "*PNP0011" is not allowed
904102550Siwasakibecause of the asterisk.)
905102550Siwasaki
906102550SiwasakiImplemented checking for invalid use of ACPI reserved names
907104470Siwasakifor most of the name creation operators (Name, Device, Event,
908104470SiwasakiMutex, OperationRegion, PowerResource, Processor, and
909102550SiwasakiThermalZone.)  Previously, this check was only performed for
910102550Siwasakicontrol methods.
911102550Siwasaki
912102550SiwasakiImplemented an additional check on the Name operator to emit
913104470Siwasakian error if a reserved name that must be implemented in ASL as
914104470Siwasakia control method is used.  We know that a reserved name must
915104470Siwasakibe a method if it is defined with input arguments.
916102550Siwasaki
917102550SiwasakiThe warning emitted when a namespace object reference is not
918102550Siwasakifound during the cross reference phase has been changed into
919102550Siwasakian error.  The "External" directive should be used for names
920102550Siwasakidefined in other modules.
921102550Siwasaki
922102550Siwasaki
923102550Siwasaki4) Tools and Utilities
924102550Siwasaki
925102550SiwasakiThe 16-bit tools (adump16 and aexec16) have been regenerated
926102550Siwasakiand tested.
927102550Siwasaki
928102550SiwasakiFixed a problem with the output of both acpidump and adump16
929104470Siwasakiwhere the indentation of closing parentheses and brackets was
930104470Siwasakinot aligned properly with the parent block.
931102550Siwasaki
932102550Siwasaki
933102550Siwasaki----------------------------------------
934102550Siwasaki03 May 2002.  Summary of changes for this release.
935102550Siwasaki
936102550Siwasaki
937102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
938102550Siwasaki
939102550SiwasakiAdded support a new OSL interface that allows the host
940102550Siwasakioperating system software to override the DSDT found in the
941104470Siwasakifirmware - AcpiOsTableOverride.  With this interface, the OSL
942104470Siwasakican examine the version of the firmware DSDT and replace it
943104470Siwasakiwith a different one if desired.
944102550Siwasaki
945102550SiwasakiAdded new external interfaces for accessing ACPI registers
946102550Siwasakifrom device drivers and other system software -
947102550SiwasakiAcpiGetRegister and AcpiSetRegister.  This was simply an
948104470Siwasakiexternalization of the existing AcpiHwBitRegister interfaces.
949102550Siwasaki
950104470SiwasakiFixed a regression introduced in the previous build where the
951104470SiwasakiASL/AML CreateField operator always returned an error,
952102550Siwasaki"destination must be a NS Node".
953102550Siwasaki
954102550SiwasakiExtended the maximum time (before failure) to successfully
955102550Siwasakienable ACPI mode to 3 seconds.
956102550Siwasaki
957102550SiwasakiCode and Data Size: Current core subsystem library sizes are
958102550Siwasakishown below.  These are the code and data sizes for the
959104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
960104470Siwasakiand these values do not include any ACPI driver or OSPM code.
961104470SiwasakiThe debug version of the code includes the debug output trace
962104470Siwasakimechanism and has a larger code and data size.  Note that
963104470Siwasakithese values will vary depending on the efficiency of the
964104470Siwasakicompiler and the compiler options used during generation.
965102550Siwasaki
966102550Siwasaki  Previous Release
967104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
968104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
969102550Siwasaki  Current Release:
970104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
971104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
972102550Siwasaki
973102550Siwasaki
974102550Siwasaki2) Linux
975102550Siwasaki
976104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
977104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
978104470Siwasakilast one still hangs when testing the LAPIC timer.
979102550Siwasaki
980104470SiwasakiRenamed many files in 2.5 kernel release to omit "acpi_" from
981104470Siwasakithe name.
982102550Siwasaki
983102550SiwasakiAdded warning on boot for Presario 711FR.
984102550Siwasaki
985102550SiwasakiSleep improvements (Pavel Machek)
986102550Siwasaki
987102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
988102550Siwasaki
989102550SiwasakiIA64: Fixed memory map functions (JI Lee)
990102550Siwasaki
991102550Siwasaki
992102550Siwasaki3) iASL Compiler Version X2043:
993102550Siwasaki
994104470SiwasakiAdded support to allow the compiler to be integrated into the
995104470SiwasakiMS VC++ development environment for one-button compilation of
996104470Siwasakisingle files or entire projects -- with error-to-source-line
997104470Siwasakimapping.
998102550Siwasaki
999104470SiwasakiImplemented support for compile-time constant folding for the
1000104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
1001104470Siwasakispecification.  This allows the ASL writer to use expressions
1002104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
1003104470Siwasakievaluate to constants at compile time and will also simplify
1004104470Siwasakithe emitted AML in any such sub-expressions that can be folded
1005104470Siwasaki(evaluated at compile-time.)  This increases the size of the
1006104470Siwasakicompiler significantly because a portion of the ACPI CA AML
1007104470Siwasakiinterpreter is included within the compiler in order to pre-
1008104470Siwasakievaluate constant expressions.
1009102550Siwasaki
1010102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
1011102550Siwasakicompiler to fault.  (This macro is used in conjunction with
1012102550Siwasakithe _STR reserved name.)
1013102550Siwasaki
1014102550SiwasakiImplemented an AML opcode optimization to use the Zero, One,
1015104470Siwasakiand Ones opcodes where possible to further reduce the size of
1016104470Siwasakiinteger constants and thus reduce the overall size of the
1017102550Siwasakigenerated AML code.
1018102550Siwasaki
1019102550SiwasakiImplemented error checking for new reserved terms for ACPI
1020102550Siwasakiversion 2.0A.
1021102550Siwasaki
1022104470SiwasakiImplemented the -qr option to display the current list of ACPI
1023104470Siwasakireserved names known to the compiler.
1024102550Siwasaki
1025104470SiwasakiImplemented the -qc option to display the current list of ASL
1026104470Siwasakioperators that are allowed within constant expressions and can
1027104470Siwasakitherefore be folded at compile time if the operands are
1028104470Siwasakiconstants.
1029102550Siwasaki
1030102550Siwasaki
1031102550Siwasaki4) Documentation
1032102550Siwasaki
1033102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
1034102550Siwasakitypes, and memory allocation model options.
1035102550Siwasaki
1036102550SiwasakiUpdated the iASL Compiler User Reference to apply new format
1037102550Siwasakiand add information about new features and options.
1038102550Siwasaki
1039102550Siwasaki----------------------------------------
1040102550Siwasaki19 April 2002.  Summary of changes for this release.
1041102550Siwasaki
1042102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
1043102550Siwasaki
1044102550SiwasakiThe source code base for the Core Subsystem has been
1045104470Siwasakicompletely cleaned with PC-lint (FlexLint) for both 32-bit and
1046104470Siwasaki64-bit versions.  The Lint option files used are included in
1047104470Siwasakithe /acpi/generate/lint directory.
1048102550Siwasaki
1049102550SiwasakiImplemented enhanced status/error checking across the entire
1050102550SiwasakiHardware manager subsystem.  Any hardware errors (reported
1051102550Siwasakifrom the OSL) are now bubbled up and will abort a running
1052102550Siwasakicontrol method.
1053102550Siwasaki
1054104470SiwasakiFixed a problem where the per-ACPI-table integer width (32 or
1055104470Siwasaki64) was stored only with control method nodes, causing a fault
1056104470Siwasakiwhen non-control method code was executed during table
1057102550Siwasakiloading.  The solution implemented uses a global variable to
1058102550Siwasakiindicate table width across the entire ACPI subsystem.
1059102550SiwasakiTherefore, ACPI CA does not support mixed integer widths
1060102550Siwasakiacross different ACPI tables (DSDT, SSDT).
1061102550Siwasaki
1062102550SiwasakiFixed a problem where NULL extended fields (X fields) in an
1063102550SiwasakiACPI 2.0 ACPI FADT caused the table load to fail.  Although
1064104470Siwasakithe existing ACPI specification is a bit fuzzy on this topic,
1065104470Siwasakithe new behavior is to fall back on a ACPI 1.0 field if the
1066104470Siwasakicorresponding ACPI 2.0 X field is zero (even though the table
1067104470Siwasakirevision indicates a full ACPI 2.0 table.)  The ACPI
1068104470Siwasakispecification will be updated to clarify this issue.
1069102550Siwasaki
1070104470SiwasakiFixed a problem with the SystemMemory operation region handler
1071104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
1072104470Siwasakispecified access width was larger than a byte.  This caused
1073104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
1074104470Siwasakiaccessed with the width specified.  On systems that do not
1075104470Siwasakisupport non-aligned transfers, a check is made to guarantee
1076104470Siwasakiproper address alignment before proceeding in order to avoid
1077104470Siwasakian AML-caused alignment fault within the kernel.
1078102550Siwasaki
1079102550SiwasakiFixed a problem with the ExtendedIrq resource where only one
1080102550Siwasakibyte of the 4-byte Irq field was extracted.
1081102550Siwasaki
1082102550SiwasakiFixed the AcpiExDigitsNeeded() procedure to support _UID.
1083102550SiwasakiThis function was out of date and required a rewrite.
1084102550Siwasaki
1085102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1086102550Siwasakishown below.  These are the code and data sizes for the
1087104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1088104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1089104470SiwasakiThe debug version of the code includes the debug output trace
1090104470Siwasakimechanism and has a larger code and data size.  Note that
1091104470Siwasakithese values will vary depending on the efficiency of the
1092104470Siwasakicompiler and the compiler options used during generation.
1093102550Siwasaki
1094102550Siwasaki  Previous Release
1095104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1096104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1097102550Siwasaki  Current Release:
1098104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
1099104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
1100102550Siwasaki
1101102550Siwasaki
1102102550Siwasaki2) Linux
1103102550Siwasaki
1104102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
1105102550Siwasaki
1106102550Siwasaki
1107102550Siwasaki3) iASL Compiler Version X2042:
1108102550Siwasaki
1109104470SiwasakiImplemented an additional compile-time error check for a field
1110104470Siwasakiunit whose size + minimum access width would cause a run-time
1111104470Siwasakiaccess beyond the end-of-region.  Previously, only the field
1112104470Siwasakisize itself was checked.
1113102550Siwasaki
1114104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
1115104470Siwasakiobject in preparation for compile-time evaluation of the type
1116104470Siwasaki3/4/5 ASL operators.
1117102550Siwasaki
1118102550Siwasaki
1119102550Siwasaki----------------------------------------
1120102550SiwasakiSummary of changes for this release: 03_29_02
1121102550Siwasaki
1122102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
1123102550Siwasaki
1124104470SiwasakiImplemented support for late evaluation of TermArg operands to
1125104470SiwasakiBuffer and Package objects.  This allows complex expressions
1126104470Siwasakito be used in the declarations of these object types.
1127102550Siwasaki
1128104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
1129104470SiwasakiACPI 1.0, if the field was larger than 32 bits, it was
1130104470Siwasakireturned as a buffer - otherwise it was returned as an
1131104470Siwasakiinteger.  In ACPI 2.0, the field is returned as a buffer only
1132104470Siwasakiif the field is larger than 64 bits.  The TableRevision is now
1133104470Siwasakiconsidered when making this conversion to avoid
1134102550Siwasakiincompatibility with existing ASL code.
1135102550Siwasaki
1136104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
1137104470Siwasakiallows an RSDP with either a logical or physical address.
1138104470SiwasakiWith this support, the host OS can now override all ACPI
1139104470Siwasakitables with one logical RSDP.  Includes implementation of
1140104470Siwasaki"typed" pointer support to allow a common data type for both
1141104470Siwasakiphysical and logical pointers internally.  This required a
1142104470Siwasakichange to the AcpiOsGetRootPointer interface.
1143102550Siwasaki
1144104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
1145104470Siwasakiall GPE, Fixed Event, and PM Timer I/O.  This allows the use
1146104470Siwasakiof memory mapped I/O for these ACPI features.
1147102550Siwasaki
1148102550SiwasakiInitialization now ignores not only non-required tables (All
1149102550Siwasakitables other than the FADT, FACS, DSDT, and SSDTs), but also
1150102550Siwasakidoes not validate the table headers of unrecognized tables.
1151102550Siwasaki
1152102550SiwasakiFixed a problem where a notify handler could only be
1153102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
1154102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
1155102550SiwasakiThermal.
1156102550Siwasaki
1157102550SiwasakiRemoved most verbosity from the ACPI_DB_INFO debug level.
1158104470SiwasakiOnly critical information is returned when this debug level is
1159104470Siwasakienabled.
1160102550Siwasaki
1161102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1162102550Siwasakishown below.  These are the code and data sizes for the
1163104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1164104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1165104470SiwasakiThe debug version of the code includes the debug output trace
1166104470Siwasakimechanism and has a larger code and data size.  Note that
1167104470Siwasakithese values will vary depending on the efficiency of the
1168104470Siwasakicompiler and the compiler options used during generation.
1169102550Siwasaki
1170102550Siwasaki  Previous Release
1171104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1172104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1173102550Siwasaki  Current Release:
1174104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1175104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1176102550Siwasaki
1177102550Siwasaki
1178102550Siwasaki2) Linux:
1179102550Siwasaki
1180102550SiwasakiThe processor driver (acpi_processor.c) now fully supports
1181102550SiwasakiACPI 2.0-based processor performance control (e.g. Intel(R)
1182102550SiwasakiSpeedStep(TM) technology) Note that older laptops that only
1183102550Siwasakihave the Intel "applet" interface are not supported through
1184102550Siwasakithis.  The 'limit' and 'performance' interface (/proc) are
1185102550Siwasakifully functional.  [Note that basic policy for controlling
1186102550Siwasakiperformance state transitions will be included in the next
1187102550Siwasakiversion of ospmd.]  The idle handler was modified to more
1188102550Siwasakiaggressively use C2, and PIIX4 errata handling underwent a
1189102550Siwasakicomplete overhaul (big thanks to Dominik Brodowski).
1190102550Siwasaki
1191102550SiwasakiAdded support for ACPI-PCI device binding (acpi_pci_root.c).
1192102550Siwasaki_ADR-based devices in the ACPI namespace are now dynamically
1193102550Siwasakibound (associated) with their PCI counterparts (e.g. PCI1-
1194102550Siwasaki>01:00.0).  This allows, among other things, ACPI to resolve
1195102550Siwasakibus numbers for subordinate PCI bridges.
1196102550Siwasaki
1197104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
1198104470Siwasakientries defined underneath PCI bridges.
1199102550Siwasaki
1200104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
1201104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
1202102550Siwasaki
1203102550SiwasakiIn the process of adding full MADT support (e.g. IOAPIC) for
1204102550SiwasakiIA32 (acpi.c, mpparse.c) -- stay tuned.
1205102550Siwasaki
1206102550SiwasakiAdded back visual differentiation between fixed-feature and
1207102550Siwasakicontrol-method buttons in dmesg.  Buttons are also subtyped
1208102550Siwasaki(e.g. button/power/PWRF) to simplify button identification.
1209102550Siwasaki
1210102550SiwasakiWe no longer use -Wno-unused when compiling debug. Please
1211102550Siwasakiignore any "_THIS_MODULE defined but not used" messages.
1212102550Siwasaki
1213102550SiwasakiCan now shut down the system using "magic sysrq" key.
1214102550Siwasaki
1215102550Siwasaki
1216102550Siwasaki3) iASL Compiler version 2041:
1217102550Siwasaki
1218104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
1219104470Siwasakiconstants were not reported.
1220102550Siwasaki
1221102550SiwasakiImplemented a fix for the General Register template Address
1222102550Siwasakifield.  This field was 8 bits when it should be 64.
1223102550Siwasaki
1224102550SiwasakiFixed a problem where errors/warnings were no longer being
1225102550Siwasakiemitted within the listing output file.
1226102550Siwasaki
1227104470SiwasakiImplemented the ACPI 2.0A restriction on ACPI Table Signatures
1228104470Siwasakito exactly 4 characters, alphanumeric only.
1229102550Siwasaki
1230102550Siwasaki
1231102550Siwasaki
1232102550Siwasaki
1233102550Siwasaki----------------------------------------
1234102550SiwasakiSummary of changes for this release: 03_08_02
1235102550Siwasaki
1236102550Siwasaki
1237102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
1238102550Siwasaki
1239102550SiwasakiFixed a problem with AML Fields where the use of the
1240102550Siwasaki"AccessAny" keyword could cause an interpreter error due to
1241102550Siwasakiattempting to read or write beyond the end of the parent
1242102550SiwasakiOperation Region.
1243102550Siwasaki
1244102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
1245104470Siwasakiwhere an attempt was made to map memory beyond the end of the
1246104470Siwasakiregion.  This was the root cause of the "AE_ERROR" and
1247102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems.
1248102550Siwasaki
1249102550SiwasakiFixed a problem where the interpreter/namespace "search to
1250102550Siwasakiroot" algorithm was not functioning for some object types.
1251102550SiwasakiRelaxed the internal restriction on the search to allow
1252102550Siwasakiupsearches for all external object types as well as most
1253102550Siwasakiinternal types.
1254102550Siwasaki
1255102550Siwasaki
1256102550Siwasaki2) Linux:
1257102550Siwasaki
1258104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
1259104470Siwasakihlt.
1260102550Siwasaki
1261102550SiwasakiWriting to the processor limit interface should now work.
1262104470Siwasaki"echo 1" will increase the limit, 2 will decrease, and 0 will
1263104470Siwasakireset to the default.
1264102550Siwasaki
1265102550Siwasaki
1266102550Siwasaki3) ASL compiler:
1267102550Siwasaki
1268102550SiwasakiFixed segfault on Linux version.
1269102550Siwasaki
1270102550Siwasaki
1271102550Siwasaki----------------------------------------
1272102550SiwasakiSummary of changes for this release: 02_25_02
1273102550Siwasaki
1274102550Siwasaki1) ACPI CA Core Subsystem:
1275102550Siwasaki
1276102550Siwasaki
1277102550SiwasakiFixed a problem where the GPE bit masks were not initialized
1278102550Siwasakiproperly, causing erratic GPE behavior.
1279102550Siwasaki
1280104470SiwasakiImplemented limited support for multiple calling conventions.
1281104470SiwasakiThe code can be generated with either the VPL (variable
1282104470Siwasakiparameter list, or "C") convention, or the FPL (fixed
1283104470Siwasakiparameter list, or "Pascal") convention.  The core subsystem
1284104470Siwasakiis about 3.4% smaller when generated with FPL.
1285102550Siwasaki
1286102550Siwasaki
1287102550Siwasaki2) Linux
1288102550Siwasaki
1289102550SiwasakiRe-add some /proc/acpi/event functionality that was lost
1290102550Siwasakiduring the rewrite
1291102550Siwasaki
1292102550SiwasakiResolved issue with /proc events for fixed-feature buttons
1293102550Siwasakishowing up as the system device.
1294102550Siwasaki
1295102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
1296102550Siwasakivalues.
1297102550Siwasaki
1298102550SiwasakiReplaced AE_ERRORs in acpi_osl.c with more specific error
1299102550Siwasakicodes.
1300102550Siwasaki
1301102550SiwasakiChanged ACPI PRT option from "pci=noacpi-routing" to
1302102550Siwasaki"pci=noacpi"
1303102550Siwasaki
1304104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
1305104470Siwasakihysterisis.
1306102550Siwasaki
1307102550SiwasakiRestructured PRT support.
1308102550Siwasaki
1309102550Siwasaki
1310102550Siwasaki----------------------------------------
1311102550SiwasakiSummary of changes for this label: 02_14_02
1312102550Siwasaki
1313102550Siwasaki
1314102550Siwasaki1) ACPI CA Core Subsystem:
1315102550Siwasaki
1316104470SiwasakiImplemented support in AcpiLoadTable to allow loading of FACS
1317104470Siwasakiand FADT tables.
1318102550Siwasaki
1319102550SiwasakiSuport for the now-obsolete interim 0.71 64-bit ACPI tables
1320104470Siwasakihas been removed.  All 64-bit platforms should be migrated to
1321104470Siwasakithe ACPI 2.0 tables.  The actbl71.h header has been removed
1322104470Siwasakifrom the source tree.
1323102550Siwasaki
1324102550SiwasakiAll C macros defined within the subsystem have been prefixed
1325102550Siwasakiwith "ACPI_" to avoid collision with other system include
1326102550Siwasakifiles.
1327102550Siwasaki
1328102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
1329102550Siwasakisince it is never used and causes lint warnings for ignoring
1330102550Siwasakithe return value.
1331102550Siwasaki
1332104470SiwasakiAdded error checking to all internal mutex acquire and release
1333104470Siwasakicalls.  Although a failure from one of these interfaces is
1334104470Siwasakiprobably a fatal system error, these checks will cause the
1335104470Siwasakiimmediate abort of the currently executing method or
1336104470Siwasakiinterface.
1337102550Siwasaki
1338102550SiwasakiFixed a problem where the AcpiSetCurrentResources interface
1339104470Siwasakicould fault.  This was a side effect of the deployment of the
1340104470Siwasakinew memory allocation model.
1341102550Siwasaki
1342102550SiwasakiFixed a couple of problems with the Global Lock support
1343102550Siwasakiintroduced in the last major build.  The "common" (1.0/2.0)
1344102550Siwasakiinternal FACS was being overwritten with the FACS signature
1345102550Siwasakiand clobbering the Global Lock pointer.  Also, the actual
1346102550Siwasakifirmware FACS was being unmapped after construction of the
1347102550Siwasaki"common" FACS, preventing access to the actual Global Lock
1348102550Siwasakifield within it.  The "common" internal FACS is no longer
1349102550Siwasakiinstalled as an actual ACPI table; it is used simply as a
1350102550Siwasakiglobal.
1351102550Siwasaki
1352102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1353102550Siwasakishown below.  These are the code and data sizes for the
1354104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1355104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1356104470SiwasakiThe debug version of the code includes the debug output trace
1357104470Siwasakimechanism and has a larger code and data size.  Note that
1358104470Siwasakithese values will vary depending on the efficiency of the
1359104470Siwasakicompiler and the compiler options used during generation.
1360102550Siwasaki
1361102550Siwasaki  Previous Release (02_07_01)
1362104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
1363104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
1364102550Siwasaki  Current Release:
1365104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1366104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1367102550Siwasaki
1368102550Siwasaki
1369102550Siwasaki2) Linux
1370102550Siwasaki
1371102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
1372102550Siwasakichanges described above.
1373102550Siwasaki
1374104470SiwasakiImproved /proc/acpi/event. It now can be opened only once and
1375104470Siwasakihas proper poll functionality.
1376102550Siwasaki
1377102550SiwasakiFixed and restructured power management (acpi_bus).
1378102550Siwasaki
1379102550SiwasakiOnly create /proc "view by type" when devices of that class
1380102550Siwasakiexist.
1381102550Siwasaki
1382104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
1383102550Siwasaki
1384102550SiwasakiImproved thermal zone code.
1385102550Siwasaki
1386102550Siwasaki
1387102550Siwasaki3) ASL Compiler, version X2039:
1388102550Siwasaki
1389102550SiwasakiImplemented the new compiler restriction on ASL String
1390104470Siwasakihex/octal escapes to non-null, ASCII values.  An error results
1391104470Siwasakiif an invalid value is used.  (This will require an ACPI 2.0
1392104470Siwasakispecification change.)
1393102550Siwasaki
1394102550SiwasakiAML object labels that are output to the optional C and ASM
1395104470Siwasakisource are now prefixed with both the ACPI table signature and
1396104470Siwasakitable ID to help guarantee uniqueness within a large BIOS
1397104470Siwasakiproject.
1398102550Siwasaki
1399102550Siwasaki
1400102550Siwasaki----------------------------------------
1401102550SiwasakiSummary of changes for this label: 02_01_02
1402102550Siwasaki
1403102550Siwasaki1) ACPI CA Core Subsystem:
1404102550Siwasaki
1405104470SiwasakiACPI 2.0 support is complete in the entire Core Subsystem and
1406104470Siwasakithe ASL compiler. All new ACPI 2.0 operators are implemented
1407104470Siwasakiand all other changes for ACPI 2.0 support are complete.  With
1408104470Siwasakisimultaneous code and data optimizations throughout the
1409104470Siwasakisubsystem, ACPI 2.0 support has been implemented with almost
1410104470Siwasakino additional cost in terms of code and data size.
1411102550Siwasaki
1412104470SiwasakiImplemented a new mechanism for allocation of return buffers.
1413104470SiwasakiIf the buffer length is set to ACPI_ALLOCATE_BUFFER, the
1414104470Siwasakibuffer will be allocated on behalf of the caller.
1415104470SiwasakiConsolidated all return buffer validation and allocation to a
1416104470Siwasakicommon procedure.  Return buffers will be allocated via the
1417104470Siwasakiprimary OSL allocation interface since it appears that a
1418104470Siwasakiseparate pool is not needed by most users.  If a separate pool
1419104470Siwasakiis required for these buffers, the caller can still use the
1420104470Siwasakioriginal mechanism and pre-allocate the buffer(s).
1421102550Siwasaki
1422102550SiwasakiImplemented support for string operands within the DerefOf
1423102550Siwasakioperator.
1424102550Siwasaki
1425102550SiwasakiRestructured the Hardware and Event managers to be table
1426104470Siwasakidriven, simplifying the source code and reducing the amount of
1427104470Siwasakigenerated code.
1428102550Siwasaki
1429102550SiwasakiSplit the common read/write low-level ACPI register bitfield
1430104470Siwasakiprocedure into a separate read and write, simplifying the code
1431104470Siwasakiconsiderably.
1432102550Siwasaki
1433102550SiwasakiObsoleted the AcpiOsCallocate OSL interface.  This interface
1434102550Siwasakiwas used only a handful of times and didn't have enough
1435102550Siwasakicritical mass for a separate interface.  Replaced with a
1436102550Siwasakicommon calloc procedure in the core.
1437102550Siwasaki
1438104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
1439104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
1440104470SiwasakiReorganized the GPE information and shrunk a large array that
1441104470Siwasakiwas originally large enough to hold info for all possible GPEs
1442104470Siwasaki(256) to simply large enough to hold all GPEs up to the
1443104470Siwasakilargest GPE number on the machine.
1444102550Siwasaki
1445104470SiwasakiFixed a reported problem with resource structure alignment on
1446104470Siwasaki64-bit platforms.
1447102550Siwasaki
1448102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
1449102550Siwasakiinterfaces to not require any flags for the common case of
1450102550Siwasakienabling/disabling a GPE.
1451102550Siwasaki
1452104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
1453102550Siwasaki
1454102550SiwasakiMost TBDs in comments within the source code have been
1455102550Siwasakiresolved and eliminated.
1456102550Siwasaki
1457102550SiwasakiFixed a problem in the interpreter where a standalone parent
1458102550Siwasakiprefix (^) was not handled correctly in the interpreter and
1459102550Siwasakidebugger.
1460102550Siwasaki
1461102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
1462102550Siwasaki
1463102550SiwasakiImplemented Field support in the ASL Load operator.  This
1464104470Siwasakiallows a table to be loaded from a named field, in addition to
1465104470Siwasakiloading a table directly from an Operation Region.
1466102550Siwasaki
1467104470SiwasakiImplemented timeout and handle support in the external Global
1468104470SiwasakiLock interfaces.
1469102550Siwasaki
1470102550SiwasakiFixed a problem in the AcpiDump utility where pathnames were
1471102550Siwasakino longer being generated correctly during the dump of named
1472102550Siwasakiobjects.
1473102550Siwasaki
1474102550SiwasakiModified the AML debugger to give a full display of if/while
1475102550Siwasakipredicates instead of just one AML opcode at a time.  (The
1476102550Siwasakipredicate can have several nested ASL statements.)  The old
1477102550Siwasakimethod was confusing during single stepping.
1478102550Siwasaki
1479102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1480102550Siwasakishown below. These are the code and data sizes for the
1481104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1482104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1483104470SiwasakiThe debug version of the code includes the debug output trace
1484104470Siwasakimechanism and has a larger code and data size.  Note that
1485104470Siwasakithese values will vary depending on the efficiency of the
1486104470Siwasakicompiler and the compiler options used during generation.
1487102550Siwasaki
1488102550Siwasaki  Previous Release (12_18_01)
1489102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1490102550SiwasakiTotal
1491102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1492102550SiwasakiTotal
1493102550Siwasaki   Current Release:
1494102550Siwasaki     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
1495102550SiwasakiTotal
1496102550Siwasaki     Debug Version:     136.9K Code,  56.4K Data,  193.3K
1497102550SiwasakiTotal
1498102550Siwasaki
1499102550Siwasaki2) Linux
1500102550Siwasaki
1501104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
1502104470Siwasakidriver)
1503102550Siwasaki
1504102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
1505102550Siwasaki
1506102550SiwasakiNew thermal policy (Thermal driver)
1507102550Siwasaki
1508102550SiwasakiMany updates to /proc
1509102550Siwasaki
1510102550SiwasakiBattery "low" event support (Battery driver)
1511102550Siwasaki
1512104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
1513102550Siwasaki
1514104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
1515102550Siwasaki
1516102550SiwasakiMenuconfig options redesigned
1517102550Siwasaki
1518102550Siwasaki3) ASL Compiler, version X2037:
1519102550Siwasaki
1520102550SiwasakiImplemented several new output features to simplify
1521104470Siwasakiintegration of AML code into  firmware: 1) Output the AML in C
1522104470Siwasakisource code with labels for each named ASL object.  The
1523102550Siwasakioriginal ASL source code is interleaved as C comments. 2)
1524104470SiwasakiOutput the AML in ASM source code with labels and interleaved
1525104470SiwasakiASL    source. 3) Output the AML in raw hex table form, in
1526104470Siwasakieither C or ASM.
1527102550Siwasaki
1528102550SiwasakiImplemented support for optional string parameters to the
1529102550SiwasakiLoadTable operator.
1530102550Siwasaki
1531104470SiwasakiCompleted support for embedded escape sequences within string
1532104470Siwasakiliterals.  The compiler now supports all single character
1533104470Siwasakiescapes as well as the Octal and Hex escapes.  Note: the
1534104470Siwasakiinsertion of a null byte into a string literal (via the
1535104470Siwasakihex/octal escape) causes the string to be immediately
1536104470Siwasakiterminated.  A warning is issued.
1537102550Siwasaki
1538104470SiwasakiFixed a problem where incorrect AML was generated for the case
1539104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
1540102550Siwasaki
1541102550Siwasaki) with no trailing name segments.
1542102550Siwasaki
1543102550SiwasakiThe compiler has been successfully generated with a 64-bit C
1544102550Siwasakicompiler.
1545102550Siwasaki
1546102550Siwasaki
1547102550Siwasaki
1548102550Siwasaki
1549102550Siwasaki----------------------------------------
1550102550SiwasakiSummary of changes for this label: 12_18_01
1551102550Siwasaki
1552102550Siwasaki1) Linux
1553102550Siwasaki
1554102550SiwasakiEnhanced blacklist with reason and severity fields. Any
1555102550Siwasakitable's signature may now be used to identify a blacklisted
1556102550Siwasakisystem.
1557102550Siwasaki
1558102550SiwasakiCall _PIC control method to inform the firmware which
1559102550Siwasakiinterrupt model the OS is using. Turn on any disabled link
1560102550Siwasakidevices.
1561102550Siwasaki
1562102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
1563102550Siwasaki
1564102550Siwasaki 2) ACPI CA Core Subsystem:
1565102550Siwasaki
1566104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
1567104470Siwasakifrom while loop)
1568102550Siwasaki
1569102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
1570102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
1571104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
1572104470Siwasakiboth the ASL compiler and the AML interpreter.  The only
1573104470Siwasakiremaining ACPI 2.0 task is support for the String data type in
1574104470Siwasakithe DerefOf operator.  Fixed a problem with AcquireMutex where
1575104470Siwasakithe status code was lost if the caller had to actually wait
1576104470Siwasakifor the mutex.
1577102550Siwasaki
1578104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
1579102550Siwasaki
1580102550SiwasakiCompleted implementation of the external Global Lock
1581104470Siwasakiinterfaces -- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.
1582104470SiwasakiThe Timeout and Handler parameters were added.
1583102550Siwasaki
1584102550SiwasakiCompleted another pass at removing warnings and issues when
1585102550Siwasakicompiling with 64-bit compilers.  The code now compiles
1586102550Siwasakicleanly with the Intel 64-bit C/C++ compiler.  Most notably,
1587102550Siwasakithe pointer add and subtract (diff) macros have changed
1588102550Siwasakiconsiderably.
1589102550Siwasaki
1590104470SiwasakiCreated and deployed a new ACPI_SIZE type that is 64-bits wide
1591104470Siwasakion 64-bit platforms, 32-bits on all others.  This type is used
1592104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
1593104470Siwasakiused, and affects the OSL memory allocation interfaces
1594104470SiwasakiAcpiOsAllocate and AcpiOsCallocate.
1595102550Siwasaki
1596102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
1597102550Siwasaki
1598102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1599102550Siwasakishown below. These are the code and data sizes for the
1600104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1601104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1602104470SiwasakiThe debug version of the code includes the debug output trace
1603104470Siwasakimechanism and has a larger code and data size. Note that these
1604104470Siwasakivalues will vary depending on the efficiency of the compiler
1605104470Siwasakiand the compiler options used during generation.
1606102550Siwasaki
1607102550Siwasaki  Previous Release (12_05_01)
1608102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1609102550SiwasakiTotal
1610102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1611102550SiwasakiTotal
1612102550Siwasaki   Current Release:
1613102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1614102550SiwasakiTotal
1615102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1616102550SiwasakiTotal
1617102550Siwasaki
1618102550Siwasaki 3) ASL Compiler, version X2034:
1619102550Siwasaki
1620104470SiwasakiNow checks for (and generates an error if detected) the use of
1621104470Siwasakia Break or Continue statement without an enclosing While
1622102550Siwasakistatement.
1623102550Siwasaki
1624102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
1625102550Siwasakicompiler.
1626102550Siwasaki
1627102550Siwasaki ----------------------------------------
1628102550SiwasakiSummary of changes for this label: 12_05_01
1629102550Siwasaki
1630102550Siwasaki 1) ACPI CA Core Subsystem:
1631102550Siwasaki
1632102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
1633104470Siwasakioperator creates a new copy of an object (and is also used to
1634104470Siwasakibypass the "implicit conversion" mechanism of the Store
1635102550Siwasakioperator.)
1636102550Siwasaki
1637102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
1638102550Siwasakiimplemented.  The change is that performing a SizeOf on a
1639104470Siwasakireference object causes an automatic dereference of the object
1640104470Siwasakito tha actual value before the size is evaluated. This
1641104470Siwasakibehavior was undefined in ACPI 1.0.
1642102550Siwasaki
1643102550SiwasakiThe ACPI 2.0 semantics for the Extended IRQ resource
1644104470Siwasakidescriptor have been implemented.  The interrupt polarity and
1645104470Siwasakimode are now independently set.
1646102550Siwasaki
1647102550SiwasakiFixed a problem where ASL Constants (Zero, One, Ones,
1648102550SiwasakiRevision) appearing in Package objects were not properly
1649104470Siwasakiconverted to integers when the internal Package was converted
1650104470Siwasakito an external object (via the AcpiEvaluateObject interface.)
1651102550Siwasaki
1652102550SiwasakiFixed a problem with the namespace object deletion mechanism
1653104470Siwasakifor objects created by control methods.  There were two parts
1654104470Siwasakito this problem: 1) Objects created during the initialization
1655104470Siwasakiphase method parse were not being deleted, and 2) The object
1656104470Siwasakiowner ID mechanism to track objects was broken.
1657102550Siwasaki
1658104470SiwasakiFixed a problem where the use of the ASL Scope operator within
1659104470Siwasakia control method would result in an invalid opcode exception.
1660102550Siwasaki
1661102550SiwasakiFixed a problem introduced in the previous label where the
1662102550Siwasakibuffer length required for the _PRT structure was not being
1663102550Siwasakireturned correctly.
1664102550Siwasaki
1665102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1666102550Siwasakishown below. These are the code and data sizes for the
1667104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler,
1668104470Siwasakiand these values do not include any ACPI driver or OSPM code.
1669104470SiwasakiThe debug version of the code includes the debug output trace
1670104470Siwasakimechanism and has a larger code and data size.  Note that
1671104470Siwasakithese values will vary depending on the efficiency of the
1672104470Siwasakicompiler and the compiler options used during generation.
1673102550Siwasaki
1674102550Siwasaki  Previous Release (11_20_01)
1675102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1676102550SiwasakiTotal
1677102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1678102550SiwasakiTotal
1679102550Siwasaki
1680102550Siwasaki  Current Release:
1681102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1682102550SiwasakiTotal
1683102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1684102550SiwasakiTotal
1685102550Siwasaki
1686102550Siwasaki 2) Linux:
1687102550Siwasaki
1688102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
1689102550Siwasaki
1690104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
1691104470Siwasaki(acpi_pci.c), and unified the PRT code for IA32 and IA64.
1692104470SiwasakiThis version supports both static and dyanmic PRT entries, but
1693104470Siwasakidynamic entries are treated as if they were static (not yet
1694104470Siwasakireconfigurable).  Architecture- specific code to use this data
1695104470Siwasakiis absent on IA32 but should be available shortly.
1696102550Siwasaki
1697102550SiwasakiChanged the initialization sequence to start the ACPI
1698102550Siwasakiinterpreter (acpi_init) prior to initialization of the PCI
1699102550Siwasakidriver (pci_init) in init/main.c.  This ordering is required
1700102550Siwasakito support PRT and facilitate other (future) enhancement.  A
1701102550Siwasakiside effect is that the ACPI bus driver and certain device
1702102550Siwasakidrivers can no longer be loaded as modules.
1703102550Siwasaki
1704104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
1705104470SiwasakiRouting support to be included without the ACPI Bus and other
1706104470Siwasakidevice drivers.
1707102550Siwasaki
1708102550Siwasaki 3) ASL Compiler, version X2033:
1709102550Siwasaki
1710102550SiwasakiFixed some issues with the use of the new CopyObject and
1711102550SiwasakiDataTableRegion operators.  Both are fully functional.
1712102550Siwasaki
1713102550Siwasaki ----------------------------------------
1714102550SiwasakiSummary of changes for this label: 11_20_01
1715102550Siwasaki
1716102550Siwasaki 20 November 2001.  Summary of changes for this release.
1717102550Siwasaki
1718102550Siwasaki 1) ACPI CA Core Subsystem:
1719102550Siwasaki
1720104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
1721104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
1722104470Siwasakionly the least-significant byte of the source to the Indexed
1723104470Siwasakibuffer byte.  Multiple writes are not performed.
1724102550Siwasaki
1725104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
1726104470Siwasakioperator was not recorded correctly into the field object.
1727102550Siwasaki
1728102550SiwasakiFixed a problem where ASL Event objects were created in a
1729102550Siwasakisignalled state. Events are now created in an unsignalled
1730102550Siwasakistate.
1731102550Siwasaki
1732102550SiwasakiThe internal object cache is now purged after table loading
1733104470Siwasakiand initialization to reduce the use of dynamic kernel memory
1734104470Siwasaki-- on the assumption that object use is greatest during the
1735104470Siwasakiparse phase of the entire table (versus the run-time use of
1736104470Siwasakiindividual control methods.)
1737102550Siwasaki
1738102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
1739102550Siwasaki
1740104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
1741104470Siwasakinew feature development with an actual reduction in the
1742104470Siwasakilibrary size.  Current core subsystem library sizes are shown
1743104470Siwasakibelow.  These are the code and data sizes for the acpica.lib
1744104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1745104470Siwasakivalues do not include any ACPI driver or OSPM code.  The debug
1746104470Siwasakiversion of the code includes the debug output trace mechanism
1747104470Siwasakiand has a larger code and data size.  Note that these values
1748104470Siwasakiwill vary depending on the efficiency of the compiler and the
1749104470Siwasakicompiler options used during generation.
1750102550Siwasaki
1751102550Siwasaki  Previous Release (11_09_01):
1752102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1753102550SiwasakiTotal
1754102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1755102550SiwasakiTotal
1756102550Siwasaki
1757102550Siwasaki  Current Release:
1758102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1759102550SiwasakiTotal
1760102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1761102550SiwasakiTotal
1762102550Siwasaki
1763102550Siwasaki 2) Linux:
1764102550Siwasaki
1765102550SiwasakiEnhanced the ACPI boot-time initialization code to allow the
1766102550Siwasakiuse of Local APIC tables for processor enumeration on IA-32,
1767104470Siwasakiand to pave the way for a fully MPS-free boot (on SMP systems)
1768104470Siwasakiin the near future.  This functionality replaces
1769102550Siwasakiarch/i386/kernel/acpitables.c, which was introduced in an
1770104470Siwasakiearlier 2.4.15-preX release.  To enable this feature you must
1771104470Siwasakiadd "acpi_boot=on" to the kernel command line -- see the help
1772104470Siwasakientry for CONFIG_ACPI_BOOT for more information.  An IA-64
1773104470Siwasakirelease is in the works...
1774102550Siwasaki
1775102550SiwasakiRestructured the configuration options to allow boot-time
1776102550Siwasakitable parsing support without inclusion of the ACPI
1777102550SiwasakiInterpreter (and other) code.
1778102550Siwasaki
1779102550SiwasakiNOTE: This release does not include fixes for the reported
1780104470Siwasakievents, power-down, and thermal passive cooling issues (coming
1781104470Siwasakisoon).
1782102550Siwasaki
1783102550Siwasaki 3) ASL Compiler:
1784102550Siwasaki
1785102550SiwasakiAdded additional typechecking for Fields within restricted
1786102550Siwasakiaccess Operation Regions.  All fields within EC and CMOS
1787102550Siwasakiregions must be declared with ByteAcc. All fields withing
1788104470SiwasakiSMBus regions must be declared with the BufferAcc access type.
1789102550Siwasaki
1790102550SiwasakiFixed a problem where the listing file output of control
1791104470Siwasakimethods no longer interleaved the actual AML code with the ASL
1792104470Siwasakisource code.
1793102550Siwasaki
1794102550Siwasaki
1795102550Siwasaki
1796102550Siwasaki----------------------------------------
1797102550SiwasakiSummary of changes for this label: 11_09_01
1798102550Siwasaki
1799102550Siwasaki1) ACPI CA Core Subsystem:
1800102550Siwasaki
1801104470SiwasakiImplemented ACPI 2.0-defined support for writes to fields with
1802104470Siwasakia Buffer, String, or Integer source operand that is smaller
1803104470Siwasakithan the target field. In these cases, the source operand is
1804104470Siwasakizero-extended to fill the target field.
1805102550Siwasaki
1806104470SiwasakiFixed a problem where a Field starting bit offset (within the
1807104470Siwasakiparent operation region) was calculated incorrectly if the
1808104470Siwasakialignment of the field differed from the access width.  This
1809104470Siwasakiaffected CreateWordField, CreateDwordField, CreateQwordField,
1810104470Siwasakiand possibly other fields that use the "AccessAny" keyword.
1811102550Siwasaki
1812102550SiwasakiFixed a problem introduced in the 11_02_01 release where
1813102550Siwasakiindirect stores through method arguments did not operate
1814102550Siwasakicorrectly.
1815102550Siwasaki
1816102550Siwasaki2) Linux:
1817102550Siwasaki
1818102550SiwasakiImplemented boot-time ACPI table parsing support
1819102550Siwasaki(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This
1820102550Siwasakicode facilitates the use of ACPI tables (e.g. MADT, SRAT)
1821102550Siwasakirather than legacy BIOS interfaces (e.g. MPS) for the
1822102550Siwasakiconfiguration of system processors, memory, and interrupts
1823102550Siwasakiduring setup_arch().  Note that this patch does not include
1824102550Siwasakithe required architecture-specific changes required to apply
1825104470Siwasakithis information -- subsequent patches will be posted for both
1826104470SiwasakiIA32 and IA64 to achieve this.
1827102550Siwasaki
1828104470SiwasakiAdded low-level sleep support for IA32 platforms, courtesy of
1829104470SiwasakiPat Mochel. This allows IA32 systems to transition to/from
1830104470Siwasakivarious sleeping states (e.g. S1, S3), although the lack of a
1831104470Siwasakicentralized driver model and power-manageable drivers will
1832104470Siwasakiprevent its (successful) use on most systems.
1833102550Siwasaki
1834102550SiwasakiRevamped the ACPI 'menuconfig' layout: created new "ACPI
1835102550SiwasakiSupport" submenu, unified IA32 and IA64 options, added new
1836102550Siwasaki"Boot using ACPI tables" option, etc.
1837102550Siwasaki
1838102550SiwasakiIncreased the default timeout for the EC driver from 1ms to
1839102550Siwasaki10ms (1000 cycles of 10us) to try to address AE_TIME errors
1840102550Siwasakiduring EC transactions.
1841102550Siwasaki
1842102550Siwasaki ----------------------------------------
1843102550SiwasakiSummary of changes for this label: 11_02_01
1844102550Siwasaki
1845102550Siwasaki1) ACPI CA Core Subsystem:
1846102550Siwasaki
1847102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
1848102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
1849102550Siwasakiimplemented.
1850102550Siwasaki
1851102550SiwasakiOSL Interfaces: Several of the OSL (AcpiOs*) interfaces
1852102550Siwasakirequired changes to support ACPI 2.0 Qword field access.
1853102550SiwasakiRead/Write PciConfiguration(), Read/Write Memory(), and
1854104470SiwasakiRead/Write Port() now accept an ACPI_INTEGER (64 bits) as the
1855104470Siwasakivalue parameter.  Also, the value parameter for the address
1856104470Siwasakispace handler interface is now an ACPI_INTEGER.  OSL
1857102550Siwasakiimplementations of these interfaces must now handle the case
1858102550Siwasakiwhere the Width parameter is 64.
1859102550Siwasaki
1860104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
1861104470Siwasakidisassembly for IndexFields was not supported correctly.
1862102550Siwasaki
1863102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
1864104470Siwasakisupported. During field access, a check is performed to ensure
1865104470Siwasakithat the value written to an Index or Bank register is not out
1866104470Siwasakiof the range of the register.  The Index (or Bank) register is
1867104470Siwasakiwritten before each access to the field data. Future support
1868104470Siwasakiwill include allowing individual IndexFields to be wider than
1869104470Siwasakithe DataRegister width.
1870102550Siwasaki
1871102550SiwasakiFields: Fixed a problem where the AML interpreter was
1872102550Siwasakiincorrectly attempting to write beyond the end of a
1873104470SiwasakiField/OpRegion.  This was a boundary case that occurred when a
1874104470SiwasakiDWORD field was written to a BYTE access OpRegion, forcing
1875104470Siwasakimultiple writes and causing the interpreter to write one datum
1876104470Siwasakitoo many.
1877102550Siwasaki
1878102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
1879104470Siwasakistarting bit address of a field was incorrectly calculated if
1880104470Siwasakithe current access type was wider than a byte (WordAcc,
1881102550SiwasakiDwordAcc, or QwordAcc).
1882102550Siwasaki
1883104470SiwasakiFields: Fixed a problem where forward references to individual
1884104470SiwasakiFieldUnits (individual Field names within a Field definition)
1885102550Siwasakiwere not resolved during the AML table load.
1886102550Siwasaki
1887104470SiwasakiFields: Fixed a problem where forward references from a Field
1888104470Siwasakidefinition to the parent Operation Region definition were not
1889104470Siwasakiresolved during the AML table load.
1890104470Siwasaki
1891102550SiwasakiFields: Duplicate FieldUnit names within a scope are now
1892102550Siwasakidetected during AML table load.
1893102550Siwasaki
1894102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
1895102550Siwasakiinterface returned an incorrect name for the root node.
1896102550Siwasaki
1897104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
1898104470Siwasakinew feature development with an actual reduction in the
1899104470Siwasakilibrary size.  Current core subsystem library sizes are shown
1900104470Siwasakibelow.  These are the code and data sizes for the acpica.lib
1901104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1902104470Siwasakivalues do not include any ACPI driver or OSPM code.  The debug
1903104470Siwasakiversion of the code includes the debug output trace mechanism
1904104470Siwasakiand has a larger code and data size.  Note that these values
1905104470Siwasakiwill vary depending on the efficiency of the compiler and the
1906104470Siwasakicompiler options used during generation.
1907102550Siwasaki
1908102550Siwasaki  Previous Release (10_18_01):
1909102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1910102550SiwasakiTotal
1911102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1912102550SiwasakiTotal
1913102550Siwasaki
1914102550Siwasaki  Current Release:
1915102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1916102550SiwasakiTotal
1917102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1918102550SiwasakiTotal
1919102550Siwasaki
1920102550Siwasaki 2) Linux:
1921102550Siwasaki
1922102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
1923102550SiwasakiMODULE_LICENSE("GPL") to all modules.
1924102550Siwasaki
1925102550Siwasaki 3) ASL Compiler version X2030:
1926102550Siwasaki
1927104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
1928104470Siwasakiflagged as errors.
1929102550Siwasaki
1930102550Siwasaki 4) Documentation:
1931102550Siwasaki
1932104470SiwasakiProgrammer Reference updated to reflect OSL and address space
1933104470Siwasakihandler interface changes described above.
1934102550Siwasaki
1935102550Siwasaki----------------------------------------
1936102550SiwasakiSummary of changes for this label: 10_18_01
1937102550Siwasaki
1938102550SiwasakiACPI CA Core Subsystem:
1939102550Siwasaki
1940102550SiwasakiFixed a problem with the internal object reference count
1941104470Siwasakimechanism that occasionally caused premature object deletion.
1942104470SiwasakiThis resolves all of the outstanding problem reports where an
1943104470Siwasakiobject is deleted in the middle of an interpreter evaluation.
1944104470SiwasakiAlthough this problem only showed up in rather obscure cases,
1945104470Siwasakithe solution to the problem involved an adjustment of all
1946104470Siwasakireference counts involving objects attached to namespace
1947104470Siwasakinodes.
1948102550Siwasaki
1949102550SiwasakiFixed a problem with Field support in the interpreter where
1950104470Siwasakiwriting to an aligned field whose length is an exact multiple
1951104470Siwasaki(2 or greater) of the field access granularity would cause an
1952104470Siwasakiattempt to write beyond the end of the field.
1953102550Siwasaki
1954102550SiwasakiThe top level AML opcode execution functions within the
1955102550Siwasakiinterpreter have been renamed with a more meaningful and
1956102550Siwasakiconsistent naming convention.  The modules exmonad.c and
1957102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
1958102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
1959102550Siwasaki
1960102550SiwasakiSupport for the ACPI 2.0 "Mid" ASL operator has been
1961102550Siwasakiimplemented.
1962102550Siwasaki
1963102550SiwasakiFixed a problem where the AML debugger was causing some
1964102550Siwasakiinternal objects to not be deleted during subsystem
1965102550Siwasakitermination.
1966102550Siwasaki
1967104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
1968104470Siwasakiwhere the subsystem would fault if the named object to be
1969104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
1970102550Siwasaki
1971102550SiwasakiFixed a problem with IndexFields and BankFields where the
1972102550Siwasakisubsystem would fault if the index, data, or bank registers
1973102550Siwasakiwere not defined in the same scope as the field itself.
1974102550Siwasaki
1975104470SiwasakiAdded printf format string checking for compilers that support
1976104470Siwasakithis feature.  Corrected more than 50 instances of issues with
1977104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
1978104470Siwasakithroughout the core subsystem code.
1979102550Siwasaki
1980104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
1981104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
1982104470Siwasakisupport is more than 50% implemented.
1983102550Siwasaki
1984102550SiwasakiEnhanced the output of the AML debugger "dump namespace"
1985102550Siwasakicommand to output in a more human-readable form.
1986102550Siwasaki
1987102550SiwasakiCurrent core subsystem library code sizes are shown below.
1988104470SiwasakiThese are the code and data sizes for the acpica.lib produced
1989104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
1990104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
1991104470Siwasakiof the code includes the full debug trace mechanism -- leading
1992104470Siwasakito a much larger code and data size.  Note that these values
1993104470Siwasakiwill vary depending on the efficiency of the compiler and the
1994104470Siwasakicompiler options used during generation.
1995102550Siwasaki
1996102550Siwasaki     Previous Label (09_20_01):
1997102550Siwasaki     Non-Debug Version:    65K Code,     5K Data,     70K
1998102550SiwasakiTotal
1999102550Siwasaki     Debug Version:       138K Code,    58K Data,    196K
2000102550SiwasakiTotal
2001102550Siwasaki
2002102550Siwasaki     This Label:
2003102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
2004102550SiwasakiTotal
2005102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
2006102550SiwasakiTotal
2007102550Siwasaki
2008102550SiwasakiLinux:
2009102550Siwasaki
2010104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
2011104470Siwasakiknown ASL/AML problems.
2012102550Siwasaki
2013102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
2014104470Siwasakiadded support for _HOT (the critical suspend trip point).  The
2015104470Siwasaki'info' file now includes threshold/policy information, and
2016104470Siwasakiallows setting of _SCP (cooling preference) and _TZP (polling
2017104470Siwasakifrequency) values to the 'info' file. Examples: "echo tzp=5 >
2018104470Siwasakiinfo" sets the polling frequency to 5 seconds, and "echo scp=1
2019104470Siwasaki> info" sets the cooling preference to the passive/quiet mode
2020104470Siwasaki(if supported by the ASL).
2021102550Siwasaki
2022104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
2023104470Siwasakiwhen loading the control method battery driver.
2024102550Siwasaki
2025102550Siwasaki ----------------------------------------
2026102550SiwasakiSummary of changes for this label: 09_20_01
2027102550Siwasaki
2028102550Siwasaki ACPI CA Core Subsystem:
2029102550Siwasaki
2030104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
2031104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
2032104470Siwasakienabled (i.e., these GPEs are to remain enabled when the
2033104470Siwasakiplatform sleeps.)
2034102550Siwasaki
2035104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
2036104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
2037104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
2038104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
2039102550Siwasaki
2040102550SiwasakiA local double-precision divide/modulo module has been added
2041102550Siwasakito enhance portability to OS kernels where a 64-bit math
2042102550Siwasakilibrary is not available.  The new module is "utmath.c".
2043102550Siwasaki
2044104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
2045104470Siwasakistack.  Originally over 2K, the maximum stack usage is now
2046104470Siwasakibelow 2K at 1860  bytes (1.82k)
2047102550Siwasaki
2048104470SiwasakiFixed a problem with the AcpiGetFirmwareTable interface where
2049104470Siwasakithe root table pointer was not mapped into a logical address
2050104470Siwasakiproperly.
2051102550Siwasaki
2052104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
2053104470Siwasakithe interpreter code for the ASL Notify operator.
2054102550Siwasaki
2055102550SiwasakiFixed a problem where the use of the ASL Revision operator
2056102550Siwasakireturned an error. This operator now returns the current
2057102550Siwasakiversion of the ACPI CA core subsystem.
2058102550Siwasaki
2059102550SiwasakiFixed a problem where objects passed as control method
2060104470Siwasakiparameters to AcpiEvaluateObject were always deleted at method
2061104470Siwasakitermination.  However, these objects may end up being stored
2062104470Siwasakiinto the namespace by the called method.  The object reference
2063104470Siwasakicount mechanism was applied to these objects instead of a
2064104470Siwasakiforce delete.
2065102550Siwasaki
2066104470SiwasakiFixed a problem where static strings or buffers (contained in
2067104470Siwasakithe AML code) that are declared as package elements within the
2068104470SiwasakiASL code could cause a fault because the interpreter would
2069104470Siwasakiattempt to delete them.  These objects are now marked with the
2070104470Siwasaki"static object" flag to prevent any attempt to delete them.
2071102550Siwasaki
2072102550SiwasakiImplemented an interpreter optimization to use operands
2073102550Siwasakidirectly from the state object instead of extracting the
2074104470Siwasakioperands to local variables.  This reduces stack use and code
2075104470Siwasakisize, and improves performance.
2076102550Siwasaki
2077102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
2078102550Siwasakiextra layer of code.
2079102550Siwasaki
2080102550SiwasakiCurrent core subsystem library code sizes are shown below.
2081104470SiwasakiThese are the code and data sizes for the acpica.lib produced
2082104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
2083104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
2084104470Siwasakiof the code includes the full debug trace mechanism -- leading
2085104470Siwasakito a much larger code and data size.  Note that these values
2086104470Siwasakiwill vary depending on the efficiency of the compiler and the
2087104470Siwasakicompiler options used during generation.
2088102550Siwasaki
2089102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
2090102550Siwasaki(Previously 69K)   Debug Version:     138K Code,  58K Data,
2091102550Siwasaki196K Total  (Previously 195K)
2092102550Siwasaki
2093102550SiwasakiLinux:
2094102550Siwasaki
2095102550SiwasakiSupport for ACPI 2.0 64-bit integers has been added.   All
2096102550SiwasakiACPI Integer objects are now 64 bits wide
2097102550Siwasaki
2098102550SiwasakiAll Acpi data types and structures are now in lower case.
2099102550SiwasakiOnly Acpi macros are upper case for differentiation.
2100102550Siwasaki
2101102550Siwasaki Documentation:
2102102550Siwasaki
2103102550SiwasakiChanges to the external interfaces as described above.
2104102550Siwasaki
2105102550Siwasaki ----------------------------------------
2106102550SiwasakiSummary of changes for this label: 08_31_01
2107102550Siwasaki
2108102550Siwasaki ACPI CA Core Subsystem:
2109102550Siwasaki
2110102550SiwasakiA bug with interpreter implementation of the ASL Divide
2111102550Siwasakioperator was found and fixed.  The implicit function return
2112102550Siwasakivalue (not the explicit store operands) was returning the
2113102550Siwasakiremainder instead of the quotient.  This was a longstanding
2114102550Siwasakibug and it fixes several known outstanding issues on various
2115102550Siwasakiplatforms.
2116102550Siwasaki
2117104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
2118104470Siwasakibeen further optimized for size.  There are 700 invocations of
2119104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the
2120104470Siwasakisize of the debug version of the subsystem significantly.
2121102550Siwasaki
2122102550SiwasakiA stack trace mechanism has been implemented.  The maximum
2123102550Siwasakistack usage is about 2K on 32-bit platforms.  The debugger
2124102550Siwasakicommand "stat stack" will display the current maximum stack
2125102550Siwasakiusage.
2126102550Siwasaki
2127102550SiwasakiAll public symbols and global variables within the subsystem
2128102550Siwasakiare now prefixed with the string "Acpi".  This keeps all of
2129102550Siwasakithe symbols grouped together in a kernel map, and avoids
2130102550Siwasakiconflicts with other kernel subsystems.
2131102550Siwasaki
2132104470SiwasakiMost of the internal fixed lookup tables have been moved into
2133104470Siwasakithe code segment via the const operator.
2134102550Siwasaki
2135104470SiwasakiSeveral enhancements have been made to the interpreter to both
2136104470Siwasakireduce the code size and improve performance.
2137102550Siwasaki
2138102550SiwasakiCurrent core subsystem library code sizes are shown below.
2139104470SiwasakiThese are the code and data sizes for the acpica.lib produced
2140104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do
2141104470Siwasakinot include any ACPI driver or OSPM code.  The debug version
2142104470Siwasakiof the code includes the full debug trace mechanism which
2143104470Siwasakicontains over 700 invocations of the DEBUG_PRINT macro, 500
2144104470Siwasakifunction entry macro invocations, and over 900 function exit
2145104470Siwasakimacro invocations -- leading to a much larger code and data
2146104470Siwasakisize.  Note that these values will vary depending on the
2147104470Siwasakiefficiency of the compiler and the compiler options used
2148104470Siwasakiduring generation.
2149102550Siwasaki
2150102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
2151102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
2152102550Siwasaki
2153102550Siwasaki Linux:
2154102550Siwasaki
2155104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
2156102550Siwasaki
2157102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
2158102550Siwasaki
2159102550Siwasaki ASL Compiler, version X2026:
2160102550Siwasaki
2161104470SiwasakiFixed a problem introduced in the previous label where the AML
2162104470Siwasakicode emitted for package objects produced packages with zero
2163104470Siwasakilength.
2164102550Siwasaki
2165102550Siwasaki ----------------------------------------
2166102550SiwasakiSummary of changes for this label: 08_16_01
2167102550Siwasaki
2168102550SiwasakiACPI CA Core Subsystem:
2169102550Siwasaki
2170104470SiwasakiThe following ACPI 2.0 ASL operators have been implemented in
2171104470Siwasakithe AML interpreter (These are already supported by the Intel
2172104470SiwasakiASL compiler):  ToDecimalString, ToHexString, ToString,
2173104470SiwasakiToInteger, and ToBuffer.  Support for 64-bit AML constants is
2174104470Siwasakiimplemented in the AML parser, debugger, and disassembler.
2175102550Siwasaki
2176102550SiwasakiThe internal memory tracking mechanism (leak detection code)
2177102550Siwasakihas been upgraded to reduce the memory overhead (a separate
2178102550Siwasakitracking block is no longer allocated for each memory
2179102550Siwasakiallocation), and now supports all of the internal object
2180102550Siwasakicaches.
2181102550Siwasaki
2182102550SiwasakiThe data structures and code for the internal object caches
2183102550Siwasakihave been coelesced and optimized so that there is a single
2184102550Siwasakicache and memory list data structure and a single group of
2185102550Siwasakifunctions that implement generic cache management.  This has
2186102550Siwasakireduced the code size in both the debug and release versions
2187102550Siwasakiof the subsystem.
2188102550Siwasaki
2189102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
2190102550Siwasakireplaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
2191102550Siwasakislightly different, because it generates a single call to an
2192102550Siwasakiinternal function.  This results in a savings of about 90
2193102550Siwasakibytes per invocation, resulting in an overall code and data
2194102550Siwasakisavings of about 16% in the debug version of the subsystem.
2195102550Siwasaki
2196102550Siwasaki Linux:
2197102550Siwasaki
2198102550SiwasakiFixed C3 disk corruption problems and re-enabled C3 on
2199102550Siwasakisupporting machines.
2200102550Siwasaki
2201102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
2202102550Siwasaki
2203102550SiwasakiFurther tweaked source code Linuxization.
2204102550Siwasaki
2205102550SiwasakiOther minor fixes.
2206102550Siwasaki
2207102550Siwasaki ASL Compiler:
2208102550Siwasaki
2209102550SiwasakiSupport for ACPI 2.0 variable length packages is
2210102550Siwasakifixed/completed.
2211102550Siwasaki
2212102550SiwasakiFixed a problem where the optional length parameter for the
2213102550SiwasakiACPI 2.0 ToString operator.
2214102550Siwasaki
2215102550SiwasakiFixed multiple extraneous error messages when a syntax error
2216102550Siwasakiis detected within the declaration line of a control method.
2217102550Siwasaki
2218102550Siwasaki ----------------------------------------
2219102550SiwasakiSummary of changes for this label: 07_17_01
2220102550Siwasaki
2221102550SiwasakiACPI CA Core Subsystem:
2222102550Siwasaki
2223104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
2224104470SiwasakiACPI table via the ACPI signature.  The interface can be
2225102550Siwasakicalled at any time during kernel initialization, even before
2226104470Siwasakithe kernel virtual memory manager is initialized and paging is
2227104470Siwasakienabled.  This allows kernel subsystems to obtain ACPI tables
2228104470Siwasakivery early, even before the ACPI CA subsystem is initialized.
2229102550Siwasaki
2230104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
2231104470Siwasakicould be resolved to the incorrect address under the following
2232104470Siwasakiconditions: 1) the field width is larger than 8 bits and 2)
2233104470Siwasakithe parent operation region is not defined on a DWORD
2234104470Siwasakiboundary.
2235102550Siwasaki
2236102550SiwasakiFixed a problem where the interpreter is not being locked
2237104470Siwasakiduring namespace initialization (during execution of the _INI
2238104470Siwasakicontrol methods), causing an error when an attempt is made to
2239104470Siwasakirelease it later.
2240102550Siwasaki
2241104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
2242104470Siwasakiongoing throughout the rest of this year.  In this label, The
2243104470SiwasakiMod operator is implemented.
2244102550Siwasaki
2245102550SiwasakiAdded a new data type to contain full PCI addresses named
2246102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
2247102550SiwasakiDevice, and Function values.
2248102550Siwasaki
2249102550Siwasaki Linux:
2250102550Siwasaki
2251102550SiwasakiEnhanced the Linux version of the source code to change most
2252102550Siwasakicapitalized ACPI type names to lowercase. For example, all
2253102550Siwasakiinstances of ACPI_STATUS are changed to acpi_status.  This
2254102550Siwasakiwill result in a large diff, but the change is strictly
2255102550Siwasakicosmetic and aligns the CA code closer to the Linux coding
2256102550Siwasakistandard.
2257102550Siwasaki
2258102550SiwasakiOSL Interfaces:
2259102550Siwasaki
2260102550SiwasakiThe interfaces to the PCI configuration space have been
2261104470Siwasakichanged to add the PCI Segment number and to split the single
2262104470Siwasaki32-bit combined DeviceFunction field into two 16-bit fields.
2263104470SiwasakiThis was accomplished by moving the four values that define an
2264104470Siwasakiaddress in PCI configuration space (segment, bus, device, and
2265104470Siwasakifunction) to the new ACPI_PCI_ID structure.
2266102550Siwasaki
2267104470SiwasakiThe changes to the PCI configuration space interfaces led to a
2268104470Siwasakireexamination of the complete set of address space access
2269104470Siwasakiinterfaces for PCI, I/O, and Memory.  The previously existing
2270104470Siwasaki18 interfaces have proven difficult to maintain (any small
2271104470Siwasakichange must be propagated across at least 6 interfaces) and do
2272104470Siwasakinot easily allow for future expansion to 64 bits if necessary.
2273104470SiwasakiAlso, on some systems, it would not be appropriate to
2274104470Siwasakidemultiplex the access width (8, 16, 32,or 64) before calling
2275104470Siwasakithe OSL if the corresponding native OS interfaces contain a
2276104470Siwasakisimilar access width parameter.  For these reasons, the 18
2277104470Siwasakiaddress space interfaces have been replaced by these 6 new
2278104470Siwasakiones:
2279102550Siwasaki
2280102550SiwasakiAcpiOsReadPciConfiguration
2281102550SiwasakiAcpiOsWritePciConfiguration
2282102550SiwasakiAcpiOsReadMemory
2283102550SiwasakiAcpiOsWriteMemory
2284102550SiwasakiAcpiOsReadPort
2285102550SiwasakiAcpiOsWritePort
2286102550Siwasaki
2287104470SiwasakiAdded a new interface named AcpiOsGetRootPointer to allow the
2288104470SiwasakiOSL to perform the platform and/or OS-specific actions
2289102550Siwasakinecessary to obtain the ACPI RSDP table pointer.  On IA-32
2290104470Siwasakiplatforms, this interface will simply call down to the CA core
2291104470Siwasakito perform the low-memory search for the table.  On IA-64, the
2292104470SiwasakiRSDP is obtained from EFI.  Migrating this interface to the
2293104470SiwasakiOSL allows the CA core to remain OS and platform independent.
2294102550Siwasaki
2295104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
2296104470Siwasaki"function code and pointer" interface for various
2297102550Siwasakimiscellaneous signals and notifications that must be made to
2298104470Siwasakithe host OS.   The first such signals are intended to support
2299104470Siwasakithe ASL Fatal and Breakpoint operators.  In the latter case,
2300104470Siwasakithe AcpiOsBreakpoint interface has been obsoleted.
2301102550Siwasaki
2302102550SiwasakiThe definition of the AcpiFormatException interface has been
2303104470Siwasakichanged to simplify its use.  The caller no longer must supply
2304104470Siwasakia buffer to the call; A pointer to a const string is now
2305104470Siwasakireturned directly.  This allows the call to be easily used in
2306104470Siwasakiprintf statements, etc. since the caller does not have to
2307104470Siwasakimanage a local buffer.
2308102550Siwasaki
2309102550Siwasaki ASL Compiler, Version X2025:
2310102550Siwasaki
2311102550SiwasakiThe ACPI 2.0 Switch/Case/Default operators have been
2312104470Siwasakiimplemented and are fully functional.  They will work with all
2313104470SiwasakiACPI 1.0 interpreters, since the operators are simply
2314102550Siwasakitranslated to If/Else pairs.
2315102550Siwasaki
2316104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
2317104470Siwasakiwith 1.0 interpreters, for the same reason.
2318102550Siwasaki
2319102550SiwasakiImplemented support for ACPI 2.0 variable-length packages.
2320102550SiwasakiThese packages have a separate opcode, and their size is
2321102550Siwasakidetermined by the interpreter at run-time.
2322102550Siwasaki
2323102550SiwasakiDocumentation The ACPI CA Programmer Reference has been
2324104470Siwasakiupdated to reflect the new interfaces and changes to existing
2325104470Siwasakiinterfaces.
2326102550Siwasaki
2327102550Siwasaki ------------------------------------------
2328102550SiwasakiSummary of changes for this label: 06_15_01
2329102550Siwasaki
2330102550Siwasaki ACPI CA Core Subsystem:
2331102550Siwasaki
2332102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
2333102550Siwasakiobject would get its byte address inadvertently rounded down
2334102550Siwasakito the nearest DWORD.  Buffers are always Byte-accessible.
2335102550Siwasaki
2336102550Siwasaki ASL Compiler, version X2024:
2337102550Siwasaki
2338104470SiwasakiFixed a problem where the Switch() operator would either fault
2339104470Siwasakior hang the compiler.  Note however, that the AML code for
2340104470Siwasakithis ACPI 2.0 operator is not yet implemented.
2341102550Siwasaki
2342102550SiwasakiCompiler uses the new AcpiOsGetTimer interface to obtain
2343102550Siwasakicompile timings.
2344102550Siwasaki
2345102550SiwasakiImplementation of the CreateField operator automatically
2346102550Siwasakiconverts a reference to a named field within a resource
2347102550Siwasakidescriptor from a byte offset to a bit offset if required.
2348102550Siwasaki
2349102550SiwasakiAdded some missing named fields from the resource descriptor
2350104470Siwasakisupport. These are the names that are automatically created by
2351104470Siwasakithe compiler to reference fields within a descriptor.  They
2352104470Siwasakiare only valid at compile time and are not passed through to
2353104470Siwasakithe AML interpreter.
2354102550Siwasaki
2355104470SiwasakiResource descriptor named fields are now typed as Integers and
2356104470Siwasakisubject to compile-time typechecking when used in expressions.
2357102550Siwasaki
2358102550Siwasaki ------------------------------------------
2359102550SiwasakiSummary of changes for this label: 05_18_01
2360102550Siwasaki
2361102550Siwasaki ACPI CA Core Subsystem:
2362102550Siwasaki
2363102550SiwasakiFixed a couple of problems in the Field support code where
2364102550Siwasakibits from adjacent fields could be returned along with the
2365102550Siwasakiproper field bits. Restructured the field support code to
2366102550Siwasakiimprove performance, readability and maintainability.
2367102550Siwasaki
2368102550SiwasakiNew DEBUG_PRINTP macro automatically inserts the procedure
2369102550Siwasakiname into the output, saving hundreds of copies of procedure
2370104470Siwasakiname strings within the source, shrinking the memory footprint
2371104470Siwasakiof the debug version of the core subsystem.
2372102550Siwasaki
2373102550Siwasaki Source Code Structure:
2374102550Siwasaki
2375104470SiwasakiThe source code directory tree was restructured to reflect the
2376104470Siwasakicurrent organization of the component architecture.  Some
2377104470Siwasakifiles and directories have been moved and/or renamed.
2378102550Siwasaki
2379102550Siwasaki Linux:
2380102550Siwasaki
2381102550SiwasakiFixed leaking kacpidpc processes.
2382102550Siwasaki
2383102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
2384102550Siwasakiopened.
2385102550Siwasaki
2386102550Siwasaki ASL Compiler, version X2020:
2387102550Siwasaki
2388102550SiwasakiMemory allocation performance enhancement - over 24X compile
2389102550Siwasakitime improvement on large ASL files.  Parse nodes and
2390102550Siwasakinamestring buffers are now allocated from a large internal
2391102550Siwasakicompiler buffer.
2392102550Siwasaki
2393102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
2394102550Siwasakispecified
2395102550Siwasaki
2396104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
2397104470Siwasakifile instead of the console.
2398102550Siwasaki
2399102550Siwasaki"External" second parameter is now optional
2400102550Siwasaki
2401102550Siwasaki"ElseIf" syntax now properly allows the predicate
2402102550Siwasaki
2403102550SiwasakiLast operand to "Load" now recognized as a Target operand
2404102550Siwasaki
2405102550SiwasakiDebug object can now be used anywhere as a normal object.
2406102550Siwasaki
2407102550SiwasakiResourceTemplate now returns an object of type BUFFER
2408102550Siwasaki
2409102550SiwasakiEISAID now returns an object of type INTEGER
2410102550Siwasaki
2411102550Siwasaki"Index" now works with a STRING operand
2412102550Siwasaki
2413102550Siwasaki"LoadTable" now accepts optional parameters
2414102550Siwasaki
2415102550Siwasaki"ToString" length parameter is now optional
2416102550Siwasaki
2417102550Siwasaki"Interrupt (ResourceType," parse error fixed.
2418102550Siwasaki
2419104470Siwasaki"Register" with a user-defined region space parse error fixed
2420102550Siwasaki
2421102550SiwasakiEscaped backslash at the end of a string ("\\") scan/parse
2422102550Siwasakierror fixed
2423102550Siwasaki
2424102550Siwasaki"Revision" is now an object of type INTEGER.
2425102550Siwasaki
2426102550Siwasaki
2427102550Siwasaki
2428102550Siwasaki------------------------------------------
2429102550SiwasakiSummary of changes for this label: 05_02_01
2430102550Siwasaki
2431102550SiwasakiLinux:
2432102550Siwasaki
2433102550Siwasaki/proc/acpi/event now blocks properly.
2434102550Siwasaki
2435102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
2436102550Siwasaki/proc/acpi/dsdt.
2437102550Siwasaki
2438102550Siwasaki ACPI CA Core Subsystem:
2439102550Siwasaki
2440104470SiwasakiFixed a problem introduced in the previous label where some of
2441104470Siwasakithe "small" resource descriptor types were not recognized.
2442102550Siwasaki
2443102550SiwasakiImproved error messages for the case where an ASL Field is
2444102550Siwasakioutside the range of the parent operation region.
2445102550Siwasaki
2446102550Siwasaki ASL Compiler, version X2018:
2447102550Siwasaki
2448102550SiwasakiAdded error detection for ASL Fields that extend beyond the
2449102550Siwasakilength of the parent operation region (only if the length of
2450102550Siwasakithe region is known at compile time.)  This includes fields
2451102550Siwasakithat have a minimum access width that is smaller than the
2452102550Siwasakiparent region, and individual field units that are partially
2453102550Siwasakior entirely beyond the extent of the parent.
2454102550Siwasaki
2455102550Siwasaki
2456102550Siwasaki
2457102550Siwasaki------------------------------------------
2458102550SiwasakiSummary of changes for this label: 04_27_01
2459102550Siwasaki
2460102550Siwasaki ACPI CA Core Subsystem:
2461102550Siwasaki
2462104470SiwasakiFixed a problem where the namespace mutex could be released at
2463104470Siwasakithe wrong time during execution of
2464102550SiwasakiAcpiRemoveAddressSpaceHandler.
2465102550Siwasaki
2466104470SiwasakiAdded optional thread ID output for debug traces, to simplify
2467104470Siwasakidebugging of multiple threads.  Added context switch
2468104470Siwasakinotification when the debug code realizes that a different
2469104470Siwasakithread is now executing ACPI code.
2470102550Siwasaki
2471102550SiwasakiSome additional external data types have been prefixed with
2472104470Siwasakithe string "ACPI_" for consistency.  This may effect existing
2473104470Siwasakicode.  The data types affected are the external callback
2474104470Siwasakitypedefs - e.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
2475102550Siwasaki
2476102550Siwasaki Linux:
2477102550Siwasaki
2478102550SiwasakiFixed an issue with the OSL semaphore implementation where a
2479102550Siwasakithread was waking up with an error from receiving a SIGCHLD
2480102550Siwasakisignal.
2481102550Siwasaki
2482102550SiwasakiLinux version of ACPI CA now uses the system C library for
2483102550Siwasakistring manipulation routines instead of a local
2484102550Siwasakiimplementation.
2485102550Siwasaki
2486102550SiwasakiCleaned up comments and removed TBDs.
2487102550Siwasaki
2488102550Siwasaki ASL Compiler, version X2017:
2489102550Siwasaki
2490102550SiwasakiEnhanced error detection and reporting for all file I/O
2491102550Siwasakioperations.
2492102550Siwasaki
2493102550Siwasaki Documentation:
2494102550Siwasaki
2495102550SiwasakiProgrammer Reference updated to version 1.06.
2496102550Siwasaki
2497102550Siwasaki
2498102550Siwasaki
2499102550Siwasaki------------------------------------------
2500102550SiwasakiSummary of changes for this label: 04_13_01
2501102550Siwasaki
2502102550Siwasaki ACPI CA Core Subsystem:
2503102550Siwasaki
2504102550SiwasakiRestructured support for BufferFields and RegionFields.
2505104470SiwasakiBankFields support is now fully operational.  All known 32-bit
2506104470Siwasakilimitations on field sizes have been removed.  Both
2507104470SiwasakiBufferFields and (Operation) RegionFields are now supported by
2508104470Siwasakithe same field management code.
2509102550Siwasaki
2510104470SiwasakiResource support now supports QWORD address and IO resources.
2511104470SiwasakiThe 16/32/64 bit address structures and the Extended IRQ
2512104470Siwasakistructure have been changed to properly handle Source Resource
2513104470Siwasakistrings.
2514102550Siwasaki
2515102550SiwasakiA ThreadId of -1 is now used to indicate a "mutex not
2516102550Siwasakiacquired" condition internally and must never be returned by
2517102550SiwasakiAcpiOsThreadId. This reserved value was changed from 0 since
2518102550SiwasakiUnix systems allow a thread ID of 0.
2519102550Siwasaki
2520102550SiwasakiLinux:
2521102550Siwasaki
2522102550SiwasakiDriver code reorganized to enhance portability
2523102550Siwasaki
2524102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
2525102550Siwasaki
2526102550SiwasakiFixed the EC driver to honor _GLK.
2527102550Siwasaki
2528102550SiwasakiASL Compiler, version X2016:
2529102550Siwasaki
2530102550SiwasakiFixed support for the "FixedHw" keyword.  Previously, the
2531104470SiwasakiFixedHw address space was set to 0, not 0x7f as it should be.
2532102550Siwasaki
2533102550Siwasaki ------------------------------------------
2534102550SiwasakiSummary of changes for this label: 03_13_01
2535102550Siwasaki
2536102550Siwasaki ACPI CA Core Subsystem:
2537102550Siwasaki
2538104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
2539104470Siwasakipresent.
2540102550Siwasaki
2541102550SiwasakiNotify handler fix - notifies are deferred until the parent
2542102550Siwasakimethod completes execution.  This fixes the "mutex already
2543102550Siwasakiacquired" issue seen occasionally.
2544102550Siwasaki
2545104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
2546104470Siwasakifound to cause compatibility problems with existing ASL/AML.
2547104470SiwasakiThe convert "result-to-target-type" implementation has been
2548104470Siwasakiremoved for stores to method Args and Locals.  Source operand
2549104470Siwasakiconversion is still fully implemented.  Possible changes to
2550104470SiwasakiACPI 2.0 specification pending.
2551102550Siwasaki
2552104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
2553104470Siwasakilength.
2554102550Siwasaki
2555102550SiwasakiFix for compiler warnings for 64-bit compiles.
2556102550Siwasaki
2557102550Siwasaki Linux:
2558102550Siwasaki
2559102550Siwasaki/proc output aligned for easier parsing.
2560102550Siwasaki
2561102550SiwasakiRelease-version compile problem fixed.
2562102550Siwasaki
2563104470SiwasakiNew kernel configuration options documented in Configure.help.
2564102550Siwasaki
2565102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
2566102550Siwasakicontext" message.
2567102550Siwasaki
2568102550Siwasaki OSPM:
2569102550Siwasaki
2570102550SiwasakiPower resource driver integrated with bus manager.
2571102550Siwasaki
2572102550SiwasakiFixed kernel fault during active cooling for thermal zones.
2573102550Siwasaki
2574102550SiwasakiSource Code:
2575102550Siwasaki
2576102550SiwasakiThe source code tree has been restructured.
2577102550Siwasaki
2578102550Siwasaki
2579102550Siwasaki
2580102550Siwasaki------------------------------------------
2581102550SiwasakiSummary of changes for this label: 03_02_01
2582102550Siwasaki
2583102550Siwasaki Linux OS Services Layer (OSL):
2584102550Siwasaki
2585102550SiwasakiMajor revision of all Linux-specific code.
2586102550Siwasaki
2587102550SiwasakiModularized all ACPI-specific drivers.
2588102550Siwasaki
2589102550SiwasakiAdded new thermal zone and power resource drivers.
2590102550Siwasaki
2591102550SiwasakiRevamped /proc interface (new functionality is under
2592102550Siwasaki/proc/acpi).
2593102550Siwasaki
2594102550SiwasakiNew kernel configuration options.
2595102550Siwasaki
2596102550Siwasaki Linux known issues:
2597102550Siwasaki
2598102550SiwasakiNew kernel configuration options not documented in
2599102550SiwasakiConfigure.help yet.
2600102550Siwasaki
2601102550SiwasakiModule dependencies not currently implemented. If used, they
2602102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
2603102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
2604102550Siwasaki
2605102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
2606102550Siwasaki
2607102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
2608102550Siwasaki
2609104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
2610104470Siwasakimessage.
2611102550Siwasaki
2612104470SiwasakiSome systems may fail with "execution mutex already acquired"
2613104470Siwasakimessage.
2614102550Siwasaki
2615102550Siwasaki ACPI CA Core Subsystem:
2616102550Siwasaki
2617102550SiwasakiAdded a new OSL Interface, AcpiOsGetThreadId.  This was
2618104470Siwasakirequired for the  deadlock detection code. Defined to return a
2619104470Siwasakinon-zero, 32-bit thread ID for the currently executing thread.
2620104470SiwasakiMay be a non-zero constant integer on single-thread systems.
2621102550Siwasaki
2622104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
2623104470SiwasakiWe may add conditional compilation for this code (debug only)
2624104470Siwasakilater.
2625102550Siwasaki
2626104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
2627104470Siwasakiincludes multiple acquires/releases by owner and support for
2628104470Siwasakithe Mutex SyncLevel parameter.
2629102550Siwasaki
2630102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
2631104470SiwasakiMutexes that have been acquired but not released when a thread
2632104470Siwasakiexits the interpreter.  This forces conformance to the ACPI
2633104470Siwasakispec ("All mutexes must be released when an invocation exits")
2634104470Siwasakiand prevents deadlocked ASL threads.  This mechanism can be
2635104470Siwasakiexpanded (later) to monitor other resource acquisitions if OEM
2636104470SiwasakiASL code continues to misbehave (which it will).
2637102550Siwasaki
2638104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
2639104470Siwasakisupport.
2640102550Siwasaki
2641104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
2642104470Siwasakispec does in fact allow recursive method calls.)  The number
2643104470Siwasakiof recursive calls is subject to the restrictions imposed by
2644104470Siwasakithe SERIALIZED method keyword and SyncLevel (ACPI 2.0) method
2645104470Siwasakiparameter.
2646102550Siwasaki
2647102550SiwasakiImplemented support for the SyncLevel parameter for control
2648102550Siwasakimethods (ACPI 2.0 feature)
2649102550Siwasaki
2650102550SiwasakiFixed a deadlock problem when multiple threads attempted to
2651102550Siwasakiuse the interpreter.
2652102550Siwasaki
2653102550SiwasakiFixed a problem where the string length of a String package
2654102550Siwasakielement was not always set in a package returned from
2655102550SiwasakiAcpiEvaluateObject.
2656102550Siwasaki
2657102550SiwasakiFixed a problem where the length of a String package element
2658102550Siwasakiwas not always included in the length of the overall package
2659102550Siwasakireturned from AcpiEvaluateObject.
2660102550Siwasaki
2661102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
2662102550Siwasakimanager.  This manager keeps a list of all outstanding
2663102550Siwasakiallocations, and can therefore detect memory leaks and
2664104470Siwasakiattempts to free memory blocks more than once. Useful for code
2665104470Siwasakisuch as the power manager, etc.  May not be appropriate for
2666104470Siwasakidevice drivers.  Performance with the debug code enabled is
2667104470Siwasakislow.
2668102550Siwasaki
2669102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
2670102550Siwasaki
2671102550Siwasaki ASL Compiler Version X2015:
2672102550Siwasaki
2673102550SiwasakiIntegrated changes to allow the compiler to be generated on
2674102550Siwasakimultiple platforms.
2675102550Siwasaki
2676102550SiwasakiLinux makefile added to generate the compiler on Linux
2677102550Siwasaki
2678102550Siwasaki Source Code:
2679102550Siwasaki
2680102550SiwasakiAll platform-specific headers have been moved to their own
2681102550Siwasakisubdirectory, Include/Platform.
2682102550Siwasaki
2683102550SiwasakiNew source file added, Interpreter/ammutex.c
2684102550Siwasaki
2685102550SiwasakiNew header file, Include/acstruct.h
2686102550Siwasaki
2687102550Siwasaki Documentation:
2688102550Siwasaki
2689102550SiwasakiThe programmer reference has been updated for the following
2690102550Siwasakinew interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
2691102550SiwasakiAcpiFree
2692102550Siwasaki
2693102550Siwasaki ------------------------------------------
2694102550SiwasakiSummary of changes for this label: 02_08_01
2695102550Siwasaki
2696102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
2697104470Siwasakiincorrectly returned if the return resource buffer was larger
2698104470Siwasakithan the actual data (in the resource interfaces).
2699102550Siwasaki
2700102550SiwasakiReferences to named objects within packages are resolved to
2701104470Siwasakithe full pathname string before packages are returned directly
2702104470Siwasaki(via the AcpiEvaluateObject interface) or indirectly via the
2703104470Siwasakiresource interfaces.
2704102550Siwasaki
2705102550SiwasakiLinux OS Services Layer (OSL):
2706102550Siwasaki
2707102550SiwasakiImproved /proc battery interface.
2708102550Siwasaki
2709102550Siwasaki
2710104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
2711102550Siwasaki
2712102550SiwasakiASL Compiler Version X2014:
2713102550Siwasaki
2714102550SiwasakiAll defined method arguments can now be used as local
2715104470Siwasakivariables, including the ones that are not actually passed in
2716104470Siwasakias parameters.  The compiler tracks initialization of the
2717102550Siwasakiarguments and issues an exception if they are used without
2718102550Siwasakiprior assignment (just like locals).
2719102550Siwasaki
2720104470SiwasakiThe -o option now specifies a filename prefix that is used for
2721104470Siwasakiall output files, including the AML output file.  Otherwise,
2722104470Siwasakithe default behavior is as follows:  1) the AML goes to the
2723104470Siwasakifile specified in the DSDT.  2) all other output files use the
2724104470Siwasakiinput source filename as the base.
2725102550Siwasaki
2726102550Siwasaki ------------------------------------------
2727102550SiwasakiSummary of changes for this label: 01_25_01
2728102550Siwasaki
2729102550SiwasakiCore ACPI CA Subsystem: Restructured the implementation of
2730102550Siwasakiobject store support within the  interpreter.  This includes
2731102550Siwasakisupport for the Store operator as well  as any ASL operators
2732102550Siwasakithat include a target operand.
2733102550Siwasaki
2734102550SiwasakiPartially implemented support for Implicit Result-to-Target
2735102550Siwasakiconversion. This is when a result object is converted on the
2736104470Siwasakifly to the type of  an existing target object.  Completion of
2737104470Siwasakithis support is pending  further analysis of the ACPI
2738102550Siwasakispecification concerning this matter.
2739102550Siwasaki
2740102550SiwasakiCPU-specific code has been removed from the subsystem
2741102550Siwasaki(hardware directory).
2742102550Siwasaki
2743102550SiwasakiNew Power Management Timer functions added
2744102550Siwasaki
2745102550SiwasakiLinux OS Services Layer (OSL): Moved system state transition
2746102550Siwasakicode to the core, fixed it, and modified  Linux OSL
2747102550Siwasakiaccordingly.
2748102550Siwasaki
2749102550SiwasakiFixed C2 and C3 latency calculations.
2750102550Siwasaki
2751102550Siwasaki
2752104470SiwasakiWe no longer use the compilation date for the version message
2753104470Siwasakion  initialization, but retrieve the version from
2754102550SiwasakiAcpiGetSystemInfo().
2755102550Siwasaki
2756102550SiwasakiIncorporated for fix Sony VAIO machines.
2757102550Siwasaki
2758104470SiwasakiDocumentation:  The Programmer Reference has been updated and
2759104470Siwasakireformatted.
2760102550Siwasaki
2761102550Siwasaki
2762102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
2763102550Siwasakinumbering and error reporting could get out  of sync in the
2764102550Siwasakipresence of multiple include files.
2765102550Siwasaki
2766102550Siwasaki ------------------------------------------
2767102550SiwasakiSummary of changes for this label: 01_15_01
2768102550Siwasaki
2769102550SiwasakiCore ACPI CA Subsystem:
2770102550Siwasaki
2771102550SiwasakiImplemented support for type conversions in the execution of
2772104470Siwasakithe ASL  Concatenate operator (The second operand is converted
2773104470Siwasakito match the type  of the first operand before concatenation.)
2774102550Siwasaki
2775102550SiwasakiSupport for implicit source operand conversion is partially
2776102550Siwasakiimplemented.   The ASL source operand types Integer, Buffer,
2777104470Siwasakiand String are freely  interchangeable for most ASL operators
2778104470Siwasakiand are converted by the interpreter  on the fly as required.
2779104470SiwasakiImplicit Target operand conversion (where the  result is
2780104470Siwasakiconverted to the target type before storing) is not yet
2781104470Siwasakiimplemented.
2782102550Siwasaki
2783102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
2784102550Siwasaki
2785102550SiwasakiProblem fixed where a field read on an aligned field could
2786102550Siwasakicause a read  past the end of the field.
2787102550Siwasaki
2788102550SiwasakiNew exception, AE_AML_NO_RETURN_VALUE, is returned when a
2789102550Siwasakimethod does not return a value, but the caller expects one.
2790102550Siwasaki(The ASL compiler flags this as a warning.)
2791102550Siwasaki
2792102550SiwasakiASL Compiler:
2793102550Siwasaki
2794102550SiwasakiVersion X2011:
2795102550Siwasaki1. Static typechecking of all operands is implemented. This
2796102550Siwasakiprevents the use of invalid objects (such as using a Package
2797102550Siwasakiwhere an Integer is required) at compile time instead of at
2798102550Siwasakiinterpreter run-time.
2799102550Siwasaki2. The ASL source line is printed with ALL errors and
2800102550Siwasakiwarnings.
2801102550Siwasaki3. Bug fix for source EOF without final linefeed.
2802102550Siwasaki4. Debug option is split into a parse trace and a namespace
2803102550Siwasakitrace.
2804102550Siwasaki5. Namespace output option (-n) includes initial values for
2805102550Siwasakiintegers and strings.
2806102550Siwasaki6. Parse-only option added for quick syntax checking.
2807102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
2808102550Siwasaki
2809102550SiwasakiVersion X2012:
2810102550Siwasaki1. Relaxed typechecking to allow interchangeability between
2811104470Siwasakistrings, integers, and buffers.  These types are now converted
2812104470Siwasakiby the interpreter at runtime.
2813102550Siwasaki2. Compiler reports time taken by each internal subsystem in
2814102550Siwasakithe debug         output file.
2815102550Siwasaki
2816102550Siwasaki
2817102550Siwasaki ------------------------------------------
2818102550SiwasakiSummary of changes for this label: 12_14_00
2819102550Siwasaki
2820102550SiwasakiASL Compiler:
2821102550Siwasaki
2822104470SiwasakiThis is the first official release of the compiler. Since the
2823104470Siwasakicompiler requires elements of the Core Subsystem, this label
2824104470Siwasakisynchronizes everything.
2825102550Siwasaki
2826102550Siwasaki------------------------------------------
2827102550SiwasakiSummary of changes for this label: 12_08_00
2828102550Siwasaki
2829102550SiwasakiFixed a problem where named references within the ASL
2830102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2831102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2832102550Siwasakiduring initialization of the region/field. This is similar
2833104470Siwasaki(but not related internally) to the problem that was fixed in
2834104470Siwasakithe last label.
2835102550Siwasaki
2836102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
2837102550Siwasakifunctions ToBCD and FromBCD.
2838102550Siwasaki
2839102550SiwasakiUpdated all legal headers to include "2000" in the copyright
2840102550Siwasakiyears.
2841102550Siwasaki
2842102550Siwasaki ------------------------------------------
2843102550SiwasakiSummary of changes for this label: 12_01_00
2844102550Siwasaki
2845102550SiwasakiFixed a problem where method invocations within the ASL
2846102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2847102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2848102550Siwasakiduring initialization of the region/field:
2849102550Siwasaki
2850102550Siwasaki  nsinit-0209: AE_AML_OPERAND_TYPE while getting region
2851102550Siwasakiarguments [DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad
2852102550Siwasakioperand(s) (0x3005)
2853102550Siwasaki
2854102550SiwasakiFixed a problem where operators with more than one nested
2855104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
2856104470SiwasakiAE_AML_OPERAND_TYPE errors.  This was actually a rather
2857104470Siwasakiserious problem that has gone unnoticed until now.
2858102550Siwasaki
2859102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
2860102550Siwasaki
2861104470SiwasakiFixed a problem where AcpiGetHandle didn't quite get fixed in
2862104470Siwasakithe previous build (The prefix part of a relative path was
2863104470Siwasakihandled incorrectly).
2864102550Siwasaki
2865102550SiwasakiFixed a problem where Operation Region initialization failed
2866102550Siwasakiif the operation region name was a "namepath" instead of a
2867102550Siwasakisimple "nameseg". Symptom was an AE_NO_OPERAND error.
2868102550Siwasaki
2869102550SiwasakiFixed a problem where an assignment to a local variable via
2870102550Siwasakithe indirect RefOf mechanism only worked for the first such
2871102550Siwasakiassignment.  Subsequent assignments were ignored.
2872102550Siwasaki
2873102550Siwasaki ------------------------------------------
2874102550SiwasakiSummary of changes for this label: 11_15_00
2875102550Siwasaki
2876104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
2877104470Siwasakithe 0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
2878104470Siwasakitables, the AML  interpreter does NOT have support for the new
2879104470Siwasaki2.0 ASL grammar terms at this time.
2880102550Siwasaki
2881104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
2882104470Siwasaki2.0 FADT.
2883102550Siwasaki
2884104470SiwasakiAll physical memory addresses across all platforms are now 64
2885104470Siwasakibits wide. Logical address width remains dependent on the
2886102550Siwasakiplatform (i.e., "void *").
2887102550Siwasaki
2888102550SiwasakiAcpiOsMapMemory interface changed to a 64-bit physical
2889102550Siwasakiaddress.
2890102550Siwasaki
2891102550SiwasakiThe AML interpreter integer size is now 64 bits, as per the
2892102550SiwasakiACPI 2.0 specification.
2893102550Siwasaki
2894104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
2895104470Siwasakirevision number less than 2 use 32-bit integers only.
2896102550Siwasaki
2897104470SiwasakiFixed a problem where the evaluation of OpRegion operands did
2898104470Siwasakinot always resolve them to numbers properly.
2899102550Siwasaki
2900102550Siwasaki------------------------------------------
2901102550SiwasakiSummary of changes for this label: 10_20_00
2902102550Siwasaki
2903102550SiwasakiFix for CBN_._STA issue.  This fix will allow correct access
2904102550Siwasakito CBN_ OpRegions when the _STA returns 0x8.
2905102550Siwasaki
2906104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
2907104470Siwasakivalues before a package object is returned
2908102550Siwasaki
2909104470SiwasakiFix for method call as predicate to if/while construct causing
2910104470Siwasakiincorrect if/while behavior
2911102550Siwasaki
2912104470SiwasakiFix for Else block package lengths sometimes calculated wrong
2913104470Siwasaki(if block > 63 bytes)
2914102550Siwasaki
2915102550SiwasakiFix for Processor object length field, was always zero
2916102550Siwasaki
2917102550SiwasakiTable load abort if FACP sanity check fails
2918102550Siwasaki
2919102550SiwasakiFix for problem with Scope(name) if name already exists
2920102550Siwasaki
2921102550SiwasakiWarning emitted if a named object referenced cannot be found
2922102550Siwasaki(resolved) during method execution.
2923102550Siwasaki
2924102550Siwasaki
2925102550Siwasaki
2926102550Siwasaki
2927102550Siwasaki
2928102550Siwasaki------------------------------------------
2929102550SiwasakiSummary of changes for this label: 9_29_00
2930102550Siwasaki
2931102550SiwasakiNew table initialization interfaces: AcpiInitializeSubsystem
2932102550Siwasakino longer has any parameters AcpiFindRootPointer - Find the
2933102550SiwasakiRSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
2934104470Siwasakifound at RSDP->RSDT Obsolete Interfaces AcpiLoadFirmwareTables
2935104470Siwasaki- replaced by AcpiLoadTables
2936102550Siwasaki
2937104470SiwasakiNote: These interface changes require changes to all existing
2938104470SiwasakiOSDs
2939102550Siwasaki
2940102550SiwasakiThe PCI_Config default address space handler is always
2941102550Siwasakiinstalled at the root namespace object.
2942102550Siwasaki
2943102550Siwasaki-------------------------------------------
2944102550SiwasakiSummary of changes for this label: 09_15_00
2945102550Siwasaki
2946102550SiwasakiThe new initialization architecture is implemented.  New
2947102550Siwasakiinterfaces are: AcpiInitializeSubsystem (replaces
2948102550SiwasakiAcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
2949102550SiwasakiAcpiLoadNamespace (Namespace is automatically loaded when a
2950102550Siwasakitable is loaded)
2951102550Siwasaki
2952104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
2953104470Siwasakifrom 52 bytes to 32 bytes.  There is usually one of these for
2954104470Siwasakievery namespace object, so the memory savings is significant.
2955102550Siwasaki
2956102550SiwasakiImplemented just-in-time evaluation of the CreateField
2957102550Siwasakioperators.
2958102550Siwasaki
2959102550SiwasakiBug fixes for IA-64 support have been integrated.
2960102550Siwasaki
2961102550SiwasakiAdditional code review comments have been implemented
2962102550Siwasaki
2963104470SiwasakiThe so-called "third pass parse" has been replaced by a final
2964104470Siwasakiwalk through the namespace to initialize all operation regions
2965104470Siwasaki(address spaces) and fields that have not yet been initialized
2966104470Siwasakiduring the execution of the various _INI and REG methods.
2967102550Siwasaki
2968102550SiwasakiNew file - namespace/nsinit.c
2969102550Siwasaki
2970102550Siwasaki-------------------------------------------
2971102550SiwasakiSummary of changes for this label: 09_01_00
2972102550Siwasaki
2973104470SiwasakiNamespace manager data structures have been reworked to change
2974104470Siwasakithe primary  object from a table to a single object.  This has
2975104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
2976104470Siwasakiand 2X overall in the ACPI CA subsystem.
2977102550Siwasaki
2978102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
2979102550Siwasakiinadvertently left  commented out.
2980102550Siwasaki
2981104470SiwasakiReduced the warning count when generating the source with the
2982104470SiwasakiGCC compiler.
2983102550Siwasaki
2984102550SiwasakiRevision numbers added to each module header showing the
2985104470SiwasakiSourceSafe version of the file.  Please refer to this version
2986104470Siwasakinumber when giving us feedback or comments on individual
2987104470Siwasakimodules.
2988102550Siwasaki
2989102550SiwasakiThe main object types within the subsystem have been renamed
2990102550Siwasakito clarify their  purpose:
2991102550Siwasaki
2992102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
2993102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
2994102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
2995102550Siwasaki
2996102550SiwasakiNOTE: no changes to the initialization sequence are included
2997102550Siwasakiin this label.
2998102550Siwasaki
2999102550Siwasaki-------------------------------------------
3000102550SiwasakiSummary of changes for this label: 08_23_00
3001102550Siwasaki
3002102550SiwasakiFixed problem where TerminateControlMethod was being called
3003102550Siwasakimultiple times per  method
3004102550Siwasaki
3005102550SiwasakiFixed debugger problem where single stepping caused a
3006102550Siwasakisemaphore to be  oversignalled
3007102550Siwasaki
3008104470SiwasakiImproved performance through additional parse object caching -
3009104470Siwasakiadded  ACPI_EXTENDED_OP type
3010102550Siwasaki
3011102550Siwasaki-------------------------------------------
3012102550SiwasakiSummary of changes for this label: 08_10_00
3013102550Siwasaki
3014102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
3015102550Siwasakicomplete parse trees  for ACPI tables and control methods.
3016104470SiwasakiInstead, parse subtrees are created and  then deleted as soon
3017104470Siwasakias they are processed (Either entered into the namespace or
3018104470Siwasakiexecuted by the interpreter).  This reduces the use of dynamic
3019104470Siwasakikernel memory  significantly. (about 10X)
3020102550Siwasaki
3021102550SiwasakiException codes broken into classes and renumbered.  Be sure
3022104470Siwasakito recompile all  code that includes acexcep.h.  Hopefully we
3023104470Siwasakiwon't have to renumber the codes  again now that they are
3024102550Siwasakisplit into classes (environment, programmer, AML code,  ACPI
3025102550Siwasakitable, and internal).
3026102550Siwasaki
3027104470SiwasakiFixed some additional alignment issues in the Resource Manager
3028104470Siwasakisubcomponent
3029102550Siwasaki
3030102550SiwasakiImplemented semaphore tracking in the AcpiExec utility, and
3031102550Siwasakifixed several places  where mutexes/semaphores were being
3032102550Siwasakiunlocked without a corresponding lock  operation.  There are
3033102550Siwasakino known semaphore or mutex "leaks" at this time.
3034102550Siwasaki
3035104470SiwasakiFixed the case where an ASL Return operator is used to return
3036104470Siwasakian unnamed  package.
3037102550Siwasaki
3038102550Siwasaki-------------------------------------------
3039102550SiwasakiSummary of changes for this label: 07_28_00
3040102550Siwasaki
3041102550SiwasakiFixed a problem with the way addresses were calculated in
3042102550SiwasakiAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This
3043102550Siwasakiproblem manifested itself when a Field was  created with
3044102550SiwasakiWordAccess or DwordAccess, but the field unit defined within
3045102550Siwasakithe  Field was less than a Word or Dword.
3046102550Siwasaki
3047102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
3048104470Siwasakioperands off of the  operand stack to display information. The
3049104470Siwasakiproblem manifested itself as a TLB  error on 64-bit systems
3050104470Siwasakiwhen accessing an operand stack with two or more  operands.
3051102550Siwasaki
3052102550SiwasakiFixed a problem with the PCI configuration space handlers
3053102550Siwasakiwhere context was  getting confused between accesses. This
3054102550Siwasakirequired a change to the generic address  space handler and
3055102550Siwasakiaddress space setup definitions. Handlers now get both a
3056104470Siwasakiglobal handler context (this is the one passed in by the user
3057104470Siwasakiwhen executing  AcpiInstallAddressSpaceHandler() and a
3058102550Siwasakispecific region context that is unique to  each region (For
3059102550Siwasakiexample, the _ADR, _SEG and _BBN values associated with a
3060102550Siwasakispecific region). The generic function definitions have
3061102550Siwasakichanged to the  following:
3062102550Siwasaki
3063102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
3064104470SiwasakiFunction, UINT32 Address, UINT32 BitWidth, UINT32 *Value, void
3065104470Siwasaki*HandlerContext, // This used to be void *Context void
3066102550Siwasaki*RegionContext); // This is an additional parameter
3067102550Siwasaki
3068102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
3069102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
3070102550Siwasaki**RegionContext); // This used to be **ReturnContext
3071102550Siwasaki
3072102550Siwasaki-------------------------------------------
3073102550SiwasakiSummary of changes for this label: 07_21_00
3074102550Siwasaki
3075102550SiwasakiMajor file consolidation and rename.  All files within the
3076102550Siwasakiinterpreter have been  renamed as well as most header files.
3077102550SiwasakiThis was done to prevent collisions with  existing files in
3078102550Siwasakithe host OSs -- filenames such as "config.h" and "global.h"
3079102550Siwasakiseem to be quite common.  The VC project files have been
3080102550Siwasakiupdated.  All makefiles  will require modification.
3081102550Siwasaki
3082102550SiwasakiThe parser/interpreter integration continues in Phase 5 with
3083102550Siwasakithe implementation  of a complete 2-pass parse (the AML is
3084102550Siwasakiparsed twice) for each table;  This  avoids the construction
3085102550Siwasakiof a huge parse tree and therefore reduces the amount of
3086104470Siwasakidynamic memory required by the subsystem.  Greater use of the
3087104470Siwasakiparse object cache  means that performance is unaffected.
3088102550Siwasaki
3089102550SiwasakiMany comments from the two code reviews have been rolled in.
3090102550Siwasaki
3091102550SiwasakiThe 64-bit alignment support is complete.
3092102550Siwasaki
3093102550Siwasaki-------------------------------------------
3094102550SiwasakiSummary of changes for this label: 06_30_00
3095102550Siwasaki
3096102550SiwasakiWith a nod and a tip of the hat to the technology of
3097102550Siwasakiyesteryear, we've added  support in the source code for 80
3098104470Siwasakicolumn output devices.  The code is now mostly  constrained to
3099104470Siwasaki80 columns or less to support environments and editors that 1)
3100104470Siwasakicannot display or print more than 80 characters on a single
3101104470Siwasakiline, and 2) cannot  disable line wrapping.
3102102550Siwasaki
3103104470SiwasakiA major restructuring of the namespace data structure has been
3104104470Siwasakicompleted.  The  result is 1) cleaner and more
3105102550Siwasakiunderstandable/maintainable code, and 2) a  significant
3106102550Siwasakireduction in the dynamic memory requirement for each named
3107102550SiwasakiACPI  object (almost half).
3108102550Siwasaki
3109102550Siwasaki-------------------------------------------
3110102550SiwasakiSummary of changes for this label: 06_23_00
3111102550Siwasaki
3112104470SiwasakiLinux support has been added.  In order to obtain approval to
3113104470Siwasakiget the ACPI CA  subsystem into the Linux kernel, we've had to
3114104470Siwasakimake quite a few changes to the  base subsystem that will
3115104470Siwasakiaffect all users (all the changes are generic and OS-
3116102550Siwasakiindependent).  The effects of these global changes have been
3117104470Siwasakisomewhat far  reaching.  Files have been merged and/or renamed
3118104470Siwasakiand interfaces have been  renamed.   The major changes are
3119104470Siwasakidescribed below.
3120102550Siwasaki
3121102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
3122102550Siwasakipollution/confusion  within our target kernels.  All OSD
3123102550Siwasakiinterfaces must be modified to match the new  naming
3124102550Siwasakiconvention.
3125102550Siwasaki
3126102550SiwasakiFiles merged across the subsystem.  A number of the smaller
3127102550Siwasakisource and header  files have been merged to reduce the file
3128104470Siwasakicount and increase the density of the  existing files.  There
3129104470Siwasakiare too many to list here.  In general, makefiles that  call
3130104470Siwasakiout individual files will require rebuilding.
3131102550Siwasaki
3132104470SiwasakiInterpreter files renamed.  All interpreter files now have the
3133104470Siwasakiprefix am*  instead of ie* and is*.
3134102550Siwasaki
3135104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
3136104470Siwasakiacpiosd.h file is  now acpiosxf.h.  We are removing references
3137104470Siwasakito the acronym "API" since it is  somewhat windowsy. The new
3138104470Siwasakiname is "external interface" or xface or xf in the
3139104470Siwasakifilenames.j
3140102550Siwasaki
3141102550Siwasaki
3142102550SiwasakiAll manifest constants have been forced to upper case (some
3143102550Siwasakiwere mixed case.)   Also, the string "ACPI_" has been
3144102550Siwasakiprepended to many (not all) of the constants,  typedefs, and
3145102550Siwasakistructs.
3146102550Siwasaki
3147102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
3148102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
3149102550Siwasaki
3150102550SiwasakiAll other globals within the subsystem are now prefixed with
3151102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
3152102550Siwasakiprefixed with "Acpi" (with only  a few exceptions).  The
3153104470Siwasakioriginal two-letter abbreviation for the subcomponent  remains
3154104470Siwasakiafter "Acpi" - for example, CmCallocate became
3155102550SiwasakiAcpiCmCallocate.
3156102550Siwasaki
3157102550SiwasakiAdded a source code translation/conversion utility.  Used to
3158102550Siwasakigenerate the Linux  source code, it can be modified to
3159102550Siwasakigenerate other types of source as well. Can  also be used to
3160102550Siwasakicleanup existing source by removing extraneous spaces and
3161102550Siwasakiblank  lines.  Found in tools/acpisrc/*
3162102550Siwasaki
3163102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
3164102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
3165102550Siwasaki
3166102550SiwasakiA "MaxUnits" parameter has been added to
3167104470SiwasakiAcpiOsCreateSemaphore.  When set to  one, this indicates that
3168104470Siwasakithe caller wants to use the semaphore as a mutex, not a
3169102550Siwasakicounting semaphore.  ACPI CA uses both types.  However,
3170102550Siwasakiimplementers of this  call may want to use different OS
3171104470Siwasakiprimitives depending on the type of semaphore  requested.  For
3172104470Siwasakiexample, some operating systems provide separate "mutex" and
3173104470Siwasaki"semaphore" interfaces - where the mutex interface is much
3174104470Siwasakifaster because it  doesn't have all the overhead of a full
3175104470Siwasakisemaphore implementation.
3176102550Siwasaki
3177104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
3178104470Siwasakiaddress space can  block forever if it is the first access to
3179104470Siwasakithe space.
3180102550Siwasaki
3181102550Siwasaki-------------------------------------------
3182102550SiwasakiSummary of changes for this label: 06_02_00
3183102550Siwasaki
3184102550SiwasakiSupport for environments that cannot handle unaligned data
3185102550Siwasakiaccesses (e.g.  firmware and OS environments devoid of
3186102550Siwasakialignment handler technology namely  SAL/EFI and the IA-64
3187102550SiwasakiLinux kernel) has been added (via configurable macros) in
3188102550Siwasakithese three areas: - Transfer of data from the raw AML byte
3189102550Siwasakistream is done via byte moves instead of    word/dword/qword
3190104470Siwasakimoves. - External objects are aligned within the user buffer,
3191104470Siwasakiincluding package   elements (sub-objects). - Conversion of
3192104470Siwasakiname strings to UINT32 Acpi Names is now done byte-wise.
3193102550Siwasaki
3194102550SiwasakiThe Store operator was modified to mimic Microsoft's
3195102550Siwasakiimplementation when storing  to a Buffer Field.
3196102550Siwasaki
3197102550SiwasakiAdded a check of the BM_STS bit before entering C3.
3198102550Siwasaki
3199102550SiwasakiThe methods subdirectory has been obsoleted and removed.  A
3200102550Siwasakinew file, cmeval.c  subsumes the functionality.
3201102550Siwasaki
3202102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
3203102550Siwasakimakefile is under  the acpiexec directory.
3204