changes.txt revision 114237
1114237Snjl28 February 2003.  Summary of changes for version 20030228.
2114237Snjl
3114237Snjl
4114237Snjl1) ACPI CA Core Subsystem:
5114237Snjl
6114237SnjlThe GPE handling and dispatch code has been completely overhauled
7114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
8114237SnjlThis affects internal data structures and code only; there should
9114237Snjlbe no differences visible externally.  One new file has been
10114237Snjladded, evgpeblk.c
11114237Snjl
12114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
13114237Snjlfields that are used to determine the GPE block lengths.  The
14114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
15114237Snjlstructures are ignored.  This is per the ACPI specification but
16114237Snjlit isn't very clear.  The full 256 Block 0/1 GPEs are now
17114237Snjlsupported (the use of REGISTER_BIT_WIDTH limited the number of
18114237SnjlGPEs to 128).
19114237Snjl
20114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
21114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
22114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
23114237Snjlin fact be the cause of slow battery status response on some
24114237Snjlsystems.)
25114237Snjl
26114237SnjlFixed a problem where a store of a NULL string to a package
27114237Snjlobject could cause the premature deletion of the object.  This
28114237Snjlwas seen during execution of the battery _BIF method on some
29114237Snjlsystems, resulting in no battery data being returned.
30114237Snjl
31114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
32114237Snjllists.
33114237Snjl
34114237SnjlCode and Data Size: Current core subsystem library sizes are
35114237Snjlshown below.  These are the code and data sizes for the
36114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
37114237Snjlthese values do not include any ACPI driver or OSPM code.  The
38114237Snjldebug version of the code includes the debug output trace
39114237Snjlmechanism and has a much larger code and data size.  Note that
40114237Snjlthese values will vary depending on the efficiency of the
41114237Snjlcompiler and the compiler options used during generation.
42114237Snjl
43114237Snjl  Previous Release
44114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
45114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
46114237Snjl  Current Release:
47114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
48114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
49114237Snjl
50114237Snjl
51114237Snjl2) Linux
52114237Snjl
53114237SnjlS3 fixes (Ole Rohne)
54114237Snjl
55114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
56114237Snjl(Bjorn Helgaas)
57114237Snjl
58114237SnjlAdd S4BIOS support (Pavel Machek)
59114237Snjl
60114237SnjlMap in entire table before performing checksum (John Stultz)
61114237Snjl
62114237SnjlExpand the mem= cmdline to allow the specification of reserved
63114237Snjland ACPI DATA blocks (Pavel Machek)
64114237Snjl
65114237SnjlNever use ACPI on VISWS
66114237Snjl
67114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
68114237Snjl
69114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
70114237Snjlcausing us to think that some systems support C2 when they really
71114237Snjldon't.
72114237Snjl
73114237SnjlDo not count processor objects for non-present CPUs (Thanks to
74114237SnjlDominik Brodowski)
75114237Snjl
76114237Snjl
77114237Snjl3) iASL Compiler:
78114237Snjl
79114237SnjlFixed a problem where ASL include files could not be found and
80114237Snjlopened.
81114237Snjl
82114237SnjlAdded support for the _PDC reserved name.
83114237Snjl
84114237Snjl
85114237Snjl22 January 2003.  Summary of changes for version 20030122.
86114237Snjl
87114237Snjl
88114237Snjl1) ACPI CA Core Subsystem:
89114237Snjl
90114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
91114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
92114237Snjlprogrammers believe that this is a NOOP.  Since this store
93114237Snjldoesn't do anything anyway, the new prototype behavior will
94114237Snjlignore this error.  This is a case where we can relax the strict
95114237Snjlchecking in the interpreter in the name of compatibility.
96114237Snjl
97114237Snjl
98114237Snjl2) Linux
99114237Snjl
100114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
101114237SnjlLinux package for the first time.  This is the utility that is
102114237Snjlused to convert the ACPI CA base source code to the Linux
103114237Snjlversion.
104114237Snjl
105114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
106114237Snjl
107114237Snjl(Both) Move more headers to include/acpi, and delete an unused
108114237Snjlheader.
109114237Snjl
110114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
111114237Snjl
112114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
113114237Snjl
114114237Snjl(Both) Remove include of unused header (Adrian Bunk)
115114237Snjl
116114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
117114237Snjlthe
118114237Snjlformer now also includes the latter, acpiphp.h only needs the
119114237Snjlone, now.
120114237Snjl
121114237Snjl(2.5) Make it possible to select method of bios restoring after
122114237SnjlS3
123114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
124114237Snjl
125114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
126114237Snjl
127114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
128114237Snjl
129114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
130114237Snjl(Dominik Brodowski)
131114237Snjl
132114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
133114237Snjl
134114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
135114237SnjlVisinoni)
136114237Snjl
137114237Snjl
138114237Snjl3) iASL Compiler:
139114237Snjl
140114237SnjlAdded support to disassemble SSDT and PSDTs.
141114237Snjl
142114237SnjlImplemented support to obtain SSDTs from the Windows registry if
143114237Snjlavailable.
144114237Snjl
145114237Snjl
146102550Siwasaki----------------------------------------
147114237Snjl09 January 2003.  Summary of changes for version 20030109.
148114237Snjl
149114237Snjl1) ACPI CA Core Subsystem:
150114237Snjl
151114237SnjlChanged the behavior of the internal Buffer-to-String conversion
152114237Snjlfunction.  The current ACPI specification states that the
153114237Snjlcontents of the buffer are "converted to a string of two-
154114237Snjlcharacter hexadecimal numbers, each separated by a space".
155114237SnjlUnfortunately, this definition is not backwards compatible with
156114237Snjlexisting ACPI 1.0 implementations (although the behavior was not
157114237Snjldefined in the ACPI 1.0 specification).  The new behavior simply
158114237Snjlcopies data from the buffer to the string until a null character
159114237Snjlis found or the end of the buffer is reached.  The new String
160114237Snjlobject is always null terminated.  This problem was seen during
161114237Snjlthe generation of _BIF battery data where incorrect strings were
162114237Snjlreturned for battery type, etc.  This will also require an errata
163114237Snjlto the ACPI specification.
164114237Snjl
165114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
166114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
167114237Snjl
168114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
169114237Snjlupdated to 2003.
170114237Snjl
171114237SnjlCode and Data Size: Current core subsystem library sizes are
172114237Snjlshown below.  These are the code and data sizes for the
173114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
174114237Snjlthese values do not include any ACPI driver or OSPM code.  The
175114237Snjldebug version of the code includes the debug output trace
176114237Snjlmechanism and has a much larger code and data size.  Note that
177114237Snjlthese values will vary depending on the efficiency of the
178114237Snjlcompiler and the compiler options used during generation.
179114237Snjl
180114237Snjl  Previous Release
181114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
182114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
183114237Snjl  Current Release:
184114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
185114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
186114237Snjl
187114237Snjl
188114237Snjl2) Linux
189114237Snjl
190114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
191114237Snjl
192114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
193114237Snjl
194114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
195114237Snjl
196114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
197114237Snjl
198114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
199114237Snjlof schedule_work()
200114237Snjl
201114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
202114237Snjl
203114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
204114237Snjl
205114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
206114237Snjl
207114237SnjlSeveral changes have been made to the source code translation
208114237Snjlutility that generates the Linux Code in order to make the code
209114237Snjlmore "Linux-like":
210114237Snjl
211114237SnjlAll typedefs on structs and unions have been removed in keeping
212114237Snjlwith the Linux coding style.
213114237Snjl
214114237SnjlRemoved the non-Linux SourceSafe module revision number from each
215114237Snjlmodule header.
216114237Snjl
217114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
218114237SnjlDoubled the number of symbols that are lowercased.
219114237Snjl
220114237SnjlFixed a problem where identifiers within procedure headers and
221114237Snjlwithin quotes were not fully lower cased (they were left with a
222114237Snjlstarting capital.)
223114237Snjl
224114237SnjlSome C macros whose only purpose is to allow the generation of 16-
225114237Snjlbit code are now completely removed in the Linux code, increasing
226114237Snjlreadability and maintainability.
227114237Snjl
228114237Snjl----------------------------------------
229114237Snjl
230114237Snjl12 December 2002.  Summary of changes for version 20021212.
231114237Snjl
232114237Snjl
233114237Snjl1) ACPI CA Core Subsystem:
234114237Snjl
235114237SnjlFixed a problem where the creation of a zero-length AML Buffer
236114237Snjlwould cause a fault.
237114237Snjl
238114237SnjlFixed a problem where a Buffer object that pointed to a static
239114237SnjlAML buffer (in an ACPI table) could inadvertently be deleted,
240114237Snjlcausing memory corruption.
241114237Snjl
242114237SnjlFixed a problem where a user buffer (passed in to the external
243114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
244114237Snjlsmall to complete the operation, causing memory corruption.
245114237Snjl
246114237SnjlFixed a problem in the Buffer-to-String conversion code where a
247114237Snjlstring of length one was always returned, regardless of the size
248114237Snjlof the input Buffer object.
249114237Snjl
250114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
251114237Snjllack of need and lack of consistent use.
252114237Snjl
253114237SnjlCode and Data Size: Current core subsystem library sizes are
254114237Snjlshown below.  These are the code and data sizes for the
255114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
256114237Snjlthese values do not include any ACPI driver or OSPM code.  The
257114237Snjldebug version of the code includes the debug output trace
258114237Snjlmechanism and has a much larger code and data size.  Note that
259114237Snjlthese values will vary depending on the efficiency of the
260114237Snjlcompiler and the compiler options used during generation.
261114237Snjl
262114237Snjl  Previous Release
263114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
264114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
265114237Snjl  Current Release:
266114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
267114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
268114237Snjl
269114237Snjl
270114237Snjl----------------------------------------
271114237Snjl05 December 2002.  Summary of changes for version 20021205.
272114237Snjl
273114237Snjl1) ACPI CA Core Subsystem:
274114237Snjl
275114237SnjlFixed a problem where a store to a String or Buffer object could
276114237Snjlcause corruption of the DSDT if the object type being stored was
277114237Snjlthe same as the target object type and the length of the object
278114237Snjlbeing stored was equal to or smaller than the original (existing)
279114237Snjltarget object.  This was seen to cause corruption of battery _BIF
280114237Snjlbuffers if the _BIF method modified the buffer on the fly.
281114237Snjl
282114237SnjlFixed a problem where an internal error was generated if a
283114237Snjlcontrol method invocation was used in an OperationRegion, Buffer,
284114237Snjlor Package declaration.  This was caused by the deferred parsing
285114237Snjlof the control method and thus the deferred creation of the
286114237Snjlinternal method object.  The solution to this problem was to
287114237Snjlcreate the internal method object at the moment the method is
288114237Snjlencountered in the first pass - so that subsequent references to
289114237Snjlthe method will able to obtain the required parameter count and
290114237Snjlthus properly parse the method invocation.  This problem
291114237Snjlpresented itself as an AE_AML_INTERNAL during the pass 1 parse
292114237Snjlphase during table load.
293114237Snjl
294114237SnjlFixed a problem where the internal String object copy routine did
295114237Snjlnot always allocate sufficient memory for the target String
296114237Snjlobject and caused memory corruption.  This problem was seen to
297114237Snjlcause "Allocation already present in list!" errors as memory
298114237Snjlallocation became corrupted.
299114237Snjl
300114237SnjlImplemented a new function for the evaluation of namespace
301114237Snjlobjects that allows the specification of the allowable return
302114237Snjlobject types.  This simplifies a lot of code that checks for a
303114237Snjlreturn object of one or more specific objects returned from the
304114237Snjlevaluation (such as _STA, etc.)  This may become and external
305114237Snjlfunction if it would be useful to ACPI-related drivers.
306114237Snjl
307114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
308114237Snjlclarity.
309114237Snjl
310114237SnjlCompleted additional code restructuring to allow more modular
311114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
312114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
313114237Snjl
314114237SnjlImplemented an abort mechanism to terminate an executing control
315114237Snjlmethod via the AML debugger.  This feature is useful for
316114237Snjldebugging control methods that depend (wait) for specific
317114237Snjlhardware responses.
318114237Snjl
319114237SnjlCode and Data Size: Current core subsystem library sizes are
320114237Snjlshown below.  These are the code and data sizes for the
321114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
322114237Snjlthese values do not include any ACPI driver or OSPM code.  The
323114237Snjldebug version of the code includes the debug output trace
324114237Snjlmechanism and has a much larger code and data size.  Note that
325114237Snjlthese values will vary depending on the efficiency of the
326114237Snjlcompiler and the compiler options used during generation.
327114237Snjl
328114237Snjl  Previous Release
329114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
330114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
331114237Snjl  Current Release:
332114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
333114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
334114237Snjl
335114237Snjl
336114237Snjl2) iASL Compiler/Disassembler
337114237Snjl
338114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
339114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
340114237SnjlSource Index" and "Resource Source" fields were not inserted into
341114237Snjlthe correct location within the AML resource descriptor, creating
342114237Snjlan invalid descriptor.
343114237Snjl
344114237SnjlFixed a disassembler problem for "Interrupt" resource
345114237Snjldescriptors.  The optional "Resource Source Index" and "Resource
346114237SnjlSource" fields were ignored.
347114237Snjl
348114237Snjl
349114237Snjl----------------------------------------
350114237Snjl22 November 2002.  Summary of changes for version 20021122.
351114237Snjl
352114237Snjl
353114237Snjl1) ACPI CA Core Subsystem:
354114237Snjl
355114237SnjlFixed a reported problem where an object stored to a Method Local
356114237Snjlor Arg was not copied to a new object during the store - the
357114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
358114237Snjlall subsequent operations on the Local/Arg to also affect the
359114237Snjloriginal source of the store operation.
360114237Snjl
361114237SnjlFixed a problem where a store operation to a Method Local or Arg
362114237Snjlwas not completed properly if the Local/Arg contained a reference
363114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
364114237Snjlnamespace-node code is now used so that this case is handled
365114237Snjlautomatically.
366114237Snjl
367114237SnjlFixed a problem where the internal object copy routine would
368114237Snjlcause a protection fault if the object being copied was a Package
369114237Snjland contained either 1) a NULL package element or 2) a nested sub-
370114237Snjlpackage.
371114237Snjl
372114237SnjlFixed a problem with the GPE initialization that resulted from an
373114237Snjlambiguity in the ACPI specification.  One section of the
374114237Snjlspecification states that both the address and length of the GPE
375114237Snjlblock must be zero if the block is not supported.  Another
376114237Snjlsection implies that only the address need be zero if the block
377114237Snjlis not supported.  The code has been changed so that both the
378114237Snjladdress and the length must be non-zero to indicate a valid GPE
379114237Snjlblock (i.e., if either the address or the length is zero, the GPE
380114237Snjlblock is invalid.)
381114237Snjl
382114237SnjlCode and Data Size: Current core subsystem library sizes are
383114237Snjlshown below.  These are the code and data sizes for the
384114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
385114237Snjlthese values do not include any ACPI driver or OSPM code.  The
386114237Snjldebug version of the code includes the debug output trace
387114237Snjlmechanism and has a much larger code and data size.  Note that
388114237Snjlthese values will vary depending on the efficiency of the
389114237Snjlcompiler and the compiler options used during generation.
390114237Snjl
391114237Snjl  Previous Release
392114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
393114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
394114237Snjl  Current Release:
395114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
396114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
397114237Snjl
398114237Snjl
399114237Snjl2) Linux
400114237Snjl
401114237SnjlCleaned up EC driver. Exported an external EC read/write
402114237Snjlinterface. By going through this, other drivers (most notably
403114237Snjlsonypi) will be able to serialize access to the EC.
404114237Snjl
405114237Snjl
406114237Snjl3) iASL Compiler/Disassembler
407114237Snjl
408114237SnjlImplemented support to optionally generate include files for both
409114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
410114237Snjlautomatically creating include files that contain external
411114237Snjldeclarations for the symbols that are created within the
412114237Snjl(optionally generated) ASM and C AML source files.
413114237Snjl
414114237Snjl
415114237Snjl----------------------------------------
416107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
417104470Siwasaki
418107325Siwasaki1) ACPI CA Core Subsystem:
419107325Siwasaki
420114237SnjlFixed a memory leak problem where an error during resolution of
421114237Snjlmethod arguments during a method invocation from another method
422114237Snjlfailed to cleanup properly by deleting all successfully resolved
423114237Snjlargument objects.
424107325Siwasaki
425114237SnjlFixed a problem where the target of the Index() operator was not
426114237Snjlcorrectly constructed if the source object was a package.  This
427114237Snjlproblem has not been detected because the use of a target operand
428114237Snjlwith Index() is very rare.
429107325Siwasaki
430107325SiwasakiFixed a problem with the Index() operator where an attempt was
431107325Siwasakimade to delete the operand objects twice.
432107325Siwasaki
433107325SiwasakiFixed a problem where an attempt was made to delete an operand
434114237Snjltwice during execution of the CondRefOf() operator if the target
435114237Snjldid not exist.
436107325Siwasaki
437114237SnjlImplemented the first of perhaps several internal create object
438114237Snjlfunctions that create and initialize a specific object type.
439114237SnjlThis consolidates duplicated code wherever the object is created,
440114237Snjlthus shrinking the size of the subsystem.
441107325Siwasaki
442114237SnjlImplemented improved debug/error messages for errors that occur
443114237Snjlduring nested method invocations.  All executing method pathnames
444114237Snjlare displayed (with the error) as the call stack is unwound -
445114237Snjlthus simplifying debug.
446107325Siwasaki
447107325SiwasakiFixed a problem introduced in the 10/02 release that caused
448114237Snjlpremature deletion of a buffer object if a buffer was used as an
449114237SnjlASL operand where an integer operand is required (Thus causing an
450114237Snjlimplicit object conversion from Buffer to Integer.)  The change
451114237Snjlin the 10/02 release was attempting to fix a memory leak (albeit
452114237Snjlincorrectly.)
453107325Siwasaki
454107325SiwasakiCode and Data Size: Current core subsystem library sizes are
455107325Siwasakishown below.  These are the code and data sizes for the
456114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
457114237Snjlthese values do not include any ACPI driver or OSPM code.  The
458114237Snjldebug version of the code includes the debug output trace
459107325Siwasakimechanism and has a much larger code and data size.  Note that
460107325Siwasakithese values will vary depending on the efficiency of the
461107325Siwasakicompiler and the compiler options used during generation.
462107325Siwasaki
463107325Siwasaki  Previous Release
464107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
465107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
466107325Siwasaki  Current Release:
467107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
468107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
469107325Siwasaki
470107325Siwasaki
471107325Siwasaki2) Linux
472107325Siwasaki
473114237SnjlChanged the implementation of the ACPI semaphores to use down()
474114237Snjlinstead of down_interruptable().  It is important that the
475114237Snjlexecution of ACPI control methods not be interrupted by signals.
476114237SnjlMethods must run to completion, or the system may be left in an
477114237Snjlunknown/unstable state.
478107325Siwasaki
479107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
480107325Siwasakiset. (Shawn Starr)
481107325Siwasaki
482107325Siwasaki
483107325Siwasaki3) iASL Compiler/Disassembler
484107325Siwasaki
485107325Siwasaki
486114237SnjlChanged the default location of output files.  All output files
487114237Snjlare now placed in the current directory by default instead of in
488114237Snjlthe directory of the source file.  This change may affect some
489114237Snjlexisting makefiles, but it brings the behavior of the compiler in
490114237Snjlline with other similar tools.  The location of the output files
491114237Snjlcan be overridden with the -p command line switch.
492107325Siwasaki
493114237Snjl
494107325Siwasaki----------------------------------------
495107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
496107325Siwasaki
497107325Siwasaki
498114237Snjl0) ACPI Specification 2.0B is released and is now available at:
499114237Snjlhttp://www.acpi.info/index.html
500107325Siwasaki
501107325Siwasaki
502107325Siwasaki1) ACPI CA Core Subsystem:
503107325Siwasaki
504107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
505114237SnjlThis includes the early detection and handoff of the request to
506114237Snjlthe SMBus region handler (avoiding all of the complex field
507107325Siwasakisupport code), and support for the bidirectional return packet
508107325Siwasakifrom an SMBus write operation.  This paves the way for the
509107325Siwasakidevelopment of SMBus drivers in each host operating system.
510107325Siwasaki
511107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
512107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
513107325Siwasakispecification.  This had the side effect of causing ASL
514107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
515107325Siwasakiforever.  Changed all internal references to the ACPI timeout
516107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
517107325Siwasakiname of WAIT_FOREVER to ACPI_WAIT_FOREVER.
518107325Siwasaki
519107325SiwasakiCode and Data Size: Current core subsystem library sizes are
520107325Siwasakishown below.  These are the code and data sizes for the
521114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
522114237Snjlthese values do not include any ACPI driver or OSPM code.  The
523114237Snjldebug version of the code includes the debug output trace
524107325Siwasakimechanism and has a much larger code and data size.  Note that
525107325Siwasakithese values will vary depending on the efficiency of the
526107325Siwasakicompiler and the compiler options used during generation.
527107325Siwasaki
528107325Siwasaki  Previous Release
529107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
530107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
531107325Siwasaki  Current Release:
532107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
533107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
534107325Siwasaki
535107325Siwasaki
536107325Siwasaki2) Linux
537107325Siwasaki
538107325SiwasakiModule loading/unloading fixes (John Cagle)
539107325Siwasaki
540107325Siwasaki
541107325Siwasaki3) iASL Compiler/Disassembler
542107325Siwasaki
543107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
544107325Siwasaki
545107325SiwasakiImplemented support for the disassembly of all SMBus protocol
546107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
547107325Siwasaki
548107325Siwasaki----------------------------------------
549107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
550107325Siwasaki
551107325Siwasaki
552107325Siwasaki1) ACPI CA Core Subsystem:
553107325Siwasaki
554107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
555114237SnjlGPE0 block were not handled correctly.  This resulted in a "GPE
556114237Snjloverlap" error message.  GPE0 is no longer required.
557107325Siwasaki
558107325SiwasakiRemoved code added in the previous release that inserted nodes
559114237Snjlinto the namespace in alphabetical order.  This caused some side-
560114237Snjleffects on various machines.  The root cause of the problem is
561114237Snjlstill under investigation since in theory, the internal ordering
562114237Snjlof the namespace nodes should not matter.
563107325Siwasaki
564107325Siwasaki
565114237SnjlEnhanced error reporting for the case where a named object is not
566114237Snjlfound during control method execution.  The full ACPI namepath
567114237Snjl(name reference) of the object that was not found is displayed in
568114237Snjlthis case.
569107325Siwasaki
570114237SnjlNote: as a result of the overhaul of the namespace object types
571114237Snjlin the previous release, the namespace nodes for the predefined
572114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
573114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
574114237Snjlmanagement code but may affect code that walks the namespace tree
575114237Snjllooking for specific object types.
576114237Snjl
577107325SiwasakiCode and Data Size: Current core subsystem library sizes are
578107325Siwasakishown below.  These are the code and data sizes for the
579114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
580114237Snjlthese values do not include any ACPI driver or OSPM code.  The
581114237Snjldebug version of the code includes the debug output trace
582107325Siwasakimechanism and has a much larger code and data size.  Note that
583107325Siwasakithese values will vary depending on the efficiency of the
584107325Siwasakicompiler and the compiler options used during generation.
585107325Siwasaki
586107325Siwasaki  Previous Release
587107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
588107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
589107325Siwasaki  Current Release:
590107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
591107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
592107325Siwasaki
593107325Siwasaki
594107325Siwasaki2) Linux
595107325Siwasaki
596107325SiwasakiFixed a problem introduced in the previous release where the
597114237SnjlProcessor and Thermal objects were not recognized and installed
598114237Snjlin /proc.  This was related to the scope type change described
599114237Snjlabove.
600107325Siwasaki
601107325Siwasaki
602107325Siwasaki3) iASL Compiler/Disassembler
603107325Siwasaki
604114237SnjlImplemented the -g option to get all of the required ACPI tables
605114237Snjlfrom the registry and save them to files (Windows version of the
606114237Snjlcompiler only.)  The required tables are the FADT, FACS, and
607114237SnjlDSDT.
608107325Siwasaki
609114237SnjlAdded ACPI table checksum validation during table disassembly in
610114237Snjlorder to catch corrupted tables.
611107325Siwasaki
612107325Siwasaki
613107325Siwasaki----------------------------------------
614107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
615107325Siwasaki
616107325Siwasaki1) ACPI CA Core Subsystem:
617107325Siwasaki
618114237SnjlImplemented a restriction on the Scope operator that the target
619114237Snjlmust already exist in the namespace at the time the operator is
620114237Snjlencountered (during table load or method execution).  In other
621114237Snjlwords, forward references are not allowed and Scope() cannot
622114237Snjlcreate a new object. This changes the previous behavior where the
623114237Snjlinterpreter would create the name if not found.  This new
624114237Snjlbehavior correctly enables the search-to-root algorithm during
625114237Snjlnamespace lookup of the target name.  Because of this upsearch,
626114237Snjlthis fixes the known Compaq _SB_.OKEC problem and makes both the
627114237SnjlAML interpreter and iASL compiler compatible with other ACPI
628114237Snjlimplementations.
629107325Siwasaki
630114237SnjlCompleted a major overhaul of the internal ACPI object types for
631114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
632114237Snjlthese types had become obsolete with the introduction of the two-
633114237Snjlpass namespace load.  This cleanup simplifies the code and makes
634114237Snjlthe entire namespace load mechanism much clearer and easier to
635114237Snjlunderstand.
636107325Siwasaki
637114237SnjlImproved debug output for tracking scope opening/closing to help
638114237Snjldiagnose scoping issues.  The old scope name as well as the new
639114237Snjlscope name are displayed.  Also improved error messages for
640114237Snjlproblems with ASL Mutex objects and error messages for GPE
641114237Snjlproblems.
642107325Siwasaki
643107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
644107325Siwasaki
645114237SnjlAll string output (for all namespace/object dumps) now uses the
646114237Snjlcommon ACPI string output procedure which handles escapes
647107325Siwasakiproperly and does not emit non-printable characters.
648107325Siwasaki
649107325SiwasakiFixed some issues with constants in the 64-bit version of the
650107325Siwasakilocal C library (utclib.c)
651107325Siwasaki
652107325Siwasaki
653107325Siwasaki2) Linux
654107325Siwasaki
655107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
656107325Siwasakiinterrupt level.
657107325Siwasaki
658107325Siwasaki
659107325Siwasaki3) iASL Compiler/Disassembler
660107325Siwasaki
661107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
662114237Snjland 2 opcodes outside of a control method.  This means that the
663114237Snjl"executable" operators (versus the "namespace" operators) cannot
664114237Snjlbe used at the table level; they can only be used within a
665114237Snjlcontrol method.
666107325Siwasaki
667107325SiwasakiImplemented the restriction on the Scope() operator where the
668107325Siwasakitarget must already exist in the namespace at the time the
669114237Snjloperator is encountered (during ASL compilation). In other words,
670114237Snjlforward references are not allowed and Scope() cannot create a
671114237Snjlnew object.  This makes the iASL compiler compatible with other
672114237SnjlACPI implementations and makes the Scope() implementation adhere
673114237Snjlto the ACPI specification.
674107325Siwasaki
675107325SiwasakiFixed a problem where namepath optimization for the Alias
676107325Siwasakioperator was optimizing the wrong path (of the two namepaths.)
677107325SiwasakiThis caused a "Missing alias link" error message.
678107325Siwasaki
679114237SnjlFixed a problem where an "unknown reserved name" warning could be
680114237Snjlincorrectly generated for names like "_SB" when the trailing
681114237Snjlunderscore is not used in the original ASL.
682107325Siwasaki
683107325SiwasakiFixed a problem where the reserved name check did not handle
684114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
685114237Snjlthe NamePath was examined instead of the last NameSeg.
686107325Siwasaki
687107325Siwasaki
688107325Siwasaki----------------------------------------
689107325Siwasaki
690104470Siwasaki02 October 2002.  Summary of changes for this release.
691104470Siwasaki
692104470Siwasaki
693104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
694104470Siwasaki
695104470SiwasakiFixed a problem where a store/copy of a string to an existing
696104470Siwasakistring did not always set the string length properly in the
697104470SiwasakiString object.
698104470Siwasaki
699104470SiwasakiFixed a reported problem with the ToString operator where the
700104470Siwasakibehavior was identical to the ToHexString operator instead of
701104470Siwasakijust simply converting a raw buffer to a string data type.
702104470Siwasaki
703104470SiwasakiFixed a problem where CopyObject and the other "explicit"
704104470Siwasakiconversion operators were not updating the internal namespace
705104470Siwasakinode type as part of the store operation.
706104470Siwasaki
707104470SiwasakiFixed a memory leak during implicit source operand conversion
708114237Snjlwhere the original object was not deleted if it was converted to
709114237Snjla new object of a different type.
710104470Siwasaki
711104470SiwasakiEnhanced error messages for all problems associated with
712104470Siwasakinamespace lookups.  Common procedure generates and prints the
713104470Siwasakilookup name as well as the formatted status.
714104470Siwasaki
715104470SiwasakiCompleted implementation of a new design for the Alias support
716104470Siwasakiwithin the namespace.  The existing design did not handle the
717114237Snjlcase where a new object was assigned to one of the two names due
718114237Snjlto the use of an explicit conversion operator, resulting in the
719114237Snjltwo names pointing to two different objects.  The new design
720114237Snjlsimply points the Alias name to the original name node - not to
721114237Snjlthe object.  This results in a level of indirection that must be
722114237Snjlhandled in the name resolution mechanism.
723104470Siwasaki
724104470SiwasakiCode and Data Size: Current core subsystem library sizes are
725104470Siwasakishown below.  These are the code and data sizes for the
726114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
727114237Snjlthese values do not include any ACPI driver or OSPM code.  The
728114237Snjldebug version of the code includes the debug output trace
729114237Snjlmechanism and has a larger code and data size.  Note that these
730114237Snjlvalues will vary depending on the efficiency of the compiler and
731114237Snjlthe compiler options used during generation.
732104470Siwasaki
733104470Siwasaki  Previous Release
734104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
735104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
736104470Siwasaki  Current Release:
737104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
738104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
739104470Siwasaki
740104470Siwasaki
741104470Siwasaki2) Linux
742104470Siwasaki
743104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
744104470SiwasakiNeumann)
745104470Siwasaki
746104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
747104470Siwasaki
748114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
749104470Siwasaki
750104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
751104470Siwasaki
752104470SiwasakiIA64 fixes. (David Mosberger)
753104470Siwasaki
754104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
755104470Siwasaki
756104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
757104470SiwasakiBrodowski)
758104470Siwasaki
759104470Siwasaki
760104470Siwasaki3) iASL Compiler/Disassembler
761104470Siwasaki
762104470SiwasakiClarified some warning/error messages.
763104470Siwasaki
764104470Siwasaki
765104470Siwasaki----------------------------------------
766104470Siwasaki18 September 2002.  Summary of changes for this release.
767104470Siwasaki
768104470Siwasaki
769104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
770104470Siwasaki
771114237SnjlFixed a reported problem with reference chaining (via the Index()
772114237Snjland RefOf() operators) in the ObjectType() and SizeOf()
773114237Snjloperators.  The definition of these operators includes the
774114237Snjldereferencing of all chained references to return information on
775114237Snjlthe base object.
776104470Siwasaki
777104470SiwasakiFixed a problem with stores to indexed package elements - the
778104470Siwasakiexisting code would not complete the store if an "implicit
779114237Snjlconversion" was not performed.  In other words, if the existing
780114237Snjlobject (package element) was to be replaced completely, the code
781114237Snjldidn't handle this case.
782104470Siwasaki
783104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
784104470Siwasakitarget name to refer to an object of type Integer, String, or
785104470SiwasakiBuffer, in addition to the scoping object types (Device,
786104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
787114237SnjlThis allows existing AML code that has workarounds for a bug in
788114237SnjlWindows to function properly.  A warning is issued, however.
789114237SnjlThis affects both the AML interpreter and the iASL compiler.
790114237SnjlBelow is an example of this type of ASL code:
791104470Siwasaki
792104470Siwasaki      Name(DEB,0x00)
793104470Siwasaki      Scope(DEB)
794104470Siwasaki      {
795104470Siwasaki
796114237SnjlFixed some reported problems with 64-bit integer support in the
797114237Snjllocal implementation of C library functions (clib.c)
798104470Siwasaki
799104470Siwasaki
800104470Siwasaki2) Linux
801104470Siwasaki
802104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
803104470Siwasakiundefined in non-SMP.
804104470Siwasaki
805114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
806114237Snjlsystems that do not have an interrupt override entry in the MADT.
807104470Siwasaki
808104470Siwasaki2.5 big driver reorganization (Pat Mochel)
809104470Siwasaki
810104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
811104470Siwasaki
812104470SiwasakiNew blacklist entries (Andi Kleen)
813104470Siwasaki
814114237SnjlBlacklist improvements. Split blacklist code out into a separate
815114237Snjlfile. Move checking the blacklist to very early. Previously, we
816114237Snjlwould use ACPI tables, and then halfway through init, check the
817114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
818114237Snjlback to non-ACPI.
819104470Siwasaki
820104470Siwasaki
821104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
822104470Siwasaki
823114237SnjlFixed a problem where the typechecking code didn't know that an
824114237Snjlalias could point to a method.  In other words, aliases were not
825114237Snjlbeing dereferenced during typechecking.
826104470Siwasaki
827104470Siwasaki
828104470Siwasaki----------------------------------------
829104470Siwasaki29 August 2002.  Summary of changes for this release.
830104470Siwasaki
831104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
832104470Siwasaki
833114237SnjlIf the target of a Scope() operator already exists, it must be an
834114237Snjlobject type that actually opens a scope -- such as a Device,
835114237SnjlMethod, Scope, etc.  This is a fatal runtime error.  Similar
836114237Snjlerror check has been added to the iASL compiler also.
837104470Siwasaki
838114237SnjlTightened up the namespace load to disallow multiple names in the
839114237Snjlsame scope.  This previously was allowed if both objects were of
840114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
841114237Snjlname).
842104470Siwasaki
843104470Siwasaki
844104470Siwasaki2) Linux
845104470Siwasaki
846104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
847104470Siwasakipolarity.
848104470Siwasaki
849104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
850104470Siwasaki
851104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
852104470Siwasakiinterpreter *or* the tables.
853104470Siwasaki
854104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
855104470Siwasaki(Kochi Takayoshi)
856104470Siwasaki
857104470Siwasaki
858104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
859104470Siwasaki
860104470SiwasakiImplemented namepath optimization for name declarations.  For
861104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
862104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
863104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
864104470Siwasakireference path optimization first released in the previous
865114237Snjlversion. This would seem to complete all possible optimizations
866114237Snjlfor namepaths within the ASL/AML.
867104470Siwasaki
868114237SnjlIf the target of a Scope() operator already exists, it must be an
869114237Snjlobject type that actually opens a scope -- such as a Device,
870114237SnjlMethod, Scope, etc.
871104470Siwasaki
872114237SnjlImplemented a check and warning for unreachable code in the same
873114237Snjlblock below a Return() statement.
874104470Siwasaki
875114237SnjlFixed a problem where the listing file was not generated if the
876114237Snjlcompiler aborted if the maximum error count was exceeded (200).
877104470Siwasaki
878104470SiwasakiFixed a problem where the typechecking of method return values
879114237Snjlwas broken.  This includes the check for a return value when the
880114237Snjlmethod is invoked as a TermArg (a return value is expected.)
881104470Siwasaki
882104470SiwasakiFixed a reported problem where EOF conditions during a quoted
883104470Siwasakistring or comment caused a fault.
884104470Siwasaki
885104470Siwasaki
886104470Siwasaki----------------------------------------
887102550Siwasaki15 August 2002.  Summary of changes for this release.
888102550Siwasaki
889102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
890102550Siwasaki
891114237SnjlFixed a reported problem where a Store to a method argument that
892114237Snjlcontains a reference did not perform the indirect store
893114237Snjlcorrectly.  This problem was created during the conversion to the
894114237Snjlnew reference object model - the indirect store to a method
895114237Snjlargument code was not updated to reflect the new model.
896102550Siwasaki
897114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
898114237Snjlhandle corner cases, and improve code legibility (Kochi
899102550SiwasakiTakayoshi)
900102550Siwasaki
901102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
902114237Snjlprefix.  The heavy use of the carat operator by the new namepath
903114237Snjloptimization in the iASL compiler uncovered a problem with the
904114237SnjlAML interpreter handling of this prefix.  In the case where one
905114237Snjlor more carats precede a single nameseg, the nameseg was treated
906114237Snjlas standalone and the search rule (to root) was inadvertently
907114237Snjlapplied.  This could cause both the iASL compiler and the
908114237Snjlinterpreter to find the wrong object or to miss the error that
909114237Snjlshould occur if the object does not exist at that exact pathname.
910102550Siwasaki
911114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
912114237Snjlload.  This was a relatively minor tweak to the table loading
913114237Snjlcode (a problem caused by the unexpected encounter with a method
914114237Snjlinvocation not within a control method), but it does not solve
915114237Snjlthe overall issue of the execution of AML code at the table
916114237Snjllevel.  This investigation is still ongoing.
917102550Siwasaki
918102550SiwasakiCode and Data Size: Current core subsystem library sizes are
919102550Siwasakishown below.  These are the code and data sizes for the
920114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
921114237Snjlthese values do not include any ACPI driver or OSPM code.  The
922114237Snjldebug version of the code includes the debug output trace
923114237Snjlmechanism and has a larger code and data size.  Note that these
924114237Snjlvalues will vary depending on the efficiency of the compiler and
925114237Snjlthe compiler options used during generation.
926102550Siwasaki
927102550Siwasaki  Previous Release
928104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
929104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
930102550Siwasaki  Current Release:
931104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
932104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
933102550Siwasaki
934102550Siwasaki
935102550Siwasaki2) Linux
936102550Siwasaki
937102550SiwasakiRemove redundant slab.h include (Brad Hards)
938102550Siwasaki
939102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
940102550Siwasaki
941102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
942102550Siwasaki
943104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
944104470SiwasakiMachek)
945102550Siwasaki
946102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
947102550Siwasaki
948102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
949102550Siwasaki
950102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
951102550Siwasaki
952102550Siwasaki
953102550Siwasaki3) iASL Compiler/Disassembler
954102550Siwasaki
955114237SnjlReworked the compiler options to make them more consistent and to
956114237Snjluse two-letter options where appropriate.  We were running out of
957114237Snjlsensible letters.   This may break some makefiles, so check the
958114237Snjlcurrent options list by invoking the compiler with no parameters.
959102550Siwasaki
960102550SiwasakiCompleted the design and implementation of the ASL namepath
961114237Snjloptimization option for the compiler.  This option optimizes all
962114237Snjlreferences to named objects to the shortest possible path.  The
963114237Snjlfirst attempt tries to utilize a single nameseg (4 characters)
964114237Snjland the "search-to-root" algorithm used by the interpreter.  If
965114237Snjlthat cannot be used (because either the name is not in the search
966114237Snjlpath or there is a conflict with another object with the same
967114237Snjlname), the pathname is optimized using the carat prefix (usually
968114237Snjla shorter string than specifying the entire path from the root.)
969102550Siwasaki
970114237SnjlImplemented support to obtain the DSDT from the Windows registry
971114237Snjl(when the disassembly option is specified with no input file).
972114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
973114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
974114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
975114237Snjlfunction in the DOS OSL to make the disassembler truly OS
976114237Snjlindependent.
977102550Siwasaki
978114237SnjlImplemented a new option to disassemble and compile in one step.
979114237SnjlWhen used without an input filename, this option will grab the
980114237SnjlDSDT from the local machine, disassemble it, and compile it in
981114237Snjlone step.
982102550Siwasaki
983114237SnjlAdded a warning message for invalid escapes (a backslash followed
984114237Snjlby any character other than the allowable escapes).  This catches
985114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
986114237SnjlAlso, there are numerous instances in the ACPI specification
987114237Snjlwhere this error occurs.
988102550Siwasaki
989104470SiwasakiAdded a compiler option to disable all optimizations.  This is
990114237Snjlbasically the "compatibility mode" because by using this option,
991114237Snjlthe AML code will come out exactly the same as other ASL
992114237Snjlcompilers.
993102550Siwasaki
994114237SnjlAdded error messages for incorrectly ordered dependent resource
995114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
996114237Snjldependent resource list, nested dependent function macros (both
997114237Snjlstart and end), and missing StartDependentFn macro.  These are
998114237Snjlcommon errors that should be caught at compile time.
999102550Siwasaki
1000114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
1001114237Snjlmust be included in the namespace for proper disassembly (because
1002114237Snjlthe disassembler must know the number of arguments.)
1003102550Siwasaki
1004104470SiwasakiAdded an "optimization" message type that is optional (off by
1005114237Snjldefault).  This message is used for all optimizations - including
1006114237Snjlconstant folding, integer optimization, and namepath
1007104470Siwasakioptimization.
1008102550Siwasaki
1009102550Siwasaki----------------------------------------
1010102550Siwasaki25 July 2002.  Summary of changes for this release.
1011102550Siwasaki
1012102550Siwasaki
1013102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
1014102550Siwasaki
1015114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
1016114237Snjlcode and has been integrated into the iASL compiler (see below)
1017114237Snjlas well as the single-step disassembly for the AML debugger and
1018114237Snjlthe disassembler for the AcpiDump utility.  All ACPI 2.0A
1019114237Snjlopcodes, resource templates and macros are fully supported.  The
1020114237Snjldisassembler has been tested on over 30 different AML files,
1021114237Snjlproducing identical AML when the resulting disassembled ASL file
1022114237Snjlis recompiled with the same ASL compiler.
1023102550Siwasaki
1024114237SnjlModified the Resource Manager to allow zero interrupts and zero
1025114237Snjldma channels during the GetCurrentResources call.  This was
1026114237Snjlcausing problems on some platforms.
1027102550Siwasaki
1028114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
1029114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
1030114237Snjlinterfaces.
1031102550Siwasaki
1032102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1033102550Siwasakishown below.  These are the code and data sizes for the
1034114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1035114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1036114237Snjldebug version of the code includes the debug output trace
1037114237Snjlmechanism and has a larger code and data size.  Note that these
1038114237Snjlvalues will vary depending on the efficiency of the compiler and
1039114237Snjlthe compiler options used during generation.
1040102550Siwasaki
1041102550Siwasaki  Previous Release
1042104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1043104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1044102550Siwasaki  Current Release:
1045104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1046104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1047102550Siwasaki
1048102550Siwasaki
1049102550Siwasaki2) Linux
1050102550Siwasaki
1051102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
1052102550Siwasaki
1053114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
1054114237Snjl(Richard Schaal)
1055102550Siwasaki
1056102550Siwasaki
1057102550Siwasaki3) iASL compiler
1058102550Siwasaki
1059114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
1060114237Snjloption invokes the disassembler  to completely disassemble an
1061114237Snjlinput AML file, producing as output a text ASL file with the
1062114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
1063114237Snjlsource files.)  A future enhancement will allow the disassembler
1064114237Snjlto obtain the BIOS DSDT from the registry under Windows.
1065102550Siwasaki
1066102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
1067102550Siwasakidescriptors where an invalid AML sequence was created.
1068102550Siwasaki
1069114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
1070114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
1071114237Snjlcausing reduction conflicts.
1072102550Siwasaki
1073104470SiwasakiFixed a problem where the Ones opcode could get converted to a
1074104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
1075104470Siwasakivalue was expected.  The 64-bit value is now truncated to the
1076104470Siwasakicorrect size with the correct value.
1077102550Siwasaki
1078102550Siwasaki
1079102550Siwasaki----------------------------------------
1080102550Siwasaki02 July 2002.  Summary of changes for this release.
1081102550Siwasaki
1082102550Siwasaki
1083102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
1084102550Siwasaki
1085114237SnjlThe Table Manager code has been restructured to add several new
1086114237Snjlfeatures.  Tables that are not required by the core subsystem
1087114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
1088114237Snjlvalidated in any way and are returned from AcpiGetFirmwareTable
1089114237Snjlif requested.  The AcpiOsTableOverride interface is now called
1090114237Snjlfor each table that is loaded by the subsystem in order to allow
1091114237Snjlthe host to override any table it chooses.  Previously, only the
1092114237SnjlDSDT could be overridden.  Added one new files, tbrsdt.c and
1093114237Snjltbgetall.c.
1094102550Siwasaki
1095114237SnjlFixed a problem with the conversion of internal package objects
1096114237Snjlto external objects (when a package is returned from a control
1097114237Snjlmethod.)  The return buffer length was set to zero instead of the
1098114237Snjlproper length of the package object.
1099102550Siwasaki
1100104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
1101114237Snjloperators when passing reference arguments to control methods.  A
1102114237Snjlnew type of Reference object is used internally for references
1103114237Snjlproduced by the RefOf operator.
1104102550Siwasaki
1105102550SiwasakiAdded additional error messages in the Resource Manager to
1106102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource
1107102550Siwasakiparsing.
1108102550Siwasaki
1109104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
1110104470Siwasakifiner granularity initialization sequence.  These two calls
1111104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags),
1112114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
1113114237Snjlsame.
1114102550Siwasaki
1115102550Siwasaki
1116102550Siwasaki2) Linux
1117102550Siwasaki
1118114237SnjlUpdated the ACPI utilities module to understand the new style of
1119114237Snjlfully resolved package objects that are now returned from the
1120114237Snjlcore subsystem.  This eliminates errors of the form:
1121102550Siwasaki
1122102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
1123102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
1124102550Siwasaki        Invalid element in package (not a device reference)
1125102550Siwasaki
1126102550SiwasakiThe method evaluation utility uses the new buffer allocation
1127102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
1128102550Siwasaki
1129102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
1130114237SnjlController before the namespace has been fully initialized, which
1131114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
1132114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
1133114237Snjllimited testing was performed of the added functionality.)
1134102550Siwasaki
1135102550SiwasakiFixed memory leaks in the EC driver.
1136102550Siwasaki
1137102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
1138102550Siwasaki
1139114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
1140114237Snjlno longer needed since acpi_evaluate_object can optionally
1141104470Siwasakiallocate memory for the return object.
1142102550Siwasaki
1143114237SnjlImplemented fix for keyboard hang when getting battery readings
1144114237Snjlon some systems (Stephen White)
1145102550Siwasaki
1146102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
1147102550Siwasaki
1148114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
1149114237Snjlsupport
1150102550Siwasaki
1151102550Siwasaki----------------------------------------
1152102550Siwasaki11 June 2002.  Summary of changes for this release.
1153102550Siwasaki
1154102550Siwasaki
1155102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
1156102550Siwasaki
1157104470SiwasakiFixed a reported problem where constants such as Zero and One
1158114237Snjlappearing within _PRT packages were not handled correctly within
1159114237Snjlthe resource manager code.  Originally reported against the ASL
1160114237Snjlcompiler because the code generator now optimizes integers to
1161114237Snjltheir minimal AML representation (i.e. AML constants if
1162114237Snjlpossible.)  The _PRT code now handles all AML constant opcodes
1163114237Snjlcorrectly (Zero, One, Ones, Revision).
1164102550Siwasaki
1165102550SiwasakiFixed a problem with the Concatenate operator in the AML
1166114237Snjlinterpreter where a buffer result object was incorrectly marked
1167114237Snjlas not fully evaluated, causing a run-time error of
1168102550SiwasakiAE_AML_INTERNAL.
1169102550Siwasaki
1170104470SiwasakiAll package sub-objects are now fully resolved before they are
1171114237Snjlreturned from the external ACPI interfaces.  This means that name
1172114237Snjlstrings are resolved to object handles, and constant operators
1173114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
1174102550Siwasaki
1175102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
1176104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
1177104470Siwasakiwithin the AML stream. This has simplified and reduced the
1178104470Siwasakigenerated code size of the subsystem by eliminating about 10
1179104470Siwasakiswitch statements for these constants (which previously were
1180104470Siwasakicontained in Reference objects.)  The complicating issues are
1181114237Snjlthat the Zero opcode is used as a "placeholder" for unspecified
1182114237Snjloptional target operands and stores to constants are defined to
1183114237Snjlbe no-ops.
1184102550Siwasaki
1185102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1186114237Snjlshown below. These are the code and data sizes for the acpica.lib
1187114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1188114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1189114237Snjlversion of the code includes the debug output trace mechanism and
1190114237Snjlhas a larger code and data size.  Note that these values will
1191114237Snjlvary depending on the efficiency of the compiler and the compiler
1192114237Snjloptions used during generation.
1193102550Siwasaki
1194102550Siwasaki  Previous Release
1195104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1196104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1197102550Siwasaki  Current Release:
1198104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1199104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1200102550Siwasaki
1201102550Siwasaki
1202102550Siwasaki2) Linux
1203102550Siwasaki
1204104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
1205104470Siwasakibridges (Bjorn Helgaas).
1206102550Siwasaki
1207102550Siwasaki
1208102550Siwasaki3) iASL Compiler Version X2046:
1209102550Siwasaki
1210114237SnjlFixed a problem where the "_DDN" reserved name was defined to be
1211114237Snjla control method with one argument.  There are no arguments, and
1212114237Snjl_DDN does not have to be a control method.
1213102550Siwasaki
1214114237SnjlFixed a problem with the Linux version of the compiler where the
1215114237Snjlsource lines printed with error messages were the wrong lines.
1216114237SnjlThis turned out to be the "LF versus CR/LF" difference between
1217114237SnjlWindows and Unix.  This appears to be the longstanding issue
1218114237Snjlconcerning listing output and error messages.
1219102550Siwasaki
1220114237SnjlFixed a problem with the Linux version of compiler where opcode
1221114237Snjlnames within error messages were wrong.  This was caused by a
1222114237Snjlslight difference in the output of the Flex tool on Linux versus
1223114237SnjlWindows.
1224102550Siwasaki
1225102550SiwasakiFixed a problem with the Linux compiler where the hex output
1226104470Siwasakifiles contained some garbage data caused by an internal buffer
1227104470Siwasakioverrun.
1228102550Siwasaki
1229102550Siwasaki
1230102550Siwasaki----------------------------------------
1231102550Siwasaki17 May 2002.  Summary of changes for this release.
1232102550Siwasaki
1233102550Siwasaki
1234102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
1235102550Siwasaki
1236102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
1237104470SiwasakiOmniBook where the FADT revision number and the table size are
1238104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
1239114237Snjlnew behavior is to fallback to using only the ACPI 1.0 fields of
1240114237Snjlthe FADT if the table is too small to be a ACPI 2.0 table as
1241114237Snjlclaimed by the revision number.  Although this is a BIOS bug,
1242114237Snjlthis is a case where the workaround is simple enough and with no
1243114237Snjlside effects, so it seemed prudent to add it.  A warning message
1244114237Snjlis issued, however.
1245102550Siwasaki
1246114237SnjlImplemented minimum size checks for the fixed-length ACPI tables
1247114237Snjl-- the FADT and FACS, as well as consistency checks between the
1248114237Snjlrevision number and the table size.
1249102550Siwasaki
1250114237SnjlFixed a reported problem in the table override support where the
1251114237Snjlnew table pointer was incorrectly treated as a physical address
1252114237Snjlinstead of a logical address.
1253102550Siwasaki
1254114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
1255114237Snjlwith more descriptive codes.
1256102550Siwasaki
1257104470SiwasakiFixed a problem where an exception would occur if an ASL Field
1258114237Snjlwas defined with no named Field Units underneath it (used by some
1259114237Snjlindex fields).
1260102550Siwasaki
1261102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1262102550Siwasakishown below.  These are the code and data sizes for the
1263114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1264114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1265114237Snjldebug version of the code includes the debug output trace
1266114237Snjlmechanism and has a larger code and data size.  Note that these
1267114237Snjlvalues will vary depending on the efficiency of the compiler and
1268114237Snjlthe compiler options used during generation.
1269102550Siwasaki
1270102550Siwasaki  Previous Release
1271104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
1272104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
1273102550Siwasaki  Current Release:
1274104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1275104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1276102550Siwasaki
1277102550Siwasaki
1278102550Siwasaki
1279102550Siwasaki2) Linux
1280102550Siwasaki
1281114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
1282114237Snjl(Paul D. and Dominik Brodowski)
1283102550Siwasaki
1284102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
1285102550Siwasaki
1286102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
1287102550Siwasaki
1288102550SiwasakiFix "MHz" typo (Dominik Brodowski)
1289102550Siwasaki
1290102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
1291102550Siwasaki
1292102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
1293102550Siwasaki
1294102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
1295102550Siwasaki
1296102550Siwasaki3) iASL Compiler Version X2044:
1297102550Siwasaki
1298102550SiwasakiImplemented error checking for the string used in the EISAID
1299114237Snjlmacro (Usually used in the definition of the _HID object.)  The
1300114237Snjlcode now strictly enforces the PnP format - exactly 7 characters,
1301114237Snjl3 uppercase letters and 4 hex digits.
1302102550Siwasaki
1303102550SiwasakiIf a raw string is used in the definition of the _HID object
1304102550Siwasaki(instead of the EISAID macro), the string must contain all
1305114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
1306114237Snjlof the asterisk.)
1307102550Siwasaki
1308114237SnjlImplemented checking for invalid use of ACPI reserved names for
1309114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
1310114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
1311114237SnjlPreviously, this check was only performed for control methods.
1312102550Siwasaki
1313114237SnjlImplemented an additional check on the Name operator to emit an
1314114237Snjlerror if a reserved name that must be implemented in ASL as a
1315114237Snjlcontrol method is used.  We know that a reserved name must be a
1316114237Snjlmethod if it is defined with input arguments.
1317102550Siwasaki
1318102550SiwasakiThe warning emitted when a namespace object reference is not
1319114237Snjlfound during the cross reference phase has been changed into an
1320114237Snjlerror.  The "External" directive should be used for names defined
1321114237Snjlin other modules.
1322102550Siwasaki
1323102550Siwasaki
1324102550Siwasaki4) Tools and Utilities
1325102550Siwasaki
1326114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
1327114237Snjltested.
1328102550Siwasaki
1329102550SiwasakiFixed a problem with the output of both acpidump and adump16
1330114237Snjlwhere the indentation of closing parentheses and brackets was not
1331114237Snjlaligned properly with the parent block.
1332102550Siwasaki
1333102550Siwasaki
1334102550Siwasaki----------------------------------------
1335102550Siwasaki03 May 2002.  Summary of changes for this release.
1336102550Siwasaki
1337102550Siwasaki
1338102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
1339102550Siwasaki
1340114237SnjlAdded support a new OSL interface that allows the host operating
1341114237Snjlsystem software to override the DSDT found in the firmware -
1342114237SnjlAcpiOsTableOverride.  With this interface, the OSL can examine
1343114237Snjlthe version of the firmware DSDT and replace it with a different
1344114237Snjlone if desired.
1345102550Siwasaki
1346114237SnjlAdded new external interfaces for accessing ACPI registers from
1347114237Snjldevice drivers and other system software - AcpiGetRegister and
1348114237SnjlAcpiSetRegister.  This was simply an externalization of the
1349114237Snjlexisting AcpiHwBitRegister interfaces.
1350102550Siwasaki
1351104470SiwasakiFixed a regression introduced in the previous build where the
1352104470SiwasakiASL/AML CreateField operator always returned an error,
1353102550Siwasaki"destination must be a NS Node".
1354102550Siwasaki
1355114237SnjlExtended the maximum time (before failure) to successfully enable
1356114237SnjlACPI mode to 3 seconds.
1357102550Siwasaki
1358102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1359102550Siwasakishown below.  These are the code and data sizes for the
1360114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1361114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1362114237Snjldebug version of the code includes the debug output trace
1363114237Snjlmechanism and has a larger code and data size.  Note that these
1364114237Snjlvalues will vary depending on the efficiency of the compiler and
1365114237Snjlthe compiler options used during generation.
1366102550Siwasaki
1367102550Siwasaki  Previous Release
1368104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
1369104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
1370102550Siwasaki  Current Release:
1371104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
1372104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
1373102550Siwasaki
1374102550Siwasaki
1375102550Siwasaki2) Linux
1376102550Siwasaki
1377104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
1378104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
1379104470Siwasakilast one still hangs when testing the LAPIC timer.
1380102550Siwasaki
1381114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
1382114237Snjlname.
1383102550Siwasaki
1384102550SiwasakiAdded warning on boot for Presario 711FR.
1385102550Siwasaki
1386102550SiwasakiSleep improvements (Pavel Machek)
1387102550Siwasaki
1388102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
1389102550Siwasaki
1390102550SiwasakiIA64: Fixed memory map functions (JI Lee)
1391102550Siwasaki
1392102550Siwasaki
1393102550Siwasaki3) iASL Compiler Version X2043:
1394102550Siwasaki
1395114237SnjlAdded support to allow the compiler to be integrated into the MS
1396114237SnjlVC++ development environment for one-button compilation of single
1397114237Snjlfiles or entire projects -- with error-to-source-line mapping.
1398102550Siwasaki
1399104470SiwasakiImplemented support for compile-time constant folding for the
1400104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
1401104470Siwasakispecification.  This allows the ASL writer to use expressions
1402104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
1403114237Snjlevaluate to constants at compile time and will also simplify the
1404114237Snjlemitted AML in any such sub-expressions that can be folded
1405104470Siwasaki(evaluated at compile-time.)  This increases the size of the
1406104470Siwasakicompiler significantly because a portion of the ACPI CA AML
1407104470Siwasakiinterpreter is included within the compiler in order to pre-
1408104470Siwasakievaluate constant expressions.
1409102550Siwasaki
1410114237Snjl
1411102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
1412114237Snjlcompiler to fault.  (This macro is used in conjunction with the
1413114237Snjl_STR reserved name.)
1414102550Siwasaki
1415114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
1416114237SnjlOnes opcodes where possible to further reduce the size of integer
1417114237Snjlconstants and thus reduce the overall size of the generated AML
1418114237Snjlcode.
1419102550Siwasaki
1420102550SiwasakiImplemented error checking for new reserved terms for ACPI
1421102550Siwasakiversion 2.0A.
1422102550Siwasaki
1423104470SiwasakiImplemented the -qr option to display the current list of ACPI
1424104470Siwasakireserved names known to the compiler.
1425102550Siwasaki
1426104470SiwasakiImplemented the -qc option to display the current list of ASL
1427104470Siwasakioperators that are allowed within constant expressions and can
1428104470Siwasakitherefore be folded at compile time if the operands are
1429104470Siwasakiconstants.
1430102550Siwasaki
1431102550Siwasaki
1432102550Siwasaki4) Documentation
1433102550Siwasaki
1434102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
1435102550Siwasakitypes, and memory allocation model options.
1436102550Siwasaki
1437114237SnjlUpdated the iASL Compiler User Reference to apply new format and
1438114237Snjladd information about new features and options.
1439102550Siwasaki
1440102550Siwasaki----------------------------------------
1441102550Siwasaki19 April 2002.  Summary of changes for this release.
1442102550Siwasaki
1443102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
1444102550Siwasaki
1445114237SnjlThe source code base for the Core Subsystem has been completely
1446114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
1447114237Snjlversions.  The Lint option files used are included in the
1448114237Snjl/acpi/generate/lint directory.
1449102550Siwasaki
1450102550SiwasakiImplemented enhanced status/error checking across the entire
1451114237SnjlHardware manager subsystem.  Any hardware errors (reported from
1452114237Snjlthe OSL) are now bubbled up and will abort a running control
1453114237Snjlmethod.
1454102550Siwasaki
1455114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
1456114237Snjlwas stored only with control method nodes, causing a fault when
1457114237Snjlnon-control method code was executed during table loading.  The
1458114237Snjlsolution implemented uses a global variable to indicate table
1459114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
1460114237Snjlnot support mixed integer widths across different ACPI tables
1461114237Snjl(DSDT, SSDT).
1462102550Siwasaki
1463114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
1464114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
1465114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
1466114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
1467114237SnjlACPI 2.0 X field is zero (even though the table revision
1468114237Snjlindicates a full ACPI 2.0 table.)  The ACPI specification will be
1469114237Snjlupdated to clarify this issue.
1470102550Siwasaki
1471104470SiwasakiFixed a problem with the SystemMemory operation region handler
1472104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
1473104470Siwasakispecified access width was larger than a byte.  This caused
1474104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
1475104470Siwasakiaccessed with the width specified.  On systems that do not
1476104470Siwasakisupport non-aligned transfers, a check is made to guarantee
1477114237Snjlproper address alignment before proceeding in order to avoid an
1478114237SnjlAML-caused alignment fault within the kernel.
1479102550Siwasaki
1480102550Siwasaki
1481114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
1482114237Snjlof the 4-byte Irq field was extracted.
1483102550Siwasaki
1484114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
1485114237Snjlfunction was out of date and required a rewrite.
1486114237Snjl
1487102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1488102550Siwasakishown below.  These are the code and data sizes for the
1489114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1490114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1491114237Snjldebug version of the code includes the debug output trace
1492114237Snjlmechanism and has a larger code and data size.  Note that these
1493114237Snjlvalues will vary depending on the efficiency of the compiler and
1494114237Snjlthe compiler options used during generation.
1495102550Siwasaki
1496102550Siwasaki  Previous Release
1497104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1498104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1499102550Siwasaki  Current Release:
1500104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
1501104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
1502102550Siwasaki
1503102550Siwasaki
1504102550Siwasaki2) Linux
1505102550Siwasaki
1506102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
1507102550Siwasaki
1508102550Siwasaki
1509102550Siwasaki3) iASL Compiler Version X2042:
1510102550Siwasaki
1511104470SiwasakiImplemented an additional compile-time error check for a field
1512104470Siwasakiunit whose size + minimum access width would cause a run-time
1513114237Snjlaccess beyond the end-of-region.  Previously, only the field size
1514114237Snjlitself was checked.
1515102550Siwasaki
1516104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
1517104470Siwasakiobject in preparation for compile-time evaluation of the type
1518104470Siwasaki3/4/5 ASL operators.
1519102550Siwasaki
1520102550Siwasaki
1521102550Siwasaki----------------------------------------
1522102550SiwasakiSummary of changes for this release: 03_29_02
1523102550Siwasaki
1524102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
1525102550Siwasaki
1526104470SiwasakiImplemented support for late evaluation of TermArg operands to
1527114237SnjlBuffer and Package objects.  This allows complex expressions to
1528114237Snjlbe used in the declarations of these object types.
1529102550Siwasaki
1530104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
1531114237SnjlACPI 1.0, if the field was larger than 32 bits, it was returned
1532114237Snjlas a buffer - otherwise it was returned as an integer.  In ACPI
1533114237Snjl2.0, the field is returned as a buffer only if the field is
1534114237Snjllarger than 64 bits.  The TableRevision is now considered when
1535114237Snjlmaking this conversion to avoid incompatibility with existing ASL
1536114237Snjlcode.
1537102550Siwasaki
1538104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
1539114237Snjlallows an RSDP with either a logical or physical address.  With
1540114237Snjlthis support, the host OS can now override all ACPI tables with
1541114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
1542114237Snjlsupport to allow a common data type for both physical and logical
1543114237Snjlpointers internally.  This required a change to the
1544114237SnjlAcpiOsGetRootPointer interface.
1545102550Siwasaki
1546104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
1547114237Snjlall GPE, Fixed Event, and PM Timer I/O.  This allows the use of
1548114237Snjlmemory mapped I/O for these ACPI features.
1549102550Siwasaki
1550102550SiwasakiInitialization now ignores not only non-required tables (All
1551114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
1552114237Snjlnot validate the table headers of unrecognized tables.
1553102550Siwasaki
1554102550SiwasakiFixed a problem where a notify handler could only be
1555102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
1556102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
1557102550SiwasakiThermal.
1558102550Siwasaki
1559114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
1560114237Snjlcritical information is returned when this debug level is
1561104470Siwasakienabled.
1562102550Siwasaki
1563102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1564102550Siwasakishown below.  These are the code and data sizes for the
1565114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1566114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1567114237Snjldebug version of the code includes the debug output trace
1568114237Snjlmechanism and has a larger code and data size.  Note that these
1569114237Snjlvalues will vary depending on the efficiency of the compiler and
1570114237Snjlthe compiler options used during generation.
1571102550Siwasaki
1572102550Siwasaki  Previous Release
1573104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1574104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1575102550Siwasaki  Current Release:
1576104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1577104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1578102550Siwasaki
1579102550Siwasaki
1580102550Siwasaki2) Linux:
1581102550Siwasaki
1582114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
1583114237Snjl2.0-based processor performance control (e.g. Intel(R)
1584114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
1585114237Snjlthe Intel "applet" interface are not supported through this.  The
1586114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
1587114237Snjl[Note that basic policy for controlling performance state
1588114237Snjltransitions will be included in the next version of ospmd.]  The
1589114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
1590114237Snjlerrata handling underwent a complete overhaul (big thanks to
1591114237SnjlDominik Brodowski).
1592102550Siwasaki
1593114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
1594114237Snjlbased devices in the ACPI namespace are now dynamically bound
1595114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
1596114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
1597114237Snjlsubordinate PCI bridges.
1598102550Siwasaki
1599104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
1600104470Siwasakientries defined underneath PCI bridges.
1601102550Siwasaki
1602104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
1603104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
1604102550Siwasaki
1605114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
1606114237Snjl(acpi.c, mpparse.c) -- stay tuned.
1607102550Siwasaki
1608102550SiwasakiAdded back visual differentiation between fixed-feature and
1609114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
1610114237Snjlbutton/power/PWRF) to simplify button identification.
1611102550Siwasaki
1612114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
1613114237Snjlany "_THIS_MODULE defined but not used" messages.
1614102550Siwasaki
1615102550SiwasakiCan now shut down the system using "magic sysrq" key.
1616102550Siwasaki
1617102550Siwasaki
1618102550Siwasaki3) iASL Compiler version 2041:
1619102550Siwasaki
1620104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
1621104470Siwasakiconstants were not reported.
1622102550Siwasaki
1623102550SiwasakiImplemented a fix for the General Register template Address
1624102550Siwasakifield.  This field was 8 bits when it should be 64.
1625102550Siwasaki
1626102550SiwasakiFixed a problem where errors/warnings were no longer being
1627102550Siwasakiemitted within the listing output file.
1628102550Siwasaki
1629114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
1630114237Snjlexactly 4 characters, alphanumeric only.
1631102550Siwasaki
1632102550Siwasaki
1633102550Siwasaki
1634102550Siwasaki
1635102550Siwasaki----------------------------------------
1636102550SiwasakiSummary of changes for this release: 03_08_02
1637102550Siwasaki
1638102550Siwasaki
1639102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
1640102550Siwasaki
1641114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
1642114237Snjlkeyword could cause an interpreter error due to attempting to
1643114237Snjlread or write beyond the end of the parent Operation Region.
1644102550Siwasaki
1645102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
1646104470Siwasakiwhere an attempt was made to map memory beyond the end of the
1647104470Siwasakiregion.  This was the root cause of the "AE_ERROR" and
1648102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems.
1649102550Siwasaki
1650114237SnjlFixed a problem where the interpreter/namespace "search to root"
1651114237Snjlalgorithm was not functioning for some object types.  Relaxed the
1652114237Snjlinternal restriction on the search to allow upsearches for all
1653114237Snjlexternal object types as well as most internal types.
1654102550Siwasaki
1655102550Siwasaki
1656102550Siwasaki2) Linux:
1657102550Siwasaki
1658104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
1659104470Siwasakihlt.
1660102550Siwasaki
1661114237SnjlWriting to the processor limit interface should now work. "echo
1662114237Snjl1" will increase the limit, 2 will decrease, and 0 will reset to
1663114237Snjlthe default.
1664102550Siwasaki
1665102550Siwasaki
1666102550Siwasaki3) ASL compiler:
1667102550Siwasaki
1668102550SiwasakiFixed segfault on Linux version.
1669102550Siwasaki
1670102550Siwasaki
1671102550Siwasaki----------------------------------------
1672102550SiwasakiSummary of changes for this release: 02_25_02
1673102550Siwasaki
1674102550Siwasaki1) ACPI CA Core Subsystem:
1675102550Siwasaki
1676102550Siwasaki
1677102550SiwasakiFixed a problem where the GPE bit masks were not initialized
1678102550Siwasakiproperly, causing erratic GPE behavior.
1679102550Siwasaki
1680104470SiwasakiImplemented limited support for multiple calling conventions.
1681114237SnjlThe code can be generated with either the VPL (variable parameter
1682114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
1683114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
1684114237Snjlwhen generated with FPL.
1685102550Siwasaki
1686102550Siwasaki
1687102550Siwasaki2) Linux
1688102550Siwasaki
1689114237SnjlRe-add some /proc/acpi/event functionality that was lost during
1690114237Snjlthe rewrite
1691102550Siwasaki
1692102550SiwasakiResolved issue with /proc events for fixed-feature buttons
1693102550Siwasakishowing up as the system device.
1694102550Siwasaki
1695102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
1696102550Siwasakivalues.
1697102550Siwasaki
1698114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
1699102550Siwasaki
1700114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
1701102550Siwasaki
1702104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
1703104470Siwasakihysterisis.
1704102550Siwasaki
1705102550SiwasakiRestructured PRT support.
1706102550Siwasaki
1707102550Siwasaki
1708102550Siwasaki----------------------------------------
1709102550SiwasakiSummary of changes for this label: 02_14_02
1710102550Siwasaki
1711102550Siwasaki
1712102550Siwasaki1) ACPI CA Core Subsystem:
1713102550Siwasaki
1714114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
1715114237SnjlFADT tables.
1716102550Siwasaki
1717114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
1718114237Snjlbeen removed.  All 64-bit platforms should be migrated to the
1719114237SnjlACPI 2.0 tables.  The actbl71.h header has been removed from the
1720114237Snjlsource tree.
1721102550Siwasaki
1722114237SnjlAll C macros defined within the subsystem have been prefixed with
1723114237Snjl"ACPI_" to avoid collision with other system include files.
1724102550Siwasaki
1725102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
1726114237Snjlsince it is never used and causes lint warnings for ignoring the
1727114237Snjlreturn value.
1728102550Siwasaki
1729104470SiwasakiAdded error checking to all internal mutex acquire and release
1730104470Siwasakicalls.  Although a failure from one of these interfaces is
1731104470Siwasakiprobably a fatal system error, these checks will cause the
1732114237Snjlimmediate abort of the currently executing method or interface.
1733102550Siwasaki
1734114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
1735114237Snjlfault.  This was a side effect of the deployment of the new
1736114237Snjlmemory allocation model.
1737102550Siwasaki
1738102550SiwasakiFixed a couple of problems with the Global Lock support
1739102550Siwasakiintroduced in the last major build.  The "common" (1.0/2.0)
1740114237Snjlinternal FACS was being overwritten with the FACS signature and
1741114237Snjlclobbering the Global Lock pointer.  Also, the actual firmware
1742114237SnjlFACS was being unmapped after construction of the "common" FACS,
1743114237Snjlpreventing access to the actual Global Lock field within it.  The
1744114237Snjl"common" internal FACS is no longer installed as an actual ACPI
1745114237Snjltable; it is used simply as a global.
1746102550Siwasaki
1747102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1748102550Siwasakishown below.  These are the code and data sizes for the
1749114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1750114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1751114237Snjldebug version of the code includes the debug output trace
1752114237Snjlmechanism and has a larger code and data size.  Note that these
1753114237Snjlvalues will vary depending on the efficiency of the compiler and
1754114237Snjlthe compiler options used during generation.
1755102550Siwasaki
1756102550Siwasaki  Previous Release (02_07_01)
1757104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
1758104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
1759102550Siwasaki  Current Release:
1760104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1761104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1762102550Siwasaki
1763102550Siwasaki
1764102550Siwasaki2) Linux
1765102550Siwasaki
1766102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
1767102550Siwasakichanges described above.
1768102550Siwasaki
1769114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
1770114237Snjlproper poll functionality.
1771102550Siwasaki
1772102550SiwasakiFixed and restructured power management (acpi_bus).
1773102550Siwasaki
1774102550SiwasakiOnly create /proc "view by type" when devices of that class
1775102550Siwasakiexist.
1776102550Siwasaki
1777104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
1778102550Siwasaki
1779102550SiwasakiImproved thermal zone code.
1780102550Siwasaki
1781102550Siwasaki
1782102550Siwasaki3) ASL Compiler, version X2039:
1783102550Siwasaki
1784114237Snjl
1785114237SnjlImplemented the new compiler restriction on ASL String hex/octal
1786114237Snjlescapes to non-null, ASCII values.  An error results if an
1787114237Snjlinvalid value is used.  (This will require an ACPI 2.0
1788104470Siwasakispecification change.)
1789102550Siwasaki
1790102550SiwasakiAML object labels that are output to the optional C and ASM
1791104470Siwasakisource are now prefixed with both the ACPI table signature and
1792104470Siwasakitable ID to help guarantee uniqueness within a large BIOS
1793104470Siwasakiproject.
1794102550Siwasaki
1795102550Siwasaki
1796102550Siwasaki----------------------------------------
1797102550SiwasakiSummary of changes for this label: 02_01_02
1798102550Siwasaki
1799102550Siwasaki1) ACPI CA Core Subsystem:
1800102550Siwasaki
1801114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
1802114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
1803114237Snjlother changes for ACPI 2.0 support are complete.  With
1804104470Siwasakisimultaneous code and data optimizations throughout the
1805114237Snjlsubsystem, ACPI 2.0 support has been implemented with almost no
1806114237Snjladditional cost in terms of code and data size.
1807102550Siwasaki
1808114237SnjlImplemented a new mechanism for allocation of return buffers.  If
1809114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
1810114237Snjlbe allocated on behalf of the caller.  Consolidated all return
1811114237Snjlbuffer validation and allocation to a common procedure.  Return
1812114237Snjlbuffers will be allocated via the primary OSL allocation
1813114237Snjlinterface since it appears that a separate pool is not needed by
1814114237Snjlmost users.  If a separate pool is required for these buffers,
1815114237Snjlthe caller can still use the original mechanism and pre-allocate
1816114237Snjlthe buffer(s).
1817102550Siwasaki
1818102550SiwasakiImplemented support for string operands within the DerefOf
1819102550Siwasakioperator.
1820102550Siwasaki
1821114237SnjlRestructured the Hardware and Event managers to be table driven,
1822114237Snjlsimplifying the source code and reducing the amount of generated
1823114237Snjlcode.
1824102550Siwasaki
1825102550SiwasakiSplit the common read/write low-level ACPI register bitfield
1826104470Siwasakiprocedure into a separate read and write, simplifying the code
1827104470Siwasakiconsiderably.
1828102550Siwasaki
1829114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
1830114237Snjlused only a handful of times and didn't have enough critical mass
1831114237Snjlfor a separate interface.  Replaced with a common calloc
1832114237Snjlprocedure in the core.
1833102550Siwasaki
1834104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
1835104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
1836114237SnjlReorganized the GPE information and shrunk a large array that was
1837114237Snjloriginally large enough to hold info for all possible GPEs (256)
1838114237Snjlto simply large enough to hold all GPEs up to the largest GPE
1839114237Snjlnumber on the machine.
1840102550Siwasaki
1841114237SnjlFixed a reported problem with resource structure alignment on 64-
1842114237Snjlbit platforms.
1843102550Siwasaki
1844102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
1845102550Siwasakiinterfaces to not require any flags for the common case of
1846102550Siwasakienabling/disabling a GPE.
1847102550Siwasaki
1848104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
1849102550Siwasaki
1850114237SnjlMost TBDs in comments within the source code have been resolved
1851114237Snjland eliminated.
1852102550Siwasaki
1853102550SiwasakiFixed a problem in the interpreter where a standalone parent
1854102550Siwasakiprefix (^) was not handled correctly in the interpreter and
1855102550Siwasakidebugger.
1856102550Siwasaki
1857102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
1858102550Siwasaki
1859114237SnjlImplemented Field support in the ASL Load operator.  This allows
1860114237Snjla table to be loaded from a named field, in addition to loading a
1861114237Snjltable directly from an Operation Region.
1862102550Siwasaki
1863104470SiwasakiImplemented timeout and handle support in the external Global
1864104470SiwasakiLock interfaces.
1865102550Siwasaki
1866114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
1867114237Snjllonger being generated correctly during the dump of named
1868102550Siwasakiobjects.
1869102550Siwasaki
1870102550SiwasakiModified the AML debugger to give a full display of if/while
1871102550Siwasakipredicates instead of just one AML opcode at a time.  (The
1872102550Siwasakipredicate can have several nested ASL statements.)  The old
1873102550Siwasakimethod was confusing during single stepping.
1874102550Siwasaki
1875102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1876114237Snjlshown below. These are the code and data sizes for the acpica.lib
1877114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1878114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1879114237Snjlversion of the code includes the debug output trace mechanism and
1880114237Snjlhas a larger code and data size.  Note that these values will
1881114237Snjlvary depending on the efficiency of the compiler and the compiler
1882114237Snjloptions used during generation.
1883102550Siwasaki
1884102550Siwasaki  Previous Release (12_18_01)
1885114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
1886114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
1887102550Siwasaki   Current Release:
1888114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
1889114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
1890102550Siwasaki
1891102550Siwasaki2) Linux
1892102550Siwasaki
1893104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
1894104470Siwasakidriver)
1895102550Siwasaki
1896102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
1897102550Siwasaki
1898102550SiwasakiNew thermal policy (Thermal driver)
1899102550Siwasaki
1900102550SiwasakiMany updates to /proc
1901102550Siwasaki
1902102550SiwasakiBattery "low" event support (Battery driver)
1903102550Siwasaki
1904104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
1905102550Siwasaki
1906104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
1907102550Siwasaki
1908102550SiwasakiMenuconfig options redesigned
1909102550Siwasaki
1910102550Siwasaki3) ASL Compiler, version X2037:
1911102550Siwasaki
1912114237SnjlImplemented several new output features to simplify integration
1913114237Snjlof AML code into  firmware: 1) Output the AML in C source code
1914114237Snjlwith labels for each named ASL object.  The    original ASL
1915114237Snjlsource code is interleaved as C comments. 2) Output the AML in
1916114237SnjlASM source code with labels and interleaved ASL    source. 3)
1917114237SnjlOutput the AML in raw hex table form, in either C or ASM.
1918102550Siwasaki
1919102550SiwasakiImplemented support for optional string parameters to the
1920102550SiwasakiLoadTable operator.
1921102550Siwasaki
1922104470SiwasakiCompleted support for embedded escape sequences within string
1923114237Snjlliterals.  The compiler now supports all single character escapes
1924114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
1925114237Snjlnull byte into a string literal (via the hex/octal escape) causes
1926114237Snjlthe string to be immediately terminated.  A warning is issued.
1927102550Siwasaki
1928104470SiwasakiFixed a problem where incorrect AML was generated for the case
1929104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
1930102550Siwasaki
1931102550Siwasaki) with no trailing name segments.
1932102550Siwasaki
1933102550SiwasakiThe compiler has been successfully generated with a 64-bit C
1934102550Siwasakicompiler.
1935102550Siwasaki
1936102550Siwasaki
1937102550Siwasaki
1938102550Siwasaki
1939102550Siwasaki----------------------------------------
1940102550SiwasakiSummary of changes for this label: 12_18_01
1941102550Siwasaki
1942102550Siwasaki1) Linux
1943102550Siwasaki
1944114237SnjlEnhanced blacklist with reason and severity fields. Any table's
1945114237Snjlsignature may now be used to identify a blacklisted system.
1946102550Siwasaki
1947114237SnjlCall _PIC control method to inform the firmware which interrupt
1948114237Snjlmodel the OS is using. Turn on any disabled link devices.
1949102550Siwasaki
1950102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
1951102550Siwasaki
1952102550Siwasaki 2) ACPI CA Core Subsystem:
1953102550Siwasaki
1954104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
1955104470Siwasakifrom while loop)
1956102550Siwasaki
1957102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
1958102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
1959104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
1960104470Siwasakiboth the ASL compiler and the AML interpreter.  The only
1961104470Siwasakiremaining ACPI 2.0 task is support for the String data type in
1962104470Siwasakithe DerefOf operator.  Fixed a problem with AcquireMutex where
1963114237Snjlthe status code was lost if the caller had to actually wait for
1964114237Snjlthe mutex.
1965102550Siwasaki
1966104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
1967102550Siwasaki
1968114237SnjlCompleted implementation of the external Global Lock interfaces -
1969114237Snjl- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout
1970114237Snjland Handler parameters were added.
1971102550Siwasaki
1972102550SiwasakiCompleted another pass at removing warnings and issues when
1973114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
1974114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
1975114237Snjladd and subtract (diff) macros have changed considerably.
1976102550Siwasaki
1977114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
1978114237Snjl64-bit platforms, 32-bits on all others.  This type is used
1979104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
1980104470Siwasakiused, and affects the OSL memory allocation interfaces
1981104470SiwasakiAcpiOsAllocate and AcpiOsCallocate.
1982102550Siwasaki
1983102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
1984102550Siwasaki
1985102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1986114237Snjlshown below. These are the code and data sizes for the acpica.lib
1987114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1988114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1989114237Snjlversion of the code includes the debug output trace mechanism and
1990114237Snjlhas a larger code and data size. Note that these values will vary
1991114237Snjldepending on the efficiency of the compiler and the compiler
1992114237Snjloptions used during generation.
1993102550Siwasaki
1994102550Siwasaki  Previous Release (12_05_01)
1995114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
1996114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
1997102550Siwasaki   Current Release:
1998114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
1999114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2000102550Siwasaki
2001102550Siwasaki 3) ASL Compiler, version X2034:
2002102550Siwasaki
2003114237SnjlNow checks for (and generates an error if detected) the use of a
2004114237SnjlBreak or Continue statement without an enclosing While statement.
2005102550Siwasaki
2006102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
2007102550Siwasakicompiler.
2008102550Siwasaki
2009102550Siwasaki ----------------------------------------
2010102550SiwasakiSummary of changes for this label: 12_05_01
2011102550Siwasaki
2012102550Siwasaki 1) ACPI CA Core Subsystem:
2013102550Siwasaki
2014102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
2015104470Siwasakioperator creates a new copy of an object (and is also used to
2016104470Siwasakibypass the "implicit conversion" mechanism of the Store
2017102550Siwasakioperator.)
2018102550Siwasaki
2019102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
2020102550Siwasakiimplemented.  The change is that performing a SizeOf on a
2021114237Snjlreference object causes an automatic dereference of the object to
2022114237Snjltha actual value before the size is evaluated. This behavior was
2023114237Snjlundefined in ACPI 1.0.
2024102550Siwasaki
2025114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
2026114237Snjlhave been implemented.  The interrupt polarity and mode are now
2027114237Snjlindependently set.
2028102550Siwasaki
2029114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
2030114237Snjlappearing in Package objects were not properly converted to
2031114237Snjlintegers when the internal Package was converted to an external
2032114237Snjlobject (via the AcpiEvaluateObject interface.)
2033102550Siwasaki
2034114237SnjlFixed a problem with the namespace object deletion mechanism for
2035114237Snjlobjects created by control methods.  There were two parts to this
2036114237Snjlproblem: 1) Objects created during the initialization phase
2037114237Snjlmethod parse were not being deleted, and 2) The object owner ID
2038114237Snjlmechanism to track objects was broken.
2039102550Siwasaki
2040114237SnjlFixed a problem where the use of the ASL Scope operator within a
2041114237Snjlcontrol method would result in an invalid opcode exception.
2042102550Siwasaki
2043114237SnjlFixed a problem introduced in the previous label where the buffer
2044114237Snjllength required for the _PRT structure was not being returned
2045114237Snjlcorrectly.
2046102550Siwasaki
2047102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2048114237Snjlshown below. These are the code and data sizes for the acpica.lib
2049114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2050114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2051114237Snjlversion of the code includes the debug output trace mechanism and
2052114237Snjlhas a larger code and data size.  Note that these values will
2053114237Snjlvary depending on the efficiency of the compiler and the compiler
2054114237Snjloptions used during generation.
2055102550Siwasaki
2056102550Siwasaki  Previous Release (11_20_01)
2057114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2058114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2059102550Siwasaki
2060102550Siwasaki  Current Release:
2061114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2062114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2063102550Siwasaki
2064102550Siwasaki 2) Linux:
2065102550Siwasaki
2066102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
2067102550Siwasaki
2068104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
2069114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
2070114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
2071114237Snjlentries are treated as if they were static (not yet
2072114237Snjlreconfigurable).  Architecture- specific code to use this data is
2073114237Snjlabsent on IA32 but should be available shortly.
2074102550Siwasaki
2075114237SnjlChanged the initialization sequence to start the ACPI interpreter
2076114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
2077114237Snjlin init/main.c.  This ordering is required to support PRT and
2078114237Snjlfacilitate other (future) enhancement.  A side effect is that the
2079114237SnjlACPI bus driver and certain device drivers can no longer be
2080114237Snjlloaded as modules.
2081102550Siwasaki
2082104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
2083104470SiwasakiRouting support to be included without the ACPI Bus and other
2084104470Siwasakidevice drivers.
2085102550Siwasaki
2086102550Siwasaki 3) ASL Compiler, version X2033:
2087102550Siwasaki
2088102550SiwasakiFixed some issues with the use of the new CopyObject and
2089102550SiwasakiDataTableRegion operators.  Both are fully functional.
2090102550Siwasaki
2091102550Siwasaki ----------------------------------------
2092102550SiwasakiSummary of changes for this label: 11_20_01
2093102550Siwasaki
2094102550Siwasaki 20 November 2001.  Summary of changes for this release.
2095102550Siwasaki
2096102550Siwasaki 1) ACPI CA Core Subsystem:
2097102550Siwasaki
2098104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
2099104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
2100104470Siwasakionly the least-significant byte of the source to the Indexed
2101104470Siwasakibuffer byte.  Multiple writes are not performed.
2102102550Siwasaki
2103104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
2104104470Siwasakioperator was not recorded correctly into the field object.
2105102550Siwasaki
2106102550SiwasakiFixed a problem where ASL Event objects were created in a
2107114237Snjlsignalled state. Events are now created in an unsignalled state.
2108102550Siwasaki
2109114237SnjlThe internal object cache is now purged after table loading and
2110114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
2111114237Snjlthe assumption that object use is greatest during the parse phase
2112114237Snjlof the entire table (versus the run-time use of individual
2113114237Snjlcontrol methods.)
2114102550Siwasaki
2115102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
2116102550Siwasaki
2117104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
2118114237Snjlnew feature development with an actual reduction in the library
2119114237Snjlsize.  Current core subsystem library sizes are shown below.
2120114237SnjlThese are the code and data sizes for the acpica.lib produced by
2121114237Snjlthe Microsoft Visual C++ 6.0 compiler, and these values do not
2122114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2123114237Snjlcode includes the debug output trace mechanism and has a larger
2124114237Snjlcode and data size.  Note that these values will vary depending
2125114237Snjlon the efficiency of the compiler and the compiler options used
2126114237Snjlduring generation.
2127102550Siwasaki
2128102550Siwasaki  Previous Release (11_09_01):
2129114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
2130114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
2131102550Siwasaki
2132102550Siwasaki  Current Release:
2133114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2134114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2135102550Siwasaki
2136102550Siwasaki 2) Linux:
2137102550Siwasaki
2138114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
2139114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
2140114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
2141114237Snjlnear future.  This functionality replaces
2142114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
2143114237Snjl2.4.15-preX release.  To enable this feature you must add
2144114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
2145114237Snjlfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
2146114237Snjlin the works...
2147102550Siwasaki
2148114237SnjlRestructured the configuration options to allow boot-time table
2149114237Snjlparsing support without inclusion of the ACPI Interpreter (and
2150114237Snjlother) code.
2151102550Siwasaki
2152102550SiwasakiNOTE: This release does not include fixes for the reported
2153104470Siwasakievents, power-down, and thermal passive cooling issues (coming
2154104470Siwasakisoon).
2155102550Siwasaki
2156102550Siwasaki 3) ASL Compiler:
2157102550Siwasaki
2158114237SnjlAdded additional typechecking for Fields within restricted access
2159114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
2160114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
2161114237Snjldeclared with the BufferAcc access type.
2162102550Siwasaki
2163114237SnjlFixed a problem where the listing file output of control methods
2164114237Snjlno longer interleaved the actual AML code with the ASL source
2165114237Snjlcode.
2166102550Siwasaki
2167102550Siwasaki
2168102550Siwasaki
2169102550Siwasaki----------------------------------------
2170102550SiwasakiSummary of changes for this label: 11_09_01
2171102550Siwasaki
2172102550Siwasaki1) ACPI CA Core Subsystem:
2173102550Siwasaki
2174114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
2175114237SnjlBuffer, String, or Integer source operand that is smaller than
2176114237Snjlthe target field. In these cases, the source operand is zero-
2177114237Snjlextended to fill the target field.
2178102550Siwasaki
2179104470SiwasakiFixed a problem where a Field starting bit offset (within the
2180104470Siwasakiparent operation region) was calculated incorrectly if the
2181104470Siwasakialignment of the field differed from the access width.  This
2182114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
2183114237Snjlpossibly other fields that use the "AccessAny" keyword.
2184102550Siwasaki
2185114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
2186114237Snjlstores through method arguments did not operate correctly.
2187102550Siwasaki
2188102550Siwasaki2) Linux:
2189102550Siwasaki
2190102550SiwasakiImplemented boot-time ACPI table parsing support
2191114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
2192114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
2193114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
2194114237Snjlprocessors, memory, and interrupts during setup_arch().  Note
2195114237Snjlthat this patch does not include the required architecture-
2196114237Snjlspecific changes required to apply this information -- subsequent
2197114237Snjlpatches will be posted for both IA32 and IA64 to achieve this.
2198102550Siwasaki
2199114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
2200114237SnjlMochel. This allows IA32 systems to transition to/from various
2201114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
2202114237Snjldriver model and power-manageable drivers will prevent its
2203114237Snjl(successful) use on most systems.
2204102550Siwasaki
2205114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
2206114237Snjlsubmenu, unified IA32 and IA64 options, added new "Boot using
2207114237SnjlACPI tables" option, etc.
2208102550Siwasaki
2209114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
2210114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
2211114237Snjltransactions.
2212102550Siwasaki
2213102550Siwasaki ----------------------------------------
2214102550SiwasakiSummary of changes for this label: 11_02_01
2215102550Siwasaki
2216102550Siwasaki1) ACPI CA Core Subsystem:
2217102550Siwasaki
2218102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
2219102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
2220102550Siwasakiimplemented.
2221102550Siwasaki
2222114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
2223114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
2224114237SnjlPciConfiguration(), Read/Write Memory(), and Read/Write Port()
2225114237Snjlnow accept an ACPI_INTEGER (64 bits) as the value parameter.
2226114237SnjlAlso, the value parameter for the address space handler interface
2227114237Snjlis now an ACPI_INTEGER.  OSL implementations of these interfaces
2228114237Snjlmust now handle the case where the Width parameter is 64.
2229102550Siwasaki
2230104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
2231104470Siwasakidisassembly for IndexFields was not supported correctly.
2232102550Siwasaki
2233102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
2234104470Siwasakisupported. During field access, a check is performed to ensure
2235114237Snjlthat the value written to an Index or Bank register is not out of
2236114237Snjlthe range of the register.  The Index (or Bank) register is
2237114237Snjlwritten before each access to the field data. Future support will
2238114237Snjlinclude allowing individual IndexFields to be wider than the
2239114237SnjlDataRegister width.
2240102550Siwasaki
2241114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
2242114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
2243114237Snjla boundary case that occurred when a DWORD field was written to a
2244114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
2245114237Snjlinterpreter to write one datum too many.
2246102550Siwasaki
2247102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
2248114237Snjlstarting bit address of a field was incorrectly calculated if the
2249114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
2250114237SnjlQwordAcc).
2251102550Siwasaki
2252104470SiwasakiFields: Fixed a problem where forward references to individual
2253104470SiwasakiFieldUnits (individual Field names within a Field definition)
2254102550Siwasakiwere not resolved during the AML table load.
2255102550Siwasaki
2256104470SiwasakiFields: Fixed a problem where forward references from a Field
2257104470Siwasakidefinition to the parent Operation Region definition were not
2258104470Siwasakiresolved during the AML table load.
2259104470Siwasaki
2260114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
2261114237Snjlduring AML table load.
2262102550Siwasaki
2263102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
2264102550Siwasakiinterface returned an incorrect name for the root node.
2265102550Siwasaki
2266104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
2267114237Snjlnew feature development with an actual reduction in the library
2268114237Snjlsize.  Current core subsystem library sizes are shown below.
2269114237SnjlThese are the code and data sizes for the acpica.lib produced by
2270114237Snjlthe Microsoft Visual C++ 6.0 compiler, and these values do not
2271114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2272114237Snjlcode includes the debug output trace mechanism and has a larger
2273114237Snjlcode and data size.  Note that these values will vary depending
2274114237Snjlon the efficiency of the compiler and the compiler options used
2275114237Snjlduring generation.
2276102550Siwasaki
2277102550Siwasaki  Previous Release (10_18_01):
2278114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
2279114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
2280102550Siwasaki
2281102550Siwasaki  Current Release:
2282114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
2283114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
2284102550Siwasaki
2285102550Siwasaki 2) Linux:
2286102550Siwasaki
2287102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
2288102550SiwasakiMODULE_LICENSE("GPL") to all modules.
2289102550Siwasaki
2290102550Siwasaki 3) ASL Compiler version X2030:
2291102550Siwasaki
2292104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
2293104470Siwasakiflagged as errors.
2294102550Siwasaki
2295102550Siwasaki 4) Documentation:
2296102550Siwasaki
2297104470SiwasakiProgrammer Reference updated to reflect OSL and address space
2298104470Siwasakihandler interface changes described above.
2299102550Siwasaki
2300102550Siwasaki----------------------------------------
2301102550SiwasakiSummary of changes for this label: 10_18_01
2302102550Siwasaki
2303102550SiwasakiACPI CA Core Subsystem:
2304102550Siwasaki
2305102550SiwasakiFixed a problem with the internal object reference count
2306104470Siwasakimechanism that occasionally caused premature object deletion.
2307104470SiwasakiThis resolves all of the outstanding problem reports where an
2308104470Siwasakiobject is deleted in the middle of an interpreter evaluation.
2309114237SnjlAlthough this problem only showed up in rather obscure cases, the
2310114237Snjlsolution to the problem involved an adjustment of all reference
2311114237Snjlcounts involving objects attached to namespace nodes.
2312102550Siwasaki
2313102550SiwasakiFixed a problem with Field support in the interpreter where
2314114237Snjlwriting to an aligned field whose length is an exact multiple (2
2315114237Snjlor greater) of the field access granularity would cause an
2316104470Siwasakiattempt to write beyond the end of the field.
2317102550Siwasaki
2318102550SiwasakiThe top level AML opcode execution functions within the
2319102550Siwasakiinterpreter have been renamed with a more meaningful and
2320102550Siwasakiconsistent naming convention.  The modules exmonad.c and
2321102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
2322102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
2323102550Siwasaki
2324114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
2325102550Siwasaki
2326114237SnjlFixed a problem where the AML debugger was causing some internal
2327114237Snjlobjects to not be deleted during subsystem termination.
2328102550Siwasaki
2329104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
2330104470Siwasakiwhere the subsystem would fault if the named object to be
2331104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
2332102550Siwasaki
2333102550SiwasakiFixed a problem with IndexFields and BankFields where the
2334114237Snjlsubsystem would fault if the index, data, or bank registers were
2335114237Snjlnot defined in the same scope as the field itself.
2336102550Siwasaki
2337104470SiwasakiAdded printf format string checking for compilers that support
2338104470Siwasakithis feature.  Corrected more than 50 instances of issues with
2339104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
2340104470Siwasakithroughout the core subsystem code.
2341102550Siwasaki
2342104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
2343104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
2344104470Siwasakisupport is more than 50% implemented.
2345102550Siwasaki
2346114237SnjlEnhanced the output of the AML debugger "dump namespace" command
2347114237Snjlto output in a more human-readable form.
2348102550Siwasaki
2349114237SnjlCurrent core subsystem library code sizes are shown below.  These
2350114237Snjlare the code and data sizes for the acpica.lib produced by the
2351114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2352114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2353114237Snjlcode includes the full debug trace mechanism -- leading to a much
2354114237Snjllarger code and data size.  Note that these values will vary
2355114237Snjldepending on the efficiency of the compiler and the compiler
2356114237Snjloptions used during generation.
2357102550Siwasaki
2358102550Siwasaki     Previous Label (09_20_01):
2359114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
2360114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
2361102550Siwasaki
2362102550Siwasaki     This Label:
2363102550Siwasaki
2364114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
2365114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
2366114237Snjl
2367102550SiwasakiLinux:
2368102550Siwasaki
2369104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
2370104470Siwasakiknown ASL/AML problems.
2371102550Siwasaki
2372102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
2373104470Siwasakiadded support for _HOT (the critical suspend trip point).  The
2374114237Snjl'info' file now includes threshold/policy information, and allows
2375114237Snjlsetting of _SCP (cooling preference) and _TZP (polling frequency)
2376114237Snjlvalues to the 'info' file. Examples: "echo tzp=5 > info" sets the
2377114237Snjlpolling frequency to 5 seconds, and "echo scp=1 > info" sets the
2378114237Snjlcooling preference to the passive/quiet mode (if supported by the
2379114237SnjlASL).
2380102550Siwasaki
2381104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
2382104470Siwasakiwhen loading the control method battery driver.
2383102550Siwasaki
2384102550Siwasaki ----------------------------------------
2385102550SiwasakiSummary of changes for this label: 09_20_01
2386102550Siwasaki
2387102550Siwasaki ACPI CA Core Subsystem:
2388102550Siwasaki
2389104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
2390104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
2391114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
2392114237Snjlsleeps.)
2393102550Siwasaki
2394104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
2395104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
2396104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
2397104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
2398102550Siwasaki
2399114237SnjlA local double-precision divide/modulo module has been added to
2400114237Snjlenhance portability to OS kernels where a 64-bit math library is
2401114237Snjlnot available.  The new module is "utmath.c".
2402102550Siwasaki
2403104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
2404114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
2405114237Snjl2K at 1860  bytes (1.82k)
2406102550Siwasaki
2407114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
2408114237Snjlroot table pointer was not mapped into a logical address
2409104470Siwasakiproperly.
2410102550Siwasaki
2411104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
2412104470Siwasakithe interpreter code for the ASL Notify operator.
2413102550Siwasaki
2414102550SiwasakiFixed a problem where the use of the ASL Revision operator
2415114237Snjlreturned an error. This operator now returns the current version
2416114237Snjlof the ACPI CA core subsystem.
2417102550Siwasaki
2418114237SnjlFixed a problem where objects passed as control method parameters
2419114237Snjlto AcpiEvaluateObject were always deleted at method termination.
2420114237SnjlHowever, these objects may end up being stored into the namespace
2421114237Snjlby the called method.  The object reference count mechanism was
2422114237Snjlapplied to these objects instead of a force delete.
2423102550Siwasaki
2424114237SnjlFixed a problem where static strings or buffers (contained in the
2425114237SnjlAML code) that are declared as package elements within the ASL
2426114237Snjlcode could cause a fault because the interpreter would attempt to
2427114237Snjldelete them.  These objects are now marked with the "static
2428114237Snjlobject" flag to prevent any attempt to delete them.
2429102550Siwasaki
2430114237SnjlImplemented an interpreter optimization to use operands directly
2431114237Snjlfrom the state object instead of extracting the operands to local
2432114237Snjlvariables.  This reduces stack use and code size, and improves
2433114237Snjlperformance.
2434102550Siwasaki
2435102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
2436102550Siwasakiextra layer of code.
2437102550Siwasaki
2438114237SnjlCurrent core subsystem library code sizes are shown below.  These
2439114237Snjlare the code and data sizes for the acpica.lib produced by the
2440114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2441114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2442114237Snjlcode includes the full debug trace mechanism -- leading to a much
2443114237Snjllarger code and data size.  Note that these values will vary
2444114237Snjldepending on the efficiency of the compiler and the compiler
2445114237Snjloptions used during generation.
2446102550Siwasaki
2447102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
2448114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
2449114237SnjlTotal  (Previously 195K)
2450102550Siwasaki
2451102550SiwasakiLinux:
2452102550Siwasaki
2453114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
2454114237SnjlInteger objects are now 64 bits wide
2455102550Siwasaki
2456114237SnjlAll Acpi data types and structures are now in lower case.  Only
2457114237SnjlAcpi macros are upper case for differentiation.
2458102550Siwasaki
2459102550Siwasaki Documentation:
2460102550Siwasaki
2461102550SiwasakiChanges to the external interfaces as described above.
2462102550Siwasaki
2463102550Siwasaki ----------------------------------------
2464102550SiwasakiSummary of changes for this label: 08_31_01
2465102550Siwasaki
2466102550Siwasaki ACPI CA Core Subsystem:
2467102550Siwasaki
2468114237SnjlA bug with interpreter implementation of the ASL Divide operator
2469114237Snjlwas found and fixed.  The implicit function return value (not the
2470114237Snjlexplicit store operands) was returning the remainder instead of
2471114237Snjlthe quotient.  This was a longstanding bug and it fixes several
2472114237Snjlknown outstanding issues on various platforms.
2473102550Siwasaki
2474104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
2475104470Siwasakibeen further optimized for size.  There are 700 invocations of
2476104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the
2477104470Siwasakisize of the debug version of the subsystem significantly.
2478102550Siwasaki
2479114237SnjlA stack trace mechanism has been implemented.  The maximum stack
2480114237Snjlusage is about 2K on 32-bit platforms.  The debugger command
2481114237Snjl"stat stack" will display the current maximum stack usage.
2482102550Siwasaki
2483114237SnjlAll public symbols and global variables within the subsystem are
2484114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
2485114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
2486114237Snjlwith other kernel subsystems.
2487102550Siwasaki
2488114237SnjlMost of the internal fixed lookup tables have been moved into the
2489114237Snjlcode segment via the const operator.
2490102550Siwasaki
2491104470SiwasakiSeveral enhancements have been made to the interpreter to both
2492104470Siwasakireduce the code size and improve performance.
2493102550Siwasaki
2494114237SnjlCurrent core subsystem library code sizes are shown below.  These
2495114237Snjlare the code and data sizes for the acpica.lib produced by the
2496114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2497114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2498114237Snjlcode includes the full debug trace mechanism which contains over
2499114237Snjl700 invocations of the DEBUG_PRINT macro, 500 function entry
2500114237Snjlmacro invocations, and over 900 function exit macro invocations -
2501114237Snjl- leading to a much larger code and data size.  Note that these
2502114237Snjlvalues will vary depending on the efficiency of the compiler and
2503114237Snjlthe compiler options used during generation.
2504102550Siwasaki
2505102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
2506102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
2507102550Siwasaki
2508102550Siwasaki Linux:
2509102550Siwasaki
2510104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
2511102550Siwasaki
2512102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
2513102550Siwasaki
2514102550Siwasaki ASL Compiler, version X2026:
2515102550Siwasaki
2516104470SiwasakiFixed a problem introduced in the previous label where the AML
2517104470Siwasakicode emitted for package objects produced packages with zero
2518104470Siwasakilength.
2519102550Siwasaki
2520102550Siwasaki ----------------------------------------
2521102550SiwasakiSummary of changes for this label: 08_16_01
2522102550Siwasaki
2523102550SiwasakiACPI CA Core Subsystem:
2524102550Siwasaki
2525114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
2526114237SnjlAML interpreter (These are already supported by the Intel ASL
2527114237Snjlcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
2528114237Snjland ToBuffer.  Support for 64-bit AML constants is implemented in
2529114237Snjlthe AML parser, debugger, and disassembler.
2530102550Siwasaki
2531114237SnjlThe internal memory tracking mechanism (leak detection code) has
2532114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
2533114237Snjlblock is no longer allocated for each memory allocation), and now
2534114237Snjlsupports all of the internal object caches.
2535102550Siwasaki
2536114237SnjlThe data structures and code for the internal object caches have
2537114237Snjlbeen coelesced and optimized so that there is a single cache and
2538114237Snjlmemory list data structure and a single group of functions that
2539114237Snjlimplement generic cache management.  This has reduced the code
2540114237Snjlsize in both the debug and release versions of the subsystem.
2541102550Siwasaki
2542102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
2543102550Siwasakireplaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
2544102550Siwasakislightly different, because it generates a single call to an
2545114237Snjlinternal function.  This results in a savings of about 90 bytes
2546114237Snjlper invocation, resulting in an overall code and data savings of
2547114237Snjlabout 16% in the debug version of the subsystem.
2548102550Siwasaki
2549102550Siwasaki Linux:
2550102550Siwasaki
2551114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
2552114237Snjlmachines.
2553102550Siwasaki
2554102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
2555102550Siwasaki
2556102550SiwasakiFurther tweaked source code Linuxization.
2557102550Siwasaki
2558102550SiwasakiOther minor fixes.
2559102550Siwasaki
2560102550Siwasaki ASL Compiler:
2561102550Siwasaki
2562114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
2563102550Siwasaki
2564114237SnjlFixed a problem where the optional length parameter for the ACPI
2565114237Snjl2.0 ToString operator.
2566102550Siwasaki
2567114237SnjlFixed multiple extraneous error messages when a syntax error is
2568114237Snjldetected within the declaration line of a control method.
2569102550Siwasaki
2570102550Siwasaki ----------------------------------------
2571102550SiwasakiSummary of changes for this label: 07_17_01
2572102550Siwasaki
2573102550SiwasakiACPI CA Core Subsystem:
2574102550Siwasaki
2575104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
2576114237SnjlACPI table via the ACPI signature.  The interface can be called
2577114237Snjlat any time during kernel initialization, even before the kernel
2578114237Snjlvirtual memory manager is initialized and paging is enabled.
2579114237SnjlThis allows kernel subsystems to obtain ACPI tables very early,
2580114237Snjleven before the ACPI CA subsystem is initialized.
2581102550Siwasaki
2582104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
2583104470Siwasakicould be resolved to the incorrect address under the following
2584114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
2585114237Snjlparent operation region is not defined on a DWORD boundary.
2586102550Siwasaki
2587114237SnjlFixed a problem where the interpreter is not being locked during
2588114237Snjlnamespace initialization (during execution of the _INI control
2589114237Snjlmethods), causing an error when an attempt is made to release it
2590114237Snjllater.
2591102550Siwasaki
2592104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
2593114237Snjlongoing throughout the rest of this year.  In this label, The Mod
2594114237Snjloperator is implemented.
2595102550Siwasaki
2596102550SiwasakiAdded a new data type to contain full PCI addresses named
2597102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
2598102550SiwasakiDevice, and Function values.
2599102550Siwasaki
2600102550Siwasaki Linux:
2601102550Siwasaki
2602102550SiwasakiEnhanced the Linux version of the source code to change most
2603102550Siwasakicapitalized ACPI type names to lowercase. For example, all
2604114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
2605114237Snjlresult in a large diff, but the change is strictly cosmetic and
2606114237Snjlaligns the CA code closer to the Linux coding standard.
2607102550Siwasaki
2608102550SiwasakiOSL Interfaces:
2609102550Siwasaki
2610114237SnjlThe interfaces to the PCI configuration space have been changed
2611114237Snjlto add the PCI Segment number and to split the single 32-bit
2612114237Snjlcombined DeviceFunction field into two 16-bit fields.  This was
2613114237Snjlaccomplished by moving the four values that define an address in
2614114237SnjlPCI configuration space (segment, bus, device, and function) to
2615114237Snjlthe new ACPI_PCI_ID structure.
2616102550Siwasaki
2617104470SiwasakiThe changes to the PCI configuration space interfaces led to a
2618104470Siwasakireexamination of the complete set of address space access
2619114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
2620114237Snjlinterfaces have proven difficult to maintain (any small change
2621114237Snjlmust be propagated across at least 6 interfaces) and do not
2622114237Snjleasily allow for future expansion to 64 bits if necessary.  Also,
2623114237Snjlon some systems, it would not be appropriate to demultiplex the
2624114237Snjlaccess width (8, 16, 32,or 64) before calling the OSL if the
2625114237Snjlcorresponding native OS interfaces contain a similar access width
2626114237Snjlparameter.  For these reasons, the 18 address space interfaces
2627114237Snjlhave been replaced by these 6 new ones:
2628102550Siwasaki
2629102550SiwasakiAcpiOsReadPciConfiguration
2630102550SiwasakiAcpiOsWritePciConfiguration
2631102550SiwasakiAcpiOsReadMemory
2632102550SiwasakiAcpiOsWriteMemory
2633102550SiwasakiAcpiOsReadPort
2634102550SiwasakiAcpiOsWritePort
2635102550Siwasaki
2636114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
2637114237Snjlto perform the platform and/or OS-specific actions necessary to
2638114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
2639114237Snjlinterface will simply call down to the CA core to perform the low-
2640114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
2641114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
2642114237Snjlremain OS and platform independent.
2643102550Siwasaki
2644104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
2645114237Snjl"function code and pointer" interface for various miscellaneous
2646114237Snjlsignals and notifications that must be made to the host OS.   The
2647114237Snjlfirst such signals are intended to support the ASL Fatal and
2648114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
2649114237Snjlinterface has been obsoleted.
2650102550Siwasaki
2651102550SiwasakiThe definition of the AcpiFormatException interface has been
2652114237Snjlchanged to simplify its use.  The caller no longer must supply a
2653114237Snjlbuffer to the call; A pointer to a const string is now returned
2654114237Snjldirectly.  This allows the call to be easily used in printf
2655114237Snjlstatements, etc. since the caller does not have to manage a local
2656114237Snjlbuffer.
2657102550Siwasaki
2658114237Snjl
2659102550Siwasaki ASL Compiler, Version X2025:
2660102550Siwasaki
2661114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
2662114237Snjland are fully functional.  They will work with all ACPI 1.0
2663114237Snjlinterpreters, since the operators are simply translated to
2664114237SnjlIf/Else pairs.
2665102550Siwasaki
2666104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
2667104470Siwasakiwith 1.0 interpreters, for the same reason.
2668102550Siwasaki
2669114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
2670114237Snjlpackages have a separate opcode, and their size is determined by
2671114237Snjlthe interpreter at run-time.
2672102550Siwasaki
2673114237SnjlDocumentation The ACPI CA Programmer Reference has been updated
2674114237Snjlto reflect the new interfaces and changes to existing interfaces.
2675102550Siwasaki
2676102550Siwasaki ------------------------------------------
2677102550SiwasakiSummary of changes for this label: 06_15_01
2678102550Siwasaki
2679102550Siwasaki ACPI CA Core Subsystem:
2680102550Siwasaki
2681102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
2682114237Snjlobject would get its byte address inadvertently rounded down to
2683114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
2684102550Siwasaki
2685102550Siwasaki ASL Compiler, version X2024:
2686102550Siwasaki
2687114237SnjlFixed a problem where the Switch() operator would either fault or
2688114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
2689114237Snjl2.0 operator is not yet implemented.
2690102550Siwasaki
2691114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
2692114237Snjltimings.
2693102550Siwasaki
2694114237SnjlImplementation of the CreateField operator automatically converts
2695114237Snjla reference to a named field within a resource descriptor from a
2696114237Snjlbyte offset to a bit offset if required.
2697102550Siwasaki
2698102550SiwasakiAdded some missing named fields from the resource descriptor
2699104470Siwasakisupport. These are the names that are automatically created by
2700114237Snjlthe compiler to reference fields within a descriptor.  They are
2701114237Snjlonly valid at compile time and are not passed through to the AML
2702114237Snjlinterpreter.
2703102550Siwasaki
2704104470SiwasakiResource descriptor named fields are now typed as Integers and
2705104470Siwasakisubject to compile-time typechecking when used in expressions.
2706102550Siwasaki
2707102550Siwasaki ------------------------------------------
2708102550SiwasakiSummary of changes for this label: 05_18_01
2709102550Siwasaki
2710102550Siwasaki ACPI CA Core Subsystem:
2711102550Siwasaki
2712114237SnjlFixed a couple of problems in the Field support code where bits
2713114237Snjlfrom adjacent fields could be returned along with the proper
2714114237Snjlfield bits. Restructured the field support code to improve
2715114237Snjlperformance, readability and maintainability.
2716102550Siwasaki
2717114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
2718114237Snjlinto the output, saving hundreds of copies of procedure name
2719114237Snjlstrings within the source, shrinking the memory footprint of the
2720114237Snjldebug version of the core subsystem.
2721102550Siwasaki
2722102550Siwasaki Source Code Structure:
2723102550Siwasaki
2724104470SiwasakiThe source code directory tree was restructured to reflect the
2725114237Snjlcurrent organization of the component architecture.  Some files
2726114237Snjland directories have been moved and/or renamed.
2727102550Siwasaki
2728102550Siwasaki Linux:
2729102550Siwasaki
2730102550SiwasakiFixed leaking kacpidpc processes.
2731102550Siwasaki
2732102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
2733102550Siwasakiopened.
2734102550Siwasaki
2735102550Siwasaki ASL Compiler, version X2020:
2736102550Siwasaki
2737114237SnjlMemory allocation performance enhancement - over 24X compile time
2738114237Snjlimprovement on large ASL files.  Parse nodes and namestring
2739114237Snjlbuffers are now allocated from a large internal compiler buffer.
2740102550Siwasaki
2741102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
2742102550Siwasakispecified
2743102550Siwasaki
2744104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
2745104470Siwasakifile instead of the console.
2746102550Siwasaki
2747102550Siwasaki"External" second parameter is now optional
2748102550Siwasaki
2749102550Siwasaki"ElseIf" syntax now properly allows the predicate
2750102550Siwasaki
2751102550SiwasakiLast operand to "Load" now recognized as a Target operand
2752102550Siwasaki
2753102550SiwasakiDebug object can now be used anywhere as a normal object.
2754102550Siwasaki
2755102550SiwasakiResourceTemplate now returns an object of type BUFFER
2756102550Siwasaki
2757102550SiwasakiEISAID now returns an object of type INTEGER
2758102550Siwasaki
2759102550Siwasaki"Index" now works with a STRING operand
2760102550Siwasaki
2761102550Siwasaki"LoadTable" now accepts optional parameters
2762102550Siwasaki
2763102550Siwasaki"ToString" length parameter is now optional
2764102550Siwasaki
2765102550Siwasaki"Interrupt (ResourceType," parse error fixed.
2766102550Siwasaki
2767104470Siwasaki"Register" with a user-defined region space parse error fixed
2768102550Siwasaki
2769114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
2770114237Snjlfixed
2771102550Siwasaki
2772102550Siwasaki"Revision" is now an object of type INTEGER.
2773102550Siwasaki
2774102550Siwasaki
2775102550Siwasaki
2776102550Siwasaki------------------------------------------
2777102550SiwasakiSummary of changes for this label: 05_02_01
2778102550Siwasaki
2779102550SiwasakiLinux:
2780102550Siwasaki
2781102550Siwasaki/proc/acpi/event now blocks properly.
2782102550Siwasaki
2783102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
2784102550Siwasaki/proc/acpi/dsdt.
2785102550Siwasaki
2786102550Siwasaki ACPI CA Core Subsystem:
2787102550Siwasaki
2788104470SiwasakiFixed a problem introduced in the previous label where some of
2789104470Siwasakithe "small" resource descriptor types were not recognized.
2790102550Siwasaki
2791102550SiwasakiImproved error messages for the case where an ASL Field is
2792102550Siwasakioutside the range of the parent operation region.
2793102550Siwasaki
2794102550Siwasaki ASL Compiler, version X2018:
2795102550Siwasaki
2796102550SiwasakiAdded error detection for ASL Fields that extend beyond the
2797114237Snjllength of the parent operation region (only if the length of the
2798114237Snjlregion is known at compile time.)  This includes fields that have
2799114237Snjla minimum access width that is smaller than the parent region,
2800114237Snjland individual field units that are partially or entirely beyond
2801114237Snjlthe extent of the parent.
2802102550Siwasaki
2803102550Siwasaki
2804102550Siwasaki
2805102550Siwasaki------------------------------------------
2806102550SiwasakiSummary of changes for this label: 04_27_01
2807102550Siwasaki
2808102550Siwasaki ACPI CA Core Subsystem:
2809102550Siwasaki
2810104470SiwasakiFixed a problem where the namespace mutex could be released at
2811114237Snjlthe wrong time during execution of AcpiRemoveAddressSpaceHandler.
2812102550Siwasaki
2813104470SiwasakiAdded optional thread ID output for debug traces, to simplify
2814114237Snjldebugging of multiple threads.  Added context switch notification
2815114237Snjlwhen the debug code realizes that a different thread is now
2816114237Snjlexecuting ACPI code.
2817102550Siwasaki
2818114237SnjlSome additional external data types have been prefixed with the
2819114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
2820114237SnjlThe data types affected are the external callback typedefs -
2821114237Snjle.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
2822102550Siwasaki
2823102550Siwasaki Linux:
2824102550Siwasaki
2825102550SiwasakiFixed an issue with the OSL semaphore implementation where a
2826102550Siwasakithread was waking up with an error from receiving a SIGCHLD
2827102550Siwasakisignal.
2828102550Siwasaki
2829114237SnjlLinux version of ACPI CA now uses the system C library for string
2830114237Snjlmanipulation routines instead of a local implementation.
2831102550Siwasaki
2832102550SiwasakiCleaned up comments and removed TBDs.
2833102550Siwasaki
2834102550Siwasaki ASL Compiler, version X2017:
2835102550Siwasaki
2836102550SiwasakiEnhanced error detection and reporting for all file I/O
2837102550Siwasakioperations.
2838102550Siwasaki
2839102550Siwasaki Documentation:
2840102550Siwasaki
2841102550SiwasakiProgrammer Reference updated to version 1.06.
2842102550Siwasaki
2843102550Siwasaki
2844102550Siwasaki
2845102550Siwasaki------------------------------------------
2846102550SiwasakiSummary of changes for this label: 04_13_01
2847102550Siwasaki
2848102550Siwasaki ACPI CA Core Subsystem:
2849102550Siwasaki
2850102550SiwasakiRestructured support for BufferFields and RegionFields.
2851104470SiwasakiBankFields support is now fully operational.  All known 32-bit
2852114237Snjllimitations on field sizes have been removed.  Both BufferFields
2853114237Snjland (Operation) RegionFields are now supported by the same field
2854114237Snjlmanagement code.
2855102550Siwasaki
2856114237SnjlResource support now supports QWORD address and IO resources. The
2857114237Snjl16/32/64 bit address structures and the Extended IRQ structure
2858114237Snjlhave been changed to properly handle Source Resource strings.
2859102550Siwasaki
2860114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
2861114237Snjlcondition internally and must never be returned by
2862114237SnjlAcpiOsThreadId. This reserved value was changed from 0 since Unix
2863114237Snjlsystems allow a thread ID of 0.
2864102550Siwasaki
2865102550SiwasakiLinux:
2866102550Siwasaki
2867102550SiwasakiDriver code reorganized to enhance portability
2868102550Siwasaki
2869102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
2870102550Siwasaki
2871102550SiwasakiFixed the EC driver to honor _GLK.
2872102550Siwasaki
2873102550SiwasakiASL Compiler, version X2016:
2874102550Siwasaki
2875114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
2876114237Snjladdress space was set to 0, not 0x7f as it should be.
2877102550Siwasaki
2878102550Siwasaki ------------------------------------------
2879102550SiwasakiSummary of changes for this label: 03_13_01
2880102550Siwasaki
2881102550Siwasaki ACPI CA Core Subsystem:
2882102550Siwasaki
2883104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
2884104470Siwasakipresent.
2885102550Siwasaki
2886102550SiwasakiNotify handler fix - notifies are deferred until the parent
2887102550Siwasakimethod completes execution.  This fixes the "mutex already
2888102550Siwasakiacquired" issue seen occasionally.
2889102550Siwasaki
2890104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
2891114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
2892114237Snjlconvert "result-to-target-type" implementation has been removed
2893114237Snjlfor stores to method Args and Locals.  Source operand conversion
2894114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
2895114237Snjlspecification pending.
2896102550Siwasaki
2897104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
2898104470Siwasakilength.
2899102550Siwasaki
2900102550SiwasakiFix for compiler warnings for 64-bit compiles.
2901102550Siwasaki
2902102550Siwasaki Linux:
2903102550Siwasaki
2904102550Siwasaki/proc output aligned for easier parsing.
2905102550Siwasaki
2906102550SiwasakiRelease-version compile problem fixed.
2907102550Siwasaki
2908104470SiwasakiNew kernel configuration options documented in Configure.help.
2909102550Siwasaki
2910102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
2911102550Siwasakicontext" message.
2912102550Siwasaki
2913102550Siwasaki OSPM:
2914102550Siwasaki
2915102550SiwasakiPower resource driver integrated with bus manager.
2916102550Siwasaki
2917102550SiwasakiFixed kernel fault during active cooling for thermal zones.
2918102550Siwasaki
2919102550SiwasakiSource Code:
2920102550Siwasaki
2921102550SiwasakiThe source code tree has been restructured.
2922102550Siwasaki
2923102550Siwasaki
2924102550Siwasaki
2925102550Siwasaki------------------------------------------
2926102550SiwasakiSummary of changes for this label: 03_02_01
2927102550Siwasaki
2928102550Siwasaki Linux OS Services Layer (OSL):
2929102550Siwasaki
2930102550SiwasakiMajor revision of all Linux-specific code.
2931102550Siwasaki
2932102550SiwasakiModularized all ACPI-specific drivers.
2933102550Siwasaki
2934102550SiwasakiAdded new thermal zone and power resource drivers.
2935102550Siwasaki
2936114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
2937102550Siwasaki
2938102550SiwasakiNew kernel configuration options.
2939102550Siwasaki
2940102550Siwasaki Linux known issues:
2941102550Siwasaki
2942114237SnjlNew kernel configuration options not documented in Configure.help
2943114237Snjlyet.
2944102550Siwasaki
2945114237Snjl
2946102550SiwasakiModule dependencies not currently implemented. If used, they
2947102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
2948102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
2949102550Siwasaki
2950102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
2951102550Siwasaki
2952102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
2953102550Siwasaki
2954104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
2955104470Siwasakimessage.
2956102550Siwasaki
2957104470SiwasakiSome systems may fail with "execution mutex already acquired"
2958104470Siwasakimessage.
2959102550Siwasaki
2960102550Siwasaki ACPI CA Core Subsystem:
2961102550Siwasaki
2962114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
2963114237Snjlfor the  deadlock detection code. Defined to return a non-zero,
2964114237Snjl32-bit thread ID for the currently executing thread.  May be a
2965114237Snjlnon-zero constant integer on single-thread systems.
2966102550Siwasaki
2967104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
2968104470SiwasakiWe may add conditional compilation for this code (debug only)
2969104470Siwasakilater.
2970102550Siwasaki
2971104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
2972114237Snjlincludes multiple acquires/releases by owner and support for the
2973114237SnjlMutex SyncLevel parameter.
2974102550Siwasaki
2975102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
2976104470SiwasakiMutexes that have been acquired but not released when a thread
2977114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
2978114237Snjl("All mutexes must be released when an invocation exits") and
2979114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
2980114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
2981114237Snjlcontinues to misbehave (which it will).
2982102550Siwasaki
2983104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
2984104470Siwasakisupport.
2985102550Siwasaki
2986104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
2987114237Snjlspec does in fact allow recursive method calls.)  The number of
2988114237Snjlrecursive calls is subject to the restrictions imposed by the
2989114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
2990104470Siwasakiparameter.
2991102550Siwasaki
2992102550SiwasakiImplemented support for the SyncLevel parameter for control
2993102550Siwasakimethods (ACPI 2.0 feature)
2994102550Siwasaki
2995114237SnjlFixed a deadlock problem when multiple threads attempted to use
2996114237Snjlthe interpreter.
2997102550Siwasaki
2998102550SiwasakiFixed a problem where the string length of a String package
2999102550Siwasakielement was not always set in a package returned from
3000102550SiwasakiAcpiEvaluateObject.
3001102550Siwasaki
3002114237SnjlFixed a problem where the length of a String package element was
3003114237Snjlnot always included in the length of the overall package returned
3004114237Snjlfrom AcpiEvaluateObject.
3005102550Siwasaki
3006102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
3007102550Siwasakimanager.  This manager keeps a list of all outstanding
3008114237Snjlallocations, and can therefore detect memory leaks and attempts
3009114237Snjlto free memory blocks more than once. Useful for code such as the
3010114237Snjlpower manager, etc.  May not be appropriate for device drivers.
3011114237SnjlPerformance with the debug code enabled is slow.
3012102550Siwasaki
3013102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
3014102550Siwasaki
3015102550Siwasaki ASL Compiler Version X2015:
3016102550Siwasaki
3017102550SiwasakiIntegrated changes to allow the compiler to be generated on
3018102550Siwasakimultiple platforms.
3019102550Siwasaki
3020102550SiwasakiLinux makefile added to generate the compiler on Linux
3021102550Siwasaki
3022102550Siwasaki Source Code:
3023102550Siwasaki
3024102550SiwasakiAll platform-specific headers have been moved to their own
3025102550Siwasakisubdirectory, Include/Platform.
3026102550Siwasaki
3027102550SiwasakiNew source file added, Interpreter/ammutex.c
3028102550Siwasaki
3029102550SiwasakiNew header file, Include/acstruct.h
3030102550Siwasaki
3031102550Siwasaki Documentation:
3032102550Siwasaki
3033114237SnjlThe programmer reference has been updated for the following new
3034114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
3035102550Siwasaki
3036102550Siwasaki ------------------------------------------
3037102550SiwasakiSummary of changes for this label: 02_08_01
3038102550Siwasaki
3039102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
3040104470Siwasakiincorrectly returned if the return resource buffer was larger
3041104470Siwasakithan the actual data (in the resource interfaces).
3042102550Siwasaki
3043114237SnjlReferences to named objects within packages are resolved to the
3044114237Snjlfull pathname string before packages are returned directly (via
3045114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
3046114237Snjlinterfaces.
3047102550Siwasaki
3048102550SiwasakiLinux OS Services Layer (OSL):
3049102550Siwasaki
3050102550SiwasakiImproved /proc battery interface.
3051102550Siwasaki
3052102550Siwasaki
3053104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
3054102550Siwasaki
3055102550SiwasakiASL Compiler Version X2014:
3056102550Siwasaki
3057114237SnjlAll defined method arguments can now be used as local variables,
3058114237Snjlincluding the ones that are not actually passed in as parameters.
3059114237SnjlThe compiler tracks initialization of the arguments and issues an
3060114237Snjlexception if they are used without prior assignment (just like
3061114237Snjllocals).
3062102550Siwasaki
3063104470SiwasakiThe -o option now specifies a filename prefix that is used for
3064114237Snjlall output files, including the AML output file.  Otherwise, the
3065114237Snjldefault behavior is as follows:  1) the AML goes to the file
3066114237Snjlspecified in the DSDT.  2) all other output files use the input
3067114237Snjlsource filename as the base.
3068102550Siwasaki
3069102550Siwasaki ------------------------------------------
3070102550SiwasakiSummary of changes for this label: 01_25_01
3071102550Siwasaki
3072114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
3073114237Snjlstore support within the  interpreter.  This includes support for
3074114237Snjlthe Store operator as well  as any ASL operators that include a
3075114237Snjltarget operand.
3076102550Siwasaki
3077102550SiwasakiPartially implemented support for Implicit Result-to-Target
3078114237Snjlconversion. This is when a result object is converted on the fly
3079114237Snjlto the type of  an existing target object.  Completion of this
3080114237Snjlsupport is pending  further analysis of the ACPI specification
3081114237Snjlconcerning this matter.
3082102550Siwasaki
3083114237SnjlCPU-specific code has been removed from the subsystem (hardware
3084114237Snjldirectory).
3085102550Siwasaki
3086102550SiwasakiNew Power Management Timer functions added
3087102550Siwasaki
3088114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
3089114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
3090102550Siwasaki
3091102550SiwasakiFixed C2 and C3 latency calculations.
3092102550Siwasaki
3093102550Siwasaki
3094114237SnjlWe no longer use the compilation date for the version message on
3095114237Snjlinitialization, but retrieve the version from
3096102550SiwasakiAcpiGetSystemInfo().
3097102550Siwasaki
3098102550SiwasakiIncorporated for fix Sony VAIO machines.
3099102550Siwasaki
3100104470SiwasakiDocumentation:  The Programmer Reference has been updated and
3101104470Siwasakireformatted.
3102102550Siwasaki
3103102550Siwasaki
3104102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
3105102550Siwasakinumbering and error reporting could get out  of sync in the
3106102550Siwasakipresence of multiple include files.
3107102550Siwasaki
3108102550Siwasaki ------------------------------------------
3109102550SiwasakiSummary of changes for this label: 01_15_01
3110102550Siwasaki
3111102550SiwasakiCore ACPI CA Subsystem:
3112102550Siwasaki
3113114237SnjlImplemented support for type conversions in the execution of the
3114114237SnjlASL  Concatenate operator (The second operand is converted to
3115114237Snjlmatch the type  of the first operand before concatenation.)
3116102550Siwasaki
3117102550SiwasakiSupport for implicit source operand conversion is partially
3118114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
3119114237SnjlString are freely  interchangeable for most ASL operators and are
3120114237Snjlconverted by the interpreter  on the fly as required.  Implicit
3121114237SnjlTarget operand conversion (where the  result is converted to the
3122114237Snjltarget type before storing) is not yet implemented.
3123102550Siwasaki
3124102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
3125102550Siwasaki
3126114237SnjlProblem fixed where a field read on an aligned field could cause
3127114237Snjla read  past the end of the field.
3128102550Siwasaki
3129114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
3130114237Snjldoes not return a value, but the caller expects one.  (The ASL
3131114237Snjlcompiler flags this as a warning.)
3132102550Siwasaki
3133102550SiwasakiASL Compiler:
3134102550Siwasaki
3135102550SiwasakiVersion X2011:
3136102550Siwasaki1. Static typechecking of all operands is implemented. This
3137102550Siwasakiprevents the use of invalid objects (such as using a Package
3138102550Siwasakiwhere an Integer is required) at compile time instead of at
3139102550Siwasakiinterpreter run-time.
3140114237Snjl2. The ASL source line is printed with ALL errors and warnings.
3141102550Siwasaki3. Bug fix for source EOF without final linefeed.
3142102550Siwasaki4. Debug option is split into a parse trace and a namespace
3143102550Siwasakitrace.
3144102550Siwasaki5. Namespace output option (-n) includes initial values for
3145102550Siwasakiintegers and strings.
3146102550Siwasaki6. Parse-only option added for quick syntax checking.
3147102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
3148102550Siwasaki
3149102550SiwasakiVersion X2012:
3150102550Siwasaki1. Relaxed typechecking to allow interchangeability between
3151114237Snjlstrings, integers, and buffers.  These types are now converted by
3152114237Snjlthe interpreter at runtime.
3153114237Snjl2. Compiler reports time taken by each internal subsystem in the
3154114237Snjldebug         output file.
3155102550Siwasaki
3156102550Siwasaki
3157102550Siwasaki ------------------------------------------
3158102550SiwasakiSummary of changes for this label: 12_14_00
3159102550Siwasaki
3160102550SiwasakiASL Compiler:
3161102550Siwasaki
3162104470SiwasakiThis is the first official release of the compiler. Since the
3163104470Siwasakicompiler requires elements of the Core Subsystem, this label
3164104470Siwasakisynchronizes everything.
3165102550Siwasaki
3166102550Siwasaki------------------------------------------
3167102550SiwasakiSummary of changes for this label: 12_08_00
3168102550Siwasaki
3169102550Siwasaki
3170114237SnjlFixed a problem where named references within the ASL definition
3171114237Snjlof both OperationRegions and CreateXXXFields did not work
3172114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
3173114237Snjlinitialization of the region/field. This is similar (but not
3174114237Snjlrelated internally) to the problem that was fixed in the last
3175114237Snjllabel.
3176114237Snjl
3177102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
3178102550Siwasakifunctions ToBCD and FromBCD.
3179102550Siwasaki
3180102550SiwasakiUpdated all legal headers to include "2000" in the copyright
3181102550Siwasakiyears.
3182102550Siwasaki
3183102550Siwasaki ------------------------------------------
3184102550SiwasakiSummary of changes for this label: 12_01_00
3185102550Siwasaki
3186102550SiwasakiFixed a problem where method invocations within the ASL
3187114237Snjldefinition of both OperationRegions and CreateXXXFields did not
3188114237Snjlwork properly.  The symptom was an AE_AML_OPERAND_TYPE during
3189114237Snjlinitialization of the region/field:
3190102550Siwasaki
3191114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
3192114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
3193114237Snjl(0x3005)
3194102550Siwasaki
3195102550SiwasakiFixed a problem where operators with more than one nested
3196104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
3197114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
3198114237Snjlproblem that has gone unnoticed until now.
3199102550Siwasaki
3200102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
3201102550Siwasaki
3202114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
3203114237Snjlprevious build (The prefix part of a relative path was handled
3204114237Snjlincorrectly).
3205102550Siwasaki
3206114237SnjlFixed a problem where Operation Region initialization failed if
3207114237Snjlthe operation region name was a "namepath" instead of a simple
3208114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
3209102550Siwasaki
3210114237SnjlFixed a problem where an assignment to a local variable via the
3211114237Snjlindirect RefOf mechanism only worked for the first such
3212102550Siwasakiassignment.  Subsequent assignments were ignored.
3213102550Siwasaki
3214102550Siwasaki ------------------------------------------
3215102550SiwasakiSummary of changes for this label: 11_15_00
3216102550Siwasaki
3217104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
3218104470Siwasakithe 0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
3219104470Siwasakitables, the AML  interpreter does NOT have support for the new
3220104470Siwasaki2.0 ASL grammar terms at this time.
3221102550Siwasaki
3222104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
3223104470Siwasaki2.0 FADT.
3224102550Siwasaki
3225104470SiwasakiAll physical memory addresses across all platforms are now 64
3226104470Siwasakibits wide. Logical address width remains dependent on the
3227102550Siwasakiplatform (i.e., "void *").
3228102550Siwasaki
3229114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
3230102550Siwasaki
3231114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
3232114237Snjl2.0 specification.
3233102550Siwasaki
3234104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
3235104470Siwasakirevision number less than 2 use 32-bit integers only.
3236102550Siwasaki
3237114237SnjlFixed a problem where the evaluation of OpRegion operands did not
3238114237Snjlalways resolve them to numbers properly.
3239102550Siwasaki
3240102550Siwasaki------------------------------------------
3241102550SiwasakiSummary of changes for this label: 10_20_00
3242102550Siwasaki
3243114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
3244114237SnjlCBN_ OpRegions when the _STA returns 0x8.
3245102550Siwasaki
3246104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
3247104470Siwasakivalues before a package object is returned
3248102550Siwasaki
3249104470SiwasakiFix for method call as predicate to if/while construct causing
3250104470Siwasakiincorrect if/while behavior
3251102550Siwasaki
3252114237SnjlFix for Else block package lengths sometimes calculated wrong (if
3253114237Snjlblock > 63 bytes)
3254102550Siwasaki
3255102550SiwasakiFix for Processor object length field, was always zero
3256102550Siwasaki
3257102550SiwasakiTable load abort if FACP sanity check fails
3258102550Siwasaki
3259102550SiwasakiFix for problem with Scope(name) if name already exists
3260102550Siwasaki
3261102550SiwasakiWarning emitted if a named object referenced cannot be found
3262102550Siwasaki(resolved) during method execution.
3263102550Siwasaki
3264102550Siwasaki
3265102550Siwasaki
3266102550Siwasaki
3267102550Siwasaki
3268102550Siwasaki------------------------------------------
3269102550SiwasakiSummary of changes for this label: 9_29_00
3270102550Siwasaki
3271114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
3272114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
3273114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
3274114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
3275114237SnjlAcpiLoadTables
3276102550Siwasaki
3277104470SiwasakiNote: These interface changes require changes to all existing
3278104470SiwasakiOSDs
3279102550Siwasaki
3280114237SnjlThe PCI_Config default address space handler is always installed
3281114237Snjlat the root namespace object.
3282102550Siwasaki
3283102550Siwasaki-------------------------------------------
3284102550SiwasakiSummary of changes for this label: 09_15_00
3285102550Siwasaki
3286102550SiwasakiThe new initialization architecture is implemented.  New
3287114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
3288114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
3289114237Snjl(Namespace is automatically loaded when a table is loaded)
3290102550Siwasaki
3291104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
3292104470Siwasakifrom 52 bytes to 32 bytes.  There is usually one of these for
3293104470Siwasakievery namespace object, so the memory savings is significant.
3294102550Siwasaki
3295114237SnjlImplemented just-in-time evaluation of the CreateField operators.
3296102550Siwasaki
3297102550SiwasakiBug fixes for IA-64 support have been integrated.
3298102550Siwasaki
3299102550SiwasakiAdditional code review comments have been implemented
3300102550Siwasaki
3301104470SiwasakiThe so-called "third pass parse" has been replaced by a final
3302104470Siwasakiwalk through the namespace to initialize all operation regions
3303104470Siwasaki(address spaces) and fields that have not yet been initialized
3304104470Siwasakiduring the execution of the various _INI and REG methods.
3305102550Siwasaki
3306102550SiwasakiNew file - namespace/nsinit.c
3307102550Siwasaki
3308102550Siwasaki-------------------------------------------
3309102550SiwasakiSummary of changes for this label: 09_01_00
3310102550Siwasaki
3311104470SiwasakiNamespace manager data structures have been reworked to change
3312104470Siwasakithe primary  object from a table to a single object.  This has
3313104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
3314104470Siwasakiand 2X overall in the ACPI CA subsystem.
3315102550Siwasaki
3316102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
3317102550Siwasakiinadvertently left  commented out.
3318102550Siwasaki
3319114237SnjlReduced the warning count when generating the source with the GCC
3320114237Snjlcompiler.
3321102550Siwasaki
3322102550SiwasakiRevision numbers added to each module header showing the
3323104470SiwasakiSourceSafe version of the file.  Please refer to this version
3324114237Snjlnumber when giving us feedback or comments on individual modules.
3325102550Siwasaki
3326114237SnjlThe main object types within the subsystem have been renamed to
3327114237Snjlclarify their  purpose:
3328102550Siwasaki
3329102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
3330102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
3331102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
3332102550Siwasaki
3333114237SnjlNOTE: no changes to the initialization sequence are included in
3334114237Snjlthis label.
3335102550Siwasaki
3336102550Siwasaki-------------------------------------------
3337102550SiwasakiSummary of changes for this label: 08_23_00
3338102550Siwasaki
3339102550SiwasakiFixed problem where TerminateControlMethod was being called
3340102550Siwasakimultiple times per  method
3341102550Siwasaki
3342114237SnjlFixed debugger problem where single stepping caused a semaphore
3343114237Snjlto be  oversignalled
3344102550Siwasaki
3345104470SiwasakiImproved performance through additional parse object caching -
3346104470Siwasakiadded  ACPI_EXTENDED_OP type
3347102550Siwasaki
3348102550Siwasaki-------------------------------------------
3349102550SiwasakiSummary of changes for this label: 08_10_00
3350102550Siwasaki
3351102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
3352102550Siwasakicomplete parse trees  for ACPI tables and control methods.
3353114237SnjlInstead, parse subtrees are created and  then deleted as soon as
3354114237Snjlthey are processed (Either entered into the namespace or
3355104470Siwasakiexecuted by the interpreter).  This reduces the use of dynamic
3356104470Siwasakikernel memory  significantly. (about 10X)
3357102550Siwasaki
3358114237SnjlException codes broken into classes and renumbered.  Be sure to
3359114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
3360114237Snjlhave to renumber the codes  again now that they are split into
3361114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
3362114237Snjlinternal).
3363102550Siwasaki
3364104470SiwasakiFixed some additional alignment issues in the Resource Manager
3365104470Siwasakisubcomponent
3366102550Siwasaki
3367114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
3368114237Snjlseveral places  where mutexes/semaphores were being unlocked
3369114237Snjlwithout a corresponding lock  operation.  There are no known
3370114237Snjlsemaphore or mutex "leaks" at this time.
3371102550Siwasaki
3372114237SnjlFixed the case where an ASL Return operator is used to return an
3373114237Snjlunnamed  package.
3374102550Siwasaki
3375102550Siwasaki-------------------------------------------
3376102550SiwasakiSummary of changes for this label: 07_28_00
3377102550Siwasaki
3378102550SiwasakiFixed a problem with the way addresses were calculated in
3379114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
3380114237Snjlmanifested itself when a Field was  created with WordAccess or
3381114237SnjlDwordAccess, but the field unit defined within the  Field was
3382114237Snjlless than a Word or Dword.
3383102550Siwasaki
3384102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
3385104470Siwasakioperands off of the  operand stack to display information. The
3386114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
3387114237Snjlaccessing an operand stack with two or more  operands.
3388102550Siwasaki
3389114237SnjlFixed a problem with the PCI configuration space handlers where
3390114237Snjlcontext was  getting confused between accesses. This required a
3391114237Snjlchange to the generic address  space handler and address space
3392114237Snjlsetup definitions. Handlers now get both a  global handler
3393114237Snjlcontext (this is the one passed in by the user when executing
3394114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
3395114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
3396114237Snjl_BBN values associated with a  specific region). The generic
3397114237Snjlfunction definitions have changed to the  following:
3398102550Siwasaki
3399114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
3400114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
3401104470Siwasaki*HandlerContext, // This used to be void *Context void
3402102550Siwasaki*RegionContext); // This is an additional parameter
3403102550Siwasaki
3404102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
3405102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
3406102550Siwasaki**RegionContext); // This used to be **ReturnContext
3407102550Siwasaki
3408102550Siwasaki-------------------------------------------
3409102550SiwasakiSummary of changes for this label: 07_21_00
3410102550Siwasaki
3411102550SiwasakiMajor file consolidation and rename.  All files within the
3412102550Siwasakiinterpreter have been  renamed as well as most header files.
3413114237SnjlThis was done to prevent collisions with  existing files in the
3414114237Snjlhost OSs -- filenames such as "config.h" and "global.h"  seem to
3415114237Snjlbe quite common.  The VC project files have been updated.  All
3416114237Snjlmakefiles  will require modification.
3417102550Siwasaki
3418114237SnjlThe parser/interpreter integration continues in Phase 5 with the
3419114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
3420114237Snjltwice) for each table;  This  avoids the construction of a huge
3421114237Snjlparse tree and therefore reduces the amount of  dynamic memory
3422114237Snjlrequired by the subsystem.  Greater use of the parse object cache
3423114237Snjlmeans that performance is unaffected.
3424102550Siwasaki
3425102550SiwasakiMany comments from the two code reviews have been rolled in.
3426102550Siwasaki
3427102550SiwasakiThe 64-bit alignment support is complete.
3428102550Siwasaki
3429102550Siwasaki-------------------------------------------
3430102550SiwasakiSummary of changes for this label: 06_30_00
3431102550Siwasaki
3432114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
3433114237Snjlwe've added  support in the source code for 80 column output
3434114237Snjldevices.  The code is now mostly  constrained to 80 columns or
3435114237Snjlless to support environments and editors that 1)  cannot display
3436114237Snjlor print more than 80 characters on a single line, and 2) cannot
3437114237Snjldisable line wrapping.
3438102550Siwasaki
3439104470SiwasakiA major restructuring of the namespace data structure has been
3440104470Siwasakicompleted.  The  result is 1) cleaner and more
3441114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
3442114237Snjlin the dynamic memory requirement for each named ACPI  object
3443114237Snjl(almost half).
3444102550Siwasaki
3445102550Siwasaki-------------------------------------------
3446102550SiwasakiSummary of changes for this label: 06_23_00
3447102550Siwasaki
3448114237SnjlLinux support has been added.  In order to obtain approval to get
3449114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
3450114237Snjlquite a few changes to the  base subsystem that will affect all
3451114237Snjlusers (all the changes are generic and OS- independent).  The
3452114237Snjleffects of these global changes have been somewhat far  reaching.
3453114237SnjlFiles have been merged and/or renamed and interfaces have been
3454114237Snjlrenamed.   The major changes are described below.
3455102550Siwasaki
3456102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
3457102550Siwasakipollution/confusion  within our target kernels.  All OSD
3458114237Snjlinterfaces must be modified to match the new  naming convention.
3459102550Siwasaki
3460102550SiwasakiFiles merged across the subsystem.  A number of the smaller
3461102550Siwasakisource and header  files have been merged to reduce the file
3462114237Snjlcount and increase the density of the  existing files.  There are
3463114237Snjltoo many to list here.  In general, makefiles that  call out
3464114237Snjlindividual files will require rebuilding.
3465102550Siwasaki
3466104470SiwasakiInterpreter files renamed.  All interpreter files now have the
3467104470Siwasakiprefix am*  instead of ie* and is*.
3468102550Siwasaki
3469104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
3470114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
3471114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
3472114237Snjl"external interface" or xface or xf in the  filenames.j
3473102550Siwasaki
3474102550Siwasaki
3475114237SnjlAll manifest constants have been forced to upper case (some were
3476114237Snjlmixed case.)   Also, the string "ACPI_" has been prepended to
3477114237Snjlmany (not all) of the constants,  typedefs, and structs.
3478102550Siwasaki
3479102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
3480102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
3481102550Siwasaki
3482102550SiwasakiAll other globals within the subsystem are now prefixed with
3483102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
3484114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
3485114237Snjltwo-letter abbreviation for the subcomponent  remains after
3486114237Snjl"Acpi" - for example, CmCallocate became AcpiCmCallocate.
3487102550Siwasaki
3488102550SiwasakiAdded a source code translation/conversion utility.  Used to
3489114237Snjlgenerate the Linux  source code, it can be modified to generate
3490114237Snjlother types of source as well. Can  also be used to cleanup
3491114237Snjlexisting source by removing extraneous spaces and blank  lines.
3492114237SnjlFound in tools/acpisrc/*
3493102550Siwasaki
3494102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
3495102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
3496102550Siwasaki
3497114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
3498114237SnjlWhen set to  one, this indicates that the caller wants to use the
3499114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
3500114237Snjlboth types.  However, implementers of this  call may want to use
3501114237Snjldifferent OS primitives depending on the type of semaphore
3502114237Snjlrequested.  For example, some operating systems provide separate
3503114237Snjl"mutex" and  "semaphore" interfaces - where the mutex interface
3504114237Snjlis much faster because it  doesn't have all the overhead of a
3505114237Snjlfull semaphore implementation.
3506102550Siwasaki
3507104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
3508114237Snjladdress space can  block forever if it is the first access to the
3509114237Snjlspace.
3510102550Siwasaki
3511102550Siwasaki-------------------------------------------
3512102550SiwasakiSummary of changes for this label: 06_02_00
3513102550Siwasaki
3514102550SiwasakiSupport for environments that cannot handle unaligned data
3515114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
3516114237Snjlhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
3517114237Snjlhas been added (via configurable macros) in  these three areas: -
3518114237SnjlTransfer of data from the raw AML byte stream is done via byte
3519114237Snjlmoves instead of    word/dword/qword moves. - External objects
3520114237Snjlare aligned within the user buffer, including package   elements
3521114237Snjl(sub-objects). - Conversion of name strings to UINT32 Acpi Names
3522114237Snjlis now done byte-wise.
3523102550Siwasaki
3524102550SiwasakiThe Store operator was modified to mimic Microsoft's
3525102550Siwasakiimplementation when storing  to a Buffer Field.
3526102550Siwasaki
3527102550SiwasakiAdded a check of the BM_STS bit before entering C3.
3528102550Siwasaki
3529114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
3530114237Snjlfile, cmeval.c  subsumes the functionality.
3531102550Siwasaki
3532102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
3533102550Siwasakimakefile is under  the acpiexec directory.
3534