changes.txt revision 126372
1117521Snjl----------------------------------------
2198237Sjkim20 February 2004.  Summary of changes for version 20040220:
3197104Sjkim
4197104Sjkim1) ACPI CA Core Subsystem:
5197104Sjkim
6197104SjkimImplemented execution of _SxD methods for Device objects in the
7197104SjkimGetObjectInfo interface.
8198237Sjkim
9198237SjkimFixed calls to _SST method to pass the correct arguments.
10198237Sjkim
11198237SjkimAdded a call to _SST on wake to restore to "working" state.
12198237Sjkim
13198237SjkimCheck for End-Of-Buffer failure case in the WalkResources
14198237Sjkiminterface.
15198237Sjkim
16198237SjkimIntegrated fix for 64-bit alignment issue in acglobal.h by moving
17198237Sjkimtwo structures to the beginning of the file.
18198237Sjkim
19198237SjkimAfter wake, clear GPE status register(s) before enabling GPEs.
20198237Sjkim
21198237SjkimAfter wake, clear/enable power button.  (Perhaps we should
22198237Sjkimclear/enable all fixed events upon wake.)
23198237Sjkim
24198237SjkimFixed a couple of possible memory leaks in the Namespace manager.
25198237Sjkim
26198237SjkimIntegrated latest acnetbsd.h file.
27198237Sjkim
28198237Sjkim----------------------------------------
29198237Sjkim11 February 2004.  Summary of changes for version 20040211:
30198237Sjkim
31198237Sjkim1) ACPI CA Core Subsystem:
32198237Sjkim
33198237SjkimCompleted investigation and implementation of the call-by-
34198237Sjkimreference mechanism for control method arguments.
35198237Sjkim
36198237SjkimFixed a problem where a store of an object into an indexed
37198237Sjkimpackage could fail if the store occurs within a different method
38198237Sjkimthan the method that created the package.
39198237Sjkim
40198237SjkimFixed a problem where the ToDecimal operator could return
41198237Sjkimincorrect results.
42198237Sjkim
43198237SjkimFixed a problem where the CopyObject operator could fail on some
44198237Sjkimof the more obscure objects (e.g., Reference objects.)
45198237Sjkim
46198237SjkimImproved the output of the Debug object to display buffer,
47198237Sjkimpackage, and index objects.
48198237Sjkim
49198237SjkimFixed a problem where constructs of the form "RefOf (ArgX)" did
50198237Sjkimnot return the expected result.
51198237Sjkim
52198237SjkimAdded permanent ACPI_REPORT_ERROR macros for all instances of the
53198237SjkimACPI_AML_INTERNAL exception.
54198237Sjkim
55198237SjkimIntegrated latest version of acfreebsd.h
56198237Sjkim
57198237Sjkim----------------------------------------
58198237Sjkim16 January 2004.  Summary of changes for version 20040116:
59198237Sjkim
60198237SjkimThe purpose of this release is primarily to update the copyright
61198237Sjkimyears in each module, thus causing a huge number of diffs.  There
62198237Sjkimare a few small functional changes, however.
63198237Sjkim
64198237Sjkim1) ACPI CA Core Subsystem:
65198237Sjkim
66198237SjkimImproved error messages when there is a problem finding one or
67197104Sjkimmore of the required base ACPI tables
68197104Sjkim
69197104SjkimReintroduced the definition of APIC_HEADER in actbl.h
70197104Sjkim
71197104SjkimChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
72197104Sjkim
73197104SjkimRemoved extraneous reference to NewObj in dsmthdat.c
74197104Sjkim
75197104Sjkim2) iASL compiler
76197104Sjkim
77197104SjkimFixed a problem introduced in December that disabled the correct
78197104Sjkimdisassembly of Resource Templates
79197104Sjkim
80197104Sjkim
81197104Sjkim----------------------------------------
82197104Sjkim03 December 2003.  Summary of changes for version 20031203:
83197104Sjkim
84197104Sjkim1) ACPI CA Core Subsystem:
85197104Sjkim
86197104SjkimChanged the initialization of Operation Regions during subsystem
87197104Sjkiminit to perform two entire walks of the ACPI namespace; The first
88197104Sjkimto initialize the regions themselves, the second to execute the
89197104Sjkim_REG methods.  This fixed some interdependencies across _REG
90197104Sjkimmethods found on some machines.
91197104Sjkim
92197104SjkimFixed a problem where a Store(Local0, Local1) could simply update
93197104Sjkimthe object reference count, and not create a new copy of the
94197104Sjkimobject if the Local1 is uninitialized.
95197104Sjkim
96197104SjkimImplemented support for the _SST reserved method during sleep
97197104Sjkimtransitions.
98197104Sjkim
99197104SjkimImplemented support to clear the SLP_TYP and SLP_EN bits when
100197104Sjkimwaking up, this is apparently required by some machines.
101197104Sjkim
102197104SjkimWhen sleeping, clear the wake status only if SleepState is not
103197104SjkimS5.
104197104Sjkim
105197104SjkimFixed a problem in AcpiRsExtendedIrqResource() where an incorrect
106197104Sjkimpointer arithmetic advanced a string pointer too far.
107197104Sjkim
108197104SjkimFixed a problem in AcpiTbGetTablePtr() where a garbage pointer
109197104Sjkimcould be returned if the requested table has not been loaded.
110197104Sjkim
111197104SjkimWithin the support for IRQ resources, restructured the handling
112197104Sjkimof
113197104Sjkimthe active and edge/level bits.
114197104Sjkim
115197104SjkimFixed a few problems in AcpiPsxExecute() where memory could be
116197104Sjkimleaked under certain error conditions.
117197104Sjkim
118197104SjkimImproved error messages for the cases where the ACPI mode could
119197104Sjkimnot be entered.
120197104Sjkim
121197104SjkimCode and Data Size: Current and previous core subsystem library
122197104Sjkimsizes are shown below.  These are the code and data sizes for the
123197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
124197104Sjkimthese values do not include any ACPI driver or OSPM code.  The
125197104Sjkimdebug version of the code includes the debug output trace
126197104Sjkimmechanism and has a much larger code and data size.  Note that
127197104Sjkimthese values will vary depending on the efficiency of the
128197104Sjkimcompiler
129197104Sjkimand the compiler options used during generation.
130197104Sjkim
131197104Sjkim  Previous Release (20031029):
132197104Sjkim    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
133197104Sjkim    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
134197104Sjkim  Current Release:
135197104Sjkim    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
136197104Sjkim    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
137197104Sjkim
138197104Sjkim2) iASL Compiler/Disassembler:
139197104Sjkim
140197104SjkimImplemented a fix for the iASL disassembler where a bad index was
141197104Sjkimgenerated.  This was most noticeable on 64-bit platforms
142197104Sjkim
143197104Sjkim
144197104Sjkim----------------------------------------
145197104Sjkim29 October 2003.  Summary of changes for version 20031029:
146197104Sjkim
147197104Sjkim1) ACPI CA Core Subsystem:
148197104Sjkim
149197104SjkimFixed a problem where a level-triggered GPE with an associated
150197104Sjkim_Lxx control method was incorrectly cleared twice.
151197104Sjkim
152197104SjkimFixed a problem with the Field support code where an access can
153197104Sjkimoccur beyond the end-of-region if the field is non-aligned but
154197104Sjkimextends to the very end of the parent region (resulted in an
155197104SjkimAE_AML_REGION_LIMIT exception.)
156197104Sjkim
157197104SjkimFixed a problem with ACPI Fixed Events where an RT Clock handler
158197104Sjkimwould not get invoked on an RTC event.  The RTC event bitmasks
159197104Sjkimfor
160197104Sjkimthe PM1 registers were not being initialized properly.
161197104Sjkim
162197104SjkimImplemented support for executing _STA and _INI methods for
163197104SjkimProcessor objects.  Although this is currently not part of the
164197104SjkimACPI specification, there is existing ASL code that depends on
165197104Sjkimthe
166197104Sjkiminit-time execution of these methods.
167197104Sjkim
168197104SjkimImplemented and deployed a GetDescriptorName function to decode
169197104Sjkimthe various types of internal descriptors.  Guards against null
170197104Sjkimdescriptors during debug output also.
171197104Sjkim
172197104SjkimImplemented and deployed a GetNodeName function to extract the 4-
173197104Sjkimcharacter namespace node name.  This function simplifies the
174197104Sjkimdebug
175197104Sjkimand error output, as well as guarding against null pointers
176197104Sjkimduring
177197104Sjkimoutput.
178197104Sjkim
179197104SjkimImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to
180197104Sjkimsimplify the debug and error output of 64-bit integers.  This
181197104Sjkimmacro replaces the HIDWORD and LODWORD macros for dumping these
182197104Sjkimintegers.
183197104Sjkim
184197104SjkimUpdated the implementation of the Stall() operator to only call
185197104SjkimAcpiOsStall(), and also return an error if the operand is larger
186197104Sjkimthan 255.  This preserves the required behavior of not
187197104Sjkimrelinquishing the processor, as would happen if AcpiOsSleep() was
188197104Sjkimcalled for "long stalls".
189197104Sjkim
190197104SjkimConstructs of the form "Store(LocalX,LocalX)" where LocalX is not
191197104Sjkiminitialized are now treated as NOOPs.
192197104Sjkim
193197104SjkimCleaned up a handful of warnings during 64-bit generation.
194197104Sjkim
195197104SjkimFixed a reported error where and incorrect GPE number was passed
196197104Sjkimto the GPE dispatch handler.  This value is only used for error
197197104Sjkimoutput, however.  Used this opportunity to clean up and
198197104Sjkimstreamline
199197104Sjkimthe GPE dispatch code.
200197104Sjkim
201197104SjkimCode and Data Size: Current and previous core subsystem library
202197104Sjkimsizes are shown below.  These are the code and data sizes for the
203197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
204197104Sjkimthese values do not include any ACPI driver or OSPM code.  The
205197104Sjkimdebug version of the code includes the debug output trace
206197104Sjkimmechanism and has a much larger code and data size.  Note that
207197104Sjkimthese values will vary depending on the efficiency of the
208197104Sjkimcompiler
209197104Sjkimand the compiler options used during generation.
210197104Sjkim
211197104Sjkim  Previous Release (20031002):
212197104Sjkim    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
213197104Sjkim    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
214197104Sjkim  Current Release:
215197104Sjkim    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
216197104Sjkim    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
217197104Sjkim
218197104Sjkim
219197104Sjkim2) iASL Compiler/Disassembler:
220197104Sjkim
221197104SjkimUpdated the iASL compiler to return an error if the operand to
222197104Sjkimthe
223197104SjkimStall() operator is larger than 255.
224197104Sjkim
225197104Sjkim
226197104Sjkim----------------------------------------
227197104Sjkim02 October 2003.  Summary of changes for version 20031002:
228197104Sjkim
229197104Sjkim
230197104Sjkim1) ACPI CA Core Subsystem:
231197104Sjkim
232197104SjkimFixed a problem with Index Fields where the index was not
233197104Sjkimincremented for fields that require multiple writes to the
234197104Sjkimindex/data registers (Fields that are wider than the data
235197104Sjkimregister.)
236197104Sjkim
237197104SjkimFixed a problem with all Field objects where a write could go
238197104Sjkimbeyond the end-of-field if the field was larger than the access
239197104Sjkimgranularity and therefore required multiple writes to complete
240197104Sjkimthe
241197104Sjkimrequest.  An extra write beyond the end of the field could happen
242197104Sjkiminadvertently.
243197104Sjkim
244197104SjkimFixed a problem with Index Fields where a BUFFER_OVERFLOW error
245197104Sjkimwould incorrectly be returned if the width of the Data Register
246197104Sjkimwas larger than the specified field access width.
247197104Sjkim
248197104SjkimCompleted fixes for LoadTable() and Unload() and verified their
249197104Sjkimoperation.  Implemented full support for the "DdbHandle" object
250197104Sjkimthroughout the ACPI CA subsystem.
251197104Sjkim
252197104SjkimImplemented full support for the MADT and ECDT tables in the ACPI
253197104SjkimCA header files.  Even though these tables are not directly
254197104Sjkimconsumed by ACPI CA, the header definitions are useful for ACPI
255197104Sjkimdevice drivers.
256197104Sjkim
257197104SjkimIntegrated resource descriptor fixes posted to the Linux ACPI
258197104Sjkimlist.  This included checks for minimum descriptor length, and
259197104Sjkimsupport for trailing NULL strings within descriptors that have
260197104Sjkimoptional string elements.
261197104Sjkim
262197104SjkimCode and Data Size: Current and previous core subsystem library
263197104Sjkimsizes are shown below.  These are the code and data sizes for the
264197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
265197104Sjkimthese values do not include any ACPI driver or OSPM code.  The
266197104Sjkimdebug version of the code includes the debug output trace
267197104Sjkimmechanism and has a much larger code and data size.  Note that
268197104Sjkimthese values will vary depending on the efficiency of the
269197104Sjkimcompiler
270197104Sjkimand the compiler options used during generation.
271197104Sjkim
272197104Sjkim  Previous Release (20030918):
273197104Sjkim    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
274197104Sjkim    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
275197104Sjkim  Current Release:
276197104Sjkim    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
277197104Sjkim    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
278197104Sjkim
279197104Sjkim
280193267Sjkim2) iASL Compiler:
281193267Sjkim
282193267SjkimImplemented detection of non-ASCII characters within the input
283193267Sjkimsource ASL file.  This catches attempts to compile binary (AML)
284193267Sjkimfiles early in the compile, with an informative error message.
285193267Sjkim
286193267SjkimFixed a problem where the disassembler would fault if the output
287193267Sjkimfilename could not be generated or if the output file could not
288193267Sjkimbe
289193267Sjkimopened.
290193267Sjkim
291193267Sjkim----------------------------------------
292193267Sjkim18 September 2003.  Summary of changes for version 20030918:
293193267Sjkim
294193267Sjkim
295193267Sjkim1) ACPI CA Core Subsystem:
296193267Sjkim
297193267SjkimFound and fixed a longstanding problem with the late execution of
298193267Sjkimthe various deferred AML opcodes (such as Operation Regions,
299193267SjkimBuffer Fields, Buffers, and Packages).  If the name string
300193267Sjkimspecified for the name of the new object placed the object in a
301193267Sjkimscope other than the current scope, the initialization/execution
302193267Sjkimof the opcode failed.  The solution to this problem was to
303193267Sjkimimplement a mechanism where the late execution of such opcodes
304193267Sjkimdoes not attempt to lookup/create the name a second time in an
305193267Sjkimincorrect scope.  This fixes the "region size computed
306193267Sjkimincorrectly" problem.
307193267Sjkim
308193267SjkimFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
309193267Sjkima
310193267SjkimGlobal Lock AE_BAD_PARAMETER error.
311193267Sjkim
312193267SjkimFixed several 64-bit issues with prototypes, casting and data
313193267Sjkimtypes.
314193267Sjkim
315193267SjkimRemoved duplicate prototype from acdisasm.h
316193267Sjkim
317193267SjkimFixed an issue involving EC Operation Region Detach (Shaohua Li)
318193267Sjkim
319193267SjkimCode and Data Size: Current and previous core subsystem library
320193267Sjkimsizes are shown below.  These are the code and data sizes for the
321193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
322193267Sjkimthese values do not include any ACPI driver or OSPM code.  The
323193267Sjkimdebug version of the code includes the debug output trace
324193267Sjkimmechanism and has a much larger code and data size.  Note that
325193267Sjkimthese values will vary depending on the efficiency of the
326193267Sjkimcompiler
327193267Sjkimand the compiler options used during generation.
328193267Sjkim
329193267Sjkim  Previous Release:
330193267Sjkim    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
331193267Sjkim    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
332193267Sjkim  Current Release:
333193267Sjkim    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
334193267Sjkim    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
335193267Sjkim
336193267Sjkim
337193267Sjkim2) Linux:
338193267Sjkim
339193267SjkimFixed the AcpiOsSleep implementation in osunixxf.c to pass the
340193267Sjkimcorrect sleep time in seconds.
341193267Sjkim
342193267Sjkim----------------------------------------
343193267Sjkim14 July 2003.  Summary of changes for version 20030619:
344193267Sjkim
345193267Sjkim1) ACPI CA Core Subsystem:
346193267Sjkim
347193267SjkimParse SSDTs in order discovered, as opposed to reverse order
348193267Sjkim(Hrvoje Habjanic)
349193267Sjkim
350193267SjkimFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
351193267SjkimKlausner,
352193267Sjkim   Nate Lawson)
353193267Sjkim
354193267Sjkim
355193267Sjkim2) Linux:
356193267Sjkim
357193267SjkimDynamically allocate SDT list (suggested by Andi Kleen)
358193267Sjkim
359193267Sjkimproc function return value cleanups (Andi Kleen)
360193267Sjkim
361193267SjkimCorrectly handle NMI watchdog during long stalls (Andrew Morton)
362193267Sjkim
363193267SjkimMake it so acpismp=force works (reported by Andrew Morton)
364193267Sjkim
365193267Sjkim
366193267Sjkim----------------------------------------
367193267Sjkim19 June 2003.  Summary of changes for version 20030619:
368193267Sjkim
369193267Sjkim1) ACPI CA Core Subsystem:
370193267Sjkim
371193267SjkimFix To/FromBCD, eliminating the need for an arch-specific
372193267Sjkim#define.
373193267Sjkim
374193267SjkimDo not acquire a semaphore in the S5 shutdown path.
375193267Sjkim
376193267SjkimFix ex_digits_needed for 0. (Takayoshi Kochi)
377193267Sjkim
378193267SjkimFix sleep/stall code reversal. (Andi Kleen)
379193267Sjkim
380193267SjkimRevert a change having to do with control method calling
381193267Sjkimsemantics.
382193267Sjkim
383193267Sjkim2) Linux:
384193267Sjkim
385193267Sjkimacpiphp update (Takayoshi Kochi)
386193267Sjkim
387193267SjkimExport acpi_disabled for sonypi (Stelian Pop)
388193267Sjkim
389193267SjkimMention acpismp=force in config help
390193267Sjkim
391193267SjkimRe-add acpitable.c and acpismp=force. This improves backwards
392193267Sjkimcompatibility and also cleans up the code to a significant
393193267Sjkimdegree.
394193267Sjkim
395193267SjkimAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
396193267Sjkim
397193267Sjkim----------------------------------------
398193267Sjkim22 May 2003.  Summary of changes for version 20030522:
399193267Sjkim
400193267Sjkim1) ACPI CA Core Subsystem:
401193267Sjkim
402193267SjkimFound and fixed a reported problem where an AE_NOT_FOUND error
403193267Sjkimoccurred occasionally during _BST evaluation.  This turned out to
404193267Sjkimbe an Owner ID allocation issue where a called method did not get
405193267Sjkima new ID assigned to it.  Eventually, (after 64k calls), the
406193267SjkimOwner
407193267SjkimID UINT16 would wraparound so that the ID would be the same as
408193267Sjkimthe
409193267Sjkimcaller's and the called method would delete the caller's
410193267Sjkimnamespace.
411193267Sjkim
412193267SjkimImplemented extended error reporting for control methods that are
413193267Sjkimaborted due to a run-time exception.  Output includes the exact
414193267SjkimAML instruction that caused the method abort, a dump of the
415193267Sjkimmethod
416193267Sjkimlocals and arguments at the time of the abort, and a trace of all
417193267Sjkimnested control method calls.
418193267Sjkim
419193267SjkimModified the interpreter to allow the creation of buffers of zero
420193267Sjkimlength from the AML code. Implemented new code to ensure that no
421193267Sjkimattempt is made to actually allocate a memory buffer (of length
422193267Sjkimzero) - instead, a simple buffer object with a NULL buffer
423193267Sjkimpointer
424193267Sjkimand length zero is created.  A warning is no longer issued when
425193267Sjkimthe AML attempts to create a zero-length buffer.
426193267Sjkim
427193267SjkimImplemented a workaround for the "leading asterisk issue" in
428193267Sjkim_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
429193267Sjkimasterisk is automatically removed if present in any HID, UID, or
430193267SjkimCID strings.  The iASL compiler will still flag this asterisk as
431193267Sjkiman error, however.
432193267Sjkim
433193267SjkimImplemented full support for _CID methods that return a package
434193267Sjkimof
435193267Sjkimmultiple CIDs (Compatible IDs).  The AcpiGetObjectInfo()
436193267Sjkiminterface
437193267Sjkimnow additionally returns a device _CID list if present.  This
438193267Sjkimrequired a change to the external interface in order to pass an
439193267SjkimACPI_BUFFER object as a parameter since the _CID list is of
440193267Sjkimvariable length.
441193267Sjkim
442193267SjkimFixed a problem with the new AE_SAME_HANDLER exception where
443193267Sjkimhandler initialization code did not know about this exception.
444193267Sjkim
445193267SjkimCode and Data Size: Current and previous core subsystem library
446193267Sjkimsizes are shown below.  These are the code and data sizes for the
447193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
448193267Sjkimthese values do not include any ACPI driver or OSPM code.  The
449193267Sjkimdebug version of the code includes the debug output trace
450193267Sjkimmechanism and has a much larger code and data size.  Note that
451193267Sjkimthese values will vary depending on the efficiency of the
452193267Sjkimcompiler
453193267Sjkimand the compiler options used during generation.
454193267Sjkim
455193267Sjkim  Previous Release (20030509):
456193267Sjkim    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
457193267Sjkim    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
458193267Sjkim  Current Release:
459193267Sjkim    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
460193267Sjkim    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
461193267Sjkim
462193267Sjkim
463193267Sjkim2) Linux:
464193267Sjkim
465193267SjkimFixed a bug in which we would reinitialize the ACPI interrupt
466193267Sjkimafter it was already working, thus disabling all ACPI and the
467193267SjkimIRQs
468193267Sjkimfor any other device sharing the interrupt. (Thanks to Stian
469193267SjkimJordet)
470193267Sjkim
471193267SjkimToshiba driver update (John Belmonte)
472193267Sjkim
473193267SjkimReturn only 0 or 1 for our interrupt handler status (Andrew
474193267SjkimMorton)
475193267Sjkim
476193267Sjkim
477193267Sjkim3) iASL Compiler:
478193267Sjkim
479193267SjkimFixed a reported problem where multiple (nested) ElseIf()
480193267Sjkimstatements were not handled correctly by the compiler, resulting
481193267Sjkimin incorrect warnings and incorrect AML code.  This was a problem
482193267Sjkimin both the ASL parser and the code generator.
483193267Sjkim
484193267Sjkim
485193267Sjkim4) Documentation:
486193267Sjkim
487193267SjkimAdded changes to existing interfaces, new exception codes, and
488193267Sjkimnew
489193267Sjkimtext concerning reference count object management versus garbage
490193267Sjkimcollection.
491193267Sjkim
492193267Sjkim----------------------------------------
493193267Sjkim09 May 2003.  Summary of changes for version 20030509.
494193267Sjkim
495193267Sjkim
496193267Sjkim1) ACPI CA Core Subsystem:
497193267Sjkim
498193267SjkimChanged the subsystem initialization sequence to hold off
499193267Sjkiminstallation of address space handlers until the hardware has
500193267Sjkimbeen
501193267Sjkiminitialized and the system has entered ACPI mode.  This is
502193267Sjkimbecause
503193267Sjkimthe installation of space handlers can cause _REG methods to be
504193267Sjkimrun.  Previously, the _REG methods could potentially be run
505193267Sjkimbefore
506193267SjkimACPI mode was enabled.
507193267Sjkim
508193267SjkimFixed some memory leak issues related to address space handler
509193267Sjkimand
510193267Sjkimnotify handler installation.  There were some problems with the
511193267Sjkimreference count mechanism caused by the fact that the handler
512193267Sjkimobjects are shared across several namespace objects.
513193267Sjkim
514193267SjkimFixed a reported problem where reference counts within the
515193267Sjkimnamespace were not properly updated when named objects created by
516193267Sjkimmethod execution were deleted.
517193267Sjkim
518193267SjkimFixed a reported problem where multiple SSDTs caused a deletion
519193267Sjkimissue during subsystem termination.  Restructured the table data
520193267Sjkimstructures to simplify the linked lists and the related code.
521193267Sjkim
522193267SjkimFixed a problem where the table ID associated with secondary
523193267Sjkimtables (SSDTs) was not being propagated into the namespace
524193267Sjkimobjects
525193267Sjkimcreated by those tables.  This would only present a problem for
526193267Sjkimtables that are unloaded at run-time, however.
527193267Sjkim
528193267SjkimUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
529193267Sjkimtype as the length parameter (instead of UINT32).
530193267Sjkim
531193267SjkimSolved a long-standing problem where an ALREADY_EXISTS error
532193267Sjkimappears on various systems.  This problem could happen when there
533193267Sjkimare multiple PCI_Config operation regions under a single PCI root
534193267Sjkimbus.  This doesn't happen very frequently, but there are some
535193267Sjkimsystems that do this in the ASL.
536193267Sjkim
537193267SjkimFixed a reported problem where the internal DeleteNode function
538193267Sjkimwas incorrectly handling the case where a namespace node was the
539193267Sjkimfirst in the parent's child list, and had additional peers (not
540193267Sjkimthe only child, but first in the list of children.)
541193267Sjkim
542193267SjkimCode and Data Size: Current core subsystem library sizes are
543193267Sjkimshown
544193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
545193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
546193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
547193267Sjkimversion of the code includes the debug output trace mechanism and
548193267Sjkimhas a much larger code and data size.  Note that these values
549193267Sjkimwill
550193267Sjkimvary depending on the efficiency of the compiler and the compiler
551193267Sjkimoptions used during generation.
552193267Sjkim
553193267Sjkim  Previous Release
554193267Sjkim    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
555193267Sjkim    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
556193267Sjkim  Current Release:
557193267Sjkim    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
558193267Sjkim    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
559193267Sjkim
560193267Sjkim
561193267Sjkim2) Linux:
562193267Sjkim
563193267SjkimAllow ":" in OS override string (Ducrot Bruno)
564193267Sjkim
565193267SjkimKobject fix (Greg KH)
566193267Sjkim
567193267Sjkim
568193267Sjkim3 iASL Compiler/Disassembler:
569193267Sjkim
570193267SjkimFixed a problem in the generation of the C source code files (AML
571193267Sjkimis emitted in C source statements for BIOS inclusion) where the
572193267SjkimAscii dump that appears within a C comment at the end of each
573193267Sjkimline
574193267Sjkimcould cause a compile time error if the AML sequence happens to
575193267Sjkimhave an open comment or close comment sequence embedded.
576193267Sjkim
577193267Sjkim
578193267Sjkim----------------------------------------
579193267Sjkim24 April 2003.  Summary of changes for version 20030424.
580193267Sjkim
581193267Sjkim
582193267Sjkim1) ACPI CA Core Subsystem:
583193267Sjkim
584193267SjkimSupport for big-endian systems has been implemented.  Most of the
585193267Sjkimsupport has been invisibly added behind big-endian versions of
586193267Sjkimthe
587193267SjkimACPI_MOVE_* macros.
588193267Sjkim
589193267SjkimFixed a problem in AcpiHwDisableGpeBlock() and
590193267SjkimAcpiHwClearGpeBlock() where an incorrect offset was passed to the
591193267Sjkimlow level hardware write routine.  The offset parameter was
592193267Sjkimactually eliminated from the low level read/write routines
593193267Sjkimbecause
594193267Sjkimthey had become obsolete.
595193267Sjkim
596193267SjkimFixed a problem where a handler object was deleted twice during
597193267Sjkimthe removal of a fixed event handler.
598193267Sjkim
599193267Sjkim
600193267Sjkim2) Linux:
601193267Sjkim
602193267SjkimA fix for SMP systems with link devices was contributed by
603193267SjkimCompaq's Dan Zink.
604193267Sjkim
605193267Sjkim(2.5) Return whether we handled the interrupt in our IRQ handler.
606193267Sjkim(Linux ISRs no longer return void, so we can propagate the
607193267Sjkimhandler
608193267Sjkimreturn value from the ACPI CA core back to the OS.)
609193267Sjkim
610193267Sjkim
611193267Sjkim3) Documentation:
612193267Sjkim
613193267SjkimThe ACPI CA Programmer Reference has been updated to reflect new
614193267Sjkiminterfaces and changes to existing interfaces.
615193267Sjkim
616193267Sjkim----------------------------------------
617193267Sjkim28 March 2003.  Summary of changes for version 20030328.
618193267Sjkim
619193267Sjkim1) ACPI CA Core Subsystem:
620193267Sjkim
621193267SjkimThe GPE Block Device support has been completed.  New interfaces
622193267Sjkimare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
623193267Sjkiminterfaces (enable, disable, clear, getstatus) have been split
624193267Sjkiminto separate interfaces for Fixed Events and General Purpose
625193267SjkimEvents (GPEs) in order to support GPE Block Devices properly.
626193267Sjkim
627193267SjkimFixed a problem where the error message "Failed to acquire
628193267Sjkimsemaphore" would appear during operations on the embedded
629193267Sjkimcontroller (EC).
630193267Sjkim
631193267SjkimCode and Data Size: Current core subsystem library sizes are
632193267Sjkimshown
633193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
634193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
635193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
636193267Sjkimversion of the code includes the debug output trace mechanism and
637193267Sjkimhas a much larger code and data size.  Note that these values
638193267Sjkimwill
639193267Sjkimvary depending on the efficiency of the compiler and the compiler
640193267Sjkimoptions used during generation.
641193267Sjkim
642193267Sjkim  Previous Release
643193267Sjkim    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
644193267Sjkim    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
645193267Sjkim  Current Release:
646193267Sjkim    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
647193267Sjkim    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
648193267Sjkim
649193267Sjkim
650193267Sjkim----------------------------------------
651193267Sjkim28 February 2003.  Summary of changes for version 20030228.
652193267Sjkim
653193267Sjkim
654193267Sjkim1) ACPI CA Core Subsystem:
655193267Sjkim
656193267SjkimThe GPE handling and dispatch code has been completely overhauled
657193267Sjkimin preparation for support of GPE Block Devices (ID ACPI0006).
658193267SjkimThis affects internal data structures and code only; there should
659193267Sjkimbe no differences visible externally.  One new file has been
660193267Sjkimadded, evgpeblk.c
661193267Sjkim
662193267SjkimThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
663193267Sjkimfields that are used to determine the GPE block lengths.  The
664193267SjkimREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
665193267Sjkimstructures are ignored.  This is per the ACPI specification but
666193267Sjkimit
667193267Sjkimisn't very clear.  The full 256 Block 0/1 GPEs are now supported
668193267Sjkim(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
669193267Sjkim128).
670193267Sjkim
671193267SjkimIn the SCI interrupt handler, removed the read of the PM1_CONTROL
672193267Sjkimregister to look at the SCI_EN bit.  On some machines, this read
673193267Sjkimcauses an SMI event and greatly slows down SCI events.  (This may
674193267Sjkimin fact be the cause of slow battery status response on some
675193267Sjkimsystems.)
676193267Sjkim
677193267SjkimFixed a problem where a store of a NULL string to a package
678193267Sjkimobject
679193267Sjkimcould cause the premature deletion of the object.  This was seen
680193267Sjkimduring execution of the battery _BIF method on some systems,
681193267Sjkimresulting in no battery data being returned.
682193267Sjkim
683193267SjkimAdded AcpiWalkResources interface to simplify parsing of resource
684193267Sjkimlists.
685193267Sjkim
686193267SjkimCode and Data Size: Current core subsystem library sizes are
687193267Sjkimshown
688193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
689193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
690193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
691193267Sjkimversion of the code includes the debug output trace mechanism and
692193267Sjkimhas a much larger code and data size.  Note that these values
693193267Sjkimwill
694193267Sjkimvary depending on the efficiency of the compiler and the compiler
695193267Sjkimoptions used during generation.
696193267Sjkim
697193267Sjkim  Previous Release
698193267Sjkim    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
699193267Sjkim    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
700193267Sjkim  Current Release:
701193267Sjkim    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
702193267Sjkim    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
703193267Sjkim
704193267Sjkim
705193267Sjkim2) Linux
706193267Sjkim
707193267SjkimS3 fixes (Ole Rohne)
708193267Sjkim
709193267SjkimUpdate ACPI PHP driver with to use new acpi_walk_resource API
710193267Sjkim(Bjorn Helgaas)
711193267Sjkim
712193267SjkimAdd S4BIOS support (Pavel Machek)
713193267Sjkim
714193267SjkimMap in entire table before performing checksum (John Stultz)
715193267Sjkim
716193267SjkimExpand the mem= cmdline to allow the specification of reserved
717193267Sjkimand
718193267SjkimACPI DATA blocks (Pavel Machek)
719193267Sjkim
720193267SjkimNever use ACPI on VISWS
721193267Sjkim
722193267SjkimFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
723193267Sjkim
724193267SjkimRevert a change that allowed P_BLK lengths to be 4 or 5. This is
725193267Sjkimcausing us to think that some systems support C2 when they really
726193267Sjkimdon't.
727193267Sjkim
728193267SjkimDo not count processor objects for non-present CPUs (Thanks to
729193267SjkimDominik Brodowski)
730193267Sjkim
731193267Sjkim
732193267Sjkim3) iASL Compiler:
733193267Sjkim
734193267SjkimFixed a problem where ASL include files could not be found and
735193267Sjkimopened.
736193267Sjkim
737193267SjkimAdded support for the _PDC reserved name.
738193267Sjkim
739193267Sjkim
740193267Sjkim----------------------------------------
741193267Sjkim22 January 2003.  Summary of changes for version 20030122.
742193267Sjkim
743193267Sjkim
744193267Sjkim1) ACPI CA Core Subsystem:
745193267Sjkim
746193267SjkimAdded a check for constructs of the form:  Store (Local0, Local0)
747193267Sjkimwhere Local0 is not initialized.  Apparently, some BIOS
748193267Sjkimprogrammers believe that this is a NOOP.  Since this store
749193267Sjkimdoesn't
750193267Sjkimdo anything anyway, the new prototype behavior will ignore this
751193267Sjkimerror.  This is a case where we can relax the strict checking in
752193267Sjkimthe interpreter in the name of compatibility.
753193267Sjkim
754193267Sjkim
755193267Sjkim2) Linux
756193267Sjkim
757193267SjkimThe AcpiSrc Source Conversion Utility has been released with the
758193267SjkimLinux package for the first time.  This is the utility that is
759193267Sjkimused to convert the ACPI CA base source code to the Linux
760193267Sjkimversion.
761193267Sjkim
762193267Sjkim(Both) Handle P_BLK lengths shorter than 6 more gracefully
763193267Sjkim
764193267Sjkim(Both) Move more headers to include/acpi, and delete an unused
765193267Sjkimheader.
766193267Sjkim
767193267Sjkim(Both) Move drivers/acpi/include directory to include/acpi
768193267Sjkim
769193267Sjkim(Both) Boot functions don't use cmdline, so don't pass it around
770193267Sjkim
771193267Sjkim(Both) Remove include of unused header (Adrian Bunk)
772193267Sjkim
773193267Sjkim(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
774193267Sjkimthe
775193267Sjkimformer now also includes the latter, acpiphp.h only needs the
776193267Sjkimone,
777193267Sjkimnow.
778193267Sjkim
779193267Sjkim(2.5) Make it possible to select method of bios restoring after
780193267SjkimS3
781193267Sjkimresume. [=> no more ugly ifdefs] (Pavel Machek)
782193267Sjkim
783193267Sjkim(2.5) Make proc write interfaces work (Pavel Machek)
784193267Sjkim
785193267Sjkim(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
786193267Sjkim
787193267Sjkim(2.5) Break out ACPI Perf code into its own module, under cpufreq
788193267Sjkim(Dominik Brodowski)
789193267Sjkim
790193267Sjkim(2.4) S4BIOS support (Ducrot Bruno)
791193267Sjkim
792193267Sjkim(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
793193267SjkimVisinoni)
794193267Sjkim
795193267Sjkim
796193267Sjkim3) iASL Compiler:
797193267Sjkim
798193267SjkimAdded support to disassemble SSDT and PSDTs.
799193267Sjkim
800193267SjkimImplemented support to obtain SSDTs from the Windows registry if
801193267Sjkimavailable.
802193267Sjkim
803193267Sjkim
804193267Sjkim----------------------------------------
805193267Sjkim09 January 2003.  Summary of changes for version 20030109.
806193267Sjkim
807193267Sjkim1) ACPI CA Core Subsystem:
808193267Sjkim
809193267SjkimChanged the behavior of the internal Buffer-to-String conversion
810193267Sjkimfunction.  The current ACPI specification states that the
811193267Sjkimcontents
812193267Sjkimof the buffer are "converted to a string of two-character
813193267Sjkimhexadecimal numbers, each separated by a space".  Unfortunately,
814193267Sjkimthis definition is not backwards compatible with existing ACPI
815193267Sjkim1.0
816193267Sjkimimplementations (although the behavior was not defined in the
817193267SjkimACPI
818193267Sjkim1.0 specification).  The new behavior simply copies data from the
819193267Sjkimbuffer to the string until a null character is found or the end
820193267Sjkimof
821193267Sjkimthe buffer is reached.  The new String object is always null
822193267Sjkimterminated.  This problem was seen during the generation of _BIF
823193267Sjkimbattery data where incorrect strings were returned for battery
824193267Sjkimtype, etc.  This will also require an errata to the ACPI
825193267Sjkimspecification.
826193267Sjkim
827193267SjkimRenamed all instances of NATIVE_UINT and NATIVE_INT to
828193267SjkimACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
829193267Sjkim
830193267SjkimCopyright in all module headers (both Linux and non-Linux) has be
831193267Sjkimupdated to 2003.
832193267Sjkim
833193267SjkimCode and Data Size: Current core subsystem library sizes are
834193267Sjkimshown
835193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
836193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
837193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
838193267Sjkimversion of the code includes the debug output trace mechanism and
839193267Sjkimhas a much larger code and data size.  Note that these values
840193267Sjkimwill
841193267Sjkimvary depending on the efficiency of the compiler and the compiler
842193267Sjkimoptions used during generation.
843193267Sjkim
844193267Sjkim  Previous Release
845193267Sjkim    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
846193267Sjkim    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
847193267Sjkim  Current Release:
848193267Sjkim    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
849193267Sjkim    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
850193267Sjkim
851193267Sjkim
852193267Sjkim2) Linux
853193267Sjkim
854193267SjkimFixed an oops on module insertion/removal (Matthew Tippett)
855193267Sjkim
856193267Sjkim(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
857193267Sjkim
858193267Sjkim(2.5) Replace pr_debug (Randy Dunlap)
859193267Sjkim
860193267Sjkim(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
861193267Sjkim
862193267Sjkim(Both) Eliminate spawning of thread from timer callback, in favor
863193267Sjkimof schedule_work()
864193267Sjkim
865193267Sjkim(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
866193267Sjkim
867193267Sjkim(Both) Added define for Fixed Function HW region (Matthew Wilcox)
868193267Sjkim
869193267Sjkim(Both) Add missing statics to button.c (Pavel Machek)
870193267Sjkim
871193267SjkimSeveral changes have been made to the source code translation
872193267Sjkimutility that generates the Linux Code in order to make the code
873193267Sjkimmore "Linux-like":
874193267Sjkim
875193267SjkimAll typedefs on structs and unions have been removed in keeping
876193267Sjkimwith the Linux coding style.
877193267Sjkim
878193267SjkimRemoved the non-Linux SourceSafe module revision number from each
879193267Sjkimmodule header.
880193267Sjkim
881193267SjkimCompleted major overhaul of symbols to be lowercased for linux.
882193267SjkimDoubled the number of symbols that are lowercased.
883193267Sjkim
884193267SjkimFixed a problem where identifiers within procedure headers and
885193267Sjkimwithin quotes were not fully lower cased (they were left with a
886193267Sjkimstarting capital.)
887193267Sjkim
888193267SjkimSome C macros whose only purpose is to allow the generation of 16-
889193267Sjkimbit code are now completely removed in the Linux code, increasing
890193267Sjkimreadability and maintainability.
891193267Sjkim
892193267Sjkim----------------------------------------
893193267Sjkim
894193267Sjkim12 December 2002.  Summary of changes for version 20021212.
895193267Sjkim
896193267Sjkim
897193267Sjkim1) ACPI CA Core Subsystem:
898193267Sjkim
899193267SjkimFixed a problem where the creation of a zero-length AML Buffer
900193267Sjkimwould cause a fault.
901193267Sjkim
902193267SjkimFixed a problem where a Buffer object that pointed to a static
903193267SjkimAML
904193267Sjkimbuffer (in an ACPI table) could inadvertently be deleted, causing
905193267Sjkimmemory corruption.
906193267Sjkim
907193267SjkimFixed a problem where a user buffer (passed in to the external
908193267SjkimACPI CA interfaces) could be overwritten if the buffer was too
909193267Sjkimsmall to complete the operation, causing memory corruption.
910193267Sjkim
911193267SjkimFixed a problem in the Buffer-to-String conversion code where a
912193267Sjkimstring of length one was always returned, regardless of the size
913193267Sjkimof the input Buffer object.
914193267Sjkim
915193267SjkimRemoved the NATIVE_CHAR data type across the entire source due to
916193267Sjkimlack of need and lack of consistent use.
917193267Sjkim
918193267SjkimCode and Data Size: Current core subsystem library sizes are
919193267Sjkimshown
920193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
921193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
922193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
923193267Sjkimversion of the code includes the debug output trace mechanism and
924193267Sjkimhas a much larger code and data size.  Note that these values
925193267Sjkimwill
926193267Sjkimvary depending on the efficiency of the compiler and the compiler
927193267Sjkimoptions used during generation.
928193267Sjkim
929193267Sjkim  Previous Release
930193267Sjkim    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
931193267Sjkim    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
932193267Sjkim  Current Release:
933193267Sjkim    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
934193267Sjkim    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
935193267Sjkim
936193267Sjkim
937193267Sjkim----------------------------------------
938193267Sjkim05 December 2002.  Summary of changes for version 20021205.
939193267Sjkim
940193267Sjkim1) ACPI CA Core Subsystem:
941193267Sjkim
942193267SjkimFixed a problem where a store to a String or Buffer object could
943193267Sjkimcause corruption of the DSDT if the object type being stored was
944193267Sjkimthe same as the target object type and the length of the object
945193267Sjkimbeing stored was equal to or smaller than the original (existing)
946193267Sjkimtarget object.  This was seen to cause corruption of battery _BIF
947193267Sjkimbuffers if the _BIF method modified the buffer on the fly.
948193267Sjkim
949193267SjkimFixed a problem where an internal error was generated if a
950193267Sjkimcontrol
951193267Sjkimmethod invocation was used in an OperationRegion, Buffer, or
952193267SjkimPackage declaration.  This was caused by the deferred parsing of
953193267Sjkimthe control method and thus the deferred creation of the internal
954193267Sjkimmethod object.  The solution to this problem was to create the
955193267Sjkiminternal method object at the moment the method is encountered in
956193267Sjkimthe first pass - so that subsequent references to the method will
957193267Sjkimable to obtain the required parameter count and thus properly
958193267Sjkimparse the method invocation.  This problem presented itself as an
959193267SjkimAE_AML_INTERNAL during the pass 1 parse phase during table load.
960193267Sjkim
961193267SjkimFixed a problem where the internal String object copy routine did
962193267Sjkimnot always allocate sufficient memory for the target String
963193267Sjkimobject
964193267Sjkimand caused memory corruption.  This problem was seen to cause
965193267Sjkim"Allocation already present in list!" errors as memory allocation
966193267Sjkimbecame corrupted.
967193267Sjkim
968193267SjkimImplemented a new function for the evaluation of namespace
969193267Sjkimobjects
970193267Sjkimthat allows the specification of the allowable return object
971193267Sjkimtypes.  This simplifies a lot of code that checks for a return
972193267Sjkimobject of one or more specific objects returned from the
973193267Sjkimevaluation (such as _STA, etc.)  This may become and external
974193267Sjkimfunction if it would be useful to ACPI-related drivers.
975193267Sjkim
976193267SjkimCompleted another round of prefixing #defines with "ACPI_" for
977193267Sjkimclarity.
978193267Sjkim
979193267SjkimCompleted additional code restructuring to allow more modular
980193267Sjkimlinking for iASL compiler and AcpiExec.  Several files were split
981193267Sjkimcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
982193267Sjkim
983193267SjkimImplemented an abort mechanism to terminate an executing control
984193267Sjkimmethod via the AML debugger.  This feature is useful for
985193267Sjkimdebugging
986193267Sjkimcontrol methods that depend (wait) for specific hardware
987193267Sjkimresponses.
988193267Sjkim
989193267SjkimCode and Data Size: Current core subsystem library sizes are
990193267Sjkimshown
991193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
992193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
993193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
994193267Sjkimversion of the code includes the debug output trace mechanism and
995193267Sjkimhas a much larger code and data size.  Note that these values
996193267Sjkimwill
997193267Sjkimvary depending on the efficiency of the compiler and the compiler
998193267Sjkimoptions used during generation.
999193267Sjkim
1000193267Sjkim  Previous Release
1001193267Sjkim    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1002193267Sjkim    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1003193267Sjkim  Current Release:
1004193267Sjkim    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1005193267Sjkim    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1006193267Sjkim
1007193267Sjkim
1008193267Sjkim2) iASL Compiler/Disassembler
1009193267Sjkim
1010193267SjkimFixed a compiler code generation problem for "Interrupt" Resource
1011193267SjkimDescriptors.  If specified in the ASL, the optional "Resource
1012193267SjkimSource Index" and "Resource Source" fields were not inserted into
1013193267Sjkimthe correct location within the AML resource descriptor, creating
1014193267Sjkiman invalid descriptor.
1015193267Sjkim
1016193267SjkimFixed a disassembler problem for "Interrupt" resource
1017193267Sjkimdescriptors.
1018193267SjkimThe optional "Resource Source Index" and "Resource Source" fields
1019193267Sjkimwere ignored.
1020193267Sjkim
1021193267Sjkim
1022193267Sjkim----------------------------------------
1023193267Sjkim22 November 2002.  Summary of changes for version 20021122.
1024193267Sjkim
1025193267Sjkim
1026193267Sjkim1) ACPI CA Core Subsystem:
1027193267Sjkim
1028193267SjkimFixed a reported problem where an object stored to a Method Local
1029193267Sjkimor Arg was not copied to a new object during the store - the
1030193267Sjkimobject pointer was simply copied to the Local/Arg.  This caused
1031193267Sjkimall subsequent operations on the Local/Arg to also affect the
1032193267Sjkimoriginal source of the store operation.
1033193267Sjkim
1034193267SjkimFixed a problem where a store operation to a Method Local or Arg
1035193267Sjkimwas not completed properly if the Local/Arg contained a reference
1036193267Sjkim(from RefOf) to a named field.  The general-purpose store-to-
1037193267Sjkimnamespace-node code is now used so that this case is handled
1038193267Sjkimautomatically.
1039193267Sjkim
1040193267SjkimFixed a problem where the internal object copy routine would
1041193267Sjkimcause
1042193267Sjkima protection fault if the object being copied was a Package and
1043193267Sjkimcontained either 1) a NULL package element or 2) a nested sub-
1044193267Sjkimpackage.
1045193267Sjkim
1046193267SjkimFixed a problem with the GPE initialization that resulted from an
1047193267Sjkimambiguity in the ACPI specification.  One section of the
1048193267Sjkimspecification states that both the address and length of the GPE
1049193267Sjkimblock must be zero if the block is not supported.  Another
1050193267Sjkimsection
1051193267Sjkimimplies that only the address need be zero if the block is not
1052193267Sjkimsupported.  The code has been changed so that both the address
1053193267Sjkimand
1054193267Sjkimthe length must be non-zero to indicate a valid GPE block (i.e.,
1055193267Sjkimif either the address or the length is zero, the GPE block is
1056193267Sjkiminvalid.)
1057193267Sjkim
1058193267SjkimCode and Data Size: Current core subsystem library sizes are
1059193267Sjkimshown
1060193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1061193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1062193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1063193267Sjkimversion of the code includes the debug output trace mechanism and
1064193267Sjkimhas a much larger code and data size.  Note that these values
1065193267Sjkimwill
1066193267Sjkimvary depending on the efficiency of the compiler and the compiler
1067193267Sjkimoptions used during generation.
1068193267Sjkim
1069193267Sjkim  Previous Release
1070193267Sjkim    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1071193267Sjkim    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1072193267Sjkim  Current Release:
1073193267Sjkim    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1074193267Sjkim    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1075193267Sjkim
1076193267Sjkim
1077193267Sjkim2) Linux
1078193267Sjkim
1079193267SjkimCleaned up EC driver. Exported an external EC read/write
1080193267Sjkiminterface. By going through this, other drivers (most notably
1081193267Sjkimsonypi) will be able to serialize access to the EC.
1082193267Sjkim
1083193267Sjkim
1084193267Sjkim3) iASL Compiler/Disassembler
1085193267Sjkim
1086193267SjkimImplemented support to optionally generate include files for both
1087193267SjkimASM and C (the -i switch).  This simplifies BIOS development by
1088193267Sjkimautomatically creating include files that contain external
1089193267Sjkimdeclarations for the symbols that are created within the
1090193267Sjkim(optionally generated) ASM and C AML source files.
1091193267Sjkim
1092193267Sjkim
1093193267Sjkim----------------------------------------
1094193267Sjkim15 November 2002.  Summary of changes for version 20021115.
1095193267Sjkim
1096193267Sjkim1) ACPI CA Core Subsystem:
1097193267Sjkim
1098193267SjkimFixed a memory leak problem where an error during resolution of
1099193267Sjkimmethod arguments during a method invocation from another method
1100193267Sjkimfailed to cleanup properly by deleting all successfully resolved
1101193267Sjkimargument objects.
1102193267Sjkim
1103193267SjkimFixed a problem where the target of the Index() operator was not
1104193267Sjkimcorrectly constructed if the source object was a package.  This
1105193267Sjkimproblem has not been detected because the use of a target operand
1106193267Sjkimwith Index() is very rare.
1107193267Sjkim
1108193267SjkimFixed a problem with the Index() operator where an attempt was
1109193267Sjkimmade to delete the operand objects twice.
1110193267Sjkim
1111193267SjkimFixed a problem where an attempt was made to delete an operand
1112193267Sjkimtwice during execution of the CondRefOf() operator if the target
1113193267Sjkimdid not exist.
1114193267Sjkim
1115193267SjkimImplemented the first of perhaps several internal create object
1116193267Sjkimfunctions that create and initialize a specific object type.
1117193267SjkimThis
1118193267Sjkimconsolidates duplicated code wherever the object is created, thus
1119193267Sjkimshrinking the size of the subsystem.
1120193267Sjkim
1121193267SjkimImplemented improved debug/error messages for errors that occur
1122193267Sjkimduring nested method invocations.  All executing method pathnames
1123193267Sjkimare displayed (with the error) as the call stack is unwound -
1124193267Sjkimthus
1125193267Sjkimsimplifying debug.
1126193267Sjkim
1127193267SjkimFixed a problem introduced in the 10/02 release that caused
1128193267Sjkimpremature deletion of a buffer object if a buffer was used as an
1129193267SjkimASL operand where an integer operand is required (Thus causing an
1130193267Sjkimimplicit object conversion from Buffer to Integer.)  The change
1131193267Sjkimin
1132193267Sjkimthe 10/02 release was attempting to fix a memory leak (albeit
1133193267Sjkimincorrectly.)
1134193267Sjkim
1135193267SjkimCode and Data Size: Current core subsystem library sizes are
1136193267Sjkimshown
1137193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1138193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1139193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1140193267Sjkimversion of the code includes the debug output trace mechanism and
1141193267Sjkimhas a much larger code and data size.  Note that these values
1142193267Sjkimwill
1143193267Sjkimvary depending on the efficiency of the compiler and the compiler
1144193267Sjkimoptions used during generation.
1145193267Sjkim
1146193267Sjkim  Previous Release
1147193267Sjkim    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1148193267Sjkim    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1149193267Sjkim  Current Release:
1150193267Sjkim    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1151193267Sjkim    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1152193267Sjkim
1153193267Sjkim
1154193267Sjkim2) Linux
1155193267Sjkim
1156193267SjkimChanged the implementation of the ACPI semaphores to use down()
1157193267Sjkiminstead of down_interruptable().  It is important that the
1158193267Sjkimexecution of ACPI control methods not be interrupted by signals.
1159193267SjkimMethods must run to completion, or the system may be left in an
1160193267Sjkimunknown/unstable state.
1161193267Sjkim
1162193267SjkimFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
1163193267Sjkimset.
1164193267Sjkim(Shawn Starr)
1165193267Sjkim
1166193267Sjkim
1167193267Sjkim3) iASL Compiler/Disassembler
1168193267Sjkim
1169193267Sjkim
1170193267SjkimChanged the default location of output files.  All output files
1171193267Sjkimare now placed in the current directory by default instead of in
1172193267Sjkimthe directory of the source file.  This change may affect some
1173193267Sjkimexisting makefiles, but it brings the behavior of the compiler in
1174193267Sjkimline with other similar tools.  The location of the output files
1175193267Sjkimcan be overridden with the -p command line switch.
1176193267Sjkim
1177193267Sjkim
1178193267Sjkim----------------------------------------
1179193267Sjkim11 November 2002.  Summary of changes for version 20021111.
1180193267Sjkim
1181193267Sjkim
1182193267Sjkim0) ACPI Specification 2.0B is released and is now available at:
1183193267Sjkimhttp://www.acpi.info/index.html
1184193267Sjkim
1185193267Sjkim
1186193267Sjkim1) ACPI CA Core Subsystem:
1187193267Sjkim
1188193267SjkimImplemented support for the ACPI 2.0 SMBus Operation Regions.
1189193267SjkimThis includes the early detection and handoff of the request to
1190193267Sjkimthe SMBus region handler (avoiding all of the complex field
1191193267Sjkimsupport code), and support for the bidirectional return packet
1192193267Sjkimfrom an SMBus write operation.  This paves the way for the
1193193267Sjkimdevelopment of SMBus drivers in each host operating system.
1194193267Sjkim
1195193267SjkimFixed a problem where the semaphore WAIT_FOREVER constant was
1196193267Sjkimdefined as 32 bits, but must be 16 bits according to the ACPI
1197193267Sjkimspecification.  This had the side effect of causing ASL
1198193267SjkimMutex/Event timeouts even though the ASL code requested a wait
1199193267Sjkimforever.  Changed all internal references to the ACPI timeout
1200193267Sjkimparameter to 16 bits to prevent future problems.  Changed the
1201193267Sjkimname
1202193267Sjkimof WAIT_FOREVER to ACPI_WAIT_FOREVER.
1203193267Sjkim
1204193267SjkimCode and Data Size: Current core subsystem library sizes are
1205193267Sjkimshown
1206193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1207193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1208193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1209193267Sjkimversion of the code includes the debug output trace mechanism and
1210193267Sjkimhas a much larger code and data size.  Note that these values
1211193267Sjkimwill
1212193267Sjkimvary depending on the efficiency of the compiler and the compiler
1213193267Sjkimoptions used during generation.
1214193267Sjkim
1215193267Sjkim  Previous Release
1216193267Sjkim    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1217193267Sjkim    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1218193267Sjkim  Current Release:
1219193267Sjkim    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1220193267Sjkim    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1221193267Sjkim
1222193267Sjkim
1223193267Sjkim2) Linux
1224193267Sjkim
1225193267SjkimModule loading/unloading fixes (John Cagle)
1226193267Sjkim
1227193267Sjkim
1228193267Sjkim3) iASL Compiler/Disassembler
1229193267Sjkim
1230193267SjkimAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
1231193267Sjkim
1232193267SjkimImplemented support for the disassembly of all SMBus protocol
1233193267Sjkimkeywords (SMBQuick, SMBWord, etc.)
1234193267Sjkim
1235193267Sjkim----------------------------------------
1236193267Sjkim01 November 2002.  Summary of changes for version 20021101.
1237193267Sjkim
1238193267Sjkim
1239193267Sjkim1) ACPI CA Core Subsystem:
1240193267Sjkim
1241193267SjkimFixed a problem where platforms that have a GPE1 block but no
1242193267SjkimGPE0
1243193267Sjkimblock were not handled correctly.  This resulted in a "GPE
1244193267Sjkimoverlap" error message.  GPE0 is no longer required.
1245193267Sjkim
1246193267SjkimRemoved code added in the previous release that inserted nodes
1247193267Sjkiminto the namespace in alphabetical order.  This caused some side-
1248193267Sjkimeffects on various machines.  The root cause of the problem is
1249193267Sjkimstill under investigation since in theory, the internal ordering
1250193267Sjkimof the namespace nodes should not matter.
1251193267Sjkim
1252193267Sjkim
1253193267SjkimEnhanced error reporting for the case where a named object is not
1254193267Sjkimfound during control method execution.  The full ACPI namepath
1255193267Sjkim(name reference) of the object that was not found is displayed in
1256193267Sjkimthis case.
1257193267Sjkim
1258193267SjkimNote: as a result of the overhaul of the namespace object types
1259193267Sjkimin
1260193267Sjkimthe previous release, the namespace nodes for the predefined
1261193267Sjkimscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
1262193267Sjkiminstead of ACPI_TYPE_ANY.  This simplifies the namespace
1263193267Sjkimmanagement code but may affect code that walks the namespace tree
1264193267Sjkimlooking for specific object types.
1265193267Sjkim
1266193267SjkimCode and Data Size: Current core subsystem library sizes are
1267193267Sjkimshown
1268193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1269193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1270193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1271193267Sjkimversion of the code includes the debug output trace mechanism and
1272193267Sjkimhas a much larger code and data size.  Note that these values
1273193267Sjkimwill
1274193267Sjkimvary depending on the efficiency of the compiler and the compiler
1275193267Sjkimoptions used during generation.
1276193267Sjkim
1277193267Sjkim  Previous Release
1278193267Sjkim    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1279193267Sjkim    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1280193267Sjkim  Current Release:
1281193267Sjkim    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1282193267Sjkim    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1283193267Sjkim
1284193267Sjkim
1285193267Sjkim2) Linux
1286193267Sjkim
1287193267SjkimFixed a problem introduced in the previous release where the
1288193267SjkimProcessor and Thermal objects were not recognized and installed
1289193267Sjkimin
1290193267Sjkim/proc.  This was related to the scope type change described
1291193267Sjkimabove.
1292193267Sjkim
1293193267Sjkim
1294193267Sjkim3) iASL Compiler/Disassembler
1295193267Sjkim
1296193267SjkimImplemented the -g option to get all of the required ACPI tables
1297193267Sjkimfrom the registry and save them to files (Windows version of the
1298193267Sjkimcompiler only.)  The required tables are the FADT, FACS, and
1299193267SjkimDSDT.
1300193267Sjkim
1301193267SjkimAdded ACPI table checksum validation during table disassembly in
1302193267Sjkimorder to catch corrupted tables.
1303193267Sjkim
1304193267Sjkim
1305193267Sjkim----------------------------------------
1306193267Sjkim22 October 2002.  Summary of changes for version 20021022.
1307193267Sjkim
1308193267Sjkim1) ACPI CA Core Subsystem:
1309193267Sjkim
1310193267SjkimImplemented a restriction on the Scope operator that the target
1311193267Sjkimmust already exist in the namespace at the time the operator is
1312193267Sjkimencountered (during table load or method execution).  In other
1313193267Sjkimwords, forward references are not allowed and Scope() cannot
1314193267Sjkimcreate a new object. This changes the previous behavior where the
1315193267Sjkiminterpreter would create the name if not found.  This new
1316193267Sjkimbehavior
1317193267Sjkimcorrectly enables the search-to-root algorithm during namespace
1318193267Sjkimlookup of the target name.  Because of this upsearch, this fixes
1319193267Sjkimthe known Compaq _SB_.OKEC problem and makes both the AML
1320193267Sjkiminterpreter and iASL compiler compatible with other ACPI
1321193267Sjkimimplementations.
1322193267Sjkim
1323193267SjkimCompleted a major overhaul of the internal ACPI object types for
1324193267Sjkimthe ACPI Namespace and the associated operand objects.  Many of
1325193267Sjkimthese types had become obsolete with the introduction of the two-
1326193267Sjkimpass namespace load.  This cleanup simplifies the code and makes
1327193267Sjkimthe entire namespace load mechanism much clearer and easier to
1328193267Sjkimunderstand.
1329193267Sjkim
1330193267SjkimImproved debug output for tracking scope opening/closing to help
1331193267Sjkimdiagnose scoping issues.  The old scope name as well as the new
1332193267Sjkimscope name are displayed.  Also improved error messages for
1333193267Sjkimproblems with ASL Mutex objects and error messages for GPE
1334193267Sjkimproblems.
1335193267Sjkim
1336193267SjkimCleaned up the namespace dump code, removed obsolete code.
1337193267Sjkim
1338193267SjkimAll string output (for all namespace/object dumps) now uses the
1339193267Sjkimcommon ACPI string output procedure which handles escapes
1340193267Sjkimproperly
1341193267Sjkimand does not emit non-printable characters.
1342193267Sjkim
1343193267SjkimFixed some issues with constants in the 64-bit version of the
1344193267Sjkimlocal C library (utclib.c)
1345193267Sjkim
1346193267Sjkim
1347193267Sjkim2) Linux
1348193267Sjkim
1349193267SjkimEC Driver:  No longer attempts to acquire the Global Lock at
1350193267Sjkiminterrupt level.
1351193267Sjkim
1352193267Sjkim
1353193267Sjkim3) iASL Compiler/Disassembler
1354193267Sjkim
1355193267SjkimImplemented ACPI 2.0B grammar change that disallows all Type 1
1356193267Sjkimand
1357193267Sjkim2 opcodes outside of a control method.  This means that the
1358193267Sjkim"executable" operators (versus the "namespace" operators) cannot
1359193267Sjkimbe used at the table level; they can only be used within a
1360193267Sjkimcontrol
1361193267Sjkimmethod.
1362193267Sjkim
1363193267SjkimImplemented the restriction on the Scope() operator where the
1364193267Sjkimtarget must already exist in the namespace at the time the
1365193267Sjkimoperator is encountered (during ASL compilation). In other words,
1366193267Sjkimforward references are not allowed and Scope() cannot create a
1367193267Sjkimnew
1368193267Sjkimobject.  This makes the iASL compiler compatible with other ACPI
1369193267Sjkimimplementations and makes the Scope() implementation adhere to
1370193267Sjkimthe
1371193267SjkimACPI specification.
1372193267Sjkim
1373193267SjkimFixed a problem where namepath optimization for the Alias
1374193267Sjkimoperator
1375193267Sjkimwas optimizing the wrong path (of the two namepaths.)  This
1376193267Sjkimcaused
1377193267Sjkima "Missing alias link" error message.
1378193267Sjkim
1379193267SjkimFixed a problem where an "unknown reserved name" warning could be
1380193267Sjkimincorrectly generated for names like "_SB" when the trailing
1381193267Sjkimunderscore is not used in the original ASL.
1382193267Sjkim
1383193267SjkimFixed a problem where the reserved name check did not handle
1384193267SjkimNamePaths with multiple NameSegs correctly.  The first nameseg of
1385193267Sjkimthe NamePath was examined instead of the last NameSeg.
1386193267Sjkim
1387193267Sjkim
1388193267Sjkim----------------------------------------
1389193267Sjkim
1390193267Sjkim02 October 2002.  Summary of changes for this release.
1391193267Sjkim
1392193267Sjkim
1393193267Sjkim1) ACPI CA Core Subsystem version 20021002:
1394193267Sjkim
1395193267SjkimFixed a problem where a store/copy of a string to an existing
1396193267Sjkimstring did not always set the string length properly in the
1397193267SjkimString
1398193267Sjkimobject.
1399193267Sjkim
1400193267SjkimFixed a reported problem with the ToString operator where the
1401193267Sjkimbehavior was identical to the ToHexString operator instead of
1402193267Sjkimjust
1403193267Sjkimsimply converting a raw buffer to a string data type.
1404193267Sjkim
1405193267SjkimFixed a problem where CopyObject and the other "explicit"
1406193267Sjkimconversion operators were not updating the internal namespace
1407193267Sjkimnode
1408193267Sjkimtype as part of the store operation.
1409193267Sjkim
1410193267SjkimFixed a memory leak during implicit source operand conversion
1411193267Sjkimwhere the original object was not deleted if it was converted to
1412193267Sjkima
1413193267Sjkimnew object of a different type.
1414193267Sjkim
1415193267SjkimEnhanced error messages for all problems associated with
1416193267Sjkimnamespace
1417193267Sjkimlookups.  Common procedure generates and prints the lookup name
1418193267Sjkimas
1419193267Sjkimwell as the formatted status.
1420193267Sjkim
1421193267SjkimCompleted implementation of a new design for the Alias support
1422193267Sjkimwithin the namespace.  The existing design did not handle the
1423193267Sjkimcase
1424193267Sjkimwhere a new object was assigned to one of the two names due to
1425193267Sjkimthe
1426193267Sjkimuse of an explicit conversion operator, resulting in the two
1427193267Sjkimnames
1428193267Sjkimpointing to two different objects.  The new design simply points
1429193267Sjkimthe Alias name to the original name node - not to the object.
1430193267SjkimThis results in a level of indirection that must be handled in
1431193267Sjkimthe
1432193267Sjkimname resolution mechanism.
1433193267Sjkim
1434193267SjkimCode and Data Size: Current core subsystem library sizes are
1435193267Sjkimshown
1436193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1437193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1438193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1439193267Sjkimversion of the code includes the debug output trace mechanism and
1440193267Sjkimhas a larger code and data size.  Note that these values will
1441193267Sjkimvary
1442193267Sjkimdepending on the efficiency of the compiler and the compiler
1443193267Sjkimoptions used during generation.
1444193267Sjkim
1445193267Sjkim  Previous Release
1446193267Sjkim    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1447193267Sjkim    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1448193267Sjkim  Current Release:
1449193267Sjkim    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1450193267Sjkim    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1451193267Sjkim
1452193267Sjkim
1453193267Sjkim2) Linux
1454193267Sjkim
1455193267SjkimInitialize thermal driver's timer before it is used. (Knut
1456193267SjkimNeumann)
1457193267Sjkim
1458193267SjkimAllow handling negative celsius values. (Kochi Takayoshi)
1459193267Sjkim
1460193267SjkimFix thermal management and make trip points. R/W (Pavel Machek)
1461193267Sjkim
1462193267SjkimFix /proc/acpi/sleep. (P. Christeas)
1463193267Sjkim
1464193267SjkimIA64 fixes. (David Mosberger)
1465193267Sjkim
1466193267SjkimFix reversed logic in blacklist code. (Sergio Monteiro Basto)
1467193267Sjkim
1468193267SjkimReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
1469193267SjkimBrodowski)
1470193267Sjkim
1471193267Sjkim
1472193267Sjkim3) iASL Compiler/Disassembler
1473193267Sjkim
1474193267SjkimClarified some warning/error messages.
1475193267Sjkim
1476193267Sjkim
1477193267Sjkim----------------------------------------
1478193267Sjkim18 September 2002.  Summary of changes for this release.
1479193267Sjkim
1480193267Sjkim
1481193267Sjkim1) ACPI CA Core Subsystem version 20020918:
1482193267Sjkim
1483193267SjkimFixed a reported problem with reference chaining (via the Index()
1484193267Sjkimand RefOf() operators) in the ObjectType() and SizeOf()
1485193267Sjkimoperators.
1486193267SjkimThe definition of these operators includes the dereferencing of
1487193267Sjkimall chained references to return information on the base object.
1488193267Sjkim
1489193267SjkimFixed a problem with stores to indexed package elements - the
1490193267Sjkimexisting code would not complete the store if an "implicit
1491193267Sjkimconversion" was not performed.  In other words, if the existing
1492193267Sjkimobject (package element) was to be replaced completely, the code
1493193267Sjkimdidn't handle this case.
1494193267Sjkim
1495193267SjkimRelaxed typechecking on the ASL "Scope" operator to allow the
1496193267Sjkimtarget name to refer to an object of type Integer, String, or
1497193267SjkimBuffer, in addition to the scoping object types (Device,
1498193267Sjkimpredefined Scopes, Processor, PowerResource, and ThermalZone.)
1499193267SjkimThis allows existing AML code that has workarounds for a bug in
1500193267SjkimWindows to function properly.  A warning is issued, however.
1501193267SjkimThis
1502193267Sjkimaffects both the AML interpreter and the iASL compiler. Below is
1503193267Sjkiman example of this type of ASL code:
1504193267Sjkim
1505193267Sjkim      Name(DEB,0x00)
1506193267Sjkim      Scope(DEB)
1507193267Sjkim      {
1508193267Sjkim
1509193267SjkimFixed some reported problems with 64-bit integer support in the
1510193267Sjkimlocal implementation of C library functions (clib.c)
1511193267Sjkim
1512193267Sjkim
1513193267Sjkim2) Linux
1514193267Sjkim
1515193267SjkimUse ACPI fix map region instead of IOAPIC region, since it is
1516193267Sjkimundefined in non-SMP.
1517193267Sjkim
1518193267SjkimEnsure that the SCI has the proper polarity and trigger, even on
1519193267Sjkimsystems that do not have an interrupt override entry in the MADT.
1520193267Sjkim
1521193267Sjkim2.5 big driver reorganization (Pat Mochel)
1522193267Sjkim
1523193267SjkimUse early table mapping code from acpitable.c (Andi Kleen)
1524193267Sjkim
1525193267SjkimNew blacklist entries (Andi Kleen)
1526193267Sjkim
1527193267SjkimBlacklist improvements. Split blacklist code out into a separate
1528193267Sjkimfile. Move checking the blacklist to very early. Previously, we
1529193267Sjkimwould use ACPI tables, and then halfway through init, check the
1530193267Sjkimblacklist -- too late. Now, it's early enough to completely fall-
1531193267Sjkimback to non-ACPI.
1532193267Sjkim
1533193267Sjkim
1534193267Sjkim3) iASL Compiler/Disassembler version 20020918:
1535193267Sjkim
1536193267SjkimFixed a problem where the typechecking code didn't know that an
1537193267Sjkimalias could point to a method.  In other words, aliases were not
1538193267Sjkimbeing dereferenced during typechecking.
1539193267Sjkim
1540193267Sjkim
1541193267Sjkim----------------------------------------
1542193267Sjkim29 August 2002.  Summary of changes for this release.
1543193267Sjkim
1544193267Sjkim1) ACPI CA Core Subsystem Version 20020829:
1545193267Sjkim
1546193267SjkimIf the target of a Scope() operator already exists, it must be an
1547193267Sjkimobject type that actually opens a scope -- such as a Device,
1548193267SjkimMethod, Scope, etc.  This is a fatal runtime error.  Similar
1549193267Sjkimerror
1550193267Sjkimcheck has been added to the iASL compiler also.
1551193267Sjkim
1552193267SjkimTightened up the namespace load to disallow multiple names in the
1553193267Sjkimsame scope.  This previously was allowed if both objects were of
1554193267Sjkimthe same type.  (i.e., a lookup was the same as entering a new
1555193267Sjkimname).
1556193267Sjkim
1557193267Sjkim
1558193267Sjkim2) Linux
1559193267Sjkim
1560193267SjkimEnsure that the ACPI interrupt has the proper trigger and
1561193267Sjkimpolarity.
1562193267Sjkim
1563193267Sjkimlocal_irq_disable is extraneous. (Matthew Wilcox)
1564193267Sjkim
1565193267SjkimMake "acpi=off" actually do what it says, and not use the ACPI
1566193267Sjkiminterpreter *or* the tables.
1567193267Sjkim
1568193267SjkimAdded arch-neutral support for parsing SLIT and SRAT tables
1569193267Sjkim(Kochi
1570193267SjkimTakayoshi)
1571193267Sjkim
1572193267Sjkim
1573193267Sjkim3) iASL Compiler/Disassembler  Version 20020829:
1574193267Sjkim
1575193267SjkimImplemented namepath optimization for name declarations.  For
1576193267Sjkimexample, a declaration like "Method (\_SB_.ABCD)" would get
1577193267Sjkimoptimized to "Method (ABCD)" if the declaration is within the
1578193267Sjkim\_SB_ scope.  This optimization is in addition to the named
1579193267Sjkimreference path optimization first released in the previous
1580193267Sjkimversion. This would seem to complete all possible optimizations
1581193267Sjkimfor namepaths within the ASL/AML.
1582193267Sjkim
1583193267SjkimIf the target of a Scope() operator already exists, it must be an
1584193267Sjkimobject type that actually opens a scope -- such as a Device,
1585193267SjkimMethod, Scope, etc.
1586193267Sjkim
1587193267SjkimImplemented a check and warning for unreachable code in the same
1588193267Sjkimblock below a Return() statement.
1589193267Sjkim
1590193267SjkimFixed a problem where the listing file was not generated if the
1591193267Sjkimcompiler aborted if the maximum error count was exceeded (200).
1592193267Sjkim
1593193267SjkimFixed a problem where the typechecking of method return values
1594193267Sjkimwas
1595193267Sjkimbroken.  This includes the check for a return value when the
1596193267Sjkimmethod is invoked as a TermArg (a return value is expected.)
1597193267Sjkim
1598193267SjkimFixed a reported problem where EOF conditions during a quoted
1599193267Sjkimstring or comment caused a fault.
1600193267Sjkim
1601193267Sjkim
1602193267Sjkim----------------------------------------
1603193267Sjkim15 August 2002.  Summary of changes for this release.
1604193267Sjkim
1605193267Sjkim1) ACPI CA Core Subsystem Version 20020815:
1606193267Sjkim
1607193267SjkimFixed a reported problem where a Store to a method argument that
1608193267Sjkimcontains a reference did not perform the indirect store
1609193267Sjkimcorrectly.
1610193267SjkimThis problem was created during the conversion to the new
1611193267Sjkimreference object model - the indirect store to a method argument
1612193267Sjkimcode was not updated to reflect the new model.
1613193267Sjkim
1614193267SjkimReworked the ACPI mode change code to better conform to ACPI 2.0,
1615193267Sjkimhandle corner cases, and improve code legibility (Kochi
1616193267SjkimTakayoshi)
1617193267Sjkim
1618193267SjkimFixed a problem with the pathname parsing for the carat (^)
1619193267Sjkimprefix.  The heavy use of the carat operator by the new namepath
1620193267Sjkimoptimization in the iASL compiler uncovered a problem with the
1621193267SjkimAML
1622193267Sjkiminterpreter handling of this prefix.  In the case where one or
1623193267Sjkimmore carats precede a single nameseg, the nameseg was treated as
1624193267Sjkimstandalone and the search rule (to root) was inadvertently
1625193267Sjkimapplied.  This could cause both the iASL compiler and the
1626193267Sjkiminterpreter to find the wrong object or to miss the error that
1627193267Sjkimshould occur if the object does not exist at that exact pathname.
1628193267Sjkim
1629193267SjkimFound and fixed the problem where the HP Pavilion DSDT would not
1630193267Sjkimload.  This was a relatively minor tweak to the table loading
1631193267Sjkimcode
1632193267Sjkim(a problem caused by the unexpected encounter with a method
1633193267Sjkiminvocation not within a control method), but it does not solve
1634193267Sjkimthe
1635193267Sjkimoverall issue of the execution of AML code at the table level.
1636193267SjkimThis investigation is still ongoing.
1637193267Sjkim
1638193267SjkimCode and Data Size: Current core subsystem library sizes are
1639193267Sjkimshown
1640193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
1641193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1642193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1643193267Sjkimversion of the code includes the debug output trace mechanism and
1644193267Sjkimhas a larger code and data size.  Note that these values will
1645193267Sjkimvary
1646193267Sjkimdepending on the efficiency of the compiler and the compiler
1647193267Sjkimoptions used during generation.
1648193267Sjkim
1649193267Sjkim  Previous Release
1650193267Sjkim    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1651193267Sjkim    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1652193267Sjkim  Current Release:
1653193267Sjkim    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1654193267Sjkim    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1655193267Sjkim
1656193267Sjkim
1657193267Sjkim2) Linux
1658193267Sjkim
1659193267SjkimRemove redundant slab.h include (Brad Hards)
1660193267Sjkim
1661193267SjkimFix several bugs in thermal.c (Herbert Nachtnebel)
1662193267Sjkim
1663193267SjkimMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
1664193267Sjkim
1665193267SjkimChange acpi_system_suspend to use updated irq functions (Pavel
1666193267SjkimMachek)
1667193267Sjkim
1668193267SjkimExport acpi_get_firmware_table (Matthew Wilcox)
1669193267Sjkim
1670193267SjkimUse proper root proc entry for ACPI (Kochi Takayoshi)
1671193267Sjkim
1672193267SjkimFix early-boot table parsing (Bjorn Helgaas)
1673193267Sjkim
1674193267Sjkim
1675193267Sjkim3) iASL Compiler/Disassembler
1676193267Sjkim
1677193267SjkimReworked the compiler options to make them more consistent and to
1678193267Sjkimuse two-letter options where appropriate.  We were running out of
1679193267Sjkimsensible letters.   This may break some makefiles, so check the
1680193267Sjkimcurrent options list by invoking the compiler with no parameters.
1681193267Sjkim
1682193267SjkimCompleted the design and implementation of the ASL namepath
1683193267Sjkimoptimization option for the compiler.  This option optimizes all
1684193267Sjkimreferences to named objects to the shortest possible path.  The
1685193267Sjkimfirst attempt tries to utilize a single nameseg (4 characters)
1686167802Sjkimand
1687167802Sjkimthe "search-to-root" algorithm used by the interpreter.  If that
1688167802Sjkimcannot be used (because either the name is not in the search path
1689167802Sjkimor there is a conflict with another object with the same name),
1690193267Sjkimthe pathname is optimized using the carat prefix (usually a
1691193267Sjkimshorter string than specifying the entire path from the root.)
1692193267Sjkim
1693193267SjkimImplemented support to obtain the DSDT from the Windows registry
1694193267Sjkim(when the disassembly option is specified with no input file).
1695193267SjkimAdded this code as the implementation for AcpiOsTableOverride in
1696193267Sjkimthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
1697167802Sjkimutility) to scan memory for the DSDT to the AcpiOsTableOverride
1698193267Sjkimfunction in the DOS OSL to make the disassembler truly OS
1699193267Sjkimindependent.
1700193267Sjkim
1701193267SjkimImplemented a new option to disassemble and compile in one step.
1702193267SjkimWhen used without an input filename, this option will grab the
1703193267SjkimDSDT from the local machine, disassemble it, and compile it in
1704193267Sjkimone
1705193267Sjkimstep.
1706193267Sjkim
1707193267SjkimAdded a warning message for invalid escapes (a backslash followed
1708193267Sjkimby any character other than the allowable escapes).  This catches
1709167802Sjkimthe quoted string error "\_SB_" (which should be "\\_SB_" ).
1710193267SjkimAlso, there are numerous instances in the ACPI specification
1711193267Sjkimwhere
1712193267Sjkimthis error occurs.
1713193267Sjkim
1714193267SjkimAdded a compiler option to disable all optimizations.  This is
1715167802Sjkimbasically the "compatibility mode" because by using this option,
1716193267Sjkimthe AML code will come out exactly the same as other ASL
1717193267Sjkimcompilers.
1718193267Sjkim
1719167802SjkimAdded error messages for incorrectly ordered dependent resource
1720193267Sjkimfunctions.  This includes: missing EndDependentFn macro at end of
1721193267Sjkimdependent resource list, nested dependent function macros (both
1722167802Sjkimstart and end), and missing StartDependentFn macro.  These are
1723193267Sjkimcommon errors that should be caught at compile time.
1724193267Sjkim
1725193267SjkimImplemented _OSI support for the disassembler and compiler.  _OSI
1726167802Sjkimmust be included in the namespace for proper disassembly (because
1727193267Sjkimthe disassembler must know the number of arguments.)
1728193267Sjkim
1729167802SjkimAdded an "optimization" message type that is optional (off by
1730193267Sjkimdefault).  This message is used for all optimizations - including
1731193267Sjkimconstant folding, integer optimization, and namepath
1732193267Sjkimoptimization.
1733193267Sjkim
1734167802Sjkim----------------------------------------
1735167802Sjkim25 July 2002.  Summary of changes for this release.
1736167802Sjkim
1737167802Sjkim
1738167802Sjkim1) ACPI CA Core Subsystem Version 20020725:
1739167802Sjkim
1740167802SjkimThe AML Disassembler has been enhanced to produce compilable ASL
1741167802Sjkimcode and has been integrated into the iASL compiler (see below)
1742167802Sjkimas
1743167802Sjkimwell as the single-step disassembly for the AML debugger and the
1744167802Sjkimdisassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
1745167802Sjkimresource templates and macros are fully supported.  The
1746167802Sjkimdisassembler has been tested on over 30 different AML files,
1747193267Sjkimproducing identical AML when the resulting disassembled ASL file
1748193267Sjkimis recompiled with the same ASL compiler.
1749193267Sjkim
1750167802SjkimModified the Resource Manager to allow zero interrupts and zero
1751193267Sjkimdma channels during the GetCurrentResources call.  This was
1752193267Sjkimcausing problems on some platforms.
1753193267Sjkim
1754167802SjkimAdded the AcpiOsRedirectOutput interface to the OSL to simplify
1755193267Sjkimoutput redirection for the AcpiOsPrintf and AcpiOsVprintf
1756193267Sjkiminterfaces.
1757193267Sjkim
1758193267SjkimCode and Data Size: Current core subsystem library sizes are
1759167802Sjkimshown
1760167802Sjkimbelow.  These are the code and data sizes for the acpica.lib
1761167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1762167802Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1763167802Sjkimversion of the code includes the debug output trace mechanism and
1764167802Sjkimhas a larger code and data size.  Note that these values will
1765167802Sjkimvary
1766167802Sjkimdepending on the efficiency of the compiler and the compiler
1767167802Sjkimoptions used during generation.
1768167802Sjkim
1769167802Sjkim  Previous Release
1770167802Sjkim    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1771167802Sjkim    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1772193267Sjkim  Current Release:
1773193267Sjkim    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1774193267Sjkim    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1775193267Sjkim
1776193267Sjkim
1777167802Sjkim2) Linux
1778193267Sjkim
1779193267SjkimFixed a panic in the EC driver (Dominik Brodowski)
1780193267Sjkim
1781193267SjkimImplemented checksum of the R/XSDT itself during Linux table scan
1782167802Sjkim(Richard Schaal)
1783193267Sjkim
1784193267Sjkim
1785167802Sjkim3) iASL compiler
1786167802Sjkim
1787193267SjkimThe AML disassembler is integrated into the compiler.  The "-d"
1788193267Sjkimoption invokes the disassembler  to completely disassemble an
1789193267Sjkiminput AML file, producing as output a text ASL file with the
1790167802Sjkimextension ".dsl" (to avoid name collisions with existing .asl
1791193267Sjkimsource files.)  A future enhancement will allow the disassembler
1792193267Sjkimto obtain the BIOS DSDT from the registry under Windows.
1793193267Sjkim
1794193267SjkimFixed a problem with the VendorShort and VendorLong resource
1795193267Sjkimdescriptors where an invalid AML sequence was created.
1796167802Sjkim
1797167802SjkimImplemented a fix for BufferData term in the ASL parser.  It was
1798167802Sjkiminadvertently defined twice, allowing invalid syntax to pass and
1799167802Sjkimcausing reduction conflicts.
1800167802Sjkim
1801167802SjkimFixed a problem where the Ones opcode could get converted to a
1802167802Sjkimvalue of zero if "Ones" was used where a byte, word or dword
1803167802Sjkimvalue
1804167802Sjkimwas expected.  The 64-bit value is now truncated to the correct
1805167802Sjkimsize with the correct value.
1806193267Sjkim
1807193267Sjkim
1808167802Sjkim----------------------------------------
1809167802Sjkim02 July 2002.  Summary of changes for this release.
1810167802Sjkim
1811167802Sjkim
1812167802Sjkim1) ACPI CA Core Subsystem Version 20020702:
1813167802Sjkim
1814193267SjkimThe Table Manager code has been restructured to add several new
1815193267Sjkimfeatures.  Tables that are not required by the core subsystem
1816193267Sjkim(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
1817193267Sjkimvalidated in any way and are returned from AcpiGetFirmwareTable
1818167802Sjkimif
1819193267Sjkimrequested.  The AcpiOsTableOverride interface is now called for
1820193267Sjkimeach table that is loaded by the subsystem in order to allow the
1821167802Sjkimhost to override any table it chooses.  Previously, only the DSDT
1822193267Sjkimcould be overridden.  Added one new files, tbrsdt.c and
1823193267Sjkimtbgetall.c.
1824193267Sjkim
1825167802SjkimFixed a problem with the conversion of internal package objects
1826193267Sjkimto
1827167802Sjkimexternal objects (when a package is returned from a control
1828193267Sjkimmethod.)  The return buffer length was set to zero instead of the
1829193267Sjkimproper length of the package object.
1830167802Sjkim
1831193267SjkimFixed a reported problem with the use of the RefOf and DeRefOf
1832193267Sjkimoperators when passing reference arguments to control methods.  A
1833193267Sjkimnew type of Reference object is used internally for references
1834167802Sjkimproduced by the RefOf operator.
1835193267Sjkim
1836193267SjkimAdded additional error messages in the Resource Manager to
1837193267Sjkimexplain
1838193267SjkimAE_BAD_DATA errors when they occur during resource parsing.
1839167802Sjkim
1840167802SjkimSplit the AcpiEnableSubsystem into two primitives to enable a
1841167802Sjkimfiner granularity initialization sequence.  These two calls
1842167802Sjkimshould
1843167802Sjkimbe called in this order: AcpiEnableSubsystem (flags),
1844167802SjkimAcpiInitializeObjects (flags).  The flags parameter remains the
1845167802Sjkimsame.
1846167802Sjkim
1847167802Sjkim
1848167802Sjkim2) Linux
1849167802Sjkim
1850193267SjkimUpdated the ACPI utilities module to understand the new style of
1851193267Sjkimfully resolved package objects that are now returned from the
1852167802Sjkimcore
1853193267Sjkimsubsystem.  This eliminates errors of the form:
1854193267Sjkim
1855167802Sjkim    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
1856167802Sjkim    acpi_utils-0430 [145] acpi_evaluate_reference:
1857167802Sjkim        Invalid element in package (not a device reference)
1858167802Sjkim
1859167802SjkimThe method evaluation utility uses the new buffer allocation
1860167802Sjkimscheme instead of calling AcpiEvaluate Object twice.
1861193267Sjkim
1862193267SjkimAdded support for ECDT. This allows the use of the Embedded
1863193267SjkimController before the namespace has been fully initialized, which
1864193267Sjkimis necessary for ACPI 2.0 support, and for some laptops to
1865193267Sjkiminitialize properly. (Laptops using ECDT are still rare, so only
1866193267Sjkimlimited testing was performed of the added functionality.)
1867167802Sjkim
1868193267SjkimFixed memory leaks in the EC driver.
1869193267Sjkim
1870193267SjkimEliminated a brittle code structure in acpi_bus_init().
1871167802Sjkim
1872193267SjkimEliminated the acpi_evaluate() helper function in utils.c. It is
1873193267Sjkimno longer needed since acpi_evaluate_object can optionally
1874193267Sjkimallocate memory for the return object.
1875193267Sjkim
1876167802SjkimImplemented fix for keyboard hang when getting battery readings
1877193267Sjkimon
1878193267Sjkimsome systems (Stephen White)
1879193267Sjkim
1880193267SjkimPCI IRQ routing update (Dominik Brodowski)
1881193267Sjkim
1882193267SjkimFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
1883193267Sjkimsupport
1884167802Sjkim
1885193267Sjkim----------------------------------------
1886193267Sjkim11 June 2002.  Summary of changes for this release.
1887193267Sjkim
1888167802Sjkim
1889193267Sjkim1) ACPI CA Core Subsystem Version 20020611:
1890193267Sjkim
1891167802SjkimFixed a reported problem where constants such as Zero and One
1892193267Sjkimappearing within _PRT packages were not handled correctly within
1893193267Sjkimthe resource manager code.  Originally reported against the ASL
1894193267Sjkimcompiler because the code generator now optimizes integers to
1895193267Sjkimtheir minimal AML representation (i.e. AML constants if
1896167802Sjkimpossible.)
1897167802SjkimThe _PRT code now handles all AML constant opcodes correctly
1898167802Sjkim(Zero, One, Ones, Revision).
1899167802Sjkim
1900167802SjkimFixed a problem with the Concatenate operator in the AML
1901167802Sjkiminterpreter where a buffer result object was incorrectly marked
1902167802Sjkimas
1903167802Sjkimnot fully evaluated, causing a run-time error of AE_AML_INTERNAL.
1904167802Sjkim
1905167802SjkimAll package sub-objects are now fully resolved before they are
1906193267Sjkimreturned from the external ACPI interfaces.  This means that name
1907193267Sjkimstrings are resolved to object handles, and constant operators
1908167802Sjkim(Zero, One, Ones, Revision) are resolved to Integers.
1909167802Sjkim
1910167802SjkimImplemented immediate resolution of the AML Constant opcodes
1911167802Sjkim(Zero, One, Ones, Revision) to Integer objects upon detection
1912167802Sjkimwithin the AML stream. This has simplified and reduced the
1913167802Sjkimgenerated code size of the subsystem by eliminating about 10
1914193267Sjkimswitch statements for these constants (which previously were
1915193267Sjkimcontained in Reference objects.)  The complicating issues are
1916193267Sjkimthat
1917167802Sjkimthe Zero opcode is used as a "placeholder" for unspecified
1918193267Sjkimoptional target operands and stores to constants are defined to
1919193267Sjkimbe
1920193267Sjkimno-ops.
1921193267Sjkim
1922167802SjkimCode and Data Size: Current core subsystem library sizes are
1923193267Sjkimshown
1924193267Sjkimbelow. These are the code and data sizes for the acpica.lib
1925167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
1926193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
1927193267Sjkimversion of the code includes the debug output trace mechanism and
1928193267Sjkimhas a larger code and data size.  Note that these values will
1929193267Sjkimvary
1930167802Sjkimdepending on the efficiency of the compiler and the compiler
1931167802Sjkimoptions used during generation.
1932167802Sjkim
1933167802Sjkim  Previous Release
1934167802Sjkim    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1935167802Sjkim    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1936167802Sjkim  Current Release:
1937167802Sjkim    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1938167802Sjkim    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1939167802Sjkim
1940167802Sjkim
1941193267Sjkim2) Linux
1942193267Sjkim
1943193267SjkimAdded preliminary support for obtaining _TRA data for PCI root
1944193267Sjkimbridges (Bjorn Helgaas).
1945167802Sjkim
1946193267Sjkim
1947193267Sjkim3) iASL Compiler Version X2046:
1948167802Sjkim
1949193267SjkimFixed a problem where the "_DDN" reserved name was defined to be
1950193267Sjkima
1951193267Sjkimcontrol method with one argument.  There are no arguments, and
1952193267Sjkim_DDN does not have to be a control method.
1953167802Sjkim
1954193267SjkimFixed a problem with the Linux version of the compiler where the
1955193267Sjkimsource lines printed with error messages were the wrong lines.
1956167802SjkimThis turned out to be the "LF versus CR/LF" difference between
1957167802SjkimWindows and Unix.  This appears to be the longstanding issue
1958167802Sjkimconcerning listing output and error messages.
1959167802Sjkim
1960167802SjkimFixed a problem with the Linux version of compiler where opcode
1961167802Sjkimnames within error messages were wrong.  This was caused by a
1962193267Sjkimslight difference in the output of the Flex tool on Linux versus
1963193267SjkimWindows.
1964193267Sjkim
1965193267SjkimFixed a problem with the Linux compiler where the hex output
1966193267Sjkimfiles
1967193267Sjkimcontained some garbage data caused by an internal buffer overrun.
1968193267Sjkim
1969167802Sjkim
1970193267Sjkim----------------------------------------
1971193267Sjkim17 May 2002.  Summary of changes for this release.
1972193267Sjkim
1973193267Sjkim
1974193267Sjkim1) ACPI CA Core Subsystem Version 20020517:
1975167802Sjkim
1976193267SjkimImplemented a workaround to an BIOS bug discovered on the HP
1977193267SjkimOmniBook where the FADT revision number and the table size are
1978167802Sjkiminconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
1979193267Sjkimnew
1980193267Sjkimbehavior is to fallback to using only the ACPI 1.0 fields of the
1981193267SjkimFADT if the table is too small to be a ACPI 2.0 table as claimed
1982167802Sjkimby the revision number.  Although this is a BIOS bug, this is a
1983193267Sjkimcase where the workaround is simple enough and with no side
1984193267Sjkimeffects, so it seemed prudent to add it.  A warning message is
1985193267Sjkimissued, however.
1986167802Sjkim
1987193267SjkimImplemented minimum size checks for the fixed-length ACPI tables
1988193267Sjkim-
1989193267Sjkim- the FADT and FACS, as well as consistency checks between the
1990193267Sjkimrevision number and the table size.
1991167802Sjkim
1992167802SjkimFixed a reported problem in the table override support where the
1993167802Sjkimnew table pointer was incorrectly treated as a physical address
1994167802Sjkiminstead of a logical address.
1995167802Sjkim
1996167802SjkimEliminated the use of the AE_AML_ERROR exception and replaced it
1997167802Sjkimwith more descriptive codes.
1998167802Sjkim
1999167802SjkimFixed a problem where an exception would occur if an ASL Field
2000167802Sjkimwas
2001167802Sjkimdefined with no named Field Units underneath it (used by some
2002193267Sjkimindex fields).
2003193267Sjkim
2004193267SjkimCode and Data Size: Current core subsystem library sizes are
2005193267Sjkimshown
2006167802Sjkimbelow.  These are the code and data sizes for the acpica.lib
2007193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2008193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2009167802Sjkimversion of the code includes the debug output trace mechanism and
2010193267Sjkimhas a larger code and data size.  Note that these values will
2011193267Sjkimvary
2012167802Sjkimdepending on the efficiency of the compiler and the compiler
2013193267Sjkimoptions used during generation.
2014193267Sjkim
2015167802Sjkim  Previous Release
2016193267Sjkim    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2017193267Sjkim    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2018167802Sjkim  Current Release:
2019193267Sjkim    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2020193267Sjkim    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2021193267Sjkim
2022167802Sjkim
2023193267Sjkim
2024193267Sjkim2) Linux
2025167802Sjkim
2026167802SjkimMuch work done on ACPI init (MADT and PCI IRQ routing support).
2027167802Sjkim(Paul D. and Dominik Brodowski)
2028167802Sjkim
2029167802SjkimFix PCI IRQ-related panic on boot (Sam Revitch)
2030167802Sjkim
2031167802SjkimSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
2032193267Sjkim
2033167802SjkimFix "MHz" typo (Dominik Brodowski)
2034167802Sjkim
2035167802SjkimFix RTC year 2000 issue (Dominik Brodowski)
2036193267Sjkim
2037193267SjkimPreclude multiple button proc entries (Eric Brunet)
2038167802Sjkim
2039193267SjkimMoved arch-specific code out of include/platform/aclinux.h
2040193267Sjkim
2041193267Sjkim3) iASL Compiler Version X2044:
2042167802Sjkim
2043193267SjkimImplemented error checking for the string used in the EISAID
2044193267Sjkimmacro
2045167802Sjkim(Usually used in the definition of the _HID object.)  The code
2046193267Sjkimnow
2047193267Sjkimstrictly enforces the PnP format - exactly 7 characters, 3
2048167802Sjkimuppercase letters and 4 hex digits.
2049193267Sjkim
2050193267SjkimIf a raw string is used in the definition of the _HID object
2051193267Sjkim(instead of the EISAID macro), the string must contain all
2052193267Sjkimalphanumeric characters (e.g., "*PNP0011" is not allowed because
2053167802Sjkimof the asterisk.)
2054167802Sjkim
2055167802SjkimImplemented checking for invalid use of ACPI reserved names for
2056167802Sjkimmost of the name creation operators (Name, Device, Event, Mutex,
2057167802SjkimOperationRegion, PowerResource, Processor, and ThermalZone.)
2058167802SjkimPreviously, this check was only performed for control methods.
2059167802Sjkim
2060167802SjkimImplemented an additional check on the Name operator to emit an
2061167802Sjkimerror if a reserved name that must be implemented in ASL as a
2062167802Sjkimcontrol method is used.  We know that a reserved name must be a
2063167802Sjkimmethod if it is defined with input arguments.
2064167802Sjkim
2065167802SjkimThe warning emitted when a namespace object reference is not
2066167802Sjkimfound
2067167802Sjkimduring the cross reference phase has been changed into an error.
2068167802SjkimThe "External" directive should be used for names defined in
2069167802Sjkimother
2070167802Sjkimmodules.
2071193267Sjkim
2072193267Sjkim
2073193267Sjkim4) Tools and Utilities
2074193267Sjkim
2075193267SjkimThe 16-bit tools (adump16 and aexec16) have been regenerated and
2076193267Sjkimtested.
2077167802Sjkim
2078167802SjkimFixed a problem with the output of both acpidump and adump16
2079167802Sjkimwhere
2080193267Sjkimthe indentation of closing parentheses and brackets was not
2081193267Sjkimaligned properly with the parent block.
2082167802Sjkim
2083167802Sjkim
2084167802Sjkim----------------------------------------
2085167802Sjkim03 May 2002.  Summary of changes for this release.
2086167802Sjkim
2087193267Sjkim
2088193267Sjkim1) ACPI CA Core Subsystem Version 20020503:
2089193267Sjkim
2090193267SjkimAdded support a new OSL interface that allows the host operating
2091193267Sjkimsystem software to override the DSDT found in the firmware -
2092167802SjkimAcpiOsTableOverride.  With this interface, the OSL can examine
2093167802Sjkimthe
2094167802Sjkimversion of the firmware DSDT and replace it with a different one
2095193267Sjkimif desired.
2096193267Sjkim
2097193267SjkimAdded new external interfaces for accessing ACPI registers from
2098193267Sjkimdevice drivers and other system software - AcpiGetRegister and
2099193267SjkimAcpiSetRegister.  This was simply an externalization of the
2100193267Sjkimexisting AcpiHwBitRegister interfaces.
2101193267Sjkim
2102193267SjkimFixed a regression introduced in the previous build where the
2103193267SjkimASL/AML CreateField operator always returned an error,
2104193267Sjkim"destination must be a NS Node".
2105193267Sjkim
2106193267SjkimExtended the maximum time (before failure) to successfully enable
2107193267SjkimACPI mode to 3 seconds.
2108193267Sjkim
2109193267SjkimCode and Data Size: Current core subsystem library sizes are
2110193267Sjkimshown
2111167802Sjkimbelow.  These are the code and data sizes for the acpica.lib
2112167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2113167802Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2114193267Sjkimversion of the code includes the debug output trace mechanism and
2115193267Sjkimhas a larger code and data size.  Note that these values will
2116193267Sjkimvary
2117193267Sjkimdepending on the efficiency of the compiler and the compiler
2118193267Sjkimoptions used during generation.
2119193267Sjkim
2120193267Sjkim  Previous Release
2121193267Sjkim    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2122193267Sjkim    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2123193267Sjkim  Current Release:
2124193267Sjkim    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2125193267Sjkim    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2126193267Sjkim
2127193267Sjkim
2128193267Sjkim2) Linux
2129193267Sjkim
2130193267SjkimEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
2131167802Sjkimfree. While 3 out of 4 of our in-house systems work fine, the
2132167802Sjkimlast
2133167802Sjkimone still hangs when testing the LAPIC timer.
2134167802Sjkim
2135167802SjkimRenamed many files in 2.5 kernel release to omit "acpi_" from the
2136193267Sjkimname.
2137193267Sjkim
2138193267SjkimAdded warning on boot for Presario 711FR.
2139193267Sjkim
2140167802SjkimSleep improvements (Pavel Machek)
2141167802Sjkim
2142167802SjkimACPI can now be built without CONFIG_PCI enabled.
2143167802Sjkim
2144167802SjkimIA64: Fixed memory map functions (JI Lee)
2145167802Sjkim
2146167802Sjkim
2147167802Sjkim3) iASL Compiler Version X2043:
2148167802Sjkim
2149167802SjkimAdded support to allow the compiler to be integrated into the MS
2150167802SjkimVC++ development environment for one-button compilation of single
2151167802Sjkimfiles or entire projects -- with error-to-source-line mapping.
2152167802Sjkim
2153167802SjkimImplemented support for compile-time constant folding for the
2154167802SjkimType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
2155167802Sjkimspecification.  This allows the ASL writer to use expressions
2156167802Sjkiminstead of Integer/Buffer/String constants in terms that must
2157167802Sjkimevaluate to constants at compile time and will also simplify the
2158193267Sjkimemitted AML in any such sub-expressions that can be folded
2159193267Sjkim(evaluated at compile-time.)  This increases the size of the
2160193267Sjkimcompiler significantly because a portion of the ACPI CA AML
2161193267Sjkiminterpreter is included within the compiler in order to pre-
2162193267Sjkimevaluate constant expressions.
2163167802Sjkim
2164167802Sjkim
2165193267SjkimFixed a problem with the "Unicode" ASL macro that caused the
2166193267Sjkimcompiler to fault.  (This macro is used in conjunction with the
2167193267Sjkim_STR reserved name.)
2168193267Sjkim
2169193267SjkimImplemented an AML opcode optimization to use the Zero, One, and
2170193267SjkimOnes opcodes where possible to further reduce the size of integer
2171167802Sjkimconstants and thus reduce the overall size of the generated AML
2172193267Sjkimcode.
2173193267Sjkim
2174193267SjkimImplemented error checking for new reserved terms for ACPI
2175193267Sjkimversion
2176167802Sjkim2.0A.
2177193267Sjkim
2178193267SjkimImplemented the -qr option to display the current list of ACPI
2179193267Sjkimreserved names known to the compiler.
2180193267Sjkim
2181193267SjkimImplemented the -qc option to display the current list of ASL
2182193267Sjkimoperators that are allowed within constant expressions and can
2183167802Sjkimtherefore be folded at compile time if the operands are
2184193267Sjkimconstants.
2185193267Sjkim
2186193267Sjkim
2187193267Sjkim4) Documentation
2188193267Sjkim
2189167802SjkimUpdated the Programmer's Reference for new interfaces, data
2190167802Sjkimtypes,
2191193267Sjkimand memory allocation model options.
2192193267Sjkim
2193167802SjkimUpdated the iASL Compiler User Reference to apply new format and
2194193267Sjkimadd information about new features and options.
2195193267Sjkim
2196193267Sjkim----------------------------------------
2197193267Sjkim19 April 2002.  Summary of changes for this release.
2198167802Sjkim
2199167802Sjkim1) ACPI CA Core Subsystem Version 20020419:
2200167802Sjkim
2201167802SjkimThe source code base for the Core Subsystem has been completely
2202167802Sjkimcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
2203167802Sjkimversions.  The Lint option files used are included in the
2204167802Sjkim/acpi/generate/lint directory.
2205167802Sjkim
2206167802SjkimImplemented enhanced status/error checking across the entire
2207167802SjkimHardware manager subsystem.  Any hardware errors (reported from
2208167802Sjkimthe OSL) are now bubbled up and will abort a running control
2209167802Sjkimmethod.
2210167802Sjkim
2211167802SjkimFixed a problem where the per-ACPI-table integer width (32 or 64)
2212167802Sjkimwas stored only with control method nodes, causing a fault when
2213167802Sjkimnon-control method code was executed during table loading.  The
2214167802Sjkimsolution implemented uses a global variable to indicate table
2215167802Sjkimwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
2216193267Sjkimnot support mixed integer widths across different ACPI tables
2217193267Sjkim(DSDT, SSDT).
2218193267Sjkim
2219193267SjkimFixed a problem where NULL extended fields (X fields) in an ACPI
2220193267Sjkim2.0 ACPI FADT caused the table load to fail.  Although the
2221167802Sjkimexisting ACPI specification is a bit fuzzy on this topic, the new
2222193267Sjkimbehavior is to fall back on a ACPI 1.0 field if the corresponding
2223193267SjkimACPI 2.0 X field is zero (even though the table revision
2224193267Sjkimindicates
2225167802Sjkima full ACPI 2.0 table.)  The ACPI specification will be updated
2226193267Sjkimto
2227193267Sjkimclarify this issue.
2228193267Sjkim
2229193267SjkimFixed a problem with the SystemMemory operation region handler
2230167802Sjkimwhere memory was always accessed byte-wise even if the AML-
2231193267Sjkimspecified access width was larger than a byte.  This caused
2232193267Sjkimproblems on systems with memory-mapped I/O.  Memory is now
2233193267Sjkimaccessed with the width specified.  On systems that do not
2234193267Sjkimsupport
2235193267Sjkimnon-aligned transfers, a check is made to guarantee proper
2236167802Sjkimaddress
2237193267Sjkimalignment before proceeding in order to avoid an AML-caused
2238193267Sjkimalignment fault within the kernel.
2239193267Sjkim
2240167802Sjkim
2241193267SjkimFixed a problem with the ExtendedIrq resource where only one byte
2242193267Sjkimof the 4-byte Irq field was extracted.
2243193267Sjkim
2244193267SjkimFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
2245167802Sjkimfunction was out of date and required a rewrite.
2246167802Sjkim
2247193267SjkimCode and Data Size: Current core subsystem library sizes are
2248167802Sjkimshown
2249167802Sjkimbelow.  These are the code and data sizes for the acpica.lib
2250167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2251193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2252193267Sjkimversion of the code includes the debug output trace mechanism and
2253193267Sjkimhas a larger code and data size.  Note that these values will
2254193267Sjkimvary
2255193267Sjkimdepending on the efficiency of the compiler and the compiler
2256167802Sjkimoptions used during generation.
2257193267Sjkim
2258193267Sjkim  Previous Release
2259193267Sjkim    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2260193267Sjkim    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2261167802Sjkim  Current Release:
2262193267Sjkim    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2263193267Sjkim    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2264193267Sjkim
2265193267Sjkim
2266167802Sjkim2) Linux
2267167802Sjkim
2268167802SjkimPCI IRQ routing fixes (Dominik Brodowski)
2269167802Sjkim
2270167802Sjkim
2271167802Sjkim3) iASL Compiler Version X2042:
2272167802Sjkim
2273167802SjkimImplemented an additional compile-time error check for a field
2274167802Sjkimunit whose size + minimum access width would cause a run-time
2275167802Sjkimaccess beyond the end-of-region.  Previously, only the field size
2276167802Sjkimitself was checked.
2277167802Sjkim
2278193267SjkimThe Core subsystem and iASL compiler now share a common parse
2279193267Sjkimobject in preparation for compile-time evaluation of the type
2280167802Sjkim3/4/5 ASL operators.
2281167802Sjkim
2282167802Sjkim
2283167802Sjkim----------------------------------------
2284167802SjkimSummary of changes for this release: 03_29_02
2285167802Sjkim
2286193267Sjkim1) ACPI CA Core Subsystem Version 20020329:
2287193267Sjkim
2288193267SjkimImplemented support for late evaluation of TermArg operands to
2289167802SjkimBuffer and Package objects.  This allows complex expressions to
2290193267Sjkimbe
2291193267Sjkimused in the declarations of these object types.
2292193267Sjkim
2293193267SjkimFixed an ACPI 1.0 compatibility issue when reading Fields. In
2294167802SjkimACPI
2295193267Sjkim1.0, if the field was larger than 32 bits, it was returned as a
2296193267Sjkimbuffer - otherwise it was returned as an integer.  In ACPI 2.0,
2297193267Sjkimthe field is returned as a buffer only if the field is larger
2298193267Sjkimthan
2299193267Sjkim64 bits.  The TableRevision is now considered when making this
2300193267Sjkimconversion to avoid incompatibility with existing ASL code.
2301193267Sjkim
2302167802SjkimImplemented logical addressing for AcpiOsGetRootPointer.  This
2303193267Sjkimallows an RSDP with either a logical or physical address.  With
2304193267Sjkimthis support, the host OS can now override all ACPI tables with
2305193267Sjkimone logical RSDP.  Includes implementation of  "typed" pointer
2306193267Sjkimsupport to allow a common data type for both physical and logical
2307193267Sjkimpointers internally.  This required a change to the
2308167802SjkimAcpiOsGetRootPointer interface.
2309193267Sjkim
2310193267SjkimImplemented the use of ACPI 2.0 Generic Address Structures for
2311193267Sjkimall
2312193267SjkimGPE, Fixed Event, and PM Timer I/O.  This allows the use of
2313193267Sjkimmemory
2314167802Sjkimmapped I/O for these ACPI features.
2315193267Sjkim
2316193267SjkimInitialization now ignores not only non-required tables (All
2317193267Sjkimtables other than the FADT, FACS, DSDT, and SSDTs), but also does
2318193267Sjkimnot validate the table headers of unrecognized tables.
2319167802Sjkim
2320193267SjkimFixed a problem where a notify handler could only be
2321193267Sjkiminstalled/removed on an object of type Device.  All "notify"
2322193267Sjkimobjects are now supported -- Devices, Processor, Power, and
2323193267SjkimThermal.
2324167802Sjkim
2325167802SjkimRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
2326167802Sjkimcritical information is returned when this debug level is
2327167802Sjkimenabled.
2328167802Sjkim
2329167802SjkimCode and Data Size: Current core subsystem library sizes are
2330167802Sjkimshown
2331167802Sjkimbelow.  These are the code and data sizes for the acpica.lib
2332167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2333167802Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2334167802Sjkimversion of the code includes the debug output trace mechanism and
2335167802Sjkimhas a larger code and data size.  Note that these values will
2336167802Sjkimvary
2337167802Sjkimdepending on the efficiency of the compiler and the compiler
2338167802Sjkimoptions used during generation.
2339167802Sjkim
2340167802Sjkim  Previous Release
2341167802Sjkim    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2342193267Sjkim    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2343193267Sjkim  Current Release:
2344193267Sjkim    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2345193267Sjkim    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2346193267Sjkim
2347193267Sjkim
2348167802Sjkim2) Linux:
2349193267Sjkim
2350193267SjkimThe processor driver (acpi_processor.c) now fully supports ACPI
2351193267Sjkim2.0-based processor performance control (e.g. Intel(R)
2352167802SjkimSpeedStep(TM) technology) Note that older laptops that only have
2353193267Sjkimthe Intel "applet" interface are not supported through this.  The
2354193267Sjkim'limit' and 'performance' interface (/proc) are fully functional.
2355193267Sjkim[Note that basic policy for controlling performance state
2356167802Sjkimtransitions will be included in the next version of ospmd.]  The
2357167802Sjkimidle handler was modified to more aggressively use C2, and PIIX4
2358193267Sjkimerrata handling underwent a complete overhaul (big thanks to
2359167802SjkimDominik Brodowski).
2360167802Sjkim
2361193267SjkimAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
2362167802Sjkimbased devices in the ACPI namespace are now dynamically bound
2363193267Sjkim(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
2364193267SjkimThis allows, among other things, ACPI to resolve bus numbers for
2365167802Sjkimsubordinate PCI bridges.
2366193267Sjkim
2367193267SjkimEnhanced PCI IRQ routing to get the proper bus number for _PRT
2368193267Sjkimentries defined underneath PCI bridges.
2369193267Sjkim
2370167802SjkimAdded IBM 600E to bad bios list due to invalid _ADR value for
2371167802SjkimPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
2372167802Sjkim
2373167802SjkimIn the process of adding full MADT support (e.g. IOAPIC) for IA32
2374167802Sjkim(acpi.c, mpparse.c) -- stay tuned.
2375167802Sjkim
2376167802SjkimAdded back visual differentiation between fixed-feature and
2377167802Sjkimcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
2378167802Sjkimbutton/power/PWRF) to simplify button identification.
2379167802Sjkim
2380167802SjkimWe no longer use -Wno-unused when compiling debug. Please ignore
2381193267Sjkimany "_THIS_MODULE defined but not used" messages.
2382193267Sjkim
2383167802SjkimCan now shut down the system using "magic sysrq" key.
2384167802Sjkim
2385193267Sjkim
2386193267Sjkim3) iASL Compiler version 2041:
2387193267Sjkim
2388167802SjkimFixed a problem where conversion errors for hex/octal/decimal
2389167802Sjkimconstants were not reported.
2390167802Sjkim
2391167802SjkimImplemented a fix for the General Register template Address
2392167802Sjkimfield.
2393167802SjkimThis field was 8 bits when it should be 64.
2394167802Sjkim
2395193267SjkimFixed a problem where errors/warnings were no longer being
2396193267Sjkimemitted
2397193267Sjkimwithin the listing output file.
2398167802Sjkim
2399193267SjkimImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
2400193267Sjkimexactly 4 characters, alphanumeric only.
2401193267Sjkim
2402167802Sjkim
2403193267Sjkim
2404193267Sjkim
2405193267Sjkim----------------------------------------
2406193267SjkimSummary of changes for this release: 03_08_02
2407193267Sjkim
2408167802Sjkim
2409167802Sjkim1) ACPI CA Core Subsystem Version 20020308:
2410193267Sjkim
2411193267SjkimFixed a problem with AML Fields where the use of the "AccessAny"
2412167802Sjkimkeyword could cause an interpreter error due to attempting to
2413167802Sjkimread
2414193267Sjkimor write beyond the end of the parent Operation Region.
2415193267Sjkim
2416193267SjkimFixed a problem in the SystemMemory Operation Region handler
2417193267Sjkimwhere
2418167802Sjkiman attempt was made to map memory beyond the end of the region.
2419193267SjkimThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
2420167802Sjkimerrors on some Linux systems.
2421167802Sjkim
2422193267SjkimFixed a problem where the interpreter/namespace "search to root"
2423193267Sjkimalgorithm was not functioning for some object types.  Relaxed the
2424193267Sjkiminternal restriction on the search to allow upsearches for all
2425167802Sjkimexternal object types as well as most internal types.
2426193267Sjkim
2427193267Sjkim
2428193267Sjkim2) Linux:
2429193267Sjkim
2430167802SjkimWe now use safe_halt() macro versus individual calls to sti |
2431167802Sjkimhlt.
2432167802Sjkim
2433167802SjkimWriting to the processor limit interface should now work. "echo
2434167802Sjkim1"
2435167802Sjkimwill increase the limit, 2 will decrease, and 0 will reset to the
2436167802Sjkimdefault.
2437167802Sjkim
2438167802Sjkim
2439167802Sjkim3) ASL compiler:
2440167802Sjkim
2441193267SjkimFixed segfault on Linux version.
2442193267Sjkim
2443193267Sjkim
2444193267Sjkim----------------------------------------
2445167802SjkimSummary of changes for this release: 02_25_02
2446167802Sjkim
2447193267Sjkim1) ACPI CA Core Subsystem:
2448193267Sjkim
2449193267Sjkim
2450167802SjkimFixed a problem where the GPE bit masks were not initialized
2451167802Sjkimproperly, causing erratic GPE behavior.
2452167802Sjkim
2453167802SjkimImplemented limited support for multiple calling conventions.
2454167802SjkimThe
2455167802Sjkimcode can be generated with either the VPL (variable parameter
2456193267Sjkimlist, or "C") convention, or the FPL (fixed parameter list, or
2457193267Sjkim"Pascal") convention.  The core subsystem is about 3.4% smaller
2458193267Sjkimwhen generated with FPL.
2459193267Sjkim
2460193267Sjkim
2461193267Sjkim2) Linux
2462193267Sjkim
2463193267SjkimRe-add some /proc/acpi/event functionality that was lost during
2464193267Sjkimthe rewrite
2465193267Sjkim
2466167802SjkimResolved issue with /proc events for fixed-feature buttons
2467193267Sjkimshowing
2468193267Sjkimup as the system device.
2469193267Sjkim
2470167802SjkimFixed checks on C2/C3 latencies to be inclusive of maximum
2471193267Sjkimvalues.
2472193267Sjkim
2473193267SjkimReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
2474167802Sjkim
2475193267SjkimChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
2476193267Sjkim
2477193267SjkimFixed limit interface & usage to fix bugs with passive cooling
2478193267Sjkimhysterisis.
2479167802Sjkim
2480167802SjkimRestructured PRT support.
2481167802Sjkim
2482167802Sjkim
2483167802Sjkim----------------------------------------
2484167802SjkimSummary of changes for this label: 02_14_02
2485167802Sjkim
2486167802Sjkim
2487167802Sjkim1) ACPI CA Core Subsystem:
2488167802Sjkim
2489167802SjkimImplemented support in AcpiLoadTable to allow loading of FACS and
2490167802SjkimFADT tables.
2491193267Sjkim
2492193267SjkimSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
2493193267Sjkimbeen removed.  All 64-bit platforms should be migrated to the
2494193267SjkimACPI
2495193267Sjkim2.0 tables.  The actbl71.h header has been removed from the
2496167802Sjkimsource
2497193267Sjkimtree.
2498193267Sjkim
2499193267SjkimAll C macros defined within the subsystem have been prefixed with
2500193267Sjkim"ACPI_" to avoid collision with other system include files.
2501193267Sjkim
2502193267SjkimRemoved the return value for the two AcpiOsPrint interfaces,
2503167802Sjkimsince
2504193267Sjkimit is never used and causes lint warnings for ignoring the return
2505193267Sjkimvalue.
2506193267Sjkim
2507193267SjkimAdded error checking to all internal mutex acquire and release
2508167802Sjkimcalls.  Although a failure from one of these interfaces is
2509167802Sjkimprobably a fatal system error, these checks will cause the
2510167802Sjkimimmediate abort of the currently executing method or interface.
2511167802Sjkim
2512167802SjkimFixed a problem where the AcpiSetCurrentResources interface could
2513167802Sjkimfault.  This was a side effect of the deployment of the new
2514193267Sjkimmemory
2515193267Sjkimallocation model.
2516193267Sjkim
2517193267SjkimFixed a couple of problems with the Global Lock support
2518193267Sjkimintroduced
2519193267Sjkimin the last major build.  The "common" (1.0/2.0) internal FACS
2520167802Sjkimwas
2521167802Sjkimbeing overwritten with the FACS signature and clobbering the
2522193267SjkimGlobal Lock pointer.  Also, the actual firmware FACS was being
2523193267Sjkimunmapped after construction of the "common" FACS, preventing
2524193267Sjkimaccess to the actual Global Lock field within it.  The "common"
2525193267Sjkiminternal FACS is no longer installed as an actual ACPI table; it
2526167802Sjkimis used simply as a global.
2527193267Sjkim
2528193267SjkimCode and Data Size: Current core subsystem library sizes are
2529193267Sjkimshown
2530193267Sjkimbelow.  These are the code and data sizes for the acpica.lib
2531167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2532193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2533193267Sjkimversion of the code includes the debug output trace mechanism and
2534193267Sjkimhas a larger code and data size.  Note that these values will
2535193267Sjkimvary
2536167802Sjkimdepending on the efficiency of the compiler and the compiler
2537193267Sjkimoptions used during generation.
2538193267Sjkim
2539193267Sjkim  Previous Release (02_07_01)
2540193267Sjkim    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2541193267Sjkim    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2542193267Sjkim  Current Release:
2543167802Sjkim    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2544167802Sjkim    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2545193267Sjkim
2546193267Sjkim
2547193267Sjkim2) Linux
2548193267Sjkim
2549193267SjkimUpdated Linux-specific code for core macro and OSL interface
2550167802Sjkimchanges described above.
2551193267Sjkim
2552193267SjkimImproved /proc/acpi/event. It now can be opened only once and has
2553193267Sjkimproper poll functionality.
2554167802Sjkim
2555193267SjkimFixed and restructured power management (acpi_bus).
2556193267Sjkim
2557193267SjkimOnly create /proc "view by type" when devices of that class
2558193267Sjkimexist.
2559167802Sjkim
2560193267SjkimFixed "charging/discharging" bug (and others) in acpi_battery.
2561193267Sjkim
2562193267SjkimImproved thermal zone code.
2563167802Sjkim
2564193267Sjkim
2565193267Sjkim3) ASL Compiler, version X2039:
2566193267Sjkim
2567193267Sjkim
2568193267SjkimImplemented the new compiler restriction on ASL String hex/octal
2569167802Sjkimescapes to non-null, ASCII values.  An error results if an
2570167802Sjkiminvalid
2571167802Sjkimvalue is used.  (This will require an ACPI 2.0 specification
2572167802Sjkimchange.)
2573167802Sjkim
2574167802SjkimAML object labels that are output to the optional C and ASM
2575167802Sjkimsource
2576167802Sjkimare now prefixed with both the ACPI table signature and table ID
2577167802Sjkimto help guarantee uniqueness within a large BIOS project.
2578167802Sjkim
2579167802Sjkim
2580193267Sjkim----------------------------------------
2581193267SjkimSummary of changes for this label: 02_01_02
2582167802Sjkim
2583193267Sjkim1) ACPI CA Core Subsystem:
2584193267Sjkim
2585193267SjkimACPI 2.0 support is complete in the entire Core Subsystem and the
2586167802SjkimASL compiler. All new ACPI 2.0 operators are implemented and all
2587193267Sjkimother changes for ACPI 2.0 support are complete.  With
2588193267Sjkimsimultaneous code and data optimizations throughout the
2589193267Sjkimsubsystem,
2590167802SjkimACPI 2.0 support has been implemented with almost no additional
2591193267Sjkimcost in terms of code and data size.
2592193267Sjkim
2593193267SjkimImplemented a new mechanism for allocation of return buffers.  If
2594193267Sjkimthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
2595193267Sjkimbe allocated on behalf of the caller.  Consolidated all return
2596193267Sjkimbuffer validation and allocation to a common procedure.  Return
2597193267Sjkimbuffers will be allocated via the primary OSL allocation
2598167802Sjkiminterface
2599167802Sjkimsince it appears that a separate pool is not needed by most
2600167802Sjkimusers.
2601167802SjkimIf a separate pool is required for these buffers, the caller can
2602167802Sjkimstill use the original mechanism and pre-allocate the buffer(s).
2603167802Sjkim
2604193267SjkimImplemented support for string operands within the DerefOf
2605193267Sjkimoperator.
2606193267Sjkim
2607193267SjkimRestructured the Hardware and Event managers to be table driven,
2608167802Sjkimsimplifying the source code and reducing the amount of generated
2609193267Sjkimcode.
2610193267Sjkim
2611193267SjkimSplit the common read/write low-level ACPI register bitfield
2612193267Sjkimprocedure into a separate read and write, simplifying the code
2613193267Sjkimconsiderably.
2614167802Sjkim
2615193267SjkimObsoleted the AcpiOsCallocate OSL interface.  This interface was
2616193267Sjkimused only a handful of times and didn't have enough critical mass
2617193267Sjkimfor a separate interface.  Replaced with a common calloc
2618193267Sjkimprocedure
2619167802Sjkimin the core.
2620193267Sjkim
2621193267SjkimFixed a reported problem with the GPE number mapping mechanism
2622193267Sjkimthat allows GPE1 numbers to be non-contiguous with GPE0.
2623193267SjkimReorganized the GPE information and shrunk a large array that was
2624167802Sjkimoriginally large enough to hold info for all possible GPEs (256)
2625167802Sjkimto simply large enough to hold all GPEs up to the largest GPE
2626193267Sjkimnumber on the machine.
2627193267Sjkim
2628193267SjkimFixed a reported problem with resource structure alignment on 64-
2629193267Sjkimbit platforms.
2630167802Sjkim
2631193267SjkimChanged the AcpiEnableEvent and AcpiDisableEvent external
2632193267Sjkiminterfaces to not require any flags for the common case of
2633193267Sjkimenabling/disabling a GPE.
2634193267Sjkim
2635193267SjkimImplemented support to allow a "Notify" on a Processor object.
2636167802Sjkim
2637193267SjkimMost TBDs in comments within the source code have been resolved
2638193267Sjkimand eliminated.
2639193267Sjkim
2640193267SjkimFixed a problem in the interpreter where a standalone parent
2641167802Sjkimprefix (^) was not handled correctly in the interpreter and
2642167802Sjkimdebugger.
2643167802Sjkim
2644167802SjkimRemoved obsolete and unnecessary GPE save/restore code.
2645167802Sjkim
2646167802SjkimImplemented Field support in the ASL Load operator.  This allows
2647167802Sjkima
2648167802Sjkimtable to be loaded from a named field, in addition to loading a
2649167802Sjkimtable directly from an Operation Region.
2650167802Sjkim
2651167802SjkimImplemented timeout and handle support in the external Global
2652193267SjkimLock
2653193267Sjkiminterfaces.
2654193267Sjkim
2655193267SjkimFixed a problem in the AcpiDump utility where pathnames were no
2656167802Sjkimlonger being generated correctly during the dump of named
2657193267Sjkimobjects.
2658193267Sjkim
2659193267SjkimModified the AML debugger to give a full display of if/while
2660193267Sjkimpredicates instead of just one AML opcode at a time.  (The
2661193267Sjkimpredicate can have several nested ASL statements.)  The old
2662167802Sjkimmethod
2663193267Sjkimwas confusing during single stepping.
2664193267Sjkim
2665167802SjkimCode and Data Size: Current core subsystem library sizes are
2666193267Sjkimshown
2667193267Sjkimbelow. These are the code and data sizes for the acpica.lib
2668167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2669167802Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2670167802Sjkimversion of the code includes the debug output trace mechanism and
2671167802Sjkimhas a larger code and data size.  Note that these values will
2672167802Sjkimvary
2673167802Sjkimdepending on the efficiency of the compiler and the compiler
2674193267Sjkimoptions used during generation.
2675193267Sjkim
2676193267Sjkim  Previous Release (12_18_01)
2677193267Sjkim     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2678167802Sjkim     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2679193267Sjkim   Current Release:
2680193267Sjkim     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2681193267Sjkim     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2682193267Sjkim
2683167802Sjkim2) Linux
2684193267Sjkim
2685193267Sjkim Implemented fix for PIIX reverse throttling errata (Processor
2686193267Sjkimdriver)
2687193267Sjkim
2688167802SjkimAdded new Limit interface (Processor and Thermal drivers)
2689193267Sjkim
2690193267SjkimNew thermal policy (Thermal driver)
2691167802Sjkim
2692193267SjkimMany updates to /proc
2693193267Sjkim
2694193267SjkimBattery "low" event support (Battery driver)
2695193267Sjkim
2696167802SjkimSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
2697193267Sjkim
2698193267SjkimIA32 - IA64 initialization unification, no longer experimental
2699193267Sjkim
2700167802SjkimMenuconfig options redesigned
2701193267Sjkim
2702193267Sjkim3) ASL Compiler, version X2037:
2703193267Sjkim
2704193267SjkimImplemented several new output features to simplify integration
2705193267Sjkimof
2706193267SjkimAML code into  firmware: 1) Output the AML in C source code with
2707167802Sjkimlabels for each named ASL object.  The    original ASL source
2708167802Sjkimcode
2709167802Sjkimis interleaved as C comments. 2) Output the AML in ASM source
2710167802Sjkimcode
2711167802Sjkimwith labels and interleaved ASL    source. 3) Output the AML in
2712167802Sjkimraw hex table form, in either C or ASM.
2713167802Sjkim
2714167802SjkimImplemented support for optional string parameters to the
2715167802SjkimLoadTable operator.
2716167802Sjkim
2717167802SjkimCompleted support for embedded escape sequences within string
2718193267Sjkimliterals.  The compiler now supports all single character escapes
2719193267Sjkimas well as the Octal and Hex escapes.  Note: the insertion of a
2720193267Sjkimnull byte into a string literal (via the hex/octal escape) causes
2721193267Sjkimthe string to be immediately terminated.  A warning is issued.
2722193267Sjkim
2723167802SjkimFixed a problem where incorrect AML was generated for the case
2724167802Sjkimwhere an ASL namepath consists of a single parent prefix (
2725167802Sjkim
2726167802Sjkim) with no trailing name segments.
2727167802Sjkim
2728167802SjkimThe compiler has been successfully generated with a 64-bit C
2729167802Sjkimcompiler.
2730193267Sjkim
2731193267Sjkim
2732193267Sjkim
2733193267Sjkim
2734167802Sjkim----------------------------------------
2735193267SjkimSummary of changes for this label: 12_18_01
2736193267Sjkim
2737193267Sjkim1) Linux
2738167802Sjkim
2739193267SjkimEnhanced blacklist with reason and severity fields. Any table's
2740193267Sjkimsignature may now be used to identify a blacklisted system.
2741193267Sjkim
2742167802SjkimCall _PIC control method to inform the firmware which interrupt
2743193267Sjkimmodel the OS is using. Turn on any disabled link devices.
2744193267Sjkim
2745193267SjkimCleaned up busmgr /proc error handling (Andreas Dilger)
2746193267Sjkim
2747167802Sjkim 2) ACPI CA Core Subsystem:
2748193267Sjkim
2749193267SjkimImplemented ACPI 2.0 semantics for the "Break" operator (Exit
2750193267Sjkimfrom
2751193267Sjkimwhile loop)
2752193267Sjkim
2753167802SjkimCompleted implementation of the ACPI 2.0 "Continue",
2754193267Sjkim"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
2755193267Sjkimoperators.  All new ACPI 2.0 operators are now implemented in
2756193267Sjkimboth
2757193267Sjkimthe ASL compiler and the AML interpreter.  The only remaining
2758193267SjkimACPI
2759193267Sjkim2.0 task is support for the String data type in the DerefOf
2760167802Sjkimoperator.  Fixed a problem with AcquireMutex where the status
2761167802Sjkimcode
2762167802Sjkimwas lost if the caller had to actually wait for the mutex.
2763167802Sjkim
2764167802SjkimIncreased the maximum ASL Field size from 64K bits to 4G bits.
2765167802Sjkim
2766167802SjkimCompleted implementation of the external Global Lock interfaces -
2767167802Sjkim-
2768167802SjkimAcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
2769167802SjkimHandler parameters were added.
2770167802Sjkim
2771193267SjkimCompleted another pass at removing warnings and issues when
2772193267Sjkimcompiling with 64-bit compilers.  The code now compiles cleanly
2773193267Sjkimwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
2774193267Sjkimadd and subtract (diff) macros have changed considerably.
2775193267Sjkim
2776193267SjkimCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
2777193267Sjkim64-bit platforms, 32-bits on all others.  This type is used
2778193267Sjkimwherever memory allocation and/or the C sizeof() operator is
2779167802Sjkimused,
2780193267Sjkimand affects the OSL memory allocation interfaces AcpiOsAllocate
2781193267Sjkimand AcpiOsCallocate.
2782193267Sjkim
2783167802SjkimImplemented sticky user breakpoints in the AML debugger.
2784193267Sjkim
2785193267SjkimCode and Data Size: Current core subsystem library sizes are
2786167802Sjkimshown
2787193267Sjkimbelow. These are the code and data sizes for the acpica.lib
2788193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2789193267Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2790167802Sjkimversion of the code includes the debug output trace mechanism and
2791167802Sjkimhas a larger code and data size. Note that these values will vary
2792167802Sjkimdepending on the efficiency of the compiler and the compiler
2793167802Sjkimoptions used during generation.
2794167802Sjkim
2795167802Sjkim  Previous Release (12_05_01)
2796193267Sjkim     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2797193267Sjkim     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2798193267Sjkim   Current Release:
2799193267Sjkim     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2800193267Sjkim     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2801193267Sjkim
2802167802Sjkim 3) ASL Compiler, version X2034:
2803193267Sjkim
2804193267SjkimNow checks for (and generates an error if detected) the use of a
2805193267SjkimBreak or Continue statement without an enclosing While statement.
2806193267Sjkim
2807167802SjkimSuccessfully generated the compiler with the Intel 64-bit C
2808193267Sjkimcompiler.
2809193267Sjkim
2810167802Sjkim ----------------------------------------
2811193267SjkimSummary of changes for this label: 12_05_01
2812193267Sjkim
2813193267Sjkim 1) ACPI CA Core Subsystem:
2814193267Sjkim
2815193267SjkimThe ACPI 2.0 CopyObject operator is fully implemented.  This
2816193267Sjkimoperator creates a new copy of an object (and is also used to
2817167802Sjkimbypass the "implicit conversion" mechanism of the Store
2818167802Sjkimoperator.)
2819167802Sjkim
2820167802SjkimThe ACPI 2.0 semantics for the SizeOf operator are fully
2821167802Sjkimimplemented.  The change is that performing a SizeOf on a
2822167802Sjkimreference object causes an automatic dereference of the object to
2823167802Sjkimtha actual value before the size is evaluated. This behavior was
2824167802Sjkimundefined in ACPI 1.0.
2825167802Sjkim
2826167802SjkimThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
2827167802Sjkimhave been implemented.  The interrupt polarity and mode are now
2828193267Sjkimindependently set.
2829193267Sjkim
2830193267SjkimFixed a problem where ASL Constants (Zero, One, Ones, Revision)
2831167802Sjkimappearing in Package objects were not properly converted to
2832193267Sjkimintegers when the internal Package was converted to an external
2833193267Sjkimobject (via the AcpiEvaluateObject interface.)
2834167802Sjkim
2835167802SjkimFixed a problem with the namespace object deletion mechanism for
2836167802Sjkimobjects created by control methods.  There were two parts to this
2837167802Sjkimproblem: 1) Objects created during the initialization phase
2838167802Sjkimmethod
2839167802Sjkimparse were not being deleted, and 2) The object owner ID
2840193267Sjkimmechanism
2841193267Sjkimto track objects was broken.
2842193267Sjkim
2843167802SjkimFixed a problem where the use of the ASL Scope operator within a
2844193267Sjkimcontrol method would result in an invalid opcode exception.
2845193267Sjkim
2846167802SjkimFixed a problem introduced in the previous label where the buffer
2847193267Sjkimlength required for the _PRT structure was not being returned
2848193267Sjkimcorrectly.
2849193267Sjkim
2850167802SjkimCode and Data Size: Current core subsystem library sizes are
2851193267Sjkimshown
2852193267Sjkimbelow. These are the code and data sizes for the acpica.lib
2853193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these
2854167802Sjkimvalues do not include any ACPI driver or OSPM code.  The debug
2855193267Sjkimversion of the code includes the debug output trace mechanism and
2856193267Sjkimhas a larger code and data size.  Note that these values will
2857193267Sjkimvary
2858167802Sjkimdepending on the efficiency of the compiler and the compiler
2859193267Sjkimoptions used during generation.
2860193267Sjkim
2861167802Sjkim  Previous Release (11_20_01)
2862167802Sjkim     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2863167802Sjkim     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2864193267Sjkim
2865193267Sjkim  Current Release:
2866193267Sjkim     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2867167802Sjkim     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2868193267Sjkim
2869193267Sjkim 2) Linux:
2870193267Sjkim
2871193267SjkimUpdated all files to apply cleanly against 2.4.16.
2872193267Sjkim
2873193267SjkimAdded basic PCI Interrupt Routing Table (PRT) support for IA32
2874193267Sjkim(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
2875167802Sjkimversion supports both static and dyanmic PRT entries, but dynamic
2876167802Sjkimentries are treated as if they were static (not yet
2877167802Sjkimreconfigurable).  Architecture- specific code to use this data is
2878167802Sjkimabsent on IA32 but should be available shortly.
2879167802Sjkim
2880167802SjkimChanged the initialization sequence to start the ACPI interpreter
2881167802Sjkim(acpi_init) prior to initialization of the PCI driver (pci_init)
2882167802Sjkimin init/main.c.  This ordering is required to support PRT and
2883167802Sjkimfacilitate other (future) enhancement.  A side effect is that the
2884167802SjkimACPI bus driver and certain device drivers can no longer be
2885167802Sjkimloaded
2886193267Sjkimas modules.
2887193267Sjkim
2888167802SjkimModified the 'make menuconfig' options to allow PCI Interrupt
2889167802SjkimRouting support to be included without the ACPI Bus and other
2890167802Sjkimdevice drivers.
2891167802Sjkim
2892167802Sjkim 3) ASL Compiler, version X2033:
2893167802Sjkim
2894193267SjkimFixed some issues with the use of the new CopyObject and
2895193267SjkimDataTableRegion operators.  Both are fully functional.
2896193267Sjkim
2897193267Sjkim ----------------------------------------
2898193267SjkimSummary of changes for this label: 11_20_01
2899167802Sjkim
2900167802Sjkim 20 November 2001.  Summary of changes for this release.
2901193267Sjkim
2902193267Sjkim 1) ACPI CA Core Subsystem:
2903193267Sjkim
2904193267SjkimUpdated Index support to match ACPI 2.0 semantics.  Storing a
2905193267SjkimInteger, String, or Buffer to an Index of a Buffer will store
2906193267Sjkimonly
2907167802Sjkimthe least-significant byte of the source to the Indexed buffer
2908193267Sjkimbyte.  Multiple writes are not performed.
2909193267Sjkim
2910167802SjkimFixed a problem where the access type used in an AccessAs ASL
2911193267Sjkimoperator was not recorded correctly into the field object.
2912193267Sjkim
2913167802SjkimFixed a problem where ASL Event objects were created in a
2914193267Sjkimsignalled state. Events are now created in an unsignalled state.
2915193267Sjkim
2916193267SjkimThe internal object cache is now purged after table loading and
2917193267Sjkiminitialization to reduce the use of dynamic kernel memory -- on
2918167802Sjkimthe assumption that object use is greatest during the parse phase
2919167802Sjkimof the entire table (versus the run-time use of individual
2920193267Sjkimcontrol
2921193267Sjkimmethods.)
2922167802Sjkim
2923193267SjkimACPI 2.0 variable-length packages are now fully operational.
2924193267Sjkim
2925193267SjkimCode and Data Size: Code and Data optimizations have permitted
2926193267Sjkimnew
2927193267Sjkimfeature development with an actual reduction in the library size.
2928193267SjkimCurrent core subsystem library sizes are shown below.  These are
2929193267Sjkimthe code and data sizes for the acpica.lib produced by the
2930167802SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not
2931167802Sjkiminclude
2932167802Sjkimany ACPI driver or OSPM code.  The debug version of the code
2933167802Sjkimincludes the debug output trace mechanism and has a larger code
2934167802Sjkimand data size.  Note that these values will vary depending on the
2935167802Sjkimefficiency of the compiler and the compiler options used during
2936167802Sjkimgeneration.
2937167802Sjkim
2938167802Sjkim  Previous Release (11_09_01):
2939167802Sjkim     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
2940167802Sjkim     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
2941193267Sjkim
2942193267Sjkim  Current Release:
2943167802Sjkim     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2944167802Sjkim     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2945167802Sjkim
2946167802Sjkim 2) Linux:
2947167802Sjkim
2948167802SjkimEnhanced the ACPI boot-time initialization code to allow the use
2949193267Sjkimof Local APIC tables for processor enumeration on IA-32, and to
2950193267Sjkimpave the way for a fully MPS-free boot (on SMP systems) in the
2951193267Sjkimnear future.  This functionality replaces
2952193267Sjkimarch/i386/kernel/acpitables.c, which was introduced in an earlier
2953193267Sjkim2.4.15-preX release.  To enable this feature you must add
2954193267Sjkim"acpi_boot=on" to the kernel command line -- see the help entry
2955193267Sjkimfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
2956193267Sjkimin
2957193267Sjkimthe works...
2958193267Sjkim
2959193267SjkimRestructured the configuration options to allow boot-time table
2960193267Sjkimparsing support without inclusion of the ACPI Interpreter (and
2961193267Sjkimother) code.
2962193267Sjkim
2963193267SjkimNOTE: This release does not include fixes for the reported
2964193267Sjkimevents,
2965193267Sjkimpower-down, and thermal passive cooling issues (coming soon).
2966167802Sjkim
2967193267Sjkim 3) ASL Compiler:
2968193267Sjkim
2969167802SjkimAdded additional typechecking for Fields within restricted access
2970193267SjkimOperation Regions.  All fields within EC and CMOS regions must be
2971193267Sjkimdeclared with ByteAcc. All fields withing SMBus regions must be
2972193267Sjkimdeclared with the BufferAcc access type.
2973193267Sjkim
2974193267SjkimFixed a problem where the listing file output of control methods
2975193267Sjkimno longer interleaved the actual AML code with the ASL source
2976193267Sjkimcode.
2977167802Sjkim
2978167802Sjkim
2979167802Sjkim
2980167802Sjkim----------------------------------------
2981167802SjkimSummary of changes for this label: 11_09_01
2982167802Sjkim
2983167802Sjkim1) ACPI CA Core Subsystem:
2984167802Sjkim
2985167802SjkimImplemented ACPI 2.0-defined support for writes to fields with a
2986167802SjkimBuffer, String, or Integer source operand that is smaller than
2987167802Sjkimthe
2988193267Sjkimtarget field. In these cases, the source operand is zero-extended
2989193267Sjkimto fill the target field.
2990167802Sjkim
2991167802SjkimFixed a problem where a Field starting bit offset (within the
2992167802Sjkimparent operation region) was calculated incorrectly if the
2993167802Sjkimalignment of the field differed from the access width.  This
2994167802Sjkimaffected CreateWordField, CreateDwordField, CreateQwordField, and
2995167802Sjkimpossibly other fields that use the "AccessAny" keyword.
2996193267Sjkim
2997193267SjkimFixed a problem introduced in the 11_02_01 release where indirect
2998193267Sjkimstores through method arguments did not operate correctly.
2999193267Sjkim
3000193267Sjkim2) Linux:
3001167802Sjkim
3002193267SjkimImplemented boot-time ACPI table parsing support
3003193267Sjkim(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
3004193267Sjkimfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
3005193267Sjkimlegacy BIOS interfaces (e.g. MPS) for the configuration of system
3006193267Sjkimprocessors, memory, and interrupts during setup_arch().  Note
3007167802Sjkimthat
3008167802Sjkimthis patch does not include the required architecture-specific
3009193267Sjkimchanges required to apply this information -- subsequent patches
3010193267Sjkimwill be posted for both IA32 and IA64 to achieve this.
3011193267Sjkim
3012167802SjkimAdded low-level sleep support for IA32 platforms, courtesy of Pat
3013193267SjkimMochel. This allows IA32 systems to transition to/from various
3014193267Sjkimsleeping states (e.g. S1, S3), although the lack of a centralized
3015167802Sjkimdriver model and power-manageable drivers will prevent its
3016193267Sjkim(successful) use on most systems.
3017193267Sjkim
3018193267SjkimRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
3019167802Sjkimsubmenu, unified IA32 and IA64 options, added new "Boot using
3020193267SjkimACPI
3021193267Sjkimtables" option, etc.
3022193267Sjkim
3023167802SjkimIncreased the default timeout for the EC driver from 1ms to 10ms
3024193267Sjkim(1000 cycles of 10us) to try to address AE_TIME errors during EC
3025193267Sjkimtransactions.
3026167802Sjkim
3027193267Sjkim ----------------------------------------
3028193267SjkimSummary of changes for this label: 11_02_01
3029167802Sjkim
3030193267Sjkim1) ACPI CA Core Subsystem:
3031193267Sjkim
3032193267SjkimACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
3033193267Sjkim(QWordAcc keyword). All ACPI 2.0 64-bit support is now
3034193267Sjkimimplemented.
3035193267Sjkim
3036193267SjkimOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
3037167802Sjkimchanges to support ACPI 2.0 Qword field access.  Read/Write
3038167802SjkimPciConfiguration(), Read/Write Memory(), and Read/Write Port()
3039167802Sjkimnow
3040167802Sjkimaccept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
3041167802Sjkimthe value parameter for the address space handler interface is
3042167802Sjkimnow
3043167802Sjkiman ACPI_INTEGER.  OSL implementations of these interfaces must
3044167802Sjkimnow
3045167802Sjkimhandle the case where the Width parameter is 64.
3046167802Sjkim
3047167802SjkimIndex Fields: Fixed a problem where unaligned bit assembly and
3048193267Sjkimdisassembly for IndexFields was not supported correctly.
3049193267Sjkim
3050167802SjkimIndex and Bank Fields:  Nested Index and Bank Fields are now
3051167802Sjkimsupported. During field access, a check is performed to ensure
3052167802Sjkimthat the value written to an Index or Bank register is not out of
3053167802Sjkimthe range of the register.  The Index (or Bank) register is
3054167802Sjkimwritten before each access to the field data. Future support will
3055167802Sjkiminclude allowing individual IndexFields to be wider than the
3056193267SjkimDataRegister width.
3057193267Sjkim
3058193267SjkimFields: Fixed a problem where the AML interpreter was incorrectly
3059193267Sjkimattempting to write beyond the end of a Field/OpRegion.  This was
3060193267Sjkima boundary case that occurred when a DWORD field was written to a
3061193267SjkimBYTE access OpRegion, forcing multiple writes and causing the
3062193267Sjkiminterpreter to write one datum too many.
3063193267Sjkim
3064167802SjkimFields: Fixed a problem with Field/OpRegion access where the
3065193267Sjkimstarting bit address of a field was incorrectly calculated if the
3066193267Sjkimcurrent access type was wider than a byte (WordAcc, DwordAcc, or
3067193267SjkimQwordAcc).
3068167802Sjkim
3069193267SjkimFields: Fixed a problem where forward references to individual
3070193267SjkimFieldUnits (individual Field names within a Field definition)
3071167802Sjkimwere
3072193267Sjkimnot resolved during the AML table load.
3073193267Sjkim
3074167802SjkimFields: Fixed a problem where forward references from a Field
3075193267Sjkimdefinition to the parent Operation Region definition were not
3076193267Sjkimresolved during the AML table load.
3077193267Sjkim
3078193267SjkimFields: Duplicate FieldUnit names within a scope are now detected
3079193267Sjkimduring AML table load.
3080193267Sjkim
3081193267SjkimAcpi Interfaces: Fixed a problem where the AcpiGetName()
3082167802Sjkiminterface
3083167802Sjkimreturned an incorrect name for the root node.
3084167802Sjkim
3085167802SjkimCode and Data Size: Code and Data optimizations have permitted
3086167802Sjkimnew
3087167802Sjkimfeature development with an actual reduction in the library size.
3088167802SjkimCurrent core subsystem library sizes are shown below.  These are
3089167802Sjkimthe code and data sizes for the acpica.lib produced by the
3090167802SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not
3091167802Sjkiminclude
3092167802Sjkimany ACPI driver or OSPM code.  The debug version of the code
3093193267Sjkimincludes the debug output trace mechanism and has a larger code
3094193267Sjkimand data size.  Note that these values will vary depending on the
3095193267Sjkimefficiency of the compiler and the compiler options used during
3096167802Sjkimgeneration.
3097193267Sjkim
3098193267Sjkim  Previous Release (10_18_01):
3099193267Sjkim     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3100167802Sjkim     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3101167802Sjkim
3102167802Sjkim  Current Release:
3103167802Sjkim     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3104167802Sjkim     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3105167802Sjkim
3106193267Sjkim 2) Linux:
3107193267Sjkim
3108193267SjkimImproved /proc processor output (Pavel Machek) Re-added
3109193267SjkimMODULE_LICENSE("GPL") to all modules.
3110193267Sjkim
3111193267Sjkim 3) ASL Compiler version X2030:
3112167802Sjkim
3113193267SjkimDuplicate FieldUnit names within a scope are now detected and
3114193267Sjkimflagged as errors.
3115193267Sjkim
3116193267Sjkim 4) Documentation:
3117193267Sjkim
3118167802SjkimProgrammer Reference updated to reflect OSL and address space
3119193267Sjkimhandler interface changes described above.
3120193267Sjkim
3121167802Sjkim----------------------------------------
3122193267SjkimSummary of changes for this label: 10_18_01
3123193267Sjkim
3124193267SjkimACPI CA Core Subsystem:
3125167802Sjkim
3126193267SjkimFixed a problem with the internal object reference count
3127193267Sjkimmechanism
3128193267Sjkimthat occasionally caused premature object deletion. This resolves
3129193267Sjkimall of the outstanding problem reports where an object is deleted
3130193267Sjkimin the middle of an interpreter evaluation.  Although this
3131167802Sjkimproblem
3132193267Sjkimonly showed up in rather obscure cases, the solution to the
3133193267Sjkimproblem involved an adjustment of all reference counts involving
3134193267Sjkimobjects attached to namespace nodes.
3135193267Sjkim
3136167802SjkimFixed a problem with Field support in the interpreter where
3137193267Sjkimwriting to an aligned field whose length is an exact multiple (2
3138193267Sjkimor greater) of the field access granularity would cause an
3139167802Sjkimattempt
3140193267Sjkimto write beyond the end of the field.
3141193267Sjkim
3142193267SjkimThe top level AML opcode execution functions within the
3143193267Sjkiminterpreter have been renamed with a more meaningful and
3144193267Sjkimconsistent naming convention.  The modules exmonad.c and
3145193267Sjkimexdyadic.c were eliminated.  New modules are exoparg1.c,
3146193267Sjkimexoparg2.c, exoparg3.c, and exoparg6.c.
3147167802Sjkim
3148167802SjkimSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
3149167802Sjkim
3150167802SjkimFixed a problem where the AML debugger was causing some internal
3151167802Sjkimobjects to not be deleted during subsystem termination.
3152167802Sjkim
3153167802SjkimFixed a problem with the external AcpiEvaluateObject interface
3154167802Sjkimwhere the subsystem would fault if the named object to be
3155167802Sjkimevaluated refered to a constant such as Zero, Ones, etc.
3156167802Sjkim
3157167802SjkimFixed a problem with IndexFields and BankFields where the
3158193267Sjkimsubsystem would fault if the index, data, or bank registers were
3159193267Sjkimnot defined in the same scope as the field itself.
3160193267Sjkim
3161167802SjkimAdded printf format string checking for compilers that support
3162193267Sjkimthis feature.  Corrected more than 50 instances of issues with
3163193267Sjkimformat specifiers within invocations of ACPI_DEBUG_PRINT
3164193267Sjkimthroughout the core subsystem code.
3165167802Sjkim
3166193267SjkimThe ASL "Revision" operator now returns the ACPI support level
3167193267Sjkimimplemented in the core - the value "2" since the ACPI 2.0
3168193267Sjkimsupport
3169167802Sjkimis more than 50% implemented.
3170167802Sjkim
3171167802SjkimEnhanced the output of the AML debugger "dump namespace" command
3172167802Sjkimto output in a more human-readable form.
3173167802Sjkim
3174167802SjkimCurrent core subsystem library code sizes are shown below.  These
3175193267Sjkimare the code and data sizes for the acpica.lib produced by the
3176193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not
3177193267Sjkiminclude
3178193267Sjkimany ACPI driver or OSPM code.  The debug version of the code
3179193267Sjkimincludes the full debug trace mechanism -- leading to a much
3180193267Sjkimlarger code and data size.  Note that these values will vary
3181167802Sjkimdepending on the efficiency of the compiler and the compiler
3182193267Sjkimoptions used during generation.
3183193267Sjkim
3184193267Sjkim     Previous Label (09_20_01):
3185167802Sjkim     Non-Debug Version:    65K Code,     5K Data,     70K Total
3186193267Sjkim     Debug Version:       138K Code,    58K Data,    196K Total
3187193267Sjkim
3188167802Sjkim     This Label:
3189193267Sjkim
3190193267Sjkim     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3191193267Sjkim     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3192193267Sjkim
3193167802SjkimLinux:
3194193267Sjkim
3195193267SjkimImplemented a "Bad BIOS Blacklist" to track machines that have
3196167802Sjkimknown ASL/AML problems.
3197193267Sjkim
3198193267SjkimEnhanced the /proc interface for the thermal zone driver and
3199193267Sjkimadded
3200193267Sjkimsupport for _HOT (the critical suspend trip point).  The 'info'
3201193267Sjkimfile now includes threshold/policy information, and allows
3202193267Sjkimsetting
3203193267Sjkimof _SCP (cooling preference) and _TZP (polling frequency) values
3204167802Sjkimto the 'info' file. Examples: "echo tzp=5 > info" sets the
3205167802Sjkimpolling
3206167802Sjkimfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling
3207167802Sjkimpreference to the passive/quiet mode (if supported by the ASL).
3208167802Sjkim
3209167802SjkimImplemented a workaround for a gcc bug that resuted in an OOPs
3210167802Sjkimwhen loading the control method battery driver.
3211167802Sjkim
3212167802Sjkim ----------------------------------------
3213167802SjkimSummary of changes for this label: 09_20_01
3214167802Sjkim
3215193267Sjkim ACPI CA Core Subsystem:
3216193267Sjkim
3217167802SjkimThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
3218193267Sjkimmodified to allow individual GPE levels to be flagged as wake-
3219193267Sjkimenabled (i.e., these GPEs are to remain enabled when the platform
3220193267Sjkimsleeps.)
3221193267Sjkim
3222167802SjkimThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
3223193267Sjkimsupport wake-enabled GPEs.  This means that upon entering the
3224193267Sjkimsleep state, all GPEs that are not wake-enabled are disabled.
3225193267SjkimWhen leaving the sleep state, these GPEs are reenabled.
3226193267Sjkim
3227167802SjkimA local double-precision divide/modulo module has been added to
3228193267Sjkimenhance portability to OS kernels where a 64-bit math library is
3229193267Sjkimnot available.  The new module is "utmath.c".
3230193267Sjkim
3231167802SjkimSeveral optimizations have been made to reduce the use of CPU
3232193267Sjkimstack.  Originally over 2K, the maximum stack usage is now below
3233193267Sjkim2K at 1860  bytes (1.82k)
3234167802Sjkim
3235167802SjkimFixed a problem with the AcpiGetFirmwareTable interface where the
3236151937Sjkimroot table pointer was not mapped into a logical address
3237151937Sjkimproperly.
3238151937Sjkim
3239151937SjkimFixed a problem where a NULL pointer was being dereferenced in
3240193267Sjkimthe
3241193267Sjkiminterpreter code for the ASL Notify operator.
3242193267Sjkim
3243193267SjkimFixed a problem where the use of the ASL Revision operator
3244151937Sjkimreturned an error. This operator now returns the current version
3245193267Sjkimof the ACPI CA core subsystem.
3246193267Sjkim
3247193267SjkimFixed a problem where objects passed as control method parameters
3248193267Sjkimto AcpiEvaluateObject were always deleted at method termination.
3249193267SjkimHowever, these objects may end up being stored into the namespace
3250151937Sjkimby the called method.  The object reference count mechanism was
3251193267Sjkimapplied to these objects instead of a force delete.
3252193267Sjkim
3253193267SjkimFixed a problem where static strings or buffers (contained in the
3254151937SjkimAML code) that are declared as package elements within the ASL
3255193267Sjkimcode could cause a fault because the interpreter would attempt to
3256193267Sjkimdelete them.  These objects are now marked with the "static
3257151937Sjkimobject" flag to prevent any attempt to delete them.
3258193267Sjkim
3259193267SjkimImplemented an interpreter optimization to use operands directly
3260193267Sjkimfrom the state object instead of extracting the operands to local
3261193267Sjkimvariables.  This reduces stack use and code size, and improves
3262151937Sjkimperformance.
3263193267Sjkim
3264193267SjkimThe module exxface.c was eliminated as it was an unnecessary
3265193267Sjkimextra
3266193267Sjkimlayer of code.
3267193267Sjkim
3268193267SjkimCurrent core subsystem library code sizes are shown below.  These
3269193267Sjkimare the code and data sizes for the acpica.lib produced by the
3270151937SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not
3271151937Sjkiminclude
3272151937Sjkimany ACPI driver or OSPM code.  The debug version of the code
3273151937Sjkimincludes the full debug trace mechanism -- leading to a much
3274151937Sjkimlarger code and data size.  Note that these values will vary
3275151937Sjkimdepending on the efficiency of the compiler and the compiler
3276151937Sjkimoptions used during generation.
3277151937Sjkim
3278151937Sjkim  Non-Debug Version:  65K Code,   5K Data,   70K Total
3279167802Sjkim(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
3280151937SjkimTotal  (Previously 195K)
3281151937Sjkim
3282193267SjkimLinux:
3283193267Sjkim
3284193267SjkimSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
3285193267SjkimInteger objects are now 64 bits wide
3286193267Sjkim
3287193267SjkimAll Acpi data types and structures are now in lower case.  Only
3288193267SjkimAcpi macros are upper case for differentiation.
3289193267Sjkim
3290151937Sjkim Documentation:
3291193267Sjkim
3292193267SjkimChanges to the external interfaces as described above.
3293193267Sjkim
3294151937Sjkim ----------------------------------------
3295193267SjkimSummary of changes for this label: 08_31_01
3296193267Sjkim
3297151937Sjkim ACPI CA Core Subsystem:
3298193267Sjkim
3299193267SjkimA bug with interpreter implementation of the ASL Divide operator
3300151937Sjkimwas found and fixed.  The implicit function return value (not the
3301151937Sjkimexplicit store operands) was returning the remainder instead of
3302151937Sjkimthe quotient.  This was a longstanding bug and it fixes several
3303151937Sjkimknown outstanding issues on various platforms.
3304151937Sjkim
3305151937SjkimThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
3306193267Sjkimbeen further optimized for size.  There are 700 invocations of
3307193267Sjkimthe
3308193267SjkimDEBUG_PRINT macro alone, so each optimization reduces the size of
3309193267Sjkimthe debug version of the subsystem significantly.
3310193267Sjkim
3311193267SjkimA stack trace mechanism has been implemented.  The maximum stack
3312193267Sjkimusage is about 2K on 32-bit platforms.  The debugger command
3313193267Sjkim"stat
3314151937Sjkimstack" will display the current maximum stack usage.
3315193267Sjkim
3316193267SjkimAll public symbols and global variables within the subsystem are
3317193267Sjkimnow prefixed with the string "Acpi".  This keeps all of the
3318151937Sjkimsymbols grouped together in a kernel map, and avoids conflicts
3319193267Sjkimwith other kernel subsystems.
3320193267Sjkim
3321193267SjkimMost of the internal fixed lookup tables have been moved into the
3322193267Sjkimcode segment via the const operator.
3323193267Sjkim
3324193267SjkimSeveral enhancements have been made to the interpreter to both
3325193267Sjkimreduce the code size and improve performance.
3326193267Sjkim
3327151937SjkimCurrent core subsystem library code sizes are shown below.  These
3328193267Sjkimare the code and data sizes for the acpica.lib produced by the
3329193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not
3330193267Sjkiminclude
3331193267Sjkimany ACPI driver or OSPM code.  The debug version of the code
3332193267Sjkimincludes the full debug trace mechanism which contains over 700
3333151937Sjkiminvocations of the DEBUG_PRINT macro, 500 function entry macro
3334151937Sjkiminvocations, and over 900 function exit macro invocations --
3335193267Sjkimleading to a much larger code and data size.  Note that these
3336193267Sjkimvalues will vary depending on the efficiency of the compiler and
3337193267Sjkimthe compiler options used during generation.
3338151937Sjkim
3339193267Sjkim        Non-Debug Version:  64K Code,   5K Data,   69K Total
3340193267SjkimDebug Version:     137K Code,  58K Data,  195K Total
3341193267Sjkim
3342193267Sjkim Linux:
3343193267Sjkim
3344193267SjkimImplemented wbinvd() macro, pending a kernel-wide definition.
3345193267Sjkim
3346151937SjkimFixed /proc/acpi/event to handle poll() and short reads.
3347151937Sjkim
3348151937Sjkim ASL Compiler, version X2026:
3349151937Sjkim
3350151937SjkimFixed a problem introduced in the previous label where the AML
3351151937Sjkimcode emitted for package objects produced packages with zero
3352151937Sjkimlength.
3353151937Sjkim
3354151937Sjkim ----------------------------------------
3355151937SjkimSummary of changes for this label: 08_16_01
3356151937Sjkim
3357193267SjkimACPI CA Core Subsystem:
3358193267Sjkim
3359151937SjkimThe following ACPI 2.0 ASL operators have been implemented in the
3360151937SjkimAML interpreter (These are already supported by the Intel ASL
3361151937Sjkimcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
3362151937Sjkimand
3363151937SjkimToBuffer.  Support for 64-bit AML constants is implemented in the
3364151937SjkimAML parser, debugger, and disassembler.
3365193267Sjkim
3366193267SjkimThe internal memory tracking mechanism (leak detection code) has
3367193267Sjkimbeen upgraded to reduce the memory overhead (a separate tracking
3368151937Sjkimblock is no longer allocated for each memory allocation), and now
3369193267Sjkimsupports all of the internal object caches.
3370193267Sjkim
3371193267SjkimThe data structures and code for the internal object caches have
3372193267Sjkimbeen coelesced and optimized so that there is a single cache and
3373151937Sjkimmemory list data structure and a single group of functions that
3374193267Sjkimimplement generic cache management.  This has reduced the code
3375193267Sjkimsize in both the debug and release versions of the subsystem.
3376151937Sjkim
3377193267SjkimThe DEBUG_PRINT macro(s) have been optimized for size and
3378193267Sjkimreplaced
3379151937Sjkimby ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
3380193267Sjkimdifferent, because it generates a single call to an internal
3381193267Sjkimfunction.  This results in a savings of about 90 bytes per
3382193267Sjkiminvocation, resulting in an overall code and data savings of
3383193267Sjkimabout
3384193267Sjkim16% in the debug version of the subsystem.
3385193267Sjkim
3386193267Sjkim Linux:
3387151937Sjkim
3388151937SjkimFixed C3 disk corruption problems and re-enabled C3 on supporting
3389151937Sjkimmachines.
3390151937Sjkim
3391151937SjkimIntegrated low-level sleep code by Patrick Mochel.
3392151937Sjkim
3393151937SjkimFurther tweaked source code Linuxization.
3394151937Sjkim
3395151937SjkimOther minor fixes.
3396151937Sjkim
3397151937Sjkim ASL Compiler:
3398193267Sjkim
3399193267SjkimSupport for ACPI 2.0 variable length packages is fixed/completed.
3400193267Sjkim
3401151937SjkimFixed a problem where the optional length parameter for the ACPI
3402193267Sjkim2.0 ToString operator.
3403193267Sjkim
3404193267SjkimFixed multiple extraneous error messages when a syntax error is
3405193267Sjkimdetected within the declaration line of a control method.
3406193267Sjkim
3407151937Sjkim ----------------------------------------
3408151937SjkimSummary of changes for this label: 07_17_01
3409151937Sjkim
3410151937SjkimACPI CA Core Subsystem:
3411151937Sjkim
3412151937SjkimAdded a new interface named AcpiGetFirmwareTable to obtain any
3413193267SjkimACPI table via the ACPI signature.  The interface can be called
3414193267Sjkimat
3415193267Sjkimany time during kernel initialization, even before the kernel
3416193267Sjkimvirtual memory manager is initialized and paging is enabled.
3417193267SjkimThis
3418151937Sjkimallows kernel subsystems to obtain ACPI tables very early, even
3419193267Sjkimbefore the ACPI CA subsystem is initialized.
3420193267Sjkim
3421193267SjkimFixed a problem where Fields defined with the AnyAcc attribute
3422193267Sjkimcould be resolved to the incorrect address under the following
3423151937Sjkimconditions: 1) the field width is larger than 8 bits and 2) the
3424193267Sjkimparent operation region is not defined on a DWORD boundary.
3425193267Sjkim
3426193267SjkimFixed a problem where the interpreter is not being locked during
3427151937Sjkimnamespace initialization (during execution of the _INI control
3428193267Sjkimmethods), causing an error when an attempt is made to release it
3429193267Sjkimlater.
3430151937Sjkim
3431193267SjkimACPI 2.0 support in the AML Interpreter has begun and will be
3432193267Sjkimongoing throughout the rest of this year.  In this label, The Mod
3433151937Sjkimoperator is implemented.
3434193267Sjkim
3435193267SjkimAdded a new data type to contain full PCI addresses named
3436151937SjkimACPI_PCI_ID. This structure contains the PCI Segment, Bus,
3437193267SjkimDevice,
3438193267Sjkimand Function values.
3439193267Sjkim
3440193267Sjkim Linux:
3441193267Sjkim
3442193267SjkimEnhanced the Linux version of the source code to change most
3443193267Sjkimcapitalized ACPI type names to lowercase. For example, all
3444151937Sjkiminstances of ACPI_STATUS are changed to acpi_status.  This will
3445151937Sjkimresult in a large diff, but the change is strictly cosmetic and
3446151937Sjkimaligns the CA code closer to the Linux coding standard.
3447151937Sjkim
3448151937SjkimOSL Interfaces:
3449151937Sjkim
3450151937SjkimThe interfaces to the PCI configuration space have been changed
3451151937Sjkimto
3452151937Sjkimadd the PCI Segment number and to split the single 32-bit
3453151937Sjkimcombined
3454151937SjkimDeviceFunction field into two 16-bit fields.  This was
3455193267Sjkimaccomplished by moving the four values that define an address in
3456193267SjkimPCI configuration space (segment, bus, device, and function) to
3457193267Sjkimthe new ACPI_PCI_ID structure.
3458151937Sjkim
3459193267SjkimThe changes to the PCI configuration space interfaces led to a
3460193267Sjkimreexamination of the complete set of address space access
3461193267Sjkiminterfaces for PCI, I/O, and Memory.  The previously existing 18
3462151937Sjkiminterfaces have proven difficult to maintain (any small change
3463193267Sjkimmust be propagated across at least 6 interfaces) and do not
3464193267Sjkimeasily
3465151937Sjkimallow for future expansion to 64 bits if necessary.  Also, on
3466193267Sjkimsome
3467151937Sjkimsystems, it would not be appropriate to demultiplex the access
3468193267Sjkimwidth (8, 16, 32,or 64) before calling the OSL if the
3469193267Sjkimcorresponding native OS interfaces contain a similar access width
3470151937Sjkimparameter.  For these reasons, the 18 address space interfaces
3471151937Sjkimhave been replaced by these 6 new ones:
3472151937Sjkim
3473193267SjkimAcpiOsReadPciConfiguration
3474151937SjkimAcpiOsWritePciConfiguration
3475193267SjkimAcpiOsReadMemory
3476193267SjkimAcpiOsWriteMemory
3477193267SjkimAcpiOsReadPort
3478193267SjkimAcpiOsWritePort
3479193267Sjkim
3480193267SjkimAdded a new interface named AcpiOsGetRootPointer to allow the OSL
3481193267Sjkimto perform the platform and/or OS-specific actions necessary to
3482193267Sjkimobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
3483193267Sjkiminterface will simply call down to the CA core to perform the low-
3484193267Sjkimmemory search for the table.  On IA-64, the RSDP is obtained from
3485193267SjkimEFI.  Migrating this interface to the OSL allows the CA core to
3486193267Sjkimremain OS and platform independent.
3487193267Sjkim
3488193267SjkimAdded a new interface named AcpiOsSignal to provide a generic
3489193267Sjkim"function code and pointer" interface for various miscellaneous
3490193267Sjkimsignals and notifications that must be made to the host OS.   The
3491193267Sjkimfirst such signals are intended to support the ASL Fatal and
3492151937SjkimBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
3493151937Sjkiminterface has been obsoleted.
3494151937Sjkim
3495151937SjkimThe definition of the AcpiFormatException interface has been
3496151937Sjkimchanged to simplify its use.  The caller no longer must supply a
3497151937Sjkimbuffer to the call; A pointer to a const string is now returned
3498193267Sjkimdirectly.  This allows the call to be easily used in printf
3499193267Sjkimstatements, etc. since the caller does not have to manage a local
3500151937Sjkimbuffer.
3501193267Sjkim
3502193267Sjkim
3503193267Sjkim ASL Compiler, Version X2025:
3504193267Sjkim
3505193267SjkimThe ACPI 2.0 Switch/Case/Default operators have been implemented
3506193267Sjkimand are fully functional.  They will work with all ACPI 1.0
3507193267Sjkiminterpreters, since the operators are simply translated to
3508193267SjkimIf/Else
3509151937Sjkimpairs.
3510151937Sjkim
3511151937SjkimThe ACPI 2.0 ElseIf operator is implemented and will also work
3512151937Sjkimwith 1.0 interpreters, for the same reason.
3513151937Sjkim
3514151937SjkimImplemented support for ACPI 2.0 variable-length packages.  These
3515193267Sjkimpackages have a separate opcode, and their size is determined by
3516193267Sjkimthe interpreter at run-time.
3517193267Sjkim
3518193267SjkimDocumentation The ACPI CA Programmer Reference has been updated
3519151937Sjkimto
3520193267Sjkimreflect the new interfaces and changes to existing interfaces.
3521193267Sjkim
3522193267Sjkim ------------------------------------------
3523193267SjkimSummary of changes for this label: 06_15_01
3524151937Sjkim
3525193267Sjkim ACPI CA Core Subsystem:
3526193267Sjkim
3527193267SjkimFixed a problem where a DWORD-accessed field within a Buffer
3528193267Sjkimobject would get its byte address inadvertently rounded down to
3529151937Sjkimthe nearest DWORD.  Buffers are always Byte-accessible.
3530151937Sjkim
3531193267Sjkim ASL Compiler, version X2024:
3532193267Sjkim
3533193267SjkimFixed a problem where the Switch() operator would either fault or
3534151937Sjkimhang the compiler.  Note however, that the AML code for this ACPI
3535151937Sjkim2.0 operator is not yet implemented.
3536151937Sjkim
3537193267SjkimCompiler uses the new AcpiOsGetTimer interface to obtain compile
3538193267Sjkimtimings.
3539151937Sjkim
3540193267SjkimImplementation of the CreateField operator automatically converts
3541193267Sjkima reference to a named field within a resource descriptor from a
3542193267Sjkimbyte offset to a bit offset if required.
3543193267Sjkim
3544193267SjkimAdded some missing named fields from the resource descriptor
3545193267Sjkimsupport. These are the names that are automatically created by
3546193267Sjkimthe
3547151937Sjkimcompiler to reference fields within a descriptor.  They are only
3548151937Sjkimvalid at compile time and are not passed through to the AML
3549151937Sjkiminterpreter.
3550151937Sjkim
3551151937SjkimResource descriptor named fields are now typed as Integers and
3552151937Sjkimsubject to compile-time typechecking when used in expressions.
3553151937Sjkim
3554151937Sjkim ------------------------------------------
3555151937SjkimSummary of changes for this label: 05_18_01
3556151937Sjkim
3557151937Sjkim ACPI CA Core Subsystem:
3558193267Sjkim
3559193267SjkimFixed a couple of problems in the Field support code where bits
3560193267Sjkimfrom adjacent fields could be returned along with the proper
3561151937Sjkimfield
3562151937Sjkimbits. Restructured the field support code to improve performance,
3563151937Sjkimreadability and maintainability.
3564151937Sjkim
3565151937SjkimNew DEBUG_PRINTP macro automatically inserts the procedure name
3566151937Sjkiminto the output, saving hundreds of copies of procedure name
3567193267Sjkimstrings within the source, shrinking the memory footprint of the
3568193267Sjkimdebug version of the core subsystem.
3569193267Sjkim
3570193267Sjkim Source Code Structure:
3571193267Sjkim
3572193267SjkimThe source code directory tree was restructured to reflect the
3573193267Sjkimcurrent organization of the component architecture.  Some files
3574193267Sjkimand directories have been moved and/or renamed.
3575151937Sjkim
3576193267Sjkim Linux:
3577193267Sjkim
3578193267SjkimFixed leaking kacpidpc processes.
3579193267Sjkim
3580193267SjkimFixed queueing event data even when /proc/acpi/event is not
3581193267Sjkimopened.
3582193267Sjkim
3583151937Sjkim ASL Compiler, version X2020:
3584193267Sjkim
3585193267SjkimMemory allocation performance enhancement - over 24X compile time
3586193267Sjkimimprovement on large ASL files.  Parse nodes and namestring
3587193267Sjkimbuffers are now allocated from a large internal compiler buffer.
3588193267Sjkim
3589151937SjkimThe temporary .SRC file is deleted unless the "-s" option is
3590151937Sjkimspecified
3591193267Sjkim
3592193267SjkimThe "-d" debug output option now sends all output to the .DBG
3593193267Sjkimfile
3594193267Sjkiminstead of the console.
3595193267Sjkim
3596151937Sjkim"External" second parameter is now optional
3597193267Sjkim
3598193267Sjkim"ElseIf" syntax now properly allows the predicate
3599193267Sjkim
3600151937SjkimLast operand to "Load" now recognized as a Target operand
3601193267Sjkim
3602193267SjkimDebug object can now be used anywhere as a normal object.
3603151937Sjkim
3604193267SjkimResourceTemplate now returns an object of type BUFFER
3605193267Sjkim
3606193267SjkimEISAID now returns an object of type INTEGER
3607193267Sjkim
3608193267Sjkim"Index" now works with a STRING operand
3609193267Sjkim
3610193267Sjkim"LoadTable" now accepts optional parameters
3611151937Sjkim
3612151937Sjkim"ToString" length parameter is now optional
3613151937Sjkim
3614151937Sjkim"Interrupt (ResourceType," parse error fixed.
3615151937Sjkim
3616151937Sjkim"Register" with a user-defined region space parse error fixed
3617151937Sjkim
3618151937SjkimEscaped backslash at the end of a string ("\\") scan/parse error
3619151937Sjkimfixed
3620151937Sjkim
3621151937Sjkim"Revision" is now an object of type INTEGER.
3622151937Sjkim
3623151937Sjkim
3624193267Sjkim
3625193267Sjkim------------------------------------------
3626193267SjkimSummary of changes for this label: 05_02_01
3627193267Sjkim
3628193267SjkimLinux:
3629193267Sjkim
3630151937Sjkim/proc/acpi/event now blocks properly.
3631193267Sjkim
3632193267SjkimRemoved /proc/sys/acpi. You can still dump your DSDT from
3633193267Sjkim/proc/acpi/dsdt.
3634193267Sjkim
3635193267Sjkim ACPI CA Core Subsystem:
3636151937Sjkim
3637193267SjkimFixed a problem introduced in the previous label where some of
3638193267Sjkimthe
3639193267Sjkim"small" resource descriptor types were not recognized.
3640151937Sjkim
3641193267SjkimImproved error messages for the case where an ASL Field is
3642193267Sjkimoutside
3643193267Sjkimthe range of the parent operation region.
3644193267Sjkim
3645151937Sjkim ASL Compiler, version X2018:
3646193267Sjkim
3647193267SjkimAdded error detection for ASL Fields that extend beyond the
3648151937Sjkimlength
3649193267Sjkimof the parent operation region (only if the length of the region
3650193267Sjkimis known at compile time.)  This includes fields that have a
3651193267Sjkimminimum access width that is smaller than the parent region, and
3652193267Sjkimindividual field units that are partially or entirely beyond the
3653151937Sjkimextent of the parent.
3654151937Sjkim
3655151937Sjkim
3656151937Sjkim
3657151937Sjkim------------------------------------------
3658193267SjkimSummary of changes for this label: 04_27_01
3659193267Sjkim
3660193267Sjkim ACPI CA Core Subsystem:
3661193267Sjkim
3662193267SjkimFixed a problem where the namespace mutex could be released at
3663193267Sjkimthe
3664193267Sjkimwrong time during execution of AcpiRemoveAddressSpaceHandler.
3665151937Sjkim
3666151937SjkimAdded optional thread ID output for debug traces, to simplify
3667151937Sjkimdebugging of multiple threads.  Added context switch notification
3668151937Sjkimwhen the debug code realizes that a different thread is now
3669151937Sjkimexecuting ACPI code.
3670151937Sjkim
3671151937SjkimSome additional external data types have been prefixed with the
3672151937Sjkimstring "ACPI_" for consistency.  This may effect existing code.
3673151937SjkimThe data types affected are the external callback typedefs -
3674151937Sjkime.g.,
3675151937SjkimWALK_CALLBACK becomes ACPI_WALK_CALLBACK.
3676193267Sjkim
3677193267Sjkim Linux:
3678193267Sjkim
3679151937SjkimFixed an issue with the OSL semaphore implementation where a
3680151937Sjkimthread was waking up with an error from receiving a SIGCHLD
3681151937Sjkimsignal.
3682151937Sjkim
3683151937SjkimLinux version of ACPI CA now uses the system C library for string
3684151937Sjkimmanipulation routines instead of a local implementation.
3685193267Sjkim
3686193267SjkimCleaned up comments and removed TBDs.
3687193267Sjkim
3688193267Sjkim ASL Compiler, version X2017:
3689193267Sjkim
3690193267SjkimEnhanced error detection and reporting for all file I/O
3691193267Sjkimoperations.
3692151937Sjkim
3693151937Sjkim Documentation:
3694151937Sjkim
3695151937SjkimProgrammer Reference updated to version 1.06.
3696151937Sjkim
3697151937Sjkim
3698193267Sjkim
3699193267Sjkim------------------------------------------
3700193267SjkimSummary of changes for this label: 04_13_01
3701193267Sjkim
3702193267Sjkim ACPI CA Core Subsystem:
3703151937Sjkim
3704151937SjkimRestructured support for BufferFields and RegionFields.
3705193267SjkimBankFields support is now fully operational.  All known 32-bit
3706193267Sjkimlimitations on field sizes have been removed.  Both BufferFields
3707193267Sjkimand (Operation) RegionFields are now supported by the same field
3708193267Sjkimmanagement code.
3709193267Sjkim
3710193267SjkimResource support now supports QWORD address and IO resources. The
3711151937Sjkim16/32/64 bit address structures and the Extended IRQ structure
3712193267Sjkimhave been changed to properly handle Source Resource strings.
3713193267Sjkim
3714193267SjkimA ThreadId of -1 is now used to indicate a "mutex not acquired"
3715193267Sjkimcondition internally and must never be returned by
3716151937SjkimAcpiOsThreadId.
3717193267SjkimThis reserved value was changed from 0 since Unix systems allow a
3718193267Sjkimthread ID of 0.
3719193267Sjkim
3720151937SjkimLinux:
3721167802Sjkim
3722193267SjkimDriver code reorganized to enhance portability
3723193267Sjkim
3724193267SjkimAdded a kernel configuration option to control ACPI_DEBUG
3725151937Sjkim
3726193267SjkimFixed the EC driver to honor _GLK.
3727193267Sjkim
3728193267SjkimASL Compiler, version X2016:
3729151937Sjkim
3730193267SjkimFixed support for the "FixedHw" keyword.  Previously, the FixedHw
3731193267Sjkimaddress space was set to 0, not 0x7f as it should be.
3732193267Sjkim
3733193267Sjkim ------------------------------------------
3734193267SjkimSummary of changes for this label: 03_13_01
3735193267Sjkim
3736193267Sjkim ACPI CA Core Subsystem:
3737151937Sjkim
3738151937SjkimDuring ACPI initialization, the _SB_._INI method is now run if
3739151937Sjkimpresent.
3740151937Sjkim
3741151937SjkimNotify handler fix - notifies are deferred until the parent
3742151937Sjkimmethod
3743151937Sjkimcompletes execution.  This fixes the "mutex already acquired"
3744151937Sjkimissue seen occasionally.
3745151937Sjkim
3746151937SjkimPart of the "implicit conversion" rules in ACPI 2.0 have been
3747151937Sjkimfound to cause compatibility problems with existing ASL/AML.  The
3748193267Sjkimconvert "result-to-target-type" implementation has been removed
3749193267Sjkimfor stores to method Args and Locals.  Source operand conversion
3750193267Sjkimis still fully implemented.  Possible changes to ACPI 2.0
3751193267Sjkimspecification pending.
3752151937Sjkim
3753193267SjkimFix to AcpiRsCalculatePciRoutingTableLength to return correct
3754193267Sjkimlength.
3755151937Sjkim
3756193267SjkimFix for compiler warnings for 64-bit compiles.
3757193267Sjkim
3758193267Sjkim Linux:
3759193267Sjkim
3760193267Sjkim/proc output aligned for easier parsing.
3761151937Sjkim
3762151937SjkimRelease-version compile problem fixed.
3763151937Sjkim
3764151937SjkimNew kernel configuration options documented in Configure.help.
3765151937Sjkim
3766151937SjkimIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
3767193267Sjkimcontext" message.
3768193267Sjkim
3769193267Sjkim OSPM:
3770193267Sjkim
3771193267SjkimPower resource driver integrated with bus manager.
3772193267Sjkim
3773193267SjkimFixed kernel fault during active cooling for thermal zones.
3774151937Sjkim
3775193267SjkimSource Code:
3776193267Sjkim
3777193267SjkimThe source code tree has been restructured.
3778193267Sjkim
3779193267Sjkim
3780151937Sjkim
3781193267Sjkim------------------------------------------
3782193267SjkimSummary of changes for this label: 03_02_01
3783193267Sjkim
3784193267Sjkim Linux OS Services Layer (OSL):
3785193267Sjkim
3786151937SjkimMajor revision of all Linux-specific code.
3787193267Sjkim
3788193267SjkimModularized all ACPI-specific drivers.
3789193267Sjkim
3790151937SjkimAdded new thermal zone and power resource drivers.
3791193267Sjkim
3792193267SjkimRevamped /proc interface (new functionality is under /proc/acpi).
3793151937Sjkim
3794193267SjkimNew kernel configuration options.
3795193267Sjkim
3796193267Sjkim Linux known issues:
3797193267Sjkim
3798193267SjkimNew kernel configuration options not documented in Configure.help
3799193267Sjkimyet.
3800193267Sjkim
3801151937Sjkim
3802151937SjkimModule dependencies not currently implemented. If used, they
3803151937Sjkimshould be loaded in this order: busmgr, power, ec, system,
3804151937Sjkimprocessor, battery, ac_adapter, button, thermal.
3805151937Sjkim
3806151937SjkimModules will not load if CONFIG_MODVERSION is set.
3807151937Sjkim
3808151937SjkimIBM 600E - entering S5 may reboot instead of shutting down.
3809151937Sjkim
3810151937SjkimIBM 600E - Sleep button may generate "Invalid <NULL> context"
3811151937Sjkimmessage.
3812193267Sjkim
3813193267SjkimSome systems may fail with "execution mutex already acquired"
3814193267Sjkimmessage.
3815193267Sjkim
3816193267Sjkim ACPI CA Core Subsystem:
3817193267Sjkim
3818151937SjkimAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
3819193267Sjkimfor the  deadlock detection code. Defined to return a non-zero,
3820193267Sjkim32-
3821193267Sjkimbit thread ID for the currently executing thread.  May be a non-
3822193267Sjkimzero constant integer on single-thread systems.
3823151937Sjkim
3824193267SjkimImplemented deadlock detection for internal subsystem mutexes.
3825193267SjkimWe
3826151937Sjkimmay add conditional compilation for this code (debug only) later.
3827193267Sjkim
3828193267SjkimASL/AML Mutex object semantics are now fully supported.  This
3829193267Sjkimincludes multiple acquires/releases by owner and support for the
3830193267SjkimMutex SyncLevel parameter.
3831151937Sjkim
3832151937SjkimA new "Force Release" mechanism automatically frees all ASL
3833151937SjkimMutexes that have been acquired but not released when a thread
3834151937Sjkimexits the interpreter.  This forces conformance to the ACPI spec
3835151937Sjkim("All mutexes must be released when an invocation exits") and
3836151937Sjkimprevents deadlocked ASL threads.  This mechanism can be expanded
3837193267Sjkim(later) to monitor other resource acquisitions if OEM ASL code
3838193267Sjkimcontinues to misbehave (which it will).
3839151937Sjkim
3840193267SjkimSeveral new ACPI exception codes have been added for the Mutex
3841193267Sjkimsupport.
3842193267Sjkim
3843193267SjkimRecursive method calls are now allowed and supported (the ACPI
3844151937Sjkimspec does in fact allow recursive method calls.)  The number of
3845193267Sjkimrecursive calls is subject to the restrictions imposed by the
3846193267SjkimSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
3847193267Sjkimparameter.
3848193267Sjkim
3849193267SjkimImplemented support for the SyncLevel parameter for control
3850151937Sjkimmethods (ACPI 2.0 feature)
3851193267Sjkim
3852193267SjkimFixed a deadlock problem when multiple threads attempted to use
3853193267Sjkimthe interpreter.
3854193267Sjkim
3855151937SjkimFixed a problem where the string length of a String package
3856193267Sjkimelement was not always set in a package returned from
3857193267SjkimAcpiEvaluateObject.
3858193267Sjkim
3859193267SjkimFixed a problem where the length of a String package element was
3860151937Sjkimnot always included in the length of the overall package returned
3861193267Sjkimfrom AcpiEvaluateObject.
3862193267Sjkim
3863151937SjkimAdded external interfaces (Acpi*) to the ACPI debug memory
3864193267Sjkimmanager.  This manager keeps a list of all outstanding
3865193267Sjkimallocations, and can therefore detect memory leaks and attempts
3866193267Sjkimto
3867193267Sjkimfree memory blocks more than once. Useful for code such as the
3868193267Sjkimpower manager, etc.  May not be appropriate for device drivers.
3869193267SjkimPerformance with the debug code enabled is slow.
3870193267Sjkim
3871151937SjkimThe ACPI Global Lock is now an optional hardware element.
3872151937Sjkim
3873151937Sjkim ASL Compiler Version X2015:
3874151937Sjkim
3875151937SjkimIntegrated changes to allow the compiler to be generated on
3876151937Sjkimmultiple platforms.
3877151937Sjkim
3878151937SjkimLinux makefile added to generate the compiler on Linux
3879151937Sjkim
3880151937Sjkim Source Code:
3881151937Sjkim
3882193267SjkimAll platform-specific headers have been moved to their own
3883193267Sjkimsubdirectory, Include/Platform.
3884193267Sjkim
3885151937SjkimNew source file added, Interpreter/ammutex.c
3886193267Sjkim
3887193267SjkimNew header file, Include/acstruct.h
3888193267Sjkim
3889193267Sjkim Documentation:
3890193267Sjkim
3891151937SjkimThe programmer reference has been updated for the following new
3892193267Sjkiminterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
3893193267Sjkim
3894151937Sjkim ------------------------------------------
3895151937SjkimSummary of changes for this label: 02_08_01
3896151937Sjkim
3897151937SjkimCore ACPI CA Subsystem: Fixed a problem where an error was
3898151937Sjkimincorrectly returned if the return resource buffer was larger
3899151937Sjkimthan
3900193267Sjkimthe actual data (in the resource interfaces).
3901193267Sjkim
3902193267SjkimReferences to named objects within packages are resolved to the
3903151937Sjkimfull pathname string before packages are returned directly (via
3904193267Sjkimthe AcpiEvaluateObject interface) or indirectly via the resource
3905193267Sjkiminterfaces.
3906193267Sjkim
3907193267SjkimLinux OS Services Layer (OSL):
3908151937Sjkim
3909193267SjkimImproved /proc battery interface.
3910193267Sjkim
3911151937Sjkim
3912193267SjkimAdded C-state debugging output and other miscellaneous fixes.
3913193267Sjkim
3914193267SjkimASL Compiler Version X2014:
3915193267Sjkim
3916193267SjkimAll defined method arguments can now be used as local variables,
3917193267Sjkimincluding the ones that are not actually passed in as parameters.
3918193267SjkimThe compiler tracks initialization of the arguments and issues an
3919193267Sjkimexception if they are used without prior assignment (just like
3920193267Sjkimlocals).
3921193267Sjkim
3922151937SjkimThe -o option now specifies a filename prefix that is used for
3923193267Sjkimall
3924193267Sjkimoutput files, including the AML output file.  Otherwise, the
3925193267Sjkimdefault behavior is as follows:  1) the AML goes to the file
3926193267Sjkimspecified in the DSDT.  2) all other output files use the input
3927193267Sjkimsource filename as the base.
3928193267Sjkim
3929193267Sjkim ------------------------------------------
3930151937SjkimSummary of changes for this label: 01_25_01
3931151937Sjkim
3932151937SjkimCore ACPI CA Subsystem: Restructured the implementation of object
3933151937Sjkimstore support within the  interpreter.  This includes support for
3934151937Sjkimthe Store operator as well  as any ASL operators that include a
3935151937Sjkimtarget operand.
3936151937Sjkim
3937151937SjkimPartially implemented support for Implicit Result-to-Target
3938151937Sjkimconversion. This is when a result object is converted on the fly
3939151937Sjkimto the type of  an existing target object.  Completion of this
3940151937Sjkimsupport is pending  further analysis of the ACPI specification
3941193267Sjkimconcerning this matter.
3942193267Sjkim
3943193267SjkimCPU-specific code has been removed from the subsystem (hardware
3944151937Sjkimdirectory).
3945151937Sjkim
3946151937SjkimNew Power Management Timer functions added
3947151937Sjkim
3948151937SjkimLinux OS Services Layer (OSL): Moved system state transition code
3949151937Sjkimto the core, fixed it, and modified  Linux OSL accordingly.
3950193267Sjkim
3951193267SjkimFixed C2 and C3 latency calculations.
3952151937Sjkim
3953193267Sjkim
3954193267SjkimWe no longer use the compilation date for the version message on
3955193267Sjkiminitialization, but retrieve the version from
3956151937SjkimAcpiGetSystemInfo().
3957193267Sjkim
3958193267SjkimIncorporated for fix Sony VAIO machines.
3959151937Sjkim
3960193267SjkimDocumentation:  The Programmer Reference has been updated and
3961193267Sjkimreformatted.
3962151937Sjkim
3963193267Sjkim
3964193267SjkimASL Compiler:  Version X2013: Fixed a problem where the line
3965193267Sjkimnumbering and error reporting could get out  of sync in the
3966151937Sjkimpresence of multiple include files.
3967193267Sjkim
3968193267Sjkim ------------------------------------------
3969151937SjkimSummary of changes for this label: 01_15_01
3970193267Sjkim
3971193267SjkimCore ACPI CA Subsystem:
3972151937Sjkim
3973193267SjkimImplemented support for type conversions in the execution of the
3974193267SjkimASL  Concatenate operator (The second operand is converted to
3975151937Sjkimmatch the type  of the first operand before concatenation.)
3976151937Sjkim
3977151937SjkimSupport for implicit source operand conversion is partially
3978151937Sjkimimplemented.   The ASL source operand types Integer, Buffer, and
3979151937SjkimString are freely  interchangeable for most ASL operators and are
3980193267Sjkimconverted by the interpreter  on the fly as required.  Implicit
3981193267SjkimTarget operand conversion (where the  result is converted to the
3982193267Sjkimtarget type before storing) is not yet implemented.
3983193267Sjkim
3984193267SjkimSupport for 32-bit and 64-bit BCD integers is implemented.
3985193267Sjkim
3986193267SjkimProblem fixed where a field read on an aligned field could cause
3987151937Sjkima
3988151937Sjkimread  past the end of the field.
3989151937Sjkim
3990151937SjkimNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
3991151937Sjkimdoes not return a value, but the caller expects one.  (The ASL
3992151937Sjkimcompiler flags this as a warning.)
3993151937Sjkim
3994151937SjkimASL Compiler:
3995151937Sjkim
3996167802SjkimVersion X2011:
3997151937Sjkim1. Static typechecking of all operands is implemented. This
3998151937Sjkimprevents the use of invalid objects (such as using a Package
3999193267Sjkimwhere
4000193267Sjkiman Integer is required) at compile time instead of at interpreter
4001193267Sjkimrun-time.
4002151937Sjkim2. The ASL source line is printed with ALL errors and warnings.
4003193267Sjkim3. Bug fix for source EOF without final linefeed.
4004193267Sjkim4. Debug option is split into a parse trace and a namespace
4005151937Sjkimtrace.
4006151937Sjkim5. Namespace output option (-n) includes initial values for
4007151937Sjkimintegers and strings.
4008151937Sjkim6. Parse-only option added for quick syntax checking.
4009151937Sjkim7. Compiler checks for duplicate ACPI name declarations
4010151937Sjkim
4011151937SjkimVersion X2012:
4012193267Sjkim1. Relaxed typechecking to allow interchangeability between
4013193267Sjkimstrings, integers, and buffers.  These types are now converted by
4014193267Sjkimthe interpreter at runtime.
4015193267Sjkim2. Compiler reports time taken by each internal subsystem in the
4016193267Sjkimdebug         output file.
4017151937Sjkim
4018151937Sjkim
4019193267Sjkim ------------------------------------------
4020193267SjkimSummary of changes for this label: 12_14_00
4021193267Sjkim
4022193267SjkimASL Compiler:
4023193267Sjkim
4024193267SjkimThis is the first official release of the compiler. Since the
4025193267Sjkimcompiler requires elements of the Core Subsystem, this label
4026151937Sjkimsynchronizes everything.
4027193267Sjkim
4028193267Sjkim------------------------------------------
4029193267SjkimSummary of changes for this label: 12_08_00
4030151937Sjkim
4031193267Sjkim
4032193267SjkimFixed a problem where named references within the ASL definition
4033193267Sjkimof both OperationRegions and CreateXXXFields did not work
4034193267Sjkimproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4035193267Sjkiminitialization of the region/field. This is similar (but not
4036193267Sjkimrelated internally) to the problem that was fixed in the last
4037193267Sjkimlabel.
4038193267Sjkim
4039151937SjkimImplemented both 32-bit and 64-bit support for the BCD ASL
4040193267Sjkimfunctions ToBCD and FromBCD.
4041193267Sjkim
4042193267SjkimUpdated all legal headers to include "2000" in the copyright
4043151937Sjkimyears.
4044193267Sjkim
4045193267Sjkim ------------------------------------------
4046193267SjkimSummary of changes for this label: 12_01_00
4047151937Sjkim
4048193267SjkimFixed a problem where method invocations within the ASL
4049193267Sjkimdefinition
4050193267Sjkimof both OperationRegions and CreateXXXFields did not work
4051151937Sjkimproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4052193267Sjkiminitialization of the region/field:
4053193267Sjkim
4054193267Sjkim  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
4055151937Sjkim[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
4056193267Sjkim(0x3005)
4057193267Sjkim
4058193267SjkimFixed a problem where operators with more than one nested
4059193267Sjkimsubexpression would fail.  The symptoms were varied, by mostly
4060193267SjkimAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
4061193267Sjkimproblem that has gone unnoticed until now.
4062193267Sjkim
4063151937Sjkim  Subtract (Add (1,2), Multiply (3,4))
4064151937Sjkim
4065151937SjkimFixed a problem where AcpiGetHandle didn't quite get fixed in the
4066151937Sjkimprevious build (The prefix part of a relative path was handled
4067151937Sjkimincorrectly).
4068151937Sjkim
4069151937SjkimFixed a problem where Operation Region initialization failed if
4070151937Sjkimthe operation region name was a "namepath" instead of a simple
4071151937Sjkim"nameseg". Symptom was an AE_NO_OPERAND error.
4072151937Sjkim
4073151937SjkimFixed a problem where an assignment to a local variable via the
4074193267Sjkimindirect RefOf mechanism only worked for the first such
4075193267Sjkimassignment.  Subsequent assignments were ignored.
4076193267Sjkim
4077193267Sjkim ------------------------------------------
4078151937SjkimSummary of changes for this label: 11_15_00
4079193267Sjkim
4080193267SjkimACPI 2.0 table support with backwards support for ACPI 1.0 and
4081193267Sjkimthe
4082151937Sjkim0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
4083193267Sjkimtables,
4084193267Sjkimthe AML  interpreter does NOT have support for the new 2.0 ASL
4085193267Sjkimgrammar terms at this time.
4086151937Sjkim
4087193267SjkimAll ACPI hardware access is via the GAS structures in the ACPI
4088193267Sjkim2.0
4089193267SjkimFADT.
4090193267Sjkim
4091151937SjkimAll physical memory addresses across all platforms are now 64
4092193267Sjkimbits
4093193267Sjkimwide. Logical address width remains dependent on the platform
4094193267Sjkim(i.e., "void *").
4095193267Sjkim
4096151937SjkimAcpiOsMapMemory interface changed to a 64-bit physical address.
4097193267Sjkim
4098193267SjkimThe AML interpreter integer size is now 64 bits, as per the ACPI
4099151937Sjkim2.0 specification.
4100193267Sjkim
4101193267SjkimFor backwards compatibility with ACPI 1.0, ACPI tables with a
4102193267Sjkimrevision number less than 2 use 32-bit integers only.
4103151937Sjkim
4104193267SjkimFixed a problem where the evaluation of OpRegion operands did not
4105193267Sjkimalways resolve them to numbers properly.
4106193267Sjkim
4107151937Sjkim------------------------------------------
4108193267SjkimSummary of changes for this label: 10_20_00
4109193267Sjkim
4110151937SjkimFix for CBN_._STA issue.  This fix will allow correct access to
4111193267SjkimCBN_ OpRegions when the _STA returns 0x8.
4112193267Sjkim
4113193267SjkimSupport to convert ACPI constants (Ones, Zeros, One) to actual
4114151937Sjkimvalues before a package object is returned
4115193267Sjkim
4116193267SjkimFix for method call as predicate to if/while construct causing
4117151937Sjkimincorrect if/while behavior
4118151937Sjkim
4119151937SjkimFix for Else block package lengths sometimes calculated wrong (if
4120151937Sjkimblock > 63 bytes)
4121151937Sjkim
4122151937SjkimFix for Processor object length field, was always zero
4123151937Sjkim
4124151937SjkimTable load abort if FACP sanity check fails
4125193267Sjkim
4126193267SjkimFix for problem with Scope(name) if name already exists
4127193267Sjkim
4128151937SjkimWarning emitted if a named object referenced cannot be found
4129193267Sjkim(resolved) during method execution.
4130193267Sjkim
4131193267Sjkim
4132151937Sjkim
4133193267Sjkim
4134193267Sjkim
4135193267Sjkim------------------------------------------
4136151937SjkimSummary of changes for this label: 9_29_00
4137151937Sjkim
4138151937SjkimNew table initialization interfaces: AcpiInitializeSubsystem no
4139193267Sjkimlonger has any parameters AcpiFindRootPointer - Find the RSDP (if
4140193267Sjkimnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
4141151937Sjkim>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
4142193267SjkimAcpiLoadTables
4143193267Sjkim
4144151937SjkimNote: These interface changes require changes to all existing
4145151937SjkimOSDs
4146151937Sjkim
4147193267SjkimThe PCI_Config default address space handler is always installed
4148193267Sjkimat the root namespace object.
4149151937Sjkim
4150193267Sjkim-------------------------------------------
4151193267SjkimSummary of changes for this label: 09_15_00
4152193267Sjkim
4153193267SjkimThe new initialization architecture is implemented.  New
4154193267Sjkiminterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
4155193267SjkimAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
4156193267Sjkim(Namespace is automatically loaded when a table is loaded)
4157151937Sjkim
4158151937SjkimThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
4159151937Sjkimfrom
4160151937Sjkim52 bytes to 32 bytes.  There is usually one of these for every
4161151937Sjkimnamespace object, so the memory savings is significant.
4162151937Sjkim
4163151937SjkimImplemented just-in-time evaluation of the CreateField operators.
4164151937Sjkim
4165151937SjkimBug fixes for IA-64 support have been integrated.
4166151937Sjkim
4167151937SjkimAdditional code review comments have been implemented
4168193267Sjkim
4169193267SjkimThe so-called "third pass parse" has been replaced by a final
4170151937Sjkimwalk
4171193267Sjkimthrough the namespace to initialize all operation regions
4172193267Sjkim(address
4173193267Sjkimspaces) and fields that have not yet been initialized during the
4174151937Sjkimexecution of the various _INI and REG methods.
4175193267Sjkim
4176193267SjkimNew file - namespace/nsinit.c
4177193267Sjkim
4178151937Sjkim-------------------------------------------
4179151937SjkimSummary of changes for this label: 09_01_00
4180151937Sjkim
4181151937SjkimNamespace manager data structures have been reworked to change
4182151937Sjkimthe
4183151937Sjkimprimary  object from a table to a single object.  This has
4184151937Sjkimresulted in dynamic memory  savings of 3X within the namespace
4185193267Sjkimand
4186193267Sjkim2X overall in the ACPI CA subsystem.
4187193267Sjkim
4188193267SjkimFixed problem where the call to AcpiEvFindPciRootBuses was
4189193267Sjkiminadvertently left  commented out.
4190193267Sjkim
4191193267SjkimReduced the warning count when generating the source with the GCC
4192151937Sjkimcompiler.
4193193267Sjkim
4194193267SjkimRevision numbers added to each module header showing the
4195193267SjkimSourceSafe version of the file.  Please refer to this version
4196193267Sjkimnumber when giving us feedback or comments on individual modules.
4197193267Sjkim
4198193267SjkimThe main object types within the subsystem have been renamed to
4199151937Sjkimclarify their  purpose:
4200193267Sjkim
4201193267SjkimACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
4202193267SjkimACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
4203193267SjkimACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
4204193267Sjkim
4205151937SjkimNOTE: no changes to the initialization sequence are included in
4206193267Sjkimthis label.
4207193267Sjkim
4208193267Sjkim-------------------------------------------
4209193267SjkimSummary of changes for this label: 08_23_00
4210151937Sjkim
4211151937SjkimFixed problem where TerminateControlMethod was being called
4212193267Sjkimmultiple times per  method
4213151937Sjkim
4214193267SjkimFixed debugger problem where single stepping caused a semaphore
4215151937Sjkimto
4216193267Sjkimbe  oversignalled
4217151937Sjkim
4218193267SjkimImproved performance through additional parse object caching -
4219193267Sjkimadded  ACPI_EXTENDED_OP type
4220193267Sjkim
4221193267Sjkim-------------------------------------------
4222193267SjkimSummary of changes for this label: 08_10_00
4223193267Sjkim
4224193267SjkimParser/Interpreter integration:  Eliminated the creation of
4225151937Sjkimcomplete parse trees  for ACPI tables and control methods.
4226151937SjkimInstead, parse subtrees are created and  then deleted as soon as
4227151937Sjkimthey are processed (Either entered into the namespace or
4228151937Sjkimexecuted
4229151937Sjkimby the interpreter).  This reduces the use of dynamic kernel
4230151937Sjkimmemory  significantly. (about 10X)
4231151937Sjkim
4232151937SjkimException codes broken into classes and renumbered.  Be sure to
4233151937Sjkimrecompile all  code that includes acexcep.h.  Hopefully we won't
4234151937Sjkimhave to renumber the codes  again now that they are split into
4235151937Sjkimclasses (environment, programmer, AML code,  ACPI table, and
4236193267Sjkiminternal).
4237193267Sjkim
4238193267SjkimFixed some additional alignment issues in the Resource Manager
4239151937Sjkimsubcomponent
4240193267Sjkim
4241193267SjkimImplemented semaphore tracking in the AcpiExec utility, and fixed
4242151937Sjkimseveral places  where mutexes/semaphores were being unlocked
4243151937Sjkimwithout a corresponding lock  operation.  There are no known
4244151937Sjkimsemaphore or mutex "leaks" at this time.
4245151937Sjkim
4246151937SjkimFixed the case where an ASL Return operator is used to return an
4247151937Sjkimunnamed  package.
4248193267Sjkim
4249193267Sjkim-------------------------------------------
4250193267SjkimSummary of changes for this label: 07_28_00
4251193267Sjkim
4252151937SjkimFixed a problem with the way addresses were calculated in
4253193267SjkimAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
4254193267Sjkimmanifested itself when a Field was  created with WordAccess or
4255193267SjkimDwordAccess, but the field unit defined within the  Field was
4256193267Sjkimless
4257151937Sjkimthan a Word or Dword.
4258193267Sjkim
4259193267SjkimFixed a problem in AmlDumpOperands() module's loop to pull
4260193267Sjkimoperands off of the  operand stack to display information. The
4261193267Sjkimproblem manifested itself as a TLB  error on 64-bit systems when
4262193267Sjkimaccessing an operand stack with two or more  operands.
4263193267Sjkim
4264151937SjkimFixed a problem with the PCI configuration space handlers where
4265193267Sjkimcontext was  getting confused between accesses. This required a
4266193267Sjkimchange to the generic address  space handler and address space
4267193267Sjkimsetup definitions. Handlers now get both a  global handler
4268193267Sjkimcontext
4269151937Sjkim(this is the one passed in by the user when executing
4270193267SjkimAcpiInstallAddressSpaceHandler() and a specific region context
4271193267Sjkimthat is unique to  each region (For example, the _ADR, _SEG and
4272193267Sjkim_BBN values associated with a  specific region). The generic
4273193267Sjkimfunction definitions have changed to the  following:
4274151937Sjkim
4275193267Sjkimtypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
4276193267SjkimUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
4277151937Sjkim*HandlerContext, // This used to be void *Context void
4278193267Sjkim*RegionContext); // This is an additional parameter
4279193267Sjkim
4280193267Sjkimtypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
4281193267SjkimRegionHandle, UINT32 Function, void *HandlerContext,  void
4282193267Sjkim**RegionContext); // This used to be **ReturnContext
4283193267Sjkim
4284193267Sjkim-------------------------------------------
4285151937SjkimSummary of changes for this label: 07_21_00
4286151937Sjkim
4287151937SjkimMajor file consolidation and rename.  All files within the
4288151937Sjkiminterpreter have been  renamed as well as most header files.
4289151937SjkimThis
4290151937Sjkimwas done to prevent collisions with  existing files in the host
4291151937SjkimOSs -- filenames such as "config.h" and "global.h"  seem to be
4292151937Sjkimquite common.  The VC project files have been updated.  All
4293151937Sjkimmakefiles  will require modification.
4294151937Sjkim
4295193267SjkimThe parser/interpreter integration continues in Phase 5 with the
4296193267Sjkimimplementation  of a complete 2-pass parse (the AML is parsed
4297193267Sjkimtwice) for each table;  This  avoids the construction of a huge
4298193267Sjkimparse tree and therefore reduces the amount of  dynamic memory
4299193267Sjkimrequired by the subsystem.  Greater use of the parse object cache
4300151937Sjkimmeans that performance is unaffected.
4301193267Sjkim
4302193267SjkimMany comments from the two code reviews have been rolled in.
4303193267Sjkim
4304151937SjkimThe 64-bit alignment support is complete.
4305193267Sjkim
4306193267Sjkim-------------------------------------------
4307193267SjkimSummary of changes for this label: 06_30_00
4308193267Sjkim
4309151937SjkimWith a nod and a tip of the hat to the technology of yesteryear,
4310193267Sjkimwe've added  support in the source code for 80 column output
4311193267Sjkimdevices.  The code is now mostly  constrained to 80 columns or
4312193267Sjkimless to support environments and editors that 1)  cannot display
4313193267Sjkimor print more than 80 characters on a single line, and 2) cannot
4314151937Sjkimdisable line wrapping.
4315151937Sjkim
4316151937SjkimA major restructuring of the namespace data structure has been
4317151937Sjkimcompleted.  The  result is 1) cleaner and more
4318193267Sjkimunderstandable/maintainable code, and 2) a  significant reduction
4319193267Sjkimin the dynamic memory requirement for each named ACPI  object
4320151937Sjkim(almost half).
4321151937Sjkim
4322151937Sjkim-------------------------------------------
4323193267SjkimSummary of changes for this label: 06_23_00
4324193267Sjkim
4325193267SjkimLinux support has been added.  In order to obtain approval to get
4326193267Sjkimthe ACPI CA  subsystem into the Linux kernel, we've had to make
4327193267Sjkimquite a few changes to the  base subsystem that will affect all
4328193267Sjkimusers (all the changes are generic and OS- independent).  The
4329193267Sjkimeffects of these global changes have been somewhat far  reaching.
4330193267SjkimFiles have been merged and/or renamed and interfaces have been
4331193267Sjkimrenamed.   The major changes are described below.
4332151937Sjkim
4333193267SjkimOsd* interfaces renamed to AcpiOs* to eliminate namespace
4334193267Sjkimpollution/confusion  within our target kernels.  All OSD
4335193267Sjkiminterfaces must be modified to match the new  naming convention.
4336151937Sjkim
4337167802SjkimFiles merged across the subsystem.  A number of the smaller
4338193267Sjkimsource
4339193267Sjkimand header  files have been merged to reduce the file count and
4340193267Sjkimincrease the density of the  existing files.  There are too many
4341151937Sjkimto list here.  In general, makefiles that  call out individual
4342193267Sjkimfiles will require rebuilding.
4343193267Sjkim
4344193267SjkimInterpreter files renamed.  All interpreter files now have the
4345193267Sjkimprefix am*  instead of ie* and is*.
4346193267Sjkim
4347151937SjkimHeader files renamed:  The acapi.h file is now acpixf.h.  The
4348151937Sjkimacpiosd.h file is  now acpiosxf.h.  We are removing references to
4349193267Sjkimthe acronym "API" since it is  somewhat windowsy. The new name is
4350193267Sjkim"external interface" or xface or xf in the  filenames.j
4351193267Sjkim
4352193267Sjkim
4353151937SjkimAll manifest constants have been forced to upper case (some were
4354193267Sjkimmixed case.)   Also, the string "ACPI_" has been prepended to
4355193267Sjkimmany
4356193267Sjkim(not all) of the constants,  typedefs, and structs.
4357151937Sjkim
4358193267SjkimThe globals "DebugLevel" and "DebugLayer" have been renamed
4359193267Sjkim"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
4360151937Sjkim
4361151937SjkimAll other globals within the subsystem are now prefixed with
4362151937Sjkim"AcpiGbl_" Internal procedures within the subsystem are now
4363193267Sjkimprefixed with "Acpi" (with only  a few exceptions).  The original
4364193267Sjkimtwo-letter abbreviation for the subcomponent  remains after
4365193267Sjkim"Acpi"
4366193267Sjkim- for example, CmCallocate became AcpiCmCallocate.
4367193267Sjkim
4368193267SjkimAdded a source code translation/conversion utility.  Used to
4369193267Sjkimgenerate the Linux  source code, it can be modified to generate
4370151937Sjkimother types of source as well. Can  also be used to cleanup
4371151937Sjkimexisting source by removing extraneous spaces and blank  lines.
4372151937SjkimFound in tools/acpisrc/*
4373151937Sjkim
4374151937SjkimOsdUnMapMemory was renamed to OsdUnmapMemory and then
4375151937SjkimAcpiOsUnmapMemory.  (UnMap  became Unmap).
4376151937Sjkim
4377151937SjkimA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
4378151937SjkimWhen set to  one, this indicates that the caller wants to use the
4379151937Sjkimsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
4380151937Sjkimboth types.  However, implementers of this  call may want to use
4381193267Sjkimdifferent OS primitives depending on the type of semaphore
4382193267Sjkimrequested.  For example, some operating systems provide separate
4383151937Sjkim"mutex" and  "semaphore" interfaces - where the mutex interface
4384151937Sjkimis
4385151937Sjkimmuch faster because it  doesn't have all the overhead of a full
4386193267Sjkimsemaphore implementation.
4387193267Sjkim
4388193267SjkimFixed a deadlock problem where a method that accesses the PCI
4389151937Sjkimaddress space can  block forever if it is the first access to the
4390193267Sjkimspace.
4391193267Sjkim
4392151937Sjkim-------------------------------------------
4393193267SjkimSummary of changes for this label: 06_02_00
4394193267Sjkim
4395193267SjkimSupport for environments that cannot handle unaligned data
4396151937Sjkimaccesses (e.g.  firmware and OS environments devoid of alignment
4397193267Sjkimhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
4398193267Sjkimhas
4399193267Sjkimbeen added (via configurable macros) in  these three areas: -
4400193267SjkimTransfer of data from the raw AML byte stream is done via byte
4401193267Sjkimmoves instead of    word/dword/qword moves. - External objects
4402193267Sjkimare
4403193267Sjkimaligned within the user buffer, including package   elements (sub-
4404151937Sjkimobjects). - Conversion of name strings to UINT32 Acpi Names is
4405151937Sjkimnow
4406151937Sjkimdone byte-wise.
4407151937Sjkim
4408151937SjkimThe Store operator was modified to mimic Microsoft's
4409151937Sjkimimplementation when storing  to a Buffer Field.
4410151937Sjkim
4411151937SjkimAdded a check of the BM_STS bit before entering C3.
4412151937Sjkim
4413151937SjkimThe methods subdirectory has been obsoleted and removed.  A new
4414151937Sjkimfile, cmeval.c  subsumes the functionality.
4415193267Sjkim
4416193267SjkimA 16-bit (DOS) version of AcpiExec has been developed.  The
4417193267Sjkimmakefile is under  the acpiexec directory.
4418151937Sjkim