changes.txt revision 127175
1117521Snjl----------------------------------------
2127175Snjl11 March 2004.  Summary of changes for version 20040311:
3127175Snjl
4127175Snjl1) ACPI CA Core Subsystem:
5127175Snjl
6127175SnjlFixed a problem where errors occurring during the parse phase of
7127175Snjlcontrol method execution did not abort cleanly.  For example,
8127175Snjlobjects created and installed in the namespace were not deleted.
9127175SnjlThis caused all subsequent invocations of the method to return
10127175Snjlthe AE_ALREADY_EXISTS exception.
11127175Snjl
12127175SnjlImplemented a mechanism to force a control method to "Serialized"
13127175Snjlexecution if the method attempts to create namespace objects.
14127175Snjl(The root of the AE_ALREADY_EXISTS problem.)
15127175Snjl
16127175SnjlImplemented support for the predefined _OSI "internal" control
17127175Snjlmethod.  Initial supported strings are "Linux", "Windows 2000",
18127175Snjl"Windows 2001", and "Windows 2001.1", and can be easily upgraded
19127175Snjlfor new strings as necessary.  This feature will allow "other"
20127175Snjloperating systems to execute the fully tested, "Windows" code
21127175Snjlpath through the ASL code
22127175Snjl
23127175SnjlGlobal Lock Support:  Now allows multiple acquires and releases
24127175Snjlwith any internal thread.  Removed concept of "owning thread" for
25127175Snjlthis special mutex.
26127175Snjl
27127175SnjlFixed two functions that were inappropriately declaring large
28127175Snjlobjects on the CPU stack:  PsParseLoop, NsEvaluateRelative.
29127175SnjlReduces the stack usage during method execution considerably.
30127175Snjl
31127175SnjlFixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where
32127175Snjlthe S4Bios_f field was incorrectly defined as UINT32 instead of
33127175SnjlUINT32_BIT.
34127175Snjl
35127175SnjlFixed a problem where AcpiEvGpeDetect would fault if there were
36127175Snjlno GPEs defined on the machine.
37127175Snjl
38127175SnjlImplemented two runtime options:  One to force all control method
39127175Snjlexecution to "Serialized" to mimic Windows behavior, another to
40127175Snjldisable _OSI support if it causes problems on a given machine.
41127175Snjl
42127175SnjlCode and Data Size: Current and previous core subsystem library
43127175Snjlsizes are shown below.  These are the code and data sizes for the
44127175Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
45127175Snjlthese values do not include any ACPI driver or OSPM code.  The
46127175Snjldebug version of the code includes the debug output trace
47127175Snjlmechanism and has a much larger code and data size.  Note that
48127175Snjlthese values will vary depending on the efficiency of the
49127175Snjlcompiler and the compiler options used during generation.
50127175Snjl
51127175Snjl  Previous Release:
52127175Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
53127175Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
54127175Snjl  Current Release:
55127175Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
56127175Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
57127175Snjl
58127175Snjl2) iASL Compiler/Disassembler:
59127175Snjl
60127175SnjlFixed an array size problem for FreeBSD that would cause the
61127175Snjlcompiler to fault.
62127175Snjl
63127175Snjl----------------------------------------
64126372Snjl20 February 2004.  Summary of changes for version 20040220:
65126372Snjl
66126372Snjl1) ACPI CA Core Subsystem:
67126372Snjl
68126372SnjlImplemented execution of _SxD methods for Device objects in the
69126372SnjlGetObjectInfo interface.
70126372Snjl
71126372SnjlFixed calls to _SST method to pass the correct arguments.
72126372Snjl
73126372SnjlAdded a call to _SST on wake to restore to "working" state.
74126372Snjl
75126372SnjlCheck for End-Of-Buffer failure case in the WalkResources
76126372Snjlinterface.
77126372Snjl
78126372SnjlIntegrated fix for 64-bit alignment issue in acglobal.h by moving
79126372Snjltwo structures to the beginning of the file.
80126372Snjl
81126372SnjlAfter wake, clear GPE status register(s) before enabling GPEs.
82126372Snjl
83126372SnjlAfter wake, clear/enable power button.  (Perhaps we should
84126372Snjlclear/enable all fixed events upon wake.)
85126372Snjl
86126372SnjlFixed a couple of possible memory leaks in the Namespace manager.
87126372Snjl
88126372SnjlIntegrated latest acnetbsd.h file.
89126372Snjl
90126372Snjl----------------------------------------
91126372Snjl11 February 2004.  Summary of changes for version 20040211:
92126372Snjl
93126372Snjl1) ACPI CA Core Subsystem:
94126372Snjl
95126372SnjlCompleted investigation and implementation of the call-by-
96126372Snjlreference mechanism for control method arguments.
97126372Snjl
98126372SnjlFixed a problem where a store of an object into an indexed
99126372Snjlpackage could fail if the store occurs within a different method
100126372Snjlthan the method that created the package.
101126372Snjl
102126372SnjlFixed a problem where the ToDecimal operator could return
103126372Snjlincorrect results.
104126372Snjl
105126372SnjlFixed a problem where the CopyObject operator could fail on some
106126372Snjlof the more obscure objects (e.g., Reference objects.)
107126372Snjl
108126372SnjlImproved the output of the Debug object to display buffer,
109126372Snjlpackage, and index objects.
110126372Snjl
111126372SnjlFixed a problem where constructs of the form "RefOf (ArgX)" did
112126372Snjlnot return the expected result.
113126372Snjl
114126372SnjlAdded permanent ACPI_REPORT_ERROR macros for all instances of the
115126372SnjlACPI_AML_INTERNAL exception.
116126372Snjl
117126372SnjlIntegrated latest version of acfreebsd.h
118126372Snjl
119126372Snjl----------------------------------------
120126372Snjl16 January 2004.  Summary of changes for version 20040116:
121126372Snjl
122126372SnjlThe purpose of this release is primarily to update the copyright
123126372Snjlyears in each module, thus causing a huge number of diffs.  There
124126372Snjlare a few small functional changes, however.
125126372Snjl
126126372Snjl1) ACPI CA Core Subsystem:
127126372Snjl
128126372SnjlImproved error messages when there is a problem finding one or
129126372Snjlmore of the required base ACPI tables
130126372Snjl
131126372SnjlReintroduced the definition of APIC_HEADER in actbl.h
132126372Snjl
133126372SnjlChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
134126372Snjl
135126372SnjlRemoved extraneous reference to NewObj in dsmthdat.c
136126372Snjl
137126372Snjl2) iASL compiler
138126372Snjl
139126372SnjlFixed a problem introduced in December that disabled the correct
140126372Snjldisassembly of Resource Templates
141126372Snjl
142126372Snjl
143126372Snjl----------------------------------------
144126372Snjl03 December 2003.  Summary of changes for version 20031203:
145126372Snjl
146126372Snjl1) ACPI CA Core Subsystem:
147126372Snjl
148126372SnjlChanged the initialization of Operation Regions during subsystem
149126372Snjlinit to perform two entire walks of the ACPI namespace; The first
150126372Snjlto initialize the regions themselves, the second to execute the
151126372Snjl_REG methods.  This fixed some interdependencies across _REG
152126372Snjlmethods found on some machines.
153126372Snjl
154126372SnjlFixed a problem where a Store(Local0, Local1) could simply update
155126372Snjlthe object reference count, and not create a new copy of the
156126372Snjlobject if the Local1 is uninitialized.
157126372Snjl
158126372SnjlImplemented support for the _SST reserved method during sleep
159126372Snjltransitions.
160126372Snjl
161126372SnjlImplemented support to clear the SLP_TYP and SLP_EN bits when
162126372Snjlwaking up, this is apparently required by some machines.
163126372Snjl
164126372SnjlWhen sleeping, clear the wake status only if SleepState is not
165126372SnjlS5.
166126372Snjl
167126372SnjlFixed a problem in AcpiRsExtendedIrqResource() where an incorrect
168126372Snjlpointer arithmetic advanced a string pointer too far.
169126372Snjl
170126372SnjlFixed a problem in AcpiTbGetTablePtr() where a garbage pointer
171126372Snjlcould be returned if the requested table has not been loaded.
172126372Snjl
173126372SnjlWithin the support for IRQ resources, restructured the handling
174126372Snjlof
175126372Snjlthe active and edge/level bits.
176126372Snjl
177126372SnjlFixed a few problems in AcpiPsxExecute() where memory could be
178126372Snjlleaked under certain error conditions.
179126372Snjl
180126372SnjlImproved error messages for the cases where the ACPI mode could
181126372Snjlnot be entered.
182126372Snjl
183126372SnjlCode and Data Size: Current and previous core subsystem library
184126372Snjlsizes are shown below.  These are the code and data sizes for the
185126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
186126372Snjlthese values do not include any ACPI driver or OSPM code.  The
187126372Snjldebug version of the code includes the debug output trace
188126372Snjlmechanism and has a much larger code and data size.  Note that
189126372Snjlthese values will vary depending on the efficiency of the
190126372Snjlcompiler
191126372Snjland the compiler options used during generation.
192126372Snjl
193126372Snjl  Previous Release (20031029):
194126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
195126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
196126372Snjl  Current Release:
197126372Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
198126372Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
199126372Snjl
200126372Snjl2) iASL Compiler/Disassembler:
201126372Snjl
202126372SnjlImplemented a fix for the iASL disassembler where a bad index was
203126372Snjlgenerated.  This was most noticeable on 64-bit platforms
204126372Snjl
205126372Snjl
206126372Snjl----------------------------------------
207126372Snjl29 October 2003.  Summary of changes for version 20031029:
208126372Snjl
209126372Snjl1) ACPI CA Core Subsystem:
210126372Snjl
211126372SnjlFixed a problem where a level-triggered GPE with an associated
212126372Snjl_Lxx control method was incorrectly cleared twice.
213126372Snjl
214126372SnjlFixed a problem with the Field support code where an access can
215126372Snjloccur beyond the end-of-region if the field is non-aligned but
216126372Snjlextends to the very end of the parent region (resulted in an
217126372SnjlAE_AML_REGION_LIMIT exception.)
218126372Snjl
219126372SnjlFixed a problem with ACPI Fixed Events where an RT Clock handler
220126372Snjlwould not get invoked on an RTC event.  The RTC event bitmasks
221126372Snjlfor
222126372Snjlthe PM1 registers were not being initialized properly.
223126372Snjl
224126372SnjlImplemented support for executing _STA and _INI methods for
225126372SnjlProcessor objects.  Although this is currently not part of the
226126372SnjlACPI specification, there is existing ASL code that depends on
227126372Snjlthe
228126372Snjlinit-time execution of these methods.
229126372Snjl
230126372SnjlImplemented and deployed a GetDescriptorName function to decode
231126372Snjlthe various types of internal descriptors.  Guards against null
232126372Snjldescriptors during debug output also.
233126372Snjl
234126372SnjlImplemented and deployed a GetNodeName function to extract the 4-
235126372Snjlcharacter namespace node name.  This function simplifies the
236126372Snjldebug
237126372Snjland error output, as well as guarding against null pointers
238126372Snjlduring
239126372Snjloutput.
240126372Snjl
241126372SnjlImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to
242126372Snjlsimplify the debug and error output of 64-bit integers.  This
243126372Snjlmacro replaces the HIDWORD and LODWORD macros for dumping these
244126372Snjlintegers.
245126372Snjl
246126372SnjlUpdated the implementation of the Stall() operator to only call
247126372SnjlAcpiOsStall(), and also return an error if the operand is larger
248126372Snjlthan 255.  This preserves the required behavior of not
249126372Snjlrelinquishing the processor, as would happen if AcpiOsSleep() was
250126372Snjlcalled for "long stalls".
251126372Snjl
252126372SnjlConstructs of the form "Store(LocalX,LocalX)" where LocalX is not
253126372Snjlinitialized are now treated as NOOPs.
254126372Snjl
255126372SnjlCleaned up a handful of warnings during 64-bit generation.
256126372Snjl
257126372SnjlFixed a reported error where and incorrect GPE number was passed
258126372Snjlto the GPE dispatch handler.  This value is only used for error
259126372Snjloutput, however.  Used this opportunity to clean up and
260126372Snjlstreamline
261126372Snjlthe GPE dispatch code.
262126372Snjl
263126372SnjlCode and Data Size: Current and previous core subsystem library
264126372Snjlsizes are shown below.  These are the code and data sizes for the
265126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
266126372Snjlthese values do not include any ACPI driver or OSPM code.  The
267126372Snjldebug version of the code includes the debug output trace
268126372Snjlmechanism and has a much larger code and data size.  Note that
269126372Snjlthese values will vary depending on the efficiency of the
270126372Snjlcompiler
271126372Snjland the compiler options used during generation.
272126372Snjl
273126372Snjl  Previous Release (20031002):
274126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
275126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
276126372Snjl  Current Release:
277126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
278126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
279126372Snjl
280126372Snjl
281126372Snjl2) iASL Compiler/Disassembler:
282126372Snjl
283126372SnjlUpdated the iASL compiler to return an error if the operand to
284126372Snjlthe
285126372SnjlStall() operator is larger than 255.
286126372Snjl
287126372Snjl
288126372Snjl----------------------------------------
289126372Snjl02 October 2003.  Summary of changes for version 20031002:
290126372Snjl
291126372Snjl
292126372Snjl1) ACPI CA Core Subsystem:
293126372Snjl
294126372SnjlFixed a problem with Index Fields where the index was not
295126372Snjlincremented for fields that require multiple writes to the
296126372Snjlindex/data registers (Fields that are wider than the data
297126372Snjlregister.)
298126372Snjl
299126372SnjlFixed a problem with all Field objects where a write could go
300126372Snjlbeyond the end-of-field if the field was larger than the access
301126372Snjlgranularity and therefore required multiple writes to complete
302126372Snjlthe
303126372Snjlrequest.  An extra write beyond the end of the field could happen
304126372Snjlinadvertently.
305126372Snjl
306126372SnjlFixed a problem with Index Fields where a BUFFER_OVERFLOW error
307126372Snjlwould incorrectly be returned if the width of the Data Register
308126372Snjlwas larger than the specified field access width.
309126372Snjl
310126372SnjlCompleted fixes for LoadTable() and Unload() and verified their
311126372Snjloperation.  Implemented full support for the "DdbHandle" object
312126372Snjlthroughout the ACPI CA subsystem.
313126372Snjl
314126372SnjlImplemented full support for the MADT and ECDT tables in the ACPI
315126372SnjlCA header files.  Even though these tables are not directly
316126372Snjlconsumed by ACPI CA, the header definitions are useful for ACPI
317126372Snjldevice drivers.
318126372Snjl
319126372SnjlIntegrated resource descriptor fixes posted to the Linux ACPI
320126372Snjllist.  This included checks for minimum descriptor length, and
321126372Snjlsupport for trailing NULL strings within descriptors that have
322126372Snjloptional string elements.
323126372Snjl
324126372SnjlCode and Data Size: Current and previous core subsystem library
325126372Snjlsizes are shown below.  These are the code and data sizes for the
326126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
327126372Snjlthese values do not include any ACPI driver or OSPM code.  The
328126372Snjldebug version of the code includes the debug output trace
329126372Snjlmechanism and has a much larger code and data size.  Note that
330126372Snjlthese values will vary depending on the efficiency of the
331126372Snjlcompiler
332126372Snjland the compiler options used during generation.
333126372Snjl
334126372Snjl  Previous Release (20030918):
335126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
336126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
337126372Snjl  Current Release:
338126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
339126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
340126372Snjl
341126372Snjl
342126372Snjl2) iASL Compiler:
343126372Snjl
344126372SnjlImplemented detection of non-ASCII characters within the input
345126372Snjlsource ASL file.  This catches attempts to compile binary (AML)
346126372Snjlfiles early in the compile, with an informative error message.
347126372Snjl
348126372SnjlFixed a problem where the disassembler would fault if the output
349126372Snjlfilename could not be generated or if the output file could not
350126372Snjlbe
351126372Snjlopened.
352126372Snjl
353126372Snjl----------------------------------------
354126372Snjl18 September 2003.  Summary of changes for version 20030918:
355126372Snjl
356126372Snjl
357126372Snjl1) ACPI CA Core Subsystem:
358126372Snjl
359126372SnjlFound and fixed a longstanding problem with the late execution of
360126372Snjlthe various deferred AML opcodes (such as Operation Regions,
361126372SnjlBuffer Fields, Buffers, and Packages).  If the name string
362126372Snjlspecified for the name of the new object placed the object in a
363126372Snjlscope other than the current scope, the initialization/execution
364126372Snjlof the opcode failed.  The solution to this problem was to
365126372Snjlimplement a mechanism where the late execution of such opcodes
366126372Snjldoes not attempt to lookup/create the name a second time in an
367126372Snjlincorrect scope.  This fixes the "region size computed
368126372Snjlincorrectly" problem.
369126372Snjl
370126372SnjlFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
371126372Snjla
372126372SnjlGlobal Lock AE_BAD_PARAMETER error.
373126372Snjl
374126372SnjlFixed several 64-bit issues with prototypes, casting and data
375126372Snjltypes.
376126372Snjl
377126372SnjlRemoved duplicate prototype from acdisasm.h
378126372Snjl
379126372SnjlFixed an issue involving EC Operation Region Detach (Shaohua Li)
380126372Snjl
381126372SnjlCode and Data Size: Current and previous core subsystem library
382126372Snjlsizes are shown below.  These are the code and data sizes for the
383126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
384126372Snjlthese values do not include any ACPI driver or OSPM code.  The
385126372Snjldebug version of the code includes the debug output trace
386126372Snjlmechanism and has a much larger code and data size.  Note that
387126372Snjlthese values will vary depending on the efficiency of the
388126372Snjlcompiler
389126372Snjland the compiler options used during generation.
390126372Snjl
391126372Snjl  Previous Release:
392126372Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
393126372Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
394126372Snjl  Current Release:
395126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
396126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
397126372Snjl
398126372Snjl
399126372Snjl2) Linux:
400126372Snjl
401126372SnjlFixed the AcpiOsSleep implementation in osunixxf.c to pass the
402126372Snjlcorrect sleep time in seconds.
403126372Snjl
404126372Snjl----------------------------------------
405126372Snjl14 July 2003.  Summary of changes for version 20030619:
406126372Snjl
407126372Snjl1) ACPI CA Core Subsystem:
408126372Snjl
409126372SnjlParse SSDTs in order discovered, as opposed to reverse order
410126372Snjl(Hrvoje Habjanic)
411126372Snjl
412126372SnjlFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
413126372SnjlKlausner,
414126372Snjl   Nate Lawson)
415126372Snjl
416126372Snjl
417126372Snjl2) Linux:
418126372Snjl
419126372SnjlDynamically allocate SDT list (suggested by Andi Kleen)
420126372Snjl
421126372Snjlproc function return value cleanups (Andi Kleen)
422126372Snjl
423126372SnjlCorrectly handle NMI watchdog during long stalls (Andrew Morton)
424126372Snjl
425126372SnjlMake it so acpismp=force works (reported by Andrew Morton)
426126372Snjl
427126372Snjl
428126372Snjl----------------------------------------
429117521Snjl19 June 2003.  Summary of changes for version 20030619:
430117521Snjl
431117521Snjl1) ACPI CA Core Subsystem:
432117521Snjl
433117521SnjlFix To/FromBCD, eliminating the need for an arch-specific
434117521Snjl#define.
435117521Snjl
436117521SnjlDo not acquire a semaphore in the S5 shutdown path.
437117521Snjl
438117521SnjlFix ex_digits_needed for 0. (Takayoshi Kochi)
439117521Snjl
440117521SnjlFix sleep/stall code reversal. (Andi Kleen)
441117521Snjl
442117521SnjlRevert a change having to do with control method calling
443117521Snjlsemantics.
444117521Snjl
445117521Snjl2) Linux:
446117521Snjl
447117521Snjlacpiphp update (Takayoshi Kochi)
448117521Snjl
449117521SnjlExport acpi_disabled for sonypi (Stelian Pop)
450117521Snjl
451117521SnjlMention acpismp=force in config help
452117521Snjl
453117521SnjlRe-add acpitable.c and acpismp=force. This improves backwards
454117521Snjlcompatibility and also cleans up the code to a significant
455117521Snjldegree.
456117521Snjl
457117521SnjlAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
458117521Snjl
459117521Snjl----------------------------------------
460117521Snjl22 May 2003.  Summary of changes for version 20030522:
461117521Snjl
462117521Snjl1) ACPI CA Core Subsystem:
463117521Snjl
464117521SnjlFound and fixed a reported problem where an AE_NOT_FOUND error
465117521Snjloccurred occasionally during _BST evaluation.  This turned out to
466117521Snjlbe an Owner ID allocation issue where a called method did not get
467117521Snjla new ID assigned to it.  Eventually, (after 64k calls), the
468126372SnjlOwner
469126372SnjlID UINT16 would wraparound so that the ID would be the same as
470126372Snjlthe
471126372Snjlcaller's and the called method would delete the caller's
472117521Snjlnamespace.
473117521Snjl
474117521SnjlImplemented extended error reporting for control methods that are
475117521Snjlaborted due to a run-time exception.  Output includes the exact
476117521SnjlAML instruction that caused the method abort, a dump of the
477126372Snjlmethod
478126372Snjllocals and arguments at the time of the abort, and a trace of all
479126372Snjlnested control method calls.
480117521Snjl
481117521SnjlModified the interpreter to allow the creation of buffers of zero
482117521Snjllength from the AML code. Implemented new code to ensure that no
483117521Snjlattempt is made to actually allocate a memory buffer (of length
484117521Snjlzero) - instead, a simple buffer object with a NULL buffer
485126372Snjlpointer
486126372Snjland length zero is created.  A warning is no longer issued when
487126372Snjlthe AML attempts to create a zero-length buffer.
488117521Snjl
489117521SnjlImplemented a workaround for the "leading asterisk issue" in
490117521Snjl_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
491117521Snjlasterisk is automatically removed if present in any HID, UID, or
492117521SnjlCID strings.  The iASL compiler will still flag this asterisk as
493117521Snjlan error, however.
494117521Snjl
495117521SnjlImplemented full support for _CID methods that return a package
496126372Snjlof
497126372Snjlmultiple CIDs (Compatible IDs).  The AcpiGetObjectInfo()
498126372Snjlinterface
499126372Snjlnow additionally returns a device _CID list if present.  This
500126372Snjlrequired a change to the external interface in order to pass an
501126372SnjlACPI_BUFFER object as a parameter since the _CID list is of
502117521Snjlvariable length.
503117521Snjl
504117521SnjlFixed a problem with the new AE_SAME_HANDLER exception where
505117521Snjlhandler initialization code did not know about this exception.
506117521Snjl
507117521SnjlCode and Data Size: Current and previous core subsystem library
508117521Snjlsizes are shown below.  These are the code and data sizes for the
509117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
510117521Snjlthese values do not include any ACPI driver or OSPM code.  The
511117521Snjldebug version of the code includes the debug output trace
512117521Snjlmechanism and has a much larger code and data size.  Note that
513117521Snjlthese values will vary depending on the efficiency of the
514126372Snjlcompiler
515126372Snjland the compiler options used during generation.
516117521Snjl
517117521Snjl  Previous Release (20030509):
518117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
519117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
520117521Snjl  Current Release:
521117521Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
522117521Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
523117521Snjl
524117521Snjl
525117521Snjl2) Linux:
526117521Snjl
527117521SnjlFixed a bug in which we would reinitialize the ACPI interrupt
528117521Snjlafter it was already working, thus disabling all ACPI and the
529126372SnjlIRQs
530126372Snjlfor any other device sharing the interrupt. (Thanks to Stian
531117521SnjlJordet)
532117521Snjl
533117521SnjlToshiba driver update (John Belmonte)
534117521Snjl
535117521SnjlReturn only 0 or 1 for our interrupt handler status (Andrew
536117521SnjlMorton)
537117521Snjl
538117521Snjl
539117521Snjl3) iASL Compiler:
540117521Snjl
541117521SnjlFixed a reported problem where multiple (nested) ElseIf()
542117521Snjlstatements were not handled correctly by the compiler, resulting
543117521Snjlin incorrect warnings and incorrect AML code.  This was a problem
544117521Snjlin both the ASL parser and the code generator.
545117521Snjl
546117521Snjl
547117521Snjl4) Documentation:
548117521Snjl
549117521SnjlAdded changes to existing interfaces, new exception codes, and
550126372Snjlnew
551126372Snjltext concerning reference count object management versus garbage
552126372Snjlcollection.
553117521Snjl
554117521Snjl----------------------------------------
555117521Snjl09 May 2003.  Summary of changes for version 20030509.
556117521Snjl
557117521Snjl
558117521Snjl1) ACPI CA Core Subsystem:
559117521Snjl
560117521SnjlChanged the subsystem initialization sequence to hold off
561117521Snjlinstallation of address space handlers until the hardware has
562126372Snjlbeen
563126372Snjlinitialized and the system has entered ACPI mode.  This is
564126372Snjlbecause
565126372Snjlthe installation of space handlers can cause _REG methods to be
566126372Snjlrun.  Previously, the _REG methods could potentially be run
567126372Snjlbefore
568126372SnjlACPI mode was enabled.
569117521Snjl
570117521SnjlFixed some memory leak issues related to address space handler
571126372Snjland
572126372Snjlnotify handler installation.  There were some problems with the
573126372Snjlreference count mechanism caused by the fact that the handler
574117521Snjlobjects are shared across several namespace objects.
575117521Snjl
576117521SnjlFixed a reported problem where reference counts within the
577117521Snjlnamespace were not properly updated when named objects created by
578117521Snjlmethod execution were deleted.
579117521Snjl
580117521SnjlFixed a reported problem where multiple SSDTs caused a deletion
581117521Snjlissue during subsystem termination.  Restructured the table data
582117521Snjlstructures to simplify the linked lists and the related code.
583117521Snjl
584117521SnjlFixed a problem where the table ID associated with secondary
585117521Snjltables (SSDTs) was not being propagated into the namespace
586126372Snjlobjects
587126372Snjlcreated by those tables.  This would only present a problem for
588126372Snjltables that are unloaded at run-time, however.
589117521Snjl
590117521SnjlUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
591117521Snjltype as the length parameter (instead of UINT32).
592117521Snjl
593117521SnjlSolved a long-standing problem where an ALREADY_EXISTS error
594117521Snjlappears on various systems.  This problem could happen when there
595117521Snjlare multiple PCI_Config operation regions under a single PCI root
596117521Snjlbus.  This doesn't happen very frequently, but there are some
597117521Snjlsystems that do this in the ASL.
598117521Snjl
599117521SnjlFixed a reported problem where the internal DeleteNode function
600117521Snjlwas incorrectly handling the case where a namespace node was the
601117521Snjlfirst in the parent's child list, and had additional peers (not
602117521Snjlthe only child, but first in the list of children.)
603117521Snjl
604117521SnjlCode and Data Size: Current core subsystem library sizes are
605126372Snjlshown
606126372Snjlbelow.  These are the code and data sizes for the acpica.lib
607126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
608126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
609126372Snjlversion of the code includes the debug output trace mechanism and
610126372Snjlhas a much larger code and data size.  Note that these values
611126372Snjlwill
612126372Snjlvary depending on the efficiency of the compiler and the compiler
613126372Snjloptions used during generation.
614117521Snjl
615117521Snjl  Previous Release
616117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
617117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
618117521Snjl  Current Release:
619117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
620117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
621117521Snjl
622117521Snjl
623117521Snjl2) Linux:
624117521Snjl
625117521SnjlAllow ":" in OS override string (Ducrot Bruno)
626117521Snjl
627117521SnjlKobject fix (Greg KH)
628117521Snjl
629117521Snjl
630117521Snjl3 iASL Compiler/Disassembler:
631117521Snjl
632117521SnjlFixed a problem in the generation of the C source code files (AML
633117521Snjlis emitted in C source statements for BIOS inclusion) where the
634117521SnjlAscii dump that appears within a C comment at the end of each
635126372Snjlline
636126372Snjlcould cause a compile time error if the AML sequence happens to
637126372Snjlhave an open comment or close comment sequence embedded.
638117521Snjl
639117521Snjl
640117521Snjl----------------------------------------
641117521Snjl24 April 2003.  Summary of changes for version 20030424.
642117521Snjl
643117521Snjl
644117521Snjl1) ACPI CA Core Subsystem:
645117521Snjl
646117521SnjlSupport for big-endian systems has been implemented.  Most of the
647117521Snjlsupport has been invisibly added behind big-endian versions of
648126372Snjlthe
649126372SnjlACPI_MOVE_* macros.
650117521Snjl
651117521SnjlFixed a problem in AcpiHwDisableGpeBlock() and
652117521SnjlAcpiHwClearGpeBlock() where an incorrect offset was passed to the
653117521Snjllow level hardware write routine.  The offset parameter was
654117521Snjlactually eliminated from the low level read/write routines
655126372Snjlbecause
656126372Snjlthey had become obsolete.
657117521Snjl
658117521SnjlFixed a problem where a handler object was deleted twice during
659117521Snjlthe removal of a fixed event handler.
660117521Snjl
661117521Snjl
662117521Snjl2) Linux:
663117521Snjl
664117521SnjlA fix for SMP systems with link devices was contributed by
665117521SnjlCompaq's Dan Zink.
666117521Snjl
667117521Snjl(2.5) Return whether we handled the interrupt in our IRQ handler.
668117521Snjl(Linux ISRs no longer return void, so we can propagate the
669126372Snjlhandler
670126372Snjlreturn value from the ACPI CA core back to the OS.)
671117521Snjl
672117521Snjl
673117521Snjl3) Documentation:
674117521Snjl
675117521SnjlThe ACPI CA Programmer Reference has been updated to reflect new
676117521Snjlinterfaces and changes to existing interfaces.
677117521Snjl
678117521Snjl----------------------------------------
679117521Snjl28 March 2003.  Summary of changes for version 20030328.
680117521Snjl
681117521Snjl1) ACPI CA Core Subsystem:
682117521Snjl
683117521SnjlThe GPE Block Device support has been completed.  New interfaces
684117521Snjlare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
685117521Snjlinterfaces (enable, disable, clear, getstatus) have been split
686117521Snjlinto separate interfaces for Fixed Events and General Purpose
687117521SnjlEvents (GPEs) in order to support GPE Block Devices properly.
688117521Snjl
689117521SnjlFixed a problem where the error message "Failed to acquire
690117521Snjlsemaphore" would appear during operations on the embedded
691117521Snjlcontroller (EC).
692117521Snjl
693117521SnjlCode and Data Size: Current core subsystem library sizes are
694126372Snjlshown
695126372Snjlbelow.  These are the code and data sizes for the acpica.lib
696126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
697126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
698126372Snjlversion of the code includes the debug output trace mechanism and
699126372Snjlhas a much larger code and data size.  Note that these values
700126372Snjlwill
701126372Snjlvary depending on the efficiency of the compiler and the compiler
702126372Snjloptions used during generation.
703117521Snjl
704117521Snjl  Previous Release
705117521Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
706117521Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
707117521Snjl  Current Release:
708117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
709117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
710117521Snjl
711117521Snjl
712117521Snjl----------------------------------------
713114237Snjl28 February 2003.  Summary of changes for version 20030228.
714114237Snjl
715114237Snjl
716114237Snjl1) ACPI CA Core Subsystem:
717114237Snjl
718114237SnjlThe GPE handling and dispatch code has been completely overhauled
719114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
720114237SnjlThis affects internal data structures and code only; there should
721114237Snjlbe no differences visible externally.  One new file has been
722114237Snjladded, evgpeblk.c
723114237Snjl
724114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
725114237Snjlfields that are used to determine the GPE block lengths.  The
726114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
727114237Snjlstructures are ignored.  This is per the ACPI specification but
728126372Snjlit
729126372Snjlisn't very clear.  The full 256 Block 0/1 GPEs are now supported
730126372Snjl(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
731126372Snjl128).
732114237Snjl
733114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
734114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
735114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
736114237Snjlin fact be the cause of slow battery status response on some
737114237Snjlsystems.)
738114237Snjl
739114237SnjlFixed a problem where a store of a NULL string to a package
740126372Snjlobject
741126372Snjlcould cause the premature deletion of the object.  This was seen
742126372Snjlduring execution of the battery _BIF method on some systems,
743126372Snjlresulting in no battery data being returned.
744114237Snjl
745114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
746114237Snjllists.
747114237Snjl
748114237SnjlCode and Data Size: Current core subsystem library sizes are
749126372Snjlshown
750126372Snjlbelow.  These are the code and data sizes for the acpica.lib
751126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
752126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
753126372Snjlversion of the code includes the debug output trace mechanism and
754126372Snjlhas a much larger code and data size.  Note that these values
755126372Snjlwill
756126372Snjlvary depending on the efficiency of the compiler and the compiler
757126372Snjloptions used during generation.
758114237Snjl
759114237Snjl  Previous Release
760114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
761114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
762114237Snjl  Current Release:
763114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
764114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
765114237Snjl
766114237Snjl
767114237Snjl2) Linux
768114237Snjl
769114237SnjlS3 fixes (Ole Rohne)
770114237Snjl
771114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
772114237Snjl(Bjorn Helgaas)
773114237Snjl
774114237SnjlAdd S4BIOS support (Pavel Machek)
775114237Snjl
776114237SnjlMap in entire table before performing checksum (John Stultz)
777114237Snjl
778114237SnjlExpand the mem= cmdline to allow the specification of reserved
779126372Snjland
780126372SnjlACPI DATA blocks (Pavel Machek)
781114237Snjl
782114237SnjlNever use ACPI on VISWS
783114237Snjl
784114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
785114237Snjl
786114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
787114237Snjlcausing us to think that some systems support C2 when they really
788114237Snjldon't.
789114237Snjl
790114237SnjlDo not count processor objects for non-present CPUs (Thanks to
791114237SnjlDominik Brodowski)
792114237Snjl
793114237Snjl
794114237Snjl3) iASL Compiler:
795114237Snjl
796114237SnjlFixed a problem where ASL include files could not be found and
797114237Snjlopened.
798114237Snjl
799114237SnjlAdded support for the _PDC reserved name.
800114237Snjl
801114237Snjl
802117521Snjl----------------------------------------
803114237Snjl22 January 2003.  Summary of changes for version 20030122.
804114237Snjl
805114237Snjl
806114237Snjl1) ACPI CA Core Subsystem:
807114237Snjl
808114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
809114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
810114237Snjlprogrammers believe that this is a NOOP.  Since this store
811126372Snjldoesn't
812126372Snjldo anything anyway, the new prototype behavior will ignore this
813126372Snjlerror.  This is a case where we can relax the strict checking in
814126372Snjlthe interpreter in the name of compatibility.
815114237Snjl
816114237Snjl
817114237Snjl2) Linux
818114237Snjl
819114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
820114237SnjlLinux package for the first time.  This is the utility that is
821114237Snjlused to convert the ACPI CA base source code to the Linux
822114237Snjlversion.
823114237Snjl
824114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
825114237Snjl
826114237Snjl(Both) Move more headers to include/acpi, and delete an unused
827114237Snjlheader.
828114237Snjl
829114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
830114237Snjl
831114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
832114237Snjl
833114237Snjl(Both) Remove include of unused header (Adrian Bunk)
834114237Snjl
835114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
836114237Snjlthe
837114237Snjlformer now also includes the latter, acpiphp.h only needs the
838126372Snjlone,
839126372Snjlnow.
840114237Snjl
841114237Snjl(2.5) Make it possible to select method of bios restoring after
842114237SnjlS3
843114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
844114237Snjl
845114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
846114237Snjl
847114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
848114237Snjl
849114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
850114237Snjl(Dominik Brodowski)
851114237Snjl
852114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
853114237Snjl
854114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
855114237SnjlVisinoni)
856114237Snjl
857114237Snjl
858114237Snjl3) iASL Compiler:
859114237Snjl
860114237SnjlAdded support to disassemble SSDT and PSDTs.
861114237Snjl
862114237SnjlImplemented support to obtain SSDTs from the Windows registry if
863114237Snjlavailable.
864114237Snjl
865114237Snjl
866102550Siwasaki----------------------------------------
867114237Snjl09 January 2003.  Summary of changes for version 20030109.
868114237Snjl
869114237Snjl1) ACPI CA Core Subsystem:
870114237Snjl
871114237SnjlChanged the behavior of the internal Buffer-to-String conversion
872114237Snjlfunction.  The current ACPI specification states that the
873126372Snjlcontents
874126372Snjlof the buffer are "converted to a string of two-character
875126372Snjlhexadecimal numbers, each separated by a space".  Unfortunately,
876126372Snjlthis definition is not backwards compatible with existing ACPI
877126372Snjl1.0
878126372Snjlimplementations (although the behavior was not defined in the
879126372SnjlACPI
880126372Snjl1.0 specification).  The new behavior simply copies data from the
881126372Snjlbuffer to the string until a null character is found or the end
882126372Snjlof
883126372Snjlthe buffer is reached.  The new String object is always null
884126372Snjlterminated.  This problem was seen during the generation of _BIF
885126372Snjlbattery data where incorrect strings were returned for battery
886126372Snjltype, etc.  This will also require an errata to the ACPI
887126372Snjlspecification.
888114237Snjl
889114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
890114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
891114237Snjl
892114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
893114237Snjlupdated to 2003.
894114237Snjl
895114237SnjlCode and Data Size: Current core subsystem library sizes are
896126372Snjlshown
897126372Snjlbelow.  These are the code and data sizes for the acpica.lib
898126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
899126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
900126372Snjlversion of the code includes the debug output trace mechanism and
901126372Snjlhas a much larger code and data size.  Note that these values
902126372Snjlwill
903126372Snjlvary depending on the efficiency of the compiler and the compiler
904126372Snjloptions used during generation.
905114237Snjl
906114237Snjl  Previous Release
907114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
908114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
909114237Snjl  Current Release:
910114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
911114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
912114237Snjl
913114237Snjl
914114237Snjl2) Linux
915114237Snjl
916114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
917114237Snjl
918114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
919114237Snjl
920114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
921114237Snjl
922114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
923114237Snjl
924114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
925114237Snjlof schedule_work()
926114237Snjl
927114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
928114237Snjl
929114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
930114237Snjl
931114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
932114237Snjl
933114237SnjlSeveral changes have been made to the source code translation
934114237Snjlutility that generates the Linux Code in order to make the code
935114237Snjlmore "Linux-like":
936114237Snjl
937114237SnjlAll typedefs on structs and unions have been removed in keeping
938114237Snjlwith the Linux coding style.
939114237Snjl
940114237SnjlRemoved the non-Linux SourceSafe module revision number from each
941114237Snjlmodule header.
942114237Snjl
943114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
944114237SnjlDoubled the number of symbols that are lowercased.
945114237Snjl
946114237SnjlFixed a problem where identifiers within procedure headers and
947114237Snjlwithin quotes were not fully lower cased (they were left with a
948114237Snjlstarting capital.)
949114237Snjl
950114237SnjlSome C macros whose only purpose is to allow the generation of 16-
951114237Snjlbit code are now completely removed in the Linux code, increasing
952114237Snjlreadability and maintainability.
953114237Snjl
954114237Snjl----------------------------------------
955114237Snjl
956114237Snjl12 December 2002.  Summary of changes for version 20021212.
957114237Snjl
958114237Snjl
959114237Snjl1) ACPI CA Core Subsystem:
960114237Snjl
961114237SnjlFixed a problem where the creation of a zero-length AML Buffer
962114237Snjlwould cause a fault.
963114237Snjl
964114237SnjlFixed a problem where a Buffer object that pointed to a static
965126372SnjlAML
966126372Snjlbuffer (in an ACPI table) could inadvertently be deleted, causing
967126372Snjlmemory corruption.
968114237Snjl
969114237SnjlFixed a problem where a user buffer (passed in to the external
970114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
971114237Snjlsmall to complete the operation, causing memory corruption.
972114237Snjl
973114237SnjlFixed a problem in the Buffer-to-String conversion code where a
974114237Snjlstring of length one was always returned, regardless of the size
975114237Snjlof the input Buffer object.
976114237Snjl
977114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
978114237Snjllack of need and lack of consistent use.
979114237Snjl
980114237SnjlCode and Data Size: Current core subsystem library sizes are
981126372Snjlshown
982126372Snjlbelow.  These are the code and data sizes for the acpica.lib
983126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
984126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
985126372Snjlversion of the code includes the debug output trace mechanism and
986126372Snjlhas a much larger code and data size.  Note that these values
987126372Snjlwill
988126372Snjlvary depending on the efficiency of the compiler and the compiler
989126372Snjloptions used during generation.
990114237Snjl
991114237Snjl  Previous Release
992114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
993114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
994114237Snjl  Current Release:
995114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
996114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
997114237Snjl
998114237Snjl
999114237Snjl----------------------------------------
1000114237Snjl05 December 2002.  Summary of changes for version 20021205.
1001114237Snjl
1002114237Snjl1) ACPI CA Core Subsystem:
1003114237Snjl
1004114237SnjlFixed a problem where a store to a String or Buffer object could
1005114237Snjlcause corruption of the DSDT if the object type being stored was
1006114237Snjlthe same as the target object type and the length of the object
1007114237Snjlbeing stored was equal to or smaller than the original (existing)
1008114237Snjltarget object.  This was seen to cause corruption of battery _BIF
1009114237Snjlbuffers if the _BIF method modified the buffer on the fly.
1010114237Snjl
1011114237SnjlFixed a problem where an internal error was generated if a
1012126372Snjlcontrol
1013126372Snjlmethod invocation was used in an OperationRegion, Buffer, or
1014126372SnjlPackage declaration.  This was caused by the deferred parsing of
1015126372Snjlthe control method and thus the deferred creation of the internal
1016126372Snjlmethod object.  The solution to this problem was to create the
1017126372Snjlinternal method object at the moment the method is encountered in
1018126372Snjlthe first pass - so that subsequent references to the method will
1019126372Snjlable to obtain the required parameter count and thus properly
1020126372Snjlparse the method invocation.  This problem presented itself as an
1021126372SnjlAE_AML_INTERNAL during the pass 1 parse phase during table load.
1022114237Snjl
1023114237SnjlFixed a problem where the internal String object copy routine did
1024114237Snjlnot always allocate sufficient memory for the target String
1025126372Snjlobject
1026126372Snjland caused memory corruption.  This problem was seen to cause
1027126372Snjl"Allocation already present in list!" errors as memory allocation
1028126372Snjlbecame corrupted.
1029114237Snjl
1030114237SnjlImplemented a new function for the evaluation of namespace
1031126372Snjlobjects
1032126372Snjlthat allows the specification of the allowable return object
1033126372Snjltypes.  This simplifies a lot of code that checks for a return
1034126372Snjlobject of one or more specific objects returned from the
1035114237Snjlevaluation (such as _STA, etc.)  This may become and external
1036114237Snjlfunction if it would be useful to ACPI-related drivers.
1037114237Snjl
1038114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
1039114237Snjlclarity.
1040114237Snjl
1041114237SnjlCompleted additional code restructuring to allow more modular
1042114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
1043114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
1044114237Snjl
1045114237SnjlImplemented an abort mechanism to terminate an executing control
1046114237Snjlmethod via the AML debugger.  This feature is useful for
1047126372Snjldebugging
1048126372Snjlcontrol methods that depend (wait) for specific hardware
1049126372Snjlresponses.
1050114237Snjl
1051114237SnjlCode and Data Size: Current core subsystem library sizes are
1052126372Snjlshown
1053126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1054126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1055126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1056126372Snjlversion of the code includes the debug output trace mechanism and
1057126372Snjlhas a much larger code and data size.  Note that these values
1058126372Snjlwill
1059126372Snjlvary depending on the efficiency of the compiler and the compiler
1060126372Snjloptions used during generation.
1061114237Snjl
1062114237Snjl  Previous Release
1063114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1064114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1065114237Snjl  Current Release:
1066114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1067114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1068114237Snjl
1069114237Snjl
1070114237Snjl2) iASL Compiler/Disassembler
1071114237Snjl
1072114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
1073114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
1074114237SnjlSource Index" and "Resource Source" fields were not inserted into
1075114237Snjlthe correct location within the AML resource descriptor, creating
1076114237Snjlan invalid descriptor.
1077114237Snjl
1078114237SnjlFixed a disassembler problem for "Interrupt" resource
1079126372Snjldescriptors.
1080126372SnjlThe optional "Resource Source Index" and "Resource Source" fields
1081126372Snjlwere ignored.
1082114237Snjl
1083114237Snjl
1084114237Snjl----------------------------------------
1085114237Snjl22 November 2002.  Summary of changes for version 20021122.
1086114237Snjl
1087114237Snjl
1088114237Snjl1) ACPI CA Core Subsystem:
1089114237Snjl
1090114237SnjlFixed a reported problem where an object stored to a Method Local
1091114237Snjlor Arg was not copied to a new object during the store - the
1092114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
1093114237Snjlall subsequent operations on the Local/Arg to also affect the
1094114237Snjloriginal source of the store operation.
1095114237Snjl
1096114237SnjlFixed a problem where a store operation to a Method Local or Arg
1097114237Snjlwas not completed properly if the Local/Arg contained a reference
1098114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
1099114237Snjlnamespace-node code is now used so that this case is handled
1100114237Snjlautomatically.
1101114237Snjl
1102114237SnjlFixed a problem where the internal object copy routine would
1103126372Snjlcause
1104126372Snjla protection fault if the object being copied was a Package and
1105126372Snjlcontained either 1) a NULL package element or 2) a nested sub-
1106114237Snjlpackage.
1107114237Snjl
1108114237SnjlFixed a problem with the GPE initialization that resulted from an
1109114237Snjlambiguity in the ACPI specification.  One section of the
1110114237Snjlspecification states that both the address and length of the GPE
1111114237Snjlblock must be zero if the block is not supported.  Another
1112126372Snjlsection
1113126372Snjlimplies that only the address need be zero if the block is not
1114126372Snjlsupported.  The code has been changed so that both the address
1115126372Snjland
1116126372Snjlthe length must be non-zero to indicate a valid GPE block (i.e.,
1117126372Snjlif either the address or the length is zero, the GPE block is
1118126372Snjlinvalid.)
1119114237Snjl
1120114237SnjlCode and Data Size: Current core subsystem library sizes are
1121126372Snjlshown
1122126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1123126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1124126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1125126372Snjlversion of the code includes the debug output trace mechanism and
1126126372Snjlhas a much larger code and data size.  Note that these values
1127126372Snjlwill
1128126372Snjlvary depending on the efficiency of the compiler and the compiler
1129126372Snjloptions used during generation.
1130114237Snjl
1131114237Snjl  Previous Release
1132114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1133114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1134114237Snjl  Current Release:
1135114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1136114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1137114237Snjl
1138114237Snjl
1139114237Snjl2) Linux
1140114237Snjl
1141114237SnjlCleaned up EC driver. Exported an external EC read/write
1142114237Snjlinterface. By going through this, other drivers (most notably
1143114237Snjlsonypi) will be able to serialize access to the EC.
1144114237Snjl
1145114237Snjl
1146114237Snjl3) iASL Compiler/Disassembler
1147114237Snjl
1148114237SnjlImplemented support to optionally generate include files for both
1149114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
1150114237Snjlautomatically creating include files that contain external
1151114237Snjldeclarations for the symbols that are created within the
1152114237Snjl(optionally generated) ASM and C AML source files.
1153114237Snjl
1154114237Snjl
1155114237Snjl----------------------------------------
1156107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
1157104470Siwasaki
1158107325Siwasaki1) ACPI CA Core Subsystem:
1159107325Siwasaki
1160114237SnjlFixed a memory leak problem where an error during resolution of
1161114237Snjlmethod arguments during a method invocation from another method
1162114237Snjlfailed to cleanup properly by deleting all successfully resolved
1163114237Snjlargument objects.
1164107325Siwasaki
1165114237SnjlFixed a problem where the target of the Index() operator was not
1166114237Snjlcorrectly constructed if the source object was a package.  This
1167114237Snjlproblem has not been detected because the use of a target operand
1168114237Snjlwith Index() is very rare.
1169107325Siwasaki
1170107325SiwasakiFixed a problem with the Index() operator where an attempt was
1171107325Siwasakimade to delete the operand objects twice.
1172107325Siwasaki
1173107325SiwasakiFixed a problem where an attempt was made to delete an operand
1174114237Snjltwice during execution of the CondRefOf() operator if the target
1175114237Snjldid not exist.
1176107325Siwasaki
1177114237SnjlImplemented the first of perhaps several internal create object
1178114237Snjlfunctions that create and initialize a specific object type.
1179126372SnjlThis
1180126372Snjlconsolidates duplicated code wherever the object is created, thus
1181126372Snjlshrinking the size of the subsystem.
1182107325Siwasaki
1183114237SnjlImplemented improved debug/error messages for errors that occur
1184114237Snjlduring nested method invocations.  All executing method pathnames
1185114237Snjlare displayed (with the error) as the call stack is unwound -
1186126372Snjlthus
1187126372Snjlsimplifying debug.
1188107325Siwasaki
1189107325SiwasakiFixed a problem introduced in the 10/02 release that caused
1190114237Snjlpremature deletion of a buffer object if a buffer was used as an
1191114237SnjlASL operand where an integer operand is required (Thus causing an
1192114237Snjlimplicit object conversion from Buffer to Integer.)  The change
1193126372Snjlin
1194126372Snjlthe 10/02 release was attempting to fix a memory leak (albeit
1195114237Snjlincorrectly.)
1196107325Siwasaki
1197107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1198126372Snjlshown
1199126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1200126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1201126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1202126372Snjlversion of the code includes the debug output trace mechanism and
1203126372Snjlhas a much larger code and data size.  Note that these values
1204126372Snjlwill
1205126372Snjlvary depending on the efficiency of the compiler and the compiler
1206126372Snjloptions used during generation.
1207107325Siwasaki
1208107325Siwasaki  Previous Release
1209107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1210107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1211107325Siwasaki  Current Release:
1212107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1213107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1214107325Siwasaki
1215107325Siwasaki
1216107325Siwasaki2) Linux
1217107325Siwasaki
1218114237SnjlChanged the implementation of the ACPI semaphores to use down()
1219114237Snjlinstead of down_interruptable().  It is important that the
1220114237Snjlexecution of ACPI control methods not be interrupted by signals.
1221114237SnjlMethods must run to completion, or the system may be left in an
1222114237Snjlunknown/unstable state.
1223107325Siwasaki
1224107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
1225126372Snjlset.
1226126372Snjl(Shawn Starr)
1227107325Siwasaki
1228107325Siwasaki
1229107325Siwasaki3) iASL Compiler/Disassembler
1230107325Siwasaki
1231107325Siwasaki
1232114237SnjlChanged the default location of output files.  All output files
1233114237Snjlare now placed in the current directory by default instead of in
1234114237Snjlthe directory of the source file.  This change may affect some
1235114237Snjlexisting makefiles, but it brings the behavior of the compiler in
1236114237Snjlline with other similar tools.  The location of the output files
1237114237Snjlcan be overridden with the -p command line switch.
1238107325Siwasaki
1239114237Snjl
1240107325Siwasaki----------------------------------------
1241107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
1242107325Siwasaki
1243107325Siwasaki
1244114237Snjl0) ACPI Specification 2.0B is released and is now available at:
1245114237Snjlhttp://www.acpi.info/index.html
1246107325Siwasaki
1247107325Siwasaki
1248107325Siwasaki1) ACPI CA Core Subsystem:
1249107325Siwasaki
1250107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
1251114237SnjlThis includes the early detection and handoff of the request to
1252114237Snjlthe SMBus region handler (avoiding all of the complex field
1253107325Siwasakisupport code), and support for the bidirectional return packet
1254107325Siwasakifrom an SMBus write operation.  This paves the way for the
1255107325Siwasakidevelopment of SMBus drivers in each host operating system.
1256107325Siwasaki
1257107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
1258107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
1259107325Siwasakispecification.  This had the side effect of causing ASL
1260107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
1261107325Siwasakiforever.  Changed all internal references to the ACPI timeout
1262107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
1263126372Snjlname
1264126372Snjlof WAIT_FOREVER to ACPI_WAIT_FOREVER.
1265107325Siwasaki
1266107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1267126372Snjlshown
1268126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1269126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1270126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1271126372Snjlversion of the code includes the debug output trace mechanism and
1272126372Snjlhas a much larger code and data size.  Note that these values
1273126372Snjlwill
1274126372Snjlvary depending on the efficiency of the compiler and the compiler
1275126372Snjloptions used during generation.
1276107325Siwasaki
1277107325Siwasaki  Previous Release
1278107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1279107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1280107325Siwasaki  Current Release:
1281107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1282107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1283107325Siwasaki
1284107325Siwasaki
1285107325Siwasaki2) Linux
1286107325Siwasaki
1287107325SiwasakiModule loading/unloading fixes (John Cagle)
1288107325Siwasaki
1289107325Siwasaki
1290107325Siwasaki3) iASL Compiler/Disassembler
1291107325Siwasaki
1292107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
1293107325Siwasaki
1294107325SiwasakiImplemented support for the disassembly of all SMBus protocol
1295107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
1296107325Siwasaki
1297107325Siwasaki----------------------------------------
1298107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
1299107325Siwasaki
1300107325Siwasaki
1301107325Siwasaki1) ACPI CA Core Subsystem:
1302107325Siwasaki
1303107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
1304126372SnjlGPE0
1305126372Snjlblock were not handled correctly.  This resulted in a "GPE
1306114237Snjloverlap" error message.  GPE0 is no longer required.
1307107325Siwasaki
1308107325SiwasakiRemoved code added in the previous release that inserted nodes
1309114237Snjlinto the namespace in alphabetical order.  This caused some side-
1310114237Snjleffects on various machines.  The root cause of the problem is
1311114237Snjlstill under investigation since in theory, the internal ordering
1312114237Snjlof the namespace nodes should not matter.
1313107325Siwasaki
1314107325Siwasaki
1315114237SnjlEnhanced error reporting for the case where a named object is not
1316114237Snjlfound during control method execution.  The full ACPI namepath
1317114237Snjl(name reference) of the object that was not found is displayed in
1318114237Snjlthis case.
1319107325Siwasaki
1320114237SnjlNote: as a result of the overhaul of the namespace object types
1321126372Snjlin
1322126372Snjlthe previous release, the namespace nodes for the predefined
1323114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
1324114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
1325114237Snjlmanagement code but may affect code that walks the namespace tree
1326114237Snjllooking for specific object types.
1327114237Snjl
1328107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1329126372Snjlshown
1330126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1331126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1332126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1333126372Snjlversion of the code includes the debug output trace mechanism and
1334126372Snjlhas a much larger code and data size.  Note that these values
1335126372Snjlwill
1336126372Snjlvary depending on the efficiency of the compiler and the compiler
1337126372Snjloptions used during generation.
1338107325Siwasaki
1339107325Siwasaki  Previous Release
1340107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1341107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1342107325Siwasaki  Current Release:
1343107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1344107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1345107325Siwasaki
1346107325Siwasaki
1347107325Siwasaki2) Linux
1348107325Siwasaki
1349107325SiwasakiFixed a problem introduced in the previous release where the
1350114237SnjlProcessor and Thermal objects were not recognized and installed
1351126372Snjlin
1352126372Snjl/proc.  This was related to the scope type change described
1353114237Snjlabove.
1354107325Siwasaki
1355107325Siwasaki
1356107325Siwasaki3) iASL Compiler/Disassembler
1357107325Siwasaki
1358114237SnjlImplemented the -g option to get all of the required ACPI tables
1359114237Snjlfrom the registry and save them to files (Windows version of the
1360114237Snjlcompiler only.)  The required tables are the FADT, FACS, and
1361114237SnjlDSDT.
1362107325Siwasaki
1363114237SnjlAdded ACPI table checksum validation during table disassembly in
1364114237Snjlorder to catch corrupted tables.
1365107325Siwasaki
1366107325Siwasaki
1367107325Siwasaki----------------------------------------
1368107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
1369107325Siwasaki
1370107325Siwasaki1) ACPI CA Core Subsystem:
1371107325Siwasaki
1372114237SnjlImplemented a restriction on the Scope operator that the target
1373114237Snjlmust already exist in the namespace at the time the operator is
1374114237Snjlencountered (during table load or method execution).  In other
1375114237Snjlwords, forward references are not allowed and Scope() cannot
1376114237Snjlcreate a new object. This changes the previous behavior where the
1377114237Snjlinterpreter would create the name if not found.  This new
1378126372Snjlbehavior
1379126372Snjlcorrectly enables the search-to-root algorithm during namespace
1380126372Snjllookup of the target name.  Because of this upsearch, this fixes
1381126372Snjlthe known Compaq _SB_.OKEC problem and makes both the AML
1382126372Snjlinterpreter and iASL compiler compatible with other ACPI
1383114237Snjlimplementations.
1384107325Siwasaki
1385114237SnjlCompleted a major overhaul of the internal ACPI object types for
1386114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
1387114237Snjlthese types had become obsolete with the introduction of the two-
1388114237Snjlpass namespace load.  This cleanup simplifies the code and makes
1389114237Snjlthe entire namespace load mechanism much clearer and easier to
1390114237Snjlunderstand.
1391107325Siwasaki
1392114237SnjlImproved debug output for tracking scope opening/closing to help
1393114237Snjldiagnose scoping issues.  The old scope name as well as the new
1394114237Snjlscope name are displayed.  Also improved error messages for
1395114237Snjlproblems with ASL Mutex objects and error messages for GPE
1396114237Snjlproblems.
1397107325Siwasaki
1398107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
1399107325Siwasaki
1400114237SnjlAll string output (for all namespace/object dumps) now uses the
1401114237Snjlcommon ACPI string output procedure which handles escapes
1402126372Snjlproperly
1403126372Snjland does not emit non-printable characters.
1404107325Siwasaki
1405107325SiwasakiFixed some issues with constants in the 64-bit version of the
1406107325Siwasakilocal C library (utclib.c)
1407107325Siwasaki
1408107325Siwasaki
1409107325Siwasaki2) Linux
1410107325Siwasaki
1411107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
1412107325Siwasakiinterrupt level.
1413107325Siwasaki
1414107325Siwasaki
1415107325Siwasaki3) iASL Compiler/Disassembler
1416107325Siwasaki
1417107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
1418126372Snjland
1419126372Snjl2 opcodes outside of a control method.  This means that the
1420114237Snjl"executable" operators (versus the "namespace" operators) cannot
1421114237Snjlbe used at the table level; they can only be used within a
1422126372Snjlcontrol
1423126372Snjlmethod.
1424107325Siwasaki
1425107325SiwasakiImplemented the restriction on the Scope() operator where the
1426107325Siwasakitarget must already exist in the namespace at the time the
1427114237Snjloperator is encountered (during ASL compilation). In other words,
1428114237Snjlforward references are not allowed and Scope() cannot create a
1429126372Snjlnew
1430126372Snjlobject.  This makes the iASL compiler compatible with other ACPI
1431126372Snjlimplementations and makes the Scope() implementation adhere to
1432126372Snjlthe
1433126372SnjlACPI specification.
1434107325Siwasaki
1435107325SiwasakiFixed a problem where namepath optimization for the Alias
1436126372Snjloperator
1437126372Snjlwas optimizing the wrong path (of the two namepaths.)  This
1438126372Snjlcaused
1439126372Snjla "Missing alias link" error message.
1440107325Siwasaki
1441114237SnjlFixed a problem where an "unknown reserved name" warning could be
1442114237Snjlincorrectly generated for names like "_SB" when the trailing
1443114237Snjlunderscore is not used in the original ASL.
1444107325Siwasaki
1445107325SiwasakiFixed a problem where the reserved name check did not handle
1446114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
1447114237Snjlthe NamePath was examined instead of the last NameSeg.
1448107325Siwasaki
1449107325Siwasaki
1450107325Siwasaki----------------------------------------
1451107325Siwasaki
1452104470Siwasaki02 October 2002.  Summary of changes for this release.
1453104470Siwasaki
1454104470Siwasaki
1455104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
1456104470Siwasaki
1457104470SiwasakiFixed a problem where a store/copy of a string to an existing
1458104470Siwasakistring did not always set the string length properly in the
1459126372SnjlString
1460126372Snjlobject.
1461104470Siwasaki
1462104470SiwasakiFixed a reported problem with the ToString operator where the
1463104470Siwasakibehavior was identical to the ToHexString operator instead of
1464126372Snjljust
1465126372Snjlsimply converting a raw buffer to a string data type.
1466104470Siwasaki
1467104470SiwasakiFixed a problem where CopyObject and the other "explicit"
1468104470Siwasakiconversion operators were not updating the internal namespace
1469126372Snjlnode
1470126372Snjltype as part of the store operation.
1471104470Siwasaki
1472104470SiwasakiFixed a memory leak during implicit source operand conversion
1473114237Snjlwhere the original object was not deleted if it was converted to
1474126372Snjla
1475126372Snjlnew object of a different type.
1476104470Siwasaki
1477104470SiwasakiEnhanced error messages for all problems associated with
1478126372Snjlnamespace
1479126372Snjllookups.  Common procedure generates and prints the lookup name
1480126372Snjlas
1481126372Snjlwell as the formatted status.
1482104470Siwasaki
1483104470SiwasakiCompleted implementation of a new design for the Alias support
1484104470Siwasakiwithin the namespace.  The existing design did not handle the
1485126372Snjlcase
1486126372Snjlwhere a new object was assigned to one of the two names due to
1487126372Snjlthe
1488126372Snjluse of an explicit conversion operator, resulting in the two
1489126372Snjlnames
1490126372Snjlpointing to two different objects.  The new design simply points
1491126372Snjlthe Alias name to the original name node - not to the object.
1492126372SnjlThis results in a level of indirection that must be handled in
1493126372Snjlthe
1494126372Snjlname resolution mechanism.
1495104470Siwasaki
1496104470SiwasakiCode and Data Size: Current core subsystem library sizes are
1497126372Snjlshown
1498126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1499126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1500126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1501126372Snjlversion of the code includes the debug output trace mechanism and
1502126372Snjlhas a larger code and data size.  Note that these values will
1503126372Snjlvary
1504126372Snjldepending on the efficiency of the compiler and the compiler
1505126372Snjloptions used during generation.
1506104470Siwasaki
1507104470Siwasaki  Previous Release
1508104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1509104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1510104470Siwasaki  Current Release:
1511104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1512104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1513104470Siwasaki
1514104470Siwasaki
1515104470Siwasaki2) Linux
1516104470Siwasaki
1517104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
1518104470SiwasakiNeumann)
1519104470Siwasaki
1520104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
1521104470Siwasaki
1522114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
1523104470Siwasaki
1524104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
1525104470Siwasaki
1526104470SiwasakiIA64 fixes. (David Mosberger)
1527104470Siwasaki
1528104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
1529104470Siwasaki
1530104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
1531104470SiwasakiBrodowski)
1532104470Siwasaki
1533104470Siwasaki
1534104470Siwasaki3) iASL Compiler/Disassembler
1535104470Siwasaki
1536104470SiwasakiClarified some warning/error messages.
1537104470Siwasaki
1538104470Siwasaki
1539104470Siwasaki----------------------------------------
1540104470Siwasaki18 September 2002.  Summary of changes for this release.
1541104470Siwasaki
1542104470Siwasaki
1543104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
1544104470Siwasaki
1545114237SnjlFixed a reported problem with reference chaining (via the Index()
1546114237Snjland RefOf() operators) in the ObjectType() and SizeOf()
1547126372Snjloperators.
1548126372SnjlThe definition of these operators includes the dereferencing of
1549126372Snjlall chained references to return information on the base object.
1550104470Siwasaki
1551104470SiwasakiFixed a problem with stores to indexed package elements - the
1552104470Siwasakiexisting code would not complete the store if an "implicit
1553114237Snjlconversion" was not performed.  In other words, if the existing
1554114237Snjlobject (package element) was to be replaced completely, the code
1555114237Snjldidn't handle this case.
1556104470Siwasaki
1557104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
1558104470Siwasakitarget name to refer to an object of type Integer, String, or
1559104470SiwasakiBuffer, in addition to the scoping object types (Device,
1560104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
1561114237SnjlThis allows existing AML code that has workarounds for a bug in
1562114237SnjlWindows to function properly.  A warning is issued, however.
1563126372SnjlThis
1564126372Snjlaffects both the AML interpreter and the iASL compiler. Below is
1565126372Snjlan example of this type of ASL code:
1566104470Siwasaki
1567104470Siwasaki      Name(DEB,0x00)
1568104470Siwasaki      Scope(DEB)
1569104470Siwasaki      {
1570104470Siwasaki
1571114237SnjlFixed some reported problems with 64-bit integer support in the
1572114237Snjllocal implementation of C library functions (clib.c)
1573104470Siwasaki
1574104470Siwasaki
1575104470Siwasaki2) Linux
1576104470Siwasaki
1577104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
1578104470Siwasakiundefined in non-SMP.
1579104470Siwasaki
1580114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
1581114237Snjlsystems that do not have an interrupt override entry in the MADT.
1582104470Siwasaki
1583104470Siwasaki2.5 big driver reorganization (Pat Mochel)
1584104470Siwasaki
1585104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
1586104470Siwasaki
1587104470SiwasakiNew blacklist entries (Andi Kleen)
1588104470Siwasaki
1589114237SnjlBlacklist improvements. Split blacklist code out into a separate
1590114237Snjlfile. Move checking the blacklist to very early. Previously, we
1591114237Snjlwould use ACPI tables, and then halfway through init, check the
1592114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
1593114237Snjlback to non-ACPI.
1594104470Siwasaki
1595104470Siwasaki
1596104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
1597104470Siwasaki
1598114237SnjlFixed a problem where the typechecking code didn't know that an
1599114237Snjlalias could point to a method.  In other words, aliases were not
1600114237Snjlbeing dereferenced during typechecking.
1601104470Siwasaki
1602104470Siwasaki
1603104470Siwasaki----------------------------------------
1604104470Siwasaki29 August 2002.  Summary of changes for this release.
1605104470Siwasaki
1606104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
1607104470Siwasaki
1608114237SnjlIf the target of a Scope() operator already exists, it must be an
1609114237Snjlobject type that actually opens a scope -- such as a Device,
1610114237SnjlMethod, Scope, etc.  This is a fatal runtime error.  Similar
1611126372Snjlerror
1612126372Snjlcheck has been added to the iASL compiler also.
1613104470Siwasaki
1614114237SnjlTightened up the namespace load to disallow multiple names in the
1615114237Snjlsame scope.  This previously was allowed if both objects were of
1616114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
1617114237Snjlname).
1618104470Siwasaki
1619104470Siwasaki
1620104470Siwasaki2) Linux
1621104470Siwasaki
1622104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
1623104470Siwasakipolarity.
1624104470Siwasaki
1625104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
1626104470Siwasaki
1627104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
1628104470Siwasakiinterpreter *or* the tables.
1629104470Siwasaki
1630104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
1631126372Snjl(Kochi
1632126372SnjlTakayoshi)
1633104470Siwasaki
1634104470Siwasaki
1635104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
1636104470Siwasaki
1637104470SiwasakiImplemented namepath optimization for name declarations.  For
1638104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
1639104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
1640104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
1641104470Siwasakireference path optimization first released in the previous
1642114237Snjlversion. This would seem to complete all possible optimizations
1643114237Snjlfor namepaths within the ASL/AML.
1644104470Siwasaki
1645114237SnjlIf the target of a Scope() operator already exists, it must be an
1646114237Snjlobject type that actually opens a scope -- such as a Device,
1647114237SnjlMethod, Scope, etc.
1648104470Siwasaki
1649114237SnjlImplemented a check and warning for unreachable code in the same
1650114237Snjlblock below a Return() statement.
1651104470Siwasaki
1652114237SnjlFixed a problem where the listing file was not generated if the
1653114237Snjlcompiler aborted if the maximum error count was exceeded (200).
1654104470Siwasaki
1655104470SiwasakiFixed a problem where the typechecking of method return values
1656126372Snjlwas
1657126372Snjlbroken.  This includes the check for a return value when the
1658114237Snjlmethod is invoked as a TermArg (a return value is expected.)
1659104470Siwasaki
1660104470SiwasakiFixed a reported problem where EOF conditions during a quoted
1661104470Siwasakistring or comment caused a fault.
1662104470Siwasaki
1663104470Siwasaki
1664104470Siwasaki----------------------------------------
1665102550Siwasaki15 August 2002.  Summary of changes for this release.
1666102550Siwasaki
1667102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
1668102550Siwasaki
1669114237SnjlFixed a reported problem where a Store to a method argument that
1670114237Snjlcontains a reference did not perform the indirect store
1671126372Snjlcorrectly.
1672126372SnjlThis problem was created during the conversion to the new
1673126372Snjlreference object model - the indirect store to a method argument
1674126372Snjlcode was not updated to reflect the new model.
1675102550Siwasaki
1676114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
1677114237Snjlhandle corner cases, and improve code legibility (Kochi
1678102550SiwasakiTakayoshi)
1679102550Siwasaki
1680102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
1681114237Snjlprefix.  The heavy use of the carat operator by the new namepath
1682114237Snjloptimization in the iASL compiler uncovered a problem with the
1683126372SnjlAML
1684126372Snjlinterpreter handling of this prefix.  In the case where one or
1685126372Snjlmore carats precede a single nameseg, the nameseg was treated as
1686126372Snjlstandalone and the search rule (to root) was inadvertently
1687114237Snjlapplied.  This could cause both the iASL compiler and the
1688114237Snjlinterpreter to find the wrong object or to miss the error that
1689114237Snjlshould occur if the object does not exist at that exact pathname.
1690102550Siwasaki
1691114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
1692114237Snjlload.  This was a relatively minor tweak to the table loading
1693126372Snjlcode
1694126372Snjl(a problem caused by the unexpected encounter with a method
1695114237Snjlinvocation not within a control method), but it does not solve
1696126372Snjlthe
1697126372Snjloverall issue of the execution of AML code at the table level.
1698126372SnjlThis investigation is still ongoing.
1699102550Siwasaki
1700102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1701126372Snjlshown
1702126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1703126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1704126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1705126372Snjlversion of the code includes the debug output trace mechanism and
1706126372Snjlhas a larger code and data size.  Note that these values will
1707126372Snjlvary
1708126372Snjldepending on the efficiency of the compiler and the compiler
1709126372Snjloptions used during generation.
1710102550Siwasaki
1711102550Siwasaki  Previous Release
1712104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1713104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1714102550Siwasaki  Current Release:
1715104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1716104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1717102550Siwasaki
1718102550Siwasaki
1719102550Siwasaki2) Linux
1720102550Siwasaki
1721102550SiwasakiRemove redundant slab.h include (Brad Hards)
1722102550Siwasaki
1723102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
1724102550Siwasaki
1725102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
1726102550Siwasaki
1727104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
1728104470SiwasakiMachek)
1729102550Siwasaki
1730102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
1731102550Siwasaki
1732102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
1733102550Siwasaki
1734102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
1735102550Siwasaki
1736102550Siwasaki
1737102550Siwasaki3) iASL Compiler/Disassembler
1738102550Siwasaki
1739114237SnjlReworked the compiler options to make them more consistent and to
1740114237Snjluse two-letter options where appropriate.  We were running out of
1741114237Snjlsensible letters.   This may break some makefiles, so check the
1742114237Snjlcurrent options list by invoking the compiler with no parameters.
1743102550Siwasaki
1744102550SiwasakiCompleted the design and implementation of the ASL namepath
1745114237Snjloptimization option for the compiler.  This option optimizes all
1746114237Snjlreferences to named objects to the shortest possible path.  The
1747114237Snjlfirst attempt tries to utilize a single nameseg (4 characters)
1748126372Snjland
1749126372Snjlthe "search-to-root" algorithm used by the interpreter.  If that
1750126372Snjlcannot be used (because either the name is not in the search path
1751126372Snjlor there is a conflict with another object with the same name),
1752126372Snjlthe pathname is optimized using the carat prefix (usually a
1753126372Snjlshorter string than specifying the entire path from the root.)
1754102550Siwasaki
1755114237SnjlImplemented support to obtain the DSDT from the Windows registry
1756114237Snjl(when the disassembly option is specified with no input file).
1757114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
1758114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
1759114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
1760114237Snjlfunction in the DOS OSL to make the disassembler truly OS
1761114237Snjlindependent.
1762102550Siwasaki
1763114237SnjlImplemented a new option to disassemble and compile in one step.
1764114237SnjlWhen used without an input filename, this option will grab the
1765114237SnjlDSDT from the local machine, disassemble it, and compile it in
1766126372Snjlone
1767126372Snjlstep.
1768102550Siwasaki
1769114237SnjlAdded a warning message for invalid escapes (a backslash followed
1770114237Snjlby any character other than the allowable escapes).  This catches
1771114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
1772114237SnjlAlso, there are numerous instances in the ACPI specification
1773126372Snjlwhere
1774126372Snjlthis error occurs.
1775102550Siwasaki
1776104470SiwasakiAdded a compiler option to disable all optimizations.  This is
1777114237Snjlbasically the "compatibility mode" because by using this option,
1778114237Snjlthe AML code will come out exactly the same as other ASL
1779114237Snjlcompilers.
1780102550Siwasaki
1781114237SnjlAdded error messages for incorrectly ordered dependent resource
1782114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
1783114237Snjldependent resource list, nested dependent function macros (both
1784114237Snjlstart and end), and missing StartDependentFn macro.  These are
1785114237Snjlcommon errors that should be caught at compile time.
1786102550Siwasaki
1787114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
1788114237Snjlmust be included in the namespace for proper disassembly (because
1789114237Snjlthe disassembler must know the number of arguments.)
1790102550Siwasaki
1791104470SiwasakiAdded an "optimization" message type that is optional (off by
1792114237Snjldefault).  This message is used for all optimizations - including
1793114237Snjlconstant folding, integer optimization, and namepath
1794104470Siwasakioptimization.
1795102550Siwasaki
1796102550Siwasaki----------------------------------------
1797102550Siwasaki25 July 2002.  Summary of changes for this release.
1798102550Siwasaki
1799102550Siwasaki
1800102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
1801102550Siwasaki
1802114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
1803114237Snjlcode and has been integrated into the iASL compiler (see below)
1804126372Snjlas
1805126372Snjlwell as the single-step disassembly for the AML debugger and the
1806126372Snjldisassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
1807126372Snjlresource templates and macros are fully supported.  The
1808114237Snjldisassembler has been tested on over 30 different AML files,
1809114237Snjlproducing identical AML when the resulting disassembled ASL file
1810114237Snjlis recompiled with the same ASL compiler.
1811102550Siwasaki
1812114237SnjlModified the Resource Manager to allow zero interrupts and zero
1813114237Snjldma channels during the GetCurrentResources call.  This was
1814114237Snjlcausing problems on some platforms.
1815102550Siwasaki
1816114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
1817114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
1818114237Snjlinterfaces.
1819102550Siwasaki
1820102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1821126372Snjlshown
1822126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1823126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1824126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1825126372Snjlversion of the code includes the debug output trace mechanism and
1826126372Snjlhas a larger code and data size.  Note that these values will
1827126372Snjlvary
1828126372Snjldepending on the efficiency of the compiler and the compiler
1829126372Snjloptions used during generation.
1830102550Siwasaki
1831102550Siwasaki  Previous Release
1832104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1833104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1834102550Siwasaki  Current Release:
1835104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1836104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1837102550Siwasaki
1838102550Siwasaki
1839102550Siwasaki2) Linux
1840102550Siwasaki
1841102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
1842102550Siwasaki
1843114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
1844114237Snjl(Richard Schaal)
1845102550Siwasaki
1846102550Siwasaki
1847102550Siwasaki3) iASL compiler
1848102550Siwasaki
1849114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
1850114237Snjloption invokes the disassembler  to completely disassemble an
1851114237Snjlinput AML file, producing as output a text ASL file with the
1852114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
1853114237Snjlsource files.)  A future enhancement will allow the disassembler
1854114237Snjlto obtain the BIOS DSDT from the registry under Windows.
1855102550Siwasaki
1856102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
1857102550Siwasakidescriptors where an invalid AML sequence was created.
1858102550Siwasaki
1859114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
1860114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
1861114237Snjlcausing reduction conflicts.
1862102550Siwasaki
1863104470SiwasakiFixed a problem where the Ones opcode could get converted to a
1864104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
1865126372Snjlvalue
1866126372Snjlwas expected.  The 64-bit value is now truncated to the correct
1867126372Snjlsize with the correct value.
1868102550Siwasaki
1869102550Siwasaki
1870102550Siwasaki----------------------------------------
1871102550Siwasaki02 July 2002.  Summary of changes for this release.
1872102550Siwasaki
1873102550Siwasaki
1874102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
1875102550Siwasaki
1876114237SnjlThe Table Manager code has been restructured to add several new
1877114237Snjlfeatures.  Tables that are not required by the core subsystem
1878114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
1879114237Snjlvalidated in any way and are returned from AcpiGetFirmwareTable
1880126372Snjlif
1881126372Snjlrequested.  The AcpiOsTableOverride interface is now called for
1882126372Snjleach table that is loaded by the subsystem in order to allow the
1883126372Snjlhost to override any table it chooses.  Previously, only the DSDT
1884126372Snjlcould be overridden.  Added one new files, tbrsdt.c and
1885114237Snjltbgetall.c.
1886102550Siwasaki
1887114237SnjlFixed a problem with the conversion of internal package objects
1888126372Snjlto
1889126372Snjlexternal objects (when a package is returned from a control
1890114237Snjlmethod.)  The return buffer length was set to zero instead of the
1891114237Snjlproper length of the package object.
1892102550Siwasaki
1893104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
1894114237Snjloperators when passing reference arguments to control methods.  A
1895114237Snjlnew type of Reference object is used internally for references
1896114237Snjlproduced by the RefOf operator.
1897102550Siwasaki
1898102550SiwasakiAdded additional error messages in the Resource Manager to
1899126372Snjlexplain
1900126372SnjlAE_BAD_DATA errors when they occur during resource parsing.
1901102550Siwasaki
1902104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
1903104470Siwasakifiner granularity initialization sequence.  These two calls
1904126372Snjlshould
1905126372Snjlbe called in this order: AcpiEnableSubsystem (flags),
1906114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
1907114237Snjlsame.
1908102550Siwasaki
1909102550Siwasaki
1910102550Siwasaki2) Linux
1911102550Siwasaki
1912114237SnjlUpdated the ACPI utilities module to understand the new style of
1913114237Snjlfully resolved package objects that are now returned from the
1914126372Snjlcore
1915126372Snjlsubsystem.  This eliminates errors of the form:
1916102550Siwasaki
1917102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
1918102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
1919102550Siwasaki        Invalid element in package (not a device reference)
1920102550Siwasaki
1921102550SiwasakiThe method evaluation utility uses the new buffer allocation
1922102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
1923102550Siwasaki
1924102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
1925114237SnjlController before the namespace has been fully initialized, which
1926114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
1927114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
1928114237Snjllimited testing was performed of the added functionality.)
1929102550Siwasaki
1930102550SiwasakiFixed memory leaks in the EC driver.
1931102550Siwasaki
1932102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
1933102550Siwasaki
1934114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
1935114237Snjlno longer needed since acpi_evaluate_object can optionally
1936104470Siwasakiallocate memory for the return object.
1937102550Siwasaki
1938114237SnjlImplemented fix for keyboard hang when getting battery readings
1939126372Snjlon
1940126372Snjlsome systems (Stephen White)
1941102550Siwasaki
1942102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
1943102550Siwasaki
1944114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
1945114237Snjlsupport
1946102550Siwasaki
1947102550Siwasaki----------------------------------------
1948102550Siwasaki11 June 2002.  Summary of changes for this release.
1949102550Siwasaki
1950102550Siwasaki
1951102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
1952102550Siwasaki
1953104470SiwasakiFixed a reported problem where constants such as Zero and One
1954114237Snjlappearing within _PRT packages were not handled correctly within
1955114237Snjlthe resource manager code.  Originally reported against the ASL
1956114237Snjlcompiler because the code generator now optimizes integers to
1957114237Snjltheir minimal AML representation (i.e. AML constants if
1958126372Snjlpossible.)
1959126372SnjlThe _PRT code now handles all AML constant opcodes correctly
1960126372Snjl(Zero, One, Ones, Revision).
1961102550Siwasaki
1962102550SiwasakiFixed a problem with the Concatenate operator in the AML
1963114237Snjlinterpreter where a buffer result object was incorrectly marked
1964126372Snjlas
1965126372Snjlnot fully evaluated, causing a run-time error of AE_AML_INTERNAL.
1966102550Siwasaki
1967104470SiwasakiAll package sub-objects are now fully resolved before they are
1968114237Snjlreturned from the external ACPI interfaces.  This means that name
1969114237Snjlstrings are resolved to object handles, and constant operators
1970114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
1971102550Siwasaki
1972102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
1973104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
1974104470Siwasakiwithin the AML stream. This has simplified and reduced the
1975104470Siwasakigenerated code size of the subsystem by eliminating about 10
1976104470Siwasakiswitch statements for these constants (which previously were
1977104470Siwasakicontained in Reference objects.)  The complicating issues are
1978126372Snjlthat
1979126372Snjlthe Zero opcode is used as a "placeholder" for unspecified
1980114237Snjloptional target operands and stores to constants are defined to
1981126372Snjlbe
1982126372Snjlno-ops.
1983102550Siwasaki
1984102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1985126372Snjlshown
1986126372Snjlbelow. These are the code and data sizes for the acpica.lib
1987114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1988114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1989114237Snjlversion of the code includes the debug output trace mechanism and
1990114237Snjlhas a larger code and data size.  Note that these values will
1991126372Snjlvary
1992126372Snjldepending on the efficiency of the compiler and the compiler
1993114237Snjloptions used during generation.
1994102550Siwasaki
1995102550Siwasaki  Previous Release
1996104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1997104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1998102550Siwasaki  Current Release:
1999104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
2000104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
2001102550Siwasaki
2002102550Siwasaki
2003102550Siwasaki2) Linux
2004102550Siwasaki
2005104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
2006104470Siwasakibridges (Bjorn Helgaas).
2007102550Siwasaki
2008102550Siwasaki
2009102550Siwasaki3) iASL Compiler Version X2046:
2010102550Siwasaki
2011114237SnjlFixed a problem where the "_DDN" reserved name was defined to be
2012126372Snjla
2013126372Snjlcontrol method with one argument.  There are no arguments, and
2014114237Snjl_DDN does not have to be a control method.
2015102550Siwasaki
2016114237SnjlFixed a problem with the Linux version of the compiler where the
2017114237Snjlsource lines printed with error messages were the wrong lines.
2018114237SnjlThis turned out to be the "LF versus CR/LF" difference between
2019114237SnjlWindows and Unix.  This appears to be the longstanding issue
2020114237Snjlconcerning listing output and error messages.
2021102550Siwasaki
2022114237SnjlFixed a problem with the Linux version of compiler where opcode
2023114237Snjlnames within error messages were wrong.  This was caused by a
2024114237Snjlslight difference in the output of the Flex tool on Linux versus
2025114237SnjlWindows.
2026102550Siwasaki
2027102550SiwasakiFixed a problem with the Linux compiler where the hex output
2028126372Snjlfiles
2029126372Snjlcontained some garbage data caused by an internal buffer overrun.
2030102550Siwasaki
2031102550Siwasaki
2032102550Siwasaki----------------------------------------
2033102550Siwasaki17 May 2002.  Summary of changes for this release.
2034102550Siwasaki
2035102550Siwasaki
2036102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
2037102550Siwasaki
2038102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
2039104470SiwasakiOmniBook where the FADT revision number and the table size are
2040104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
2041126372Snjlnew
2042126372Snjlbehavior is to fallback to using only the ACPI 1.0 fields of the
2043126372SnjlFADT if the table is too small to be a ACPI 2.0 table as claimed
2044126372Snjlby the revision number.  Although this is a BIOS bug, this is a
2045126372Snjlcase where the workaround is simple enough and with no side
2046126372Snjleffects, so it seemed prudent to add it.  A warning message is
2047126372Snjlissued, however.
2048102550Siwasaki
2049114237SnjlImplemented minimum size checks for the fixed-length ACPI tables
2050126372Snjl-
2051126372Snjl- the FADT and FACS, as well as consistency checks between the
2052114237Snjlrevision number and the table size.
2053102550Siwasaki
2054114237SnjlFixed a reported problem in the table override support where the
2055114237Snjlnew table pointer was incorrectly treated as a physical address
2056114237Snjlinstead of a logical address.
2057102550Siwasaki
2058114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
2059114237Snjlwith more descriptive codes.
2060102550Siwasaki
2061104470SiwasakiFixed a problem where an exception would occur if an ASL Field
2062126372Snjlwas
2063126372Snjldefined with no named Field Units underneath it (used by some
2064114237Snjlindex fields).
2065102550Siwasaki
2066102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2067126372Snjlshown
2068126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2069126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2070126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2071126372Snjlversion of the code includes the debug output trace mechanism and
2072126372Snjlhas a larger code and data size.  Note that these values will
2073126372Snjlvary
2074126372Snjldepending on the efficiency of the compiler and the compiler
2075126372Snjloptions used during generation.
2076102550Siwasaki
2077102550Siwasaki  Previous Release
2078104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2079104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2080102550Siwasaki  Current Release:
2081104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2082104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2083102550Siwasaki
2084102550Siwasaki
2085102550Siwasaki
2086102550Siwasaki2) Linux
2087102550Siwasaki
2088114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
2089114237Snjl(Paul D. and Dominik Brodowski)
2090102550Siwasaki
2091102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
2092102550Siwasaki
2093102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
2094102550Siwasaki
2095102550SiwasakiFix "MHz" typo (Dominik Brodowski)
2096102550Siwasaki
2097102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
2098102550Siwasaki
2099102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
2100102550Siwasaki
2101102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
2102102550Siwasaki
2103102550Siwasaki3) iASL Compiler Version X2044:
2104102550Siwasaki
2105102550SiwasakiImplemented error checking for the string used in the EISAID
2106126372Snjlmacro
2107126372Snjl(Usually used in the definition of the _HID object.)  The code
2108126372Snjlnow
2109126372Snjlstrictly enforces the PnP format - exactly 7 characters, 3
2110126372Snjluppercase letters and 4 hex digits.
2111102550Siwasaki
2112102550SiwasakiIf a raw string is used in the definition of the _HID object
2113102550Siwasaki(instead of the EISAID macro), the string must contain all
2114114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
2115114237Snjlof the asterisk.)
2116102550Siwasaki
2117114237SnjlImplemented checking for invalid use of ACPI reserved names for
2118114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
2119114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
2120114237SnjlPreviously, this check was only performed for control methods.
2121102550Siwasaki
2122114237SnjlImplemented an additional check on the Name operator to emit an
2123114237Snjlerror if a reserved name that must be implemented in ASL as a
2124114237Snjlcontrol method is used.  We know that a reserved name must be a
2125114237Snjlmethod if it is defined with input arguments.
2126102550Siwasaki
2127102550SiwasakiThe warning emitted when a namespace object reference is not
2128126372Snjlfound
2129126372Snjlduring the cross reference phase has been changed into an error.
2130126372SnjlThe "External" directive should be used for names defined in
2131126372Snjlother
2132126372Snjlmodules.
2133102550Siwasaki
2134102550Siwasaki
2135102550Siwasaki4) Tools and Utilities
2136102550Siwasaki
2137114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
2138114237Snjltested.
2139102550Siwasaki
2140102550SiwasakiFixed a problem with the output of both acpidump and adump16
2141126372Snjlwhere
2142126372Snjlthe indentation of closing parentheses and brackets was not
2143114237Snjlaligned properly with the parent block.
2144102550Siwasaki
2145102550Siwasaki
2146102550Siwasaki----------------------------------------
2147102550Siwasaki03 May 2002.  Summary of changes for this release.
2148102550Siwasaki
2149102550Siwasaki
2150102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
2151102550Siwasaki
2152114237SnjlAdded support a new OSL interface that allows the host operating
2153114237Snjlsystem software to override the DSDT found in the firmware -
2154114237SnjlAcpiOsTableOverride.  With this interface, the OSL can examine
2155126372Snjlthe
2156126372Snjlversion of the firmware DSDT and replace it with a different one
2157126372Snjlif desired.
2158102550Siwasaki
2159114237SnjlAdded new external interfaces for accessing ACPI registers from
2160114237Snjldevice drivers and other system software - AcpiGetRegister and
2161114237SnjlAcpiSetRegister.  This was simply an externalization of the
2162114237Snjlexisting AcpiHwBitRegister interfaces.
2163102550Siwasaki
2164104470SiwasakiFixed a regression introduced in the previous build where the
2165104470SiwasakiASL/AML CreateField operator always returned an error,
2166102550Siwasaki"destination must be a NS Node".
2167102550Siwasaki
2168114237SnjlExtended the maximum time (before failure) to successfully enable
2169114237SnjlACPI mode to 3 seconds.
2170102550Siwasaki
2171102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2172126372Snjlshown
2173126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2174126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2175126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2176126372Snjlversion of the code includes the debug output trace mechanism and
2177126372Snjlhas a larger code and data size.  Note that these values will
2178126372Snjlvary
2179126372Snjldepending on the efficiency of the compiler and the compiler
2180126372Snjloptions used during generation.
2181102550Siwasaki
2182102550Siwasaki  Previous Release
2183104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2184104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2185102550Siwasaki  Current Release:
2186104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2187104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2188102550Siwasaki
2189102550Siwasaki
2190102550Siwasaki2) Linux
2191102550Siwasaki
2192104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
2193104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
2194126372Snjllast
2195126372Snjlone still hangs when testing the LAPIC timer.
2196102550Siwasaki
2197114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
2198114237Snjlname.
2199102550Siwasaki
2200102550SiwasakiAdded warning on boot for Presario 711FR.
2201102550Siwasaki
2202102550SiwasakiSleep improvements (Pavel Machek)
2203102550Siwasaki
2204102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
2205102550Siwasaki
2206102550SiwasakiIA64: Fixed memory map functions (JI Lee)
2207102550Siwasaki
2208102550Siwasaki
2209102550Siwasaki3) iASL Compiler Version X2043:
2210102550Siwasaki
2211114237SnjlAdded support to allow the compiler to be integrated into the MS
2212114237SnjlVC++ development environment for one-button compilation of single
2213114237Snjlfiles or entire projects -- with error-to-source-line mapping.
2214102550Siwasaki
2215104470SiwasakiImplemented support for compile-time constant folding for the
2216104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
2217104470Siwasakispecification.  This allows the ASL writer to use expressions
2218104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
2219114237Snjlevaluate to constants at compile time and will also simplify the
2220114237Snjlemitted AML in any such sub-expressions that can be folded
2221104470Siwasaki(evaluated at compile-time.)  This increases the size of the
2222104470Siwasakicompiler significantly because a portion of the ACPI CA AML
2223104470Siwasakiinterpreter is included within the compiler in order to pre-
2224104470Siwasakievaluate constant expressions.
2225102550Siwasaki
2226114237Snjl
2227102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
2228114237Snjlcompiler to fault.  (This macro is used in conjunction with the
2229114237Snjl_STR reserved name.)
2230102550Siwasaki
2231114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
2232114237SnjlOnes opcodes where possible to further reduce the size of integer
2233114237Snjlconstants and thus reduce the overall size of the generated AML
2234114237Snjlcode.
2235102550Siwasaki
2236102550SiwasakiImplemented error checking for new reserved terms for ACPI
2237126372Snjlversion
2238126372Snjl2.0A.
2239102550Siwasaki
2240104470SiwasakiImplemented the -qr option to display the current list of ACPI
2241104470Siwasakireserved names known to the compiler.
2242102550Siwasaki
2243104470SiwasakiImplemented the -qc option to display the current list of ASL
2244104470Siwasakioperators that are allowed within constant expressions and can
2245104470Siwasakitherefore be folded at compile time if the operands are
2246104470Siwasakiconstants.
2247102550Siwasaki
2248102550Siwasaki
2249102550Siwasaki4) Documentation
2250102550Siwasaki
2251102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
2252126372Snjltypes,
2253126372Snjland memory allocation model options.
2254102550Siwasaki
2255114237SnjlUpdated the iASL Compiler User Reference to apply new format and
2256114237Snjladd information about new features and options.
2257102550Siwasaki
2258102550Siwasaki----------------------------------------
2259102550Siwasaki19 April 2002.  Summary of changes for this release.
2260102550Siwasaki
2261102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
2262102550Siwasaki
2263114237SnjlThe source code base for the Core Subsystem has been completely
2264114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
2265114237Snjlversions.  The Lint option files used are included in the
2266114237Snjl/acpi/generate/lint directory.
2267102550Siwasaki
2268102550SiwasakiImplemented enhanced status/error checking across the entire
2269114237SnjlHardware manager subsystem.  Any hardware errors (reported from
2270114237Snjlthe OSL) are now bubbled up and will abort a running control
2271114237Snjlmethod.
2272102550Siwasaki
2273114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
2274114237Snjlwas stored only with control method nodes, causing a fault when
2275114237Snjlnon-control method code was executed during table loading.  The
2276114237Snjlsolution implemented uses a global variable to indicate table
2277114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
2278114237Snjlnot support mixed integer widths across different ACPI tables
2279114237Snjl(DSDT, SSDT).
2280102550Siwasaki
2281114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
2282114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
2283114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
2284114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
2285114237SnjlACPI 2.0 X field is zero (even though the table revision
2286126372Snjlindicates
2287126372Snjla full ACPI 2.0 table.)  The ACPI specification will be updated
2288126372Snjlto
2289126372Snjlclarify this issue.
2290102550Siwasaki
2291104470SiwasakiFixed a problem with the SystemMemory operation region handler
2292104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
2293104470Siwasakispecified access width was larger than a byte.  This caused
2294104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
2295104470Siwasakiaccessed with the width specified.  On systems that do not
2296126372Snjlsupport
2297126372Snjlnon-aligned transfers, a check is made to guarantee proper
2298126372Snjladdress
2299126372Snjlalignment before proceeding in order to avoid an AML-caused
2300126372Snjlalignment fault within the kernel.
2301102550Siwasaki
2302102550Siwasaki
2303114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
2304114237Snjlof the 4-byte Irq field was extracted.
2305102550Siwasaki
2306114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
2307114237Snjlfunction was out of date and required a rewrite.
2308114237Snjl
2309102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2310126372Snjlshown
2311126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2312126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2313126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2314126372Snjlversion of the code includes the debug output trace mechanism and
2315126372Snjlhas a larger code and data size.  Note that these values will
2316126372Snjlvary
2317126372Snjldepending on the efficiency of the compiler and the compiler
2318126372Snjloptions used during generation.
2319102550Siwasaki
2320102550Siwasaki  Previous Release
2321104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2322104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2323102550Siwasaki  Current Release:
2324104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2325104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2326102550Siwasaki
2327102550Siwasaki
2328102550Siwasaki2) Linux
2329102550Siwasaki
2330102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
2331102550Siwasaki
2332102550Siwasaki
2333102550Siwasaki3) iASL Compiler Version X2042:
2334102550Siwasaki
2335104470SiwasakiImplemented an additional compile-time error check for a field
2336104470Siwasakiunit whose size + minimum access width would cause a run-time
2337114237Snjlaccess beyond the end-of-region.  Previously, only the field size
2338114237Snjlitself was checked.
2339102550Siwasaki
2340104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
2341104470Siwasakiobject in preparation for compile-time evaluation of the type
2342104470Siwasaki3/4/5 ASL operators.
2343102550Siwasaki
2344102550Siwasaki
2345102550Siwasaki----------------------------------------
2346102550SiwasakiSummary of changes for this release: 03_29_02
2347102550Siwasaki
2348102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
2349102550Siwasaki
2350104470SiwasakiImplemented support for late evaluation of TermArg operands to
2351114237SnjlBuffer and Package objects.  This allows complex expressions to
2352126372Snjlbe
2353126372Snjlused in the declarations of these object types.
2354102550Siwasaki
2355104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
2356126372SnjlACPI
2357126372Snjl1.0, if the field was larger than 32 bits, it was returned as a
2358126372Snjlbuffer - otherwise it was returned as an integer.  In ACPI 2.0,
2359126372Snjlthe field is returned as a buffer only if the field is larger
2360126372Snjlthan
2361126372Snjl64 bits.  The TableRevision is now considered when making this
2362126372Snjlconversion to avoid incompatibility with existing ASL code.
2363102550Siwasaki
2364104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
2365114237Snjlallows an RSDP with either a logical or physical address.  With
2366114237Snjlthis support, the host OS can now override all ACPI tables with
2367114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
2368114237Snjlsupport to allow a common data type for both physical and logical
2369114237Snjlpointers internally.  This required a change to the
2370114237SnjlAcpiOsGetRootPointer interface.
2371102550Siwasaki
2372104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
2373126372Snjlall
2374126372SnjlGPE, Fixed Event, and PM Timer I/O.  This allows the use of
2375126372Snjlmemory
2376126372Snjlmapped I/O for these ACPI features.
2377102550Siwasaki
2378102550SiwasakiInitialization now ignores not only non-required tables (All
2379114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
2380114237Snjlnot validate the table headers of unrecognized tables.
2381102550Siwasaki
2382102550SiwasakiFixed a problem where a notify handler could only be
2383102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
2384102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
2385102550SiwasakiThermal.
2386102550Siwasaki
2387114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
2388114237Snjlcritical information is returned when this debug level is
2389104470Siwasakienabled.
2390102550Siwasaki
2391102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2392126372Snjlshown
2393126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2394126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2395126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2396126372Snjlversion of the code includes the debug output trace mechanism and
2397126372Snjlhas a larger code and data size.  Note that these values will
2398126372Snjlvary
2399126372Snjldepending on the efficiency of the compiler and the compiler
2400126372Snjloptions used during generation.
2401102550Siwasaki
2402102550Siwasaki  Previous Release
2403104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2404104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2405102550Siwasaki  Current Release:
2406104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2407104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2408102550Siwasaki
2409102550Siwasaki
2410102550Siwasaki2) Linux:
2411102550Siwasaki
2412114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
2413114237Snjl2.0-based processor performance control (e.g. Intel(R)
2414114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
2415114237Snjlthe Intel "applet" interface are not supported through this.  The
2416114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
2417114237Snjl[Note that basic policy for controlling performance state
2418114237Snjltransitions will be included in the next version of ospmd.]  The
2419114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
2420114237Snjlerrata handling underwent a complete overhaul (big thanks to
2421114237SnjlDominik Brodowski).
2422102550Siwasaki
2423114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
2424114237Snjlbased devices in the ACPI namespace are now dynamically bound
2425114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
2426114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
2427114237Snjlsubordinate PCI bridges.
2428102550Siwasaki
2429104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
2430104470Siwasakientries defined underneath PCI bridges.
2431102550Siwasaki
2432104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
2433104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
2434102550Siwasaki
2435114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
2436114237Snjl(acpi.c, mpparse.c) -- stay tuned.
2437102550Siwasaki
2438102550SiwasakiAdded back visual differentiation between fixed-feature and
2439114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
2440114237Snjlbutton/power/PWRF) to simplify button identification.
2441102550Siwasaki
2442114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
2443114237Snjlany "_THIS_MODULE defined but not used" messages.
2444102550Siwasaki
2445102550SiwasakiCan now shut down the system using "magic sysrq" key.
2446102550Siwasaki
2447102550Siwasaki
2448102550Siwasaki3) iASL Compiler version 2041:
2449102550Siwasaki
2450104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
2451104470Siwasakiconstants were not reported.
2452102550Siwasaki
2453102550SiwasakiImplemented a fix for the General Register template Address
2454126372Snjlfield.
2455126372SnjlThis field was 8 bits when it should be 64.
2456102550Siwasaki
2457102550SiwasakiFixed a problem where errors/warnings were no longer being
2458126372Snjlemitted
2459126372Snjlwithin the listing output file.
2460102550Siwasaki
2461114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
2462114237Snjlexactly 4 characters, alphanumeric only.
2463102550Siwasaki
2464102550Siwasaki
2465102550Siwasaki
2466102550Siwasaki
2467102550Siwasaki----------------------------------------
2468102550SiwasakiSummary of changes for this release: 03_08_02
2469102550Siwasaki
2470102550Siwasaki
2471102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
2472102550Siwasaki
2473114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
2474114237Snjlkeyword could cause an interpreter error due to attempting to
2475126372Snjlread
2476126372Snjlor write beyond the end of the parent Operation Region.
2477102550Siwasaki
2478102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
2479126372Snjlwhere
2480126372Snjlan attempt was made to map memory beyond the end of the region.
2481126372SnjlThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
2482126372Snjlerrors on some Linux systems.
2483102550Siwasaki
2484114237SnjlFixed a problem where the interpreter/namespace "search to root"
2485114237Snjlalgorithm was not functioning for some object types.  Relaxed the
2486114237Snjlinternal restriction on the search to allow upsearches for all
2487114237Snjlexternal object types as well as most internal types.
2488102550Siwasaki
2489102550Siwasaki
2490102550Siwasaki2) Linux:
2491102550Siwasaki
2492104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
2493104470Siwasakihlt.
2494102550Siwasaki
2495114237SnjlWriting to the processor limit interface should now work. "echo
2496126372Snjl1"
2497126372Snjlwill increase the limit, 2 will decrease, and 0 will reset to the
2498126372Snjldefault.
2499102550Siwasaki
2500102550Siwasaki
2501102550Siwasaki3) ASL compiler:
2502102550Siwasaki
2503102550SiwasakiFixed segfault on Linux version.
2504102550Siwasaki
2505102550Siwasaki
2506102550Siwasaki----------------------------------------
2507102550SiwasakiSummary of changes for this release: 02_25_02
2508102550Siwasaki
2509102550Siwasaki1) ACPI CA Core Subsystem:
2510102550Siwasaki
2511102550Siwasaki
2512102550SiwasakiFixed a problem where the GPE bit masks were not initialized
2513102550Siwasakiproperly, causing erratic GPE behavior.
2514102550Siwasaki
2515104470SiwasakiImplemented limited support for multiple calling conventions.
2516126372SnjlThe
2517126372Snjlcode can be generated with either the VPL (variable parameter
2518114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
2519114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
2520114237Snjlwhen generated with FPL.
2521102550Siwasaki
2522102550Siwasaki
2523102550Siwasaki2) Linux
2524102550Siwasaki
2525114237SnjlRe-add some /proc/acpi/event functionality that was lost during
2526114237Snjlthe rewrite
2527102550Siwasaki
2528102550SiwasakiResolved issue with /proc events for fixed-feature buttons
2529126372Snjlshowing
2530126372Snjlup as the system device.
2531102550Siwasaki
2532102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
2533102550Siwasakivalues.
2534102550Siwasaki
2535114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
2536102550Siwasaki
2537114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
2538102550Siwasaki
2539104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
2540104470Siwasakihysterisis.
2541102550Siwasaki
2542102550SiwasakiRestructured PRT support.
2543102550Siwasaki
2544102550Siwasaki
2545102550Siwasaki----------------------------------------
2546102550SiwasakiSummary of changes for this label: 02_14_02
2547102550Siwasaki
2548102550Siwasaki
2549102550Siwasaki1) ACPI CA Core Subsystem:
2550102550Siwasaki
2551114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
2552114237SnjlFADT tables.
2553102550Siwasaki
2554114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
2555114237Snjlbeen removed.  All 64-bit platforms should be migrated to the
2556126372SnjlACPI
2557126372Snjl2.0 tables.  The actbl71.h header has been removed from the
2558126372Snjlsource
2559126372Snjltree.
2560102550Siwasaki
2561114237SnjlAll C macros defined within the subsystem have been prefixed with
2562114237Snjl"ACPI_" to avoid collision with other system include files.
2563102550Siwasaki
2564102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
2565126372Snjlsince
2566126372Snjlit is never used and causes lint warnings for ignoring the return
2567126372Snjlvalue.
2568102550Siwasaki
2569104470SiwasakiAdded error checking to all internal mutex acquire and release
2570104470Siwasakicalls.  Although a failure from one of these interfaces is
2571104470Siwasakiprobably a fatal system error, these checks will cause the
2572114237Snjlimmediate abort of the currently executing method or interface.
2573102550Siwasaki
2574114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
2575114237Snjlfault.  This was a side effect of the deployment of the new
2576126372Snjlmemory
2577126372Snjlallocation model.
2578102550Siwasaki
2579102550SiwasakiFixed a couple of problems with the Global Lock support
2580126372Snjlintroduced
2581126372Snjlin the last major build.  The "common" (1.0/2.0) internal FACS
2582126372Snjlwas
2583126372Snjlbeing overwritten with the FACS signature and clobbering the
2584126372SnjlGlobal Lock pointer.  Also, the actual firmware FACS was being
2585126372Snjlunmapped after construction of the "common" FACS, preventing
2586126372Snjlaccess to the actual Global Lock field within it.  The "common"
2587126372Snjlinternal FACS is no longer installed as an actual ACPI table; it
2588126372Snjlis used simply as a global.
2589102550Siwasaki
2590102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2591126372Snjlshown
2592126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2593126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2594126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2595126372Snjlversion of the code includes the debug output trace mechanism and
2596126372Snjlhas a larger code and data size.  Note that these values will
2597126372Snjlvary
2598126372Snjldepending on the efficiency of the compiler and the compiler
2599126372Snjloptions used during generation.
2600102550Siwasaki
2601102550Siwasaki  Previous Release (02_07_01)
2602104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2603104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2604102550Siwasaki  Current Release:
2605104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2606104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2607102550Siwasaki
2608102550Siwasaki
2609102550Siwasaki2) Linux
2610102550Siwasaki
2611102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
2612102550Siwasakichanges described above.
2613102550Siwasaki
2614114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
2615114237Snjlproper poll functionality.
2616102550Siwasaki
2617102550SiwasakiFixed and restructured power management (acpi_bus).
2618102550Siwasaki
2619102550SiwasakiOnly create /proc "view by type" when devices of that class
2620102550Siwasakiexist.
2621102550Siwasaki
2622104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
2623102550Siwasaki
2624102550SiwasakiImproved thermal zone code.
2625102550Siwasaki
2626102550Siwasaki
2627102550Siwasaki3) ASL Compiler, version X2039:
2628102550Siwasaki
2629114237Snjl
2630114237SnjlImplemented the new compiler restriction on ASL String hex/octal
2631114237Snjlescapes to non-null, ASCII values.  An error results if an
2632126372Snjlinvalid
2633126372Snjlvalue is used.  (This will require an ACPI 2.0 specification
2634126372Snjlchange.)
2635102550Siwasaki
2636102550SiwasakiAML object labels that are output to the optional C and ASM
2637126372Snjlsource
2638126372Snjlare now prefixed with both the ACPI table signature and table ID
2639126372Snjlto help guarantee uniqueness within a large BIOS project.
2640102550Siwasaki
2641102550Siwasaki
2642102550Siwasaki----------------------------------------
2643102550SiwasakiSummary of changes for this label: 02_01_02
2644102550Siwasaki
2645102550Siwasaki1) ACPI CA Core Subsystem:
2646102550Siwasaki
2647114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
2648114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
2649114237Snjlother changes for ACPI 2.0 support are complete.  With
2650104470Siwasakisimultaneous code and data optimizations throughout the
2651126372Snjlsubsystem,
2652126372SnjlACPI 2.0 support has been implemented with almost no additional
2653126372Snjlcost in terms of code and data size.
2654102550Siwasaki
2655114237SnjlImplemented a new mechanism for allocation of return buffers.  If
2656114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
2657114237Snjlbe allocated on behalf of the caller.  Consolidated all return
2658114237Snjlbuffer validation and allocation to a common procedure.  Return
2659114237Snjlbuffers will be allocated via the primary OSL allocation
2660126372Snjlinterface
2661126372Snjlsince it appears that a separate pool is not needed by most
2662126372Snjlusers.
2663126372SnjlIf a separate pool is required for these buffers, the caller can
2664126372Snjlstill use the original mechanism and pre-allocate the buffer(s).
2665102550Siwasaki
2666102550SiwasakiImplemented support for string operands within the DerefOf
2667102550Siwasakioperator.
2668102550Siwasaki
2669114237SnjlRestructured the Hardware and Event managers to be table driven,
2670114237Snjlsimplifying the source code and reducing the amount of generated
2671114237Snjlcode.
2672102550Siwasaki
2673102550SiwasakiSplit the common read/write low-level ACPI register bitfield
2674104470Siwasakiprocedure into a separate read and write, simplifying the code
2675104470Siwasakiconsiderably.
2676102550Siwasaki
2677114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
2678114237Snjlused only a handful of times and didn't have enough critical mass
2679114237Snjlfor a separate interface.  Replaced with a common calloc
2680126372Snjlprocedure
2681126372Snjlin the core.
2682102550Siwasaki
2683104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
2684104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
2685114237SnjlReorganized the GPE information and shrunk a large array that was
2686114237Snjloriginally large enough to hold info for all possible GPEs (256)
2687114237Snjlto simply large enough to hold all GPEs up to the largest GPE
2688114237Snjlnumber on the machine.
2689102550Siwasaki
2690114237SnjlFixed a reported problem with resource structure alignment on 64-
2691114237Snjlbit platforms.
2692102550Siwasaki
2693102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
2694102550Siwasakiinterfaces to not require any flags for the common case of
2695102550Siwasakienabling/disabling a GPE.
2696102550Siwasaki
2697104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
2698102550Siwasaki
2699114237SnjlMost TBDs in comments within the source code have been resolved
2700114237Snjland eliminated.
2701102550Siwasaki
2702102550SiwasakiFixed a problem in the interpreter where a standalone parent
2703102550Siwasakiprefix (^) was not handled correctly in the interpreter and
2704102550Siwasakidebugger.
2705102550Siwasaki
2706102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
2707102550Siwasaki
2708114237SnjlImplemented Field support in the ASL Load operator.  This allows
2709126372Snjla
2710126372Snjltable to be loaded from a named field, in addition to loading a
2711114237Snjltable directly from an Operation Region.
2712102550Siwasaki
2713104470SiwasakiImplemented timeout and handle support in the external Global
2714126372SnjlLock
2715126372Snjlinterfaces.
2716102550Siwasaki
2717114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
2718114237Snjllonger being generated correctly during the dump of named
2719102550Siwasakiobjects.
2720102550Siwasaki
2721102550SiwasakiModified the AML debugger to give a full display of if/while
2722102550Siwasakipredicates instead of just one AML opcode at a time.  (The
2723102550Siwasakipredicate can have several nested ASL statements.)  The old
2724126372Snjlmethod
2725126372Snjlwas confusing during single stepping.
2726102550Siwasaki
2727102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2728126372Snjlshown
2729126372Snjlbelow. These are the code and data sizes for the acpica.lib
2730114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2731114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2732114237Snjlversion of the code includes the debug output trace mechanism and
2733114237Snjlhas a larger code and data size.  Note that these values will
2734126372Snjlvary
2735126372Snjldepending on the efficiency of the compiler and the compiler
2736114237Snjloptions used during generation.
2737102550Siwasaki
2738102550Siwasaki  Previous Release (12_18_01)
2739114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2740114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2741102550Siwasaki   Current Release:
2742114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2743114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2744102550Siwasaki
2745102550Siwasaki2) Linux
2746102550Siwasaki
2747104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
2748104470Siwasakidriver)
2749102550Siwasaki
2750102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
2751102550Siwasaki
2752102550SiwasakiNew thermal policy (Thermal driver)
2753102550Siwasaki
2754102550SiwasakiMany updates to /proc
2755102550Siwasaki
2756102550SiwasakiBattery "low" event support (Battery driver)
2757102550Siwasaki
2758104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
2759102550Siwasaki
2760104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
2761102550Siwasaki
2762102550SiwasakiMenuconfig options redesigned
2763102550Siwasaki
2764102550Siwasaki3) ASL Compiler, version X2037:
2765102550Siwasaki
2766114237SnjlImplemented several new output features to simplify integration
2767126372Snjlof
2768126372SnjlAML code into  firmware: 1) Output the AML in C source code with
2769126372Snjllabels for each named ASL object.  The    original ASL source
2770126372Snjlcode
2771126372Snjlis interleaved as C comments. 2) Output the AML in ASM source
2772126372Snjlcode
2773126372Snjlwith labels and interleaved ASL    source. 3) Output the AML in
2774126372Snjlraw hex table form, in either C or ASM.
2775102550Siwasaki
2776102550SiwasakiImplemented support for optional string parameters to the
2777102550SiwasakiLoadTable operator.
2778102550Siwasaki
2779104470SiwasakiCompleted support for embedded escape sequences within string
2780114237Snjlliterals.  The compiler now supports all single character escapes
2781114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
2782114237Snjlnull byte into a string literal (via the hex/octal escape) causes
2783114237Snjlthe string to be immediately terminated.  A warning is issued.
2784102550Siwasaki
2785104470SiwasakiFixed a problem where incorrect AML was generated for the case
2786104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
2787102550Siwasaki
2788102550Siwasaki) with no trailing name segments.
2789102550Siwasaki
2790102550SiwasakiThe compiler has been successfully generated with a 64-bit C
2791102550Siwasakicompiler.
2792102550Siwasaki
2793102550Siwasaki
2794102550Siwasaki
2795102550Siwasaki
2796102550Siwasaki----------------------------------------
2797102550SiwasakiSummary of changes for this label: 12_18_01
2798102550Siwasaki
2799102550Siwasaki1) Linux
2800102550Siwasaki
2801114237SnjlEnhanced blacklist with reason and severity fields. Any table's
2802114237Snjlsignature may now be used to identify a blacklisted system.
2803102550Siwasaki
2804114237SnjlCall _PIC control method to inform the firmware which interrupt
2805114237Snjlmodel the OS is using. Turn on any disabled link devices.
2806102550Siwasaki
2807102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
2808102550Siwasaki
2809102550Siwasaki 2) ACPI CA Core Subsystem:
2810102550Siwasaki
2811104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
2812126372Snjlfrom
2813126372Snjlwhile loop)
2814102550Siwasaki
2815102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
2816102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
2817104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
2818126372Snjlboth
2819126372Snjlthe ASL compiler and the AML interpreter.  The only remaining
2820126372SnjlACPI
2821126372Snjl2.0 task is support for the String data type in the DerefOf
2822126372Snjloperator.  Fixed a problem with AcquireMutex where the status
2823126372Snjlcode
2824126372Snjlwas lost if the caller had to actually wait for the mutex.
2825102550Siwasaki
2826104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
2827102550Siwasaki
2828114237SnjlCompleted implementation of the external Global Lock interfaces -
2829126372Snjl-
2830126372SnjlAcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
2831126372SnjlHandler parameters were added.
2832102550Siwasaki
2833102550SiwasakiCompleted another pass at removing warnings and issues when
2834114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
2835114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
2836114237Snjladd and subtract (diff) macros have changed considerably.
2837102550Siwasaki
2838114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
2839114237Snjl64-bit platforms, 32-bits on all others.  This type is used
2840104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
2841126372Snjlused,
2842126372Snjland affects the OSL memory allocation interfaces AcpiOsAllocate
2843126372Snjland AcpiOsCallocate.
2844102550Siwasaki
2845102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
2846102550Siwasaki
2847102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2848126372Snjlshown
2849126372Snjlbelow. These are the code and data sizes for the acpica.lib
2850114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2851114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2852114237Snjlversion of the code includes the debug output trace mechanism and
2853114237Snjlhas a larger code and data size. Note that these values will vary
2854114237Snjldepending on the efficiency of the compiler and the compiler
2855114237Snjloptions used during generation.
2856102550Siwasaki
2857102550Siwasaki  Previous Release (12_05_01)
2858114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2859114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2860102550Siwasaki   Current Release:
2861114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2862114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2863102550Siwasaki
2864102550Siwasaki 3) ASL Compiler, version X2034:
2865102550Siwasaki
2866114237SnjlNow checks for (and generates an error if detected) the use of a
2867114237SnjlBreak or Continue statement without an enclosing While statement.
2868102550Siwasaki
2869102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
2870102550Siwasakicompiler.
2871102550Siwasaki
2872102550Siwasaki ----------------------------------------
2873102550SiwasakiSummary of changes for this label: 12_05_01
2874102550Siwasaki
2875102550Siwasaki 1) ACPI CA Core Subsystem:
2876102550Siwasaki
2877102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
2878104470Siwasakioperator creates a new copy of an object (and is also used to
2879104470Siwasakibypass the "implicit conversion" mechanism of the Store
2880102550Siwasakioperator.)
2881102550Siwasaki
2882102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
2883102550Siwasakiimplemented.  The change is that performing a SizeOf on a
2884114237Snjlreference object causes an automatic dereference of the object to
2885114237Snjltha actual value before the size is evaluated. This behavior was
2886114237Snjlundefined in ACPI 1.0.
2887102550Siwasaki
2888114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
2889114237Snjlhave been implemented.  The interrupt polarity and mode are now
2890114237Snjlindependently set.
2891102550Siwasaki
2892114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
2893114237Snjlappearing in Package objects were not properly converted to
2894114237Snjlintegers when the internal Package was converted to an external
2895114237Snjlobject (via the AcpiEvaluateObject interface.)
2896102550Siwasaki
2897114237SnjlFixed a problem with the namespace object deletion mechanism for
2898114237Snjlobjects created by control methods.  There were two parts to this
2899114237Snjlproblem: 1) Objects created during the initialization phase
2900126372Snjlmethod
2901126372Snjlparse were not being deleted, and 2) The object owner ID
2902126372Snjlmechanism
2903126372Snjlto track objects was broken.
2904102550Siwasaki
2905114237SnjlFixed a problem where the use of the ASL Scope operator within a
2906114237Snjlcontrol method would result in an invalid opcode exception.
2907102550Siwasaki
2908114237SnjlFixed a problem introduced in the previous label where the buffer
2909114237Snjllength required for the _PRT structure was not being returned
2910114237Snjlcorrectly.
2911102550Siwasaki
2912102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2913126372Snjlshown
2914126372Snjlbelow. These are the code and data sizes for the acpica.lib
2915114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2916114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2917114237Snjlversion of the code includes the debug output trace mechanism and
2918114237Snjlhas a larger code and data size.  Note that these values will
2919126372Snjlvary
2920126372Snjldepending on the efficiency of the compiler and the compiler
2921114237Snjloptions used during generation.
2922102550Siwasaki
2923102550Siwasaki  Previous Release (11_20_01)
2924114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2925114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2926102550Siwasaki
2927102550Siwasaki  Current Release:
2928114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2929114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2930102550Siwasaki
2931102550Siwasaki 2) Linux:
2932102550Siwasaki
2933102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
2934102550Siwasaki
2935104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
2936114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
2937114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
2938114237Snjlentries are treated as if they were static (not yet
2939114237Snjlreconfigurable).  Architecture- specific code to use this data is
2940114237Snjlabsent on IA32 but should be available shortly.
2941102550Siwasaki
2942114237SnjlChanged the initialization sequence to start the ACPI interpreter
2943114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
2944114237Snjlin init/main.c.  This ordering is required to support PRT and
2945114237Snjlfacilitate other (future) enhancement.  A side effect is that the
2946114237SnjlACPI bus driver and certain device drivers can no longer be
2947126372Snjlloaded
2948126372Snjlas modules.
2949102550Siwasaki
2950104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
2951104470SiwasakiRouting support to be included without the ACPI Bus and other
2952104470Siwasakidevice drivers.
2953102550Siwasaki
2954102550Siwasaki 3) ASL Compiler, version X2033:
2955102550Siwasaki
2956102550SiwasakiFixed some issues with the use of the new CopyObject and
2957102550SiwasakiDataTableRegion operators.  Both are fully functional.
2958102550Siwasaki
2959102550Siwasaki ----------------------------------------
2960102550SiwasakiSummary of changes for this label: 11_20_01
2961102550Siwasaki
2962102550Siwasaki 20 November 2001.  Summary of changes for this release.
2963102550Siwasaki
2964102550Siwasaki 1) ACPI CA Core Subsystem:
2965102550Siwasaki
2966104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
2967104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
2968126372Snjlonly
2969126372Snjlthe least-significant byte of the source to the Indexed buffer
2970126372Snjlbyte.  Multiple writes are not performed.
2971102550Siwasaki
2972104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
2973104470Siwasakioperator was not recorded correctly into the field object.
2974102550Siwasaki
2975102550SiwasakiFixed a problem where ASL Event objects were created in a
2976114237Snjlsignalled state. Events are now created in an unsignalled state.
2977102550Siwasaki
2978114237SnjlThe internal object cache is now purged after table loading and
2979114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
2980114237Snjlthe assumption that object use is greatest during the parse phase
2981114237Snjlof the entire table (versus the run-time use of individual
2982126372Snjlcontrol
2983126372Snjlmethods.)
2984102550Siwasaki
2985102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
2986102550Siwasaki
2987104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
2988126372Snjlnew
2989126372Snjlfeature development with an actual reduction in the library size.
2990126372SnjlCurrent core subsystem library sizes are shown below.  These are
2991126372Snjlthe code and data sizes for the acpica.lib produced by the
2992126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2993126372Snjlinclude
2994126372Snjlany ACPI driver or OSPM code.  The debug version of the code
2995126372Snjlincludes the debug output trace mechanism and has a larger code
2996126372Snjland data size.  Note that these values will vary depending on the
2997126372Snjlefficiency of the compiler and the compiler options used during
2998126372Snjlgeneration.
2999102550Siwasaki
3000102550Siwasaki  Previous Release (11_09_01):
3001114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3002114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3003102550Siwasaki
3004102550Siwasaki  Current Release:
3005114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
3006114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
3007102550Siwasaki
3008102550Siwasaki 2) Linux:
3009102550Siwasaki
3010114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
3011114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
3012114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
3013114237Snjlnear future.  This functionality replaces
3014114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
3015114237Snjl2.4.15-preX release.  To enable this feature you must add
3016114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
3017114237Snjlfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
3018126372Snjlin
3019126372Snjlthe works...
3020102550Siwasaki
3021114237SnjlRestructured the configuration options to allow boot-time table
3022114237Snjlparsing support without inclusion of the ACPI Interpreter (and
3023114237Snjlother) code.
3024102550Siwasaki
3025102550SiwasakiNOTE: This release does not include fixes for the reported
3026126372Snjlevents,
3027126372Snjlpower-down, and thermal passive cooling issues (coming soon).
3028102550Siwasaki
3029102550Siwasaki 3) ASL Compiler:
3030102550Siwasaki
3031114237SnjlAdded additional typechecking for Fields within restricted access
3032114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
3033114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
3034114237Snjldeclared with the BufferAcc access type.
3035102550Siwasaki
3036114237SnjlFixed a problem where the listing file output of control methods
3037114237Snjlno longer interleaved the actual AML code with the ASL source
3038114237Snjlcode.
3039102550Siwasaki
3040102550Siwasaki
3041102550Siwasaki
3042102550Siwasaki----------------------------------------
3043102550SiwasakiSummary of changes for this label: 11_09_01
3044102550Siwasaki
3045102550Siwasaki1) ACPI CA Core Subsystem:
3046102550Siwasaki
3047114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
3048114237SnjlBuffer, String, or Integer source operand that is smaller than
3049126372Snjlthe
3050126372Snjltarget field. In these cases, the source operand is zero-extended
3051126372Snjlto fill the target field.
3052102550Siwasaki
3053104470SiwasakiFixed a problem where a Field starting bit offset (within the
3054104470Siwasakiparent operation region) was calculated incorrectly if the
3055104470Siwasakialignment of the field differed from the access width.  This
3056114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
3057114237Snjlpossibly other fields that use the "AccessAny" keyword.
3058102550Siwasaki
3059114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
3060114237Snjlstores through method arguments did not operate correctly.
3061102550Siwasaki
3062102550Siwasaki2) Linux:
3063102550Siwasaki
3064102550SiwasakiImplemented boot-time ACPI table parsing support
3065114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
3066114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
3067114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
3068114237Snjlprocessors, memory, and interrupts during setup_arch().  Note
3069126372Snjlthat
3070126372Snjlthis patch does not include the required architecture-specific
3071126372Snjlchanges required to apply this information -- subsequent patches
3072126372Snjlwill be posted for both IA32 and IA64 to achieve this.
3073102550Siwasaki
3074114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
3075114237SnjlMochel. This allows IA32 systems to transition to/from various
3076114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
3077114237Snjldriver model and power-manageable drivers will prevent its
3078114237Snjl(successful) use on most systems.
3079102550Siwasaki
3080114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
3081114237Snjlsubmenu, unified IA32 and IA64 options, added new "Boot using
3082126372SnjlACPI
3083126372Snjltables" option, etc.
3084102550Siwasaki
3085114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
3086114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
3087114237Snjltransactions.
3088102550Siwasaki
3089102550Siwasaki ----------------------------------------
3090102550SiwasakiSummary of changes for this label: 11_02_01
3091102550Siwasaki
3092102550Siwasaki1) ACPI CA Core Subsystem:
3093102550Siwasaki
3094102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
3095102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
3096102550Siwasakiimplemented.
3097102550Siwasaki
3098114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
3099114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
3100114237SnjlPciConfiguration(), Read/Write Memory(), and Read/Write Port()
3101126372Snjlnow
3102126372Snjlaccept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
3103126372Snjlthe value parameter for the address space handler interface is
3104126372Snjlnow
3105126372Snjlan ACPI_INTEGER.  OSL implementations of these interfaces must
3106126372Snjlnow
3107126372Snjlhandle the case where the Width parameter is 64.
3108102550Siwasaki
3109104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
3110104470Siwasakidisassembly for IndexFields was not supported correctly.
3111102550Siwasaki
3112102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
3113104470Siwasakisupported. During field access, a check is performed to ensure
3114114237Snjlthat the value written to an Index or Bank register is not out of
3115114237Snjlthe range of the register.  The Index (or Bank) register is
3116114237Snjlwritten before each access to the field data. Future support will
3117114237Snjlinclude allowing individual IndexFields to be wider than the
3118114237SnjlDataRegister width.
3119102550Siwasaki
3120114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
3121114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
3122114237Snjla boundary case that occurred when a DWORD field was written to a
3123114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
3124114237Snjlinterpreter to write one datum too many.
3125102550Siwasaki
3126102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
3127114237Snjlstarting bit address of a field was incorrectly calculated if the
3128114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
3129114237SnjlQwordAcc).
3130102550Siwasaki
3131104470SiwasakiFields: Fixed a problem where forward references to individual
3132104470SiwasakiFieldUnits (individual Field names within a Field definition)
3133126372Snjlwere
3134126372Snjlnot resolved during the AML table load.
3135102550Siwasaki
3136104470SiwasakiFields: Fixed a problem where forward references from a Field
3137104470Siwasakidefinition to the parent Operation Region definition were not
3138104470Siwasakiresolved during the AML table load.
3139104470Siwasaki
3140114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
3141114237Snjlduring AML table load.
3142102550Siwasaki
3143102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
3144126372Snjlinterface
3145126372Snjlreturned an incorrect name for the root node.
3146102550Siwasaki
3147104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
3148126372Snjlnew
3149126372Snjlfeature development with an actual reduction in the library size.
3150126372SnjlCurrent core subsystem library sizes are shown below.  These are
3151126372Snjlthe code and data sizes for the acpica.lib produced by the
3152126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3153126372Snjlinclude
3154126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3155126372Snjlincludes the debug output trace mechanism and has a larger code
3156126372Snjland data size.  Note that these values will vary depending on the
3157126372Snjlefficiency of the compiler and the compiler options used during
3158126372Snjlgeneration.
3159102550Siwasaki
3160102550Siwasaki  Previous Release (10_18_01):
3161114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3162114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3163102550Siwasaki
3164102550Siwasaki  Current Release:
3165114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3166114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3167102550Siwasaki
3168102550Siwasaki 2) Linux:
3169102550Siwasaki
3170102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
3171102550SiwasakiMODULE_LICENSE("GPL") to all modules.
3172102550Siwasaki
3173102550Siwasaki 3) ASL Compiler version X2030:
3174102550Siwasaki
3175104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
3176104470Siwasakiflagged as errors.
3177102550Siwasaki
3178102550Siwasaki 4) Documentation:
3179102550Siwasaki
3180104470SiwasakiProgrammer Reference updated to reflect OSL and address space
3181104470Siwasakihandler interface changes described above.
3182102550Siwasaki
3183102550Siwasaki----------------------------------------
3184102550SiwasakiSummary of changes for this label: 10_18_01
3185102550Siwasaki
3186102550SiwasakiACPI CA Core Subsystem:
3187102550Siwasaki
3188102550SiwasakiFixed a problem with the internal object reference count
3189126372Snjlmechanism
3190126372Snjlthat occasionally caused premature object deletion. This resolves
3191126372Snjlall of the outstanding problem reports where an object is deleted
3192126372Snjlin the middle of an interpreter evaluation.  Although this
3193126372Snjlproblem
3194126372Snjlonly showed up in rather obscure cases, the solution to the
3195126372Snjlproblem involved an adjustment of all reference counts involving
3196126372Snjlobjects attached to namespace nodes.
3197102550Siwasaki
3198102550SiwasakiFixed a problem with Field support in the interpreter where
3199114237Snjlwriting to an aligned field whose length is an exact multiple (2
3200114237Snjlor greater) of the field access granularity would cause an
3201126372Snjlattempt
3202126372Snjlto write beyond the end of the field.
3203102550Siwasaki
3204102550SiwasakiThe top level AML opcode execution functions within the
3205102550Siwasakiinterpreter have been renamed with a more meaningful and
3206102550Siwasakiconsistent naming convention.  The modules exmonad.c and
3207102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
3208102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
3209102550Siwasaki
3210114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
3211102550Siwasaki
3212114237SnjlFixed a problem where the AML debugger was causing some internal
3213114237Snjlobjects to not be deleted during subsystem termination.
3214102550Siwasaki
3215104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
3216104470Siwasakiwhere the subsystem would fault if the named object to be
3217104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
3218102550Siwasaki
3219102550SiwasakiFixed a problem with IndexFields and BankFields where the
3220114237Snjlsubsystem would fault if the index, data, or bank registers were
3221114237Snjlnot defined in the same scope as the field itself.
3222102550Siwasaki
3223104470SiwasakiAdded printf format string checking for compilers that support
3224104470Siwasakithis feature.  Corrected more than 50 instances of issues with
3225104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
3226104470Siwasakithroughout the core subsystem code.
3227102550Siwasaki
3228104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
3229104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
3230126372Snjlsupport
3231126372Snjlis more than 50% implemented.
3232102550Siwasaki
3233114237SnjlEnhanced the output of the AML debugger "dump namespace" command
3234114237Snjlto output in a more human-readable form.
3235102550Siwasaki
3236114237SnjlCurrent core subsystem library code sizes are shown below.  These
3237114237Snjlare the code and data sizes for the acpica.lib produced by the
3238114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3239126372Snjlinclude
3240126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3241126372Snjlincludes the full debug trace mechanism -- leading to a much
3242114237Snjllarger code and data size.  Note that these values will vary
3243114237Snjldepending on the efficiency of the compiler and the compiler
3244114237Snjloptions used during generation.
3245102550Siwasaki
3246102550Siwasaki     Previous Label (09_20_01):
3247114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
3248114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
3249102550Siwasaki
3250102550Siwasaki     This Label:
3251102550Siwasaki
3252114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3253114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3254114237Snjl
3255102550SiwasakiLinux:
3256102550Siwasaki
3257104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
3258104470Siwasakiknown ASL/AML problems.
3259102550Siwasaki
3260102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
3261126372Snjladded
3262126372Snjlsupport for _HOT (the critical suspend trip point).  The 'info'
3263126372Snjlfile now includes threshold/policy information, and allows
3264126372Snjlsetting
3265126372Snjlof _SCP (cooling preference) and _TZP (polling frequency) values
3266126372Snjlto the 'info' file. Examples: "echo tzp=5 > info" sets the
3267126372Snjlpolling
3268126372Snjlfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling
3269126372Snjlpreference to the passive/quiet mode (if supported by the ASL).
3270102550Siwasaki
3271104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
3272104470Siwasakiwhen loading the control method battery driver.
3273102550Siwasaki
3274102550Siwasaki ----------------------------------------
3275102550SiwasakiSummary of changes for this label: 09_20_01
3276102550Siwasaki
3277102550Siwasaki ACPI CA Core Subsystem:
3278102550Siwasaki
3279104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
3280104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
3281114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
3282114237Snjlsleeps.)
3283102550Siwasaki
3284104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
3285104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
3286104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
3287104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
3288102550Siwasaki
3289114237SnjlA local double-precision divide/modulo module has been added to
3290114237Snjlenhance portability to OS kernels where a 64-bit math library is
3291114237Snjlnot available.  The new module is "utmath.c".
3292102550Siwasaki
3293104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
3294114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
3295114237Snjl2K at 1860  bytes (1.82k)
3296102550Siwasaki
3297114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
3298114237Snjlroot table pointer was not mapped into a logical address
3299104470Siwasakiproperly.
3300102550Siwasaki
3301104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
3302126372Snjlthe
3303126372Snjlinterpreter code for the ASL Notify operator.
3304102550Siwasaki
3305102550SiwasakiFixed a problem where the use of the ASL Revision operator
3306114237Snjlreturned an error. This operator now returns the current version
3307114237Snjlof the ACPI CA core subsystem.
3308102550Siwasaki
3309114237SnjlFixed a problem where objects passed as control method parameters
3310114237Snjlto AcpiEvaluateObject were always deleted at method termination.
3311114237SnjlHowever, these objects may end up being stored into the namespace
3312114237Snjlby the called method.  The object reference count mechanism was
3313114237Snjlapplied to these objects instead of a force delete.
3314102550Siwasaki
3315114237SnjlFixed a problem where static strings or buffers (contained in the
3316114237SnjlAML code) that are declared as package elements within the ASL
3317114237Snjlcode could cause a fault because the interpreter would attempt to
3318114237Snjldelete them.  These objects are now marked with the "static
3319114237Snjlobject" flag to prevent any attempt to delete them.
3320102550Siwasaki
3321114237SnjlImplemented an interpreter optimization to use operands directly
3322114237Snjlfrom the state object instead of extracting the operands to local
3323114237Snjlvariables.  This reduces stack use and code size, and improves
3324114237Snjlperformance.
3325102550Siwasaki
3326102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
3327126372Snjlextra
3328126372Snjllayer of code.
3329102550Siwasaki
3330114237SnjlCurrent core subsystem library code sizes are shown below.  These
3331114237Snjlare the code and data sizes for the acpica.lib produced by the
3332114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3333126372Snjlinclude
3334126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3335126372Snjlincludes the full debug trace mechanism -- leading to a much
3336114237Snjllarger code and data size.  Note that these values will vary
3337114237Snjldepending on the efficiency of the compiler and the compiler
3338114237Snjloptions used during generation.
3339102550Siwasaki
3340102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
3341114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
3342114237SnjlTotal  (Previously 195K)
3343102550Siwasaki
3344102550SiwasakiLinux:
3345102550Siwasaki
3346114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
3347114237SnjlInteger objects are now 64 bits wide
3348102550Siwasaki
3349114237SnjlAll Acpi data types and structures are now in lower case.  Only
3350114237SnjlAcpi macros are upper case for differentiation.
3351102550Siwasaki
3352102550Siwasaki Documentation:
3353102550Siwasaki
3354102550SiwasakiChanges to the external interfaces as described above.
3355102550Siwasaki
3356102550Siwasaki ----------------------------------------
3357102550SiwasakiSummary of changes for this label: 08_31_01
3358102550Siwasaki
3359102550Siwasaki ACPI CA Core Subsystem:
3360102550Siwasaki
3361114237SnjlA bug with interpreter implementation of the ASL Divide operator
3362114237Snjlwas found and fixed.  The implicit function return value (not the
3363114237Snjlexplicit store operands) was returning the remainder instead of
3364114237Snjlthe quotient.  This was a longstanding bug and it fixes several
3365114237Snjlknown outstanding issues on various platforms.
3366102550Siwasaki
3367104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
3368104470Siwasakibeen further optimized for size.  There are 700 invocations of
3369126372Snjlthe
3370126372SnjlDEBUG_PRINT macro alone, so each optimization reduces the size of
3371126372Snjlthe debug version of the subsystem significantly.
3372102550Siwasaki
3373114237SnjlA stack trace mechanism has been implemented.  The maximum stack
3374114237Snjlusage is about 2K on 32-bit platforms.  The debugger command
3375126372Snjl"stat
3376126372Snjlstack" will display the current maximum stack usage.
3377102550Siwasaki
3378114237SnjlAll public symbols and global variables within the subsystem are
3379114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
3380114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
3381114237Snjlwith other kernel subsystems.
3382102550Siwasaki
3383114237SnjlMost of the internal fixed lookup tables have been moved into the
3384114237Snjlcode segment via the const operator.
3385102550Siwasaki
3386104470SiwasakiSeveral enhancements have been made to the interpreter to both
3387104470Siwasakireduce the code size and improve performance.
3388102550Siwasaki
3389114237SnjlCurrent core subsystem library code sizes are shown below.  These
3390114237Snjlare the code and data sizes for the acpica.lib produced by the
3391114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3392126372Snjlinclude
3393126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3394126372Snjlincludes the full debug trace mechanism which contains over 700
3395126372Snjlinvocations of the DEBUG_PRINT macro, 500 function entry macro
3396126372Snjlinvocations, and over 900 function exit macro invocations --
3397126372Snjlleading to a much larger code and data size.  Note that these
3398114237Snjlvalues will vary depending on the efficiency of the compiler and
3399114237Snjlthe compiler options used during generation.
3400102550Siwasaki
3401102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
3402102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
3403102550Siwasaki
3404102550Siwasaki Linux:
3405102550Siwasaki
3406104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
3407102550Siwasaki
3408102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
3409102550Siwasaki
3410102550Siwasaki ASL Compiler, version X2026:
3411102550Siwasaki
3412104470SiwasakiFixed a problem introduced in the previous label where the AML
3413104470Siwasakicode emitted for package objects produced packages with zero
3414104470Siwasakilength.
3415102550Siwasaki
3416102550Siwasaki ----------------------------------------
3417102550SiwasakiSummary of changes for this label: 08_16_01
3418102550Siwasaki
3419102550SiwasakiACPI CA Core Subsystem:
3420102550Siwasaki
3421114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
3422114237SnjlAML interpreter (These are already supported by the Intel ASL
3423114237Snjlcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
3424126372Snjland
3425126372SnjlToBuffer.  Support for 64-bit AML constants is implemented in the
3426126372SnjlAML parser, debugger, and disassembler.
3427102550Siwasaki
3428114237SnjlThe internal memory tracking mechanism (leak detection code) has
3429114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
3430114237Snjlblock is no longer allocated for each memory allocation), and now
3431114237Snjlsupports all of the internal object caches.
3432102550Siwasaki
3433114237SnjlThe data structures and code for the internal object caches have
3434114237Snjlbeen coelesced and optimized so that there is a single cache and
3435114237Snjlmemory list data structure and a single group of functions that
3436114237Snjlimplement generic cache management.  This has reduced the code
3437114237Snjlsize in both the debug and release versions of the subsystem.
3438102550Siwasaki
3439102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
3440126372Snjlreplaced
3441126372Snjlby ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
3442126372Snjldifferent, because it generates a single call to an internal
3443126372Snjlfunction.  This results in a savings of about 90 bytes per
3444126372Snjlinvocation, resulting in an overall code and data savings of
3445126372Snjlabout
3446126372Snjl16% in the debug version of the subsystem.
3447102550Siwasaki
3448102550Siwasaki Linux:
3449102550Siwasaki
3450114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
3451114237Snjlmachines.
3452102550Siwasaki
3453102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
3454102550Siwasaki
3455102550SiwasakiFurther tweaked source code Linuxization.
3456102550Siwasaki
3457102550SiwasakiOther minor fixes.
3458102550Siwasaki
3459102550Siwasaki ASL Compiler:
3460102550Siwasaki
3461114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
3462102550Siwasaki
3463114237SnjlFixed a problem where the optional length parameter for the ACPI
3464114237Snjl2.0 ToString operator.
3465102550Siwasaki
3466114237SnjlFixed multiple extraneous error messages when a syntax error is
3467114237Snjldetected within the declaration line of a control method.
3468102550Siwasaki
3469102550Siwasaki ----------------------------------------
3470102550SiwasakiSummary of changes for this label: 07_17_01
3471102550Siwasaki
3472102550SiwasakiACPI CA Core Subsystem:
3473102550Siwasaki
3474104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
3475114237SnjlACPI table via the ACPI signature.  The interface can be called
3476126372Snjlat
3477126372Snjlany time during kernel initialization, even before the kernel
3478114237Snjlvirtual memory manager is initialized and paging is enabled.
3479126372SnjlThis
3480126372Snjlallows kernel subsystems to obtain ACPI tables very early, even
3481126372Snjlbefore the ACPI CA subsystem is initialized.
3482102550Siwasaki
3483104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
3484104470Siwasakicould be resolved to the incorrect address under the following
3485114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
3486114237Snjlparent operation region is not defined on a DWORD boundary.
3487102550Siwasaki
3488114237SnjlFixed a problem where the interpreter is not being locked during
3489114237Snjlnamespace initialization (during execution of the _INI control
3490114237Snjlmethods), causing an error when an attempt is made to release it
3491114237Snjllater.
3492102550Siwasaki
3493104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
3494114237Snjlongoing throughout the rest of this year.  In this label, The Mod
3495114237Snjloperator is implemented.
3496102550Siwasaki
3497102550SiwasakiAdded a new data type to contain full PCI addresses named
3498102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
3499126372SnjlDevice,
3500126372Snjland Function values.
3501102550Siwasaki
3502102550Siwasaki Linux:
3503102550Siwasaki
3504102550SiwasakiEnhanced the Linux version of the source code to change most
3505102550Siwasakicapitalized ACPI type names to lowercase. For example, all
3506114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
3507114237Snjlresult in a large diff, but the change is strictly cosmetic and
3508114237Snjlaligns the CA code closer to the Linux coding standard.
3509102550Siwasaki
3510102550SiwasakiOSL Interfaces:
3511102550Siwasaki
3512114237SnjlThe interfaces to the PCI configuration space have been changed
3513126372Snjlto
3514126372Snjladd the PCI Segment number and to split the single 32-bit
3515126372Snjlcombined
3516126372SnjlDeviceFunction field into two 16-bit fields.  This was
3517114237Snjlaccomplished by moving the four values that define an address in
3518114237SnjlPCI configuration space (segment, bus, device, and function) to
3519114237Snjlthe new ACPI_PCI_ID structure.
3520102550Siwasaki
3521104470SiwasakiThe changes to the PCI configuration space interfaces led to a
3522104470Siwasakireexamination of the complete set of address space access
3523114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
3524114237Snjlinterfaces have proven difficult to maintain (any small change
3525114237Snjlmust be propagated across at least 6 interfaces) and do not
3526126372Snjleasily
3527126372Snjlallow for future expansion to 64 bits if necessary.  Also, on
3528126372Snjlsome
3529126372Snjlsystems, it would not be appropriate to demultiplex the access
3530126372Snjlwidth (8, 16, 32,or 64) before calling the OSL if the
3531114237Snjlcorresponding native OS interfaces contain a similar access width
3532114237Snjlparameter.  For these reasons, the 18 address space interfaces
3533114237Snjlhave been replaced by these 6 new ones:
3534102550Siwasaki
3535102550SiwasakiAcpiOsReadPciConfiguration
3536102550SiwasakiAcpiOsWritePciConfiguration
3537102550SiwasakiAcpiOsReadMemory
3538102550SiwasakiAcpiOsWriteMemory
3539102550SiwasakiAcpiOsReadPort
3540102550SiwasakiAcpiOsWritePort
3541102550Siwasaki
3542114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
3543114237Snjlto perform the platform and/or OS-specific actions necessary to
3544114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
3545114237Snjlinterface will simply call down to the CA core to perform the low-
3546114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
3547114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
3548114237Snjlremain OS and platform independent.
3549102550Siwasaki
3550104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
3551114237Snjl"function code and pointer" interface for various miscellaneous
3552114237Snjlsignals and notifications that must be made to the host OS.   The
3553114237Snjlfirst such signals are intended to support the ASL Fatal and
3554114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
3555114237Snjlinterface has been obsoleted.
3556102550Siwasaki
3557102550SiwasakiThe definition of the AcpiFormatException interface has been
3558114237Snjlchanged to simplify its use.  The caller no longer must supply a
3559114237Snjlbuffer to the call; A pointer to a const string is now returned
3560114237Snjldirectly.  This allows the call to be easily used in printf
3561114237Snjlstatements, etc. since the caller does not have to manage a local
3562114237Snjlbuffer.
3563102550Siwasaki
3564114237Snjl
3565102550Siwasaki ASL Compiler, Version X2025:
3566102550Siwasaki
3567114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
3568114237Snjland are fully functional.  They will work with all ACPI 1.0
3569114237Snjlinterpreters, since the operators are simply translated to
3570126372SnjlIf/Else
3571126372Snjlpairs.
3572102550Siwasaki
3573104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
3574104470Siwasakiwith 1.0 interpreters, for the same reason.
3575102550Siwasaki
3576114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
3577114237Snjlpackages have a separate opcode, and their size is determined by
3578114237Snjlthe interpreter at run-time.
3579102550Siwasaki
3580114237SnjlDocumentation The ACPI CA Programmer Reference has been updated
3581126372Snjlto
3582126372Snjlreflect the new interfaces and changes to existing interfaces.
3583102550Siwasaki
3584102550Siwasaki ------------------------------------------
3585102550SiwasakiSummary of changes for this label: 06_15_01
3586102550Siwasaki
3587102550Siwasaki ACPI CA Core Subsystem:
3588102550Siwasaki
3589102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
3590114237Snjlobject would get its byte address inadvertently rounded down to
3591114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
3592102550Siwasaki
3593102550Siwasaki ASL Compiler, version X2024:
3594102550Siwasaki
3595114237SnjlFixed a problem where the Switch() operator would either fault or
3596114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
3597114237Snjl2.0 operator is not yet implemented.
3598102550Siwasaki
3599114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
3600114237Snjltimings.
3601102550Siwasaki
3602114237SnjlImplementation of the CreateField operator automatically converts
3603114237Snjla reference to a named field within a resource descriptor from a
3604114237Snjlbyte offset to a bit offset if required.
3605102550Siwasaki
3606102550SiwasakiAdded some missing named fields from the resource descriptor
3607104470Siwasakisupport. These are the names that are automatically created by
3608126372Snjlthe
3609126372Snjlcompiler to reference fields within a descriptor.  They are only
3610126372Snjlvalid at compile time and are not passed through to the AML
3611114237Snjlinterpreter.
3612102550Siwasaki
3613104470SiwasakiResource descriptor named fields are now typed as Integers and
3614104470Siwasakisubject to compile-time typechecking when used in expressions.
3615102550Siwasaki
3616102550Siwasaki ------------------------------------------
3617102550SiwasakiSummary of changes for this label: 05_18_01
3618102550Siwasaki
3619102550Siwasaki ACPI CA Core Subsystem:
3620102550Siwasaki
3621114237SnjlFixed a couple of problems in the Field support code where bits
3622114237Snjlfrom adjacent fields could be returned along with the proper
3623126372Snjlfield
3624126372Snjlbits. Restructured the field support code to improve performance,
3625126372Snjlreadability and maintainability.
3626102550Siwasaki
3627114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
3628114237Snjlinto the output, saving hundreds of copies of procedure name
3629114237Snjlstrings within the source, shrinking the memory footprint of the
3630114237Snjldebug version of the core subsystem.
3631102550Siwasaki
3632102550Siwasaki Source Code Structure:
3633102550Siwasaki
3634104470SiwasakiThe source code directory tree was restructured to reflect the
3635114237Snjlcurrent organization of the component architecture.  Some files
3636114237Snjland directories have been moved and/or renamed.
3637102550Siwasaki
3638102550Siwasaki Linux:
3639102550Siwasaki
3640102550SiwasakiFixed leaking kacpidpc processes.
3641102550Siwasaki
3642102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
3643102550Siwasakiopened.
3644102550Siwasaki
3645102550Siwasaki ASL Compiler, version X2020:
3646102550Siwasaki
3647114237SnjlMemory allocation performance enhancement - over 24X compile time
3648114237Snjlimprovement on large ASL files.  Parse nodes and namestring
3649114237Snjlbuffers are now allocated from a large internal compiler buffer.
3650102550Siwasaki
3651102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
3652102550Siwasakispecified
3653102550Siwasaki
3654104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
3655126372Snjlfile
3656126372Snjlinstead of the console.
3657102550Siwasaki
3658102550Siwasaki"External" second parameter is now optional
3659102550Siwasaki
3660102550Siwasaki"ElseIf" syntax now properly allows the predicate
3661102550Siwasaki
3662102550SiwasakiLast operand to "Load" now recognized as a Target operand
3663102550Siwasaki
3664102550SiwasakiDebug object can now be used anywhere as a normal object.
3665102550Siwasaki
3666102550SiwasakiResourceTemplate now returns an object of type BUFFER
3667102550Siwasaki
3668102550SiwasakiEISAID now returns an object of type INTEGER
3669102550Siwasaki
3670102550Siwasaki"Index" now works with a STRING operand
3671102550Siwasaki
3672102550Siwasaki"LoadTable" now accepts optional parameters
3673102550Siwasaki
3674102550Siwasaki"ToString" length parameter is now optional
3675102550Siwasaki
3676102550Siwasaki"Interrupt (ResourceType," parse error fixed.
3677102550Siwasaki
3678104470Siwasaki"Register" with a user-defined region space parse error fixed
3679102550Siwasaki
3680114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
3681114237Snjlfixed
3682102550Siwasaki
3683102550Siwasaki"Revision" is now an object of type INTEGER.
3684102550Siwasaki
3685102550Siwasaki
3686102550Siwasaki
3687102550Siwasaki------------------------------------------
3688102550SiwasakiSummary of changes for this label: 05_02_01
3689102550Siwasaki
3690102550SiwasakiLinux:
3691102550Siwasaki
3692102550Siwasaki/proc/acpi/event now blocks properly.
3693102550Siwasaki
3694102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
3695102550Siwasaki/proc/acpi/dsdt.
3696102550Siwasaki
3697102550Siwasaki ACPI CA Core Subsystem:
3698102550Siwasaki
3699104470SiwasakiFixed a problem introduced in the previous label where some of
3700126372Snjlthe
3701126372Snjl"small" resource descriptor types were not recognized.
3702102550Siwasaki
3703102550SiwasakiImproved error messages for the case where an ASL Field is
3704126372Snjloutside
3705126372Snjlthe range of the parent operation region.
3706102550Siwasaki
3707102550Siwasaki ASL Compiler, version X2018:
3708102550Siwasaki
3709102550SiwasakiAdded error detection for ASL Fields that extend beyond the
3710126372Snjllength
3711126372Snjlof the parent operation region (only if the length of the region
3712126372Snjlis known at compile time.)  This includes fields that have a
3713126372Snjlminimum access width that is smaller than the parent region, and
3714126372Snjlindividual field units that are partially or entirely beyond the
3715126372Snjlextent of the parent.
3716102550Siwasaki
3717102550Siwasaki
3718102550Siwasaki
3719102550Siwasaki------------------------------------------
3720102550SiwasakiSummary of changes for this label: 04_27_01
3721102550Siwasaki
3722102550Siwasaki ACPI CA Core Subsystem:
3723102550Siwasaki
3724104470SiwasakiFixed a problem where the namespace mutex could be released at
3725126372Snjlthe
3726126372Snjlwrong time during execution of AcpiRemoveAddressSpaceHandler.
3727102550Siwasaki
3728104470SiwasakiAdded optional thread ID output for debug traces, to simplify
3729114237Snjldebugging of multiple threads.  Added context switch notification
3730114237Snjlwhen the debug code realizes that a different thread is now
3731114237Snjlexecuting ACPI code.
3732102550Siwasaki
3733114237SnjlSome additional external data types have been prefixed with the
3734114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
3735114237SnjlThe data types affected are the external callback typedefs -
3736126372Snjle.g.,
3737126372SnjlWALK_CALLBACK becomes ACPI_WALK_CALLBACK.
3738102550Siwasaki
3739102550Siwasaki Linux:
3740102550Siwasaki
3741102550SiwasakiFixed an issue with the OSL semaphore implementation where a
3742102550Siwasakithread was waking up with an error from receiving a SIGCHLD
3743102550Siwasakisignal.
3744102550Siwasaki
3745114237SnjlLinux version of ACPI CA now uses the system C library for string
3746114237Snjlmanipulation routines instead of a local implementation.
3747102550Siwasaki
3748102550SiwasakiCleaned up comments and removed TBDs.
3749102550Siwasaki
3750102550Siwasaki ASL Compiler, version X2017:
3751102550Siwasaki
3752102550SiwasakiEnhanced error detection and reporting for all file I/O
3753102550Siwasakioperations.
3754102550Siwasaki
3755102550Siwasaki Documentation:
3756102550Siwasaki
3757102550SiwasakiProgrammer Reference updated to version 1.06.
3758102550Siwasaki
3759102550Siwasaki
3760102550Siwasaki
3761102550Siwasaki------------------------------------------
3762102550SiwasakiSummary of changes for this label: 04_13_01
3763102550Siwasaki
3764102550Siwasaki ACPI CA Core Subsystem:
3765102550Siwasaki
3766102550SiwasakiRestructured support for BufferFields and RegionFields.
3767104470SiwasakiBankFields support is now fully operational.  All known 32-bit
3768114237Snjllimitations on field sizes have been removed.  Both BufferFields
3769114237Snjland (Operation) RegionFields are now supported by the same field
3770114237Snjlmanagement code.
3771102550Siwasaki
3772114237SnjlResource support now supports QWORD address and IO resources. The
3773114237Snjl16/32/64 bit address structures and the Extended IRQ structure
3774114237Snjlhave been changed to properly handle Source Resource strings.
3775102550Siwasaki
3776114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
3777114237Snjlcondition internally and must never be returned by
3778126372SnjlAcpiOsThreadId.
3779126372SnjlThis reserved value was changed from 0 since Unix systems allow a
3780126372Snjlthread ID of 0.
3781102550Siwasaki
3782102550SiwasakiLinux:
3783102550Siwasaki
3784102550SiwasakiDriver code reorganized to enhance portability
3785102550Siwasaki
3786102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
3787102550Siwasaki
3788102550SiwasakiFixed the EC driver to honor _GLK.
3789102550Siwasaki
3790102550SiwasakiASL Compiler, version X2016:
3791102550Siwasaki
3792114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
3793114237Snjladdress space was set to 0, not 0x7f as it should be.
3794102550Siwasaki
3795102550Siwasaki ------------------------------------------
3796102550SiwasakiSummary of changes for this label: 03_13_01
3797102550Siwasaki
3798102550Siwasaki ACPI CA Core Subsystem:
3799102550Siwasaki
3800104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
3801104470Siwasakipresent.
3802102550Siwasaki
3803102550SiwasakiNotify handler fix - notifies are deferred until the parent
3804126372Snjlmethod
3805126372Snjlcompletes execution.  This fixes the "mutex already acquired"
3806126372Snjlissue seen occasionally.
3807102550Siwasaki
3808104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
3809114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
3810114237Snjlconvert "result-to-target-type" implementation has been removed
3811114237Snjlfor stores to method Args and Locals.  Source operand conversion
3812114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
3813114237Snjlspecification pending.
3814102550Siwasaki
3815104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
3816104470Siwasakilength.
3817102550Siwasaki
3818102550SiwasakiFix for compiler warnings for 64-bit compiles.
3819102550Siwasaki
3820102550Siwasaki Linux:
3821102550Siwasaki
3822102550Siwasaki/proc output aligned for easier parsing.
3823102550Siwasaki
3824102550SiwasakiRelease-version compile problem fixed.
3825102550Siwasaki
3826104470SiwasakiNew kernel configuration options documented in Configure.help.
3827102550Siwasaki
3828102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
3829102550Siwasakicontext" message.
3830102550Siwasaki
3831102550Siwasaki OSPM:
3832102550Siwasaki
3833102550SiwasakiPower resource driver integrated with bus manager.
3834102550Siwasaki
3835102550SiwasakiFixed kernel fault during active cooling for thermal zones.
3836102550Siwasaki
3837102550SiwasakiSource Code:
3838102550Siwasaki
3839102550SiwasakiThe source code tree has been restructured.
3840102550Siwasaki
3841102550Siwasaki
3842102550Siwasaki
3843102550Siwasaki------------------------------------------
3844102550SiwasakiSummary of changes for this label: 03_02_01
3845102550Siwasaki
3846102550Siwasaki Linux OS Services Layer (OSL):
3847102550Siwasaki
3848102550SiwasakiMajor revision of all Linux-specific code.
3849102550Siwasaki
3850102550SiwasakiModularized all ACPI-specific drivers.
3851102550Siwasaki
3852102550SiwasakiAdded new thermal zone and power resource drivers.
3853102550Siwasaki
3854114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
3855102550Siwasaki
3856102550SiwasakiNew kernel configuration options.
3857102550Siwasaki
3858102550Siwasaki Linux known issues:
3859102550Siwasaki
3860114237SnjlNew kernel configuration options not documented in Configure.help
3861114237Snjlyet.
3862102550Siwasaki
3863114237Snjl
3864102550SiwasakiModule dependencies not currently implemented. If used, they
3865102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
3866102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
3867102550Siwasaki
3868102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
3869102550Siwasaki
3870102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
3871102550Siwasaki
3872104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
3873104470Siwasakimessage.
3874102550Siwasaki
3875104470SiwasakiSome systems may fail with "execution mutex already acquired"
3876104470Siwasakimessage.
3877102550Siwasaki
3878102550Siwasaki ACPI CA Core Subsystem:
3879102550Siwasaki
3880114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
3881114237Snjlfor the  deadlock detection code. Defined to return a non-zero,
3882126372Snjl32-
3883126372Snjlbit thread ID for the currently executing thread.  May be a non-
3884126372Snjlzero constant integer on single-thread systems.
3885102550Siwasaki
3886104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
3887126372SnjlWe
3888126372Snjlmay add conditional compilation for this code (debug only) later.
3889102550Siwasaki
3890104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
3891114237Snjlincludes multiple acquires/releases by owner and support for the
3892114237SnjlMutex SyncLevel parameter.
3893102550Siwasaki
3894102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
3895104470SiwasakiMutexes that have been acquired but not released when a thread
3896114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
3897114237Snjl("All mutexes must be released when an invocation exits") and
3898114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
3899114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
3900114237Snjlcontinues to misbehave (which it will).
3901102550Siwasaki
3902104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
3903104470Siwasakisupport.
3904102550Siwasaki
3905104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
3906114237Snjlspec does in fact allow recursive method calls.)  The number of
3907114237Snjlrecursive calls is subject to the restrictions imposed by the
3908114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
3909104470Siwasakiparameter.
3910102550Siwasaki
3911102550SiwasakiImplemented support for the SyncLevel parameter for control
3912102550Siwasakimethods (ACPI 2.0 feature)
3913102550Siwasaki
3914114237SnjlFixed a deadlock problem when multiple threads attempted to use
3915114237Snjlthe interpreter.
3916102550Siwasaki
3917102550SiwasakiFixed a problem where the string length of a String package
3918102550Siwasakielement was not always set in a package returned from
3919102550SiwasakiAcpiEvaluateObject.
3920102550Siwasaki
3921114237SnjlFixed a problem where the length of a String package element was
3922114237Snjlnot always included in the length of the overall package returned
3923114237Snjlfrom AcpiEvaluateObject.
3924102550Siwasaki
3925102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
3926102550Siwasakimanager.  This manager keeps a list of all outstanding
3927114237Snjlallocations, and can therefore detect memory leaks and attempts
3928126372Snjlto
3929126372Snjlfree memory blocks more than once. Useful for code such as the
3930114237Snjlpower manager, etc.  May not be appropriate for device drivers.
3931114237SnjlPerformance with the debug code enabled is slow.
3932102550Siwasaki
3933102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
3934102550Siwasaki
3935102550Siwasaki ASL Compiler Version X2015:
3936102550Siwasaki
3937102550SiwasakiIntegrated changes to allow the compiler to be generated on
3938102550Siwasakimultiple platforms.
3939102550Siwasaki
3940102550SiwasakiLinux makefile added to generate the compiler on Linux
3941102550Siwasaki
3942102550Siwasaki Source Code:
3943102550Siwasaki
3944102550SiwasakiAll platform-specific headers have been moved to their own
3945102550Siwasakisubdirectory, Include/Platform.
3946102550Siwasaki
3947102550SiwasakiNew source file added, Interpreter/ammutex.c
3948102550Siwasaki
3949102550SiwasakiNew header file, Include/acstruct.h
3950102550Siwasaki
3951102550Siwasaki Documentation:
3952102550Siwasaki
3953114237SnjlThe programmer reference has been updated for the following new
3954114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
3955102550Siwasaki
3956102550Siwasaki ------------------------------------------
3957102550SiwasakiSummary of changes for this label: 02_08_01
3958102550Siwasaki
3959102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
3960104470Siwasakiincorrectly returned if the return resource buffer was larger
3961126372Snjlthan
3962126372Snjlthe actual data (in the resource interfaces).
3963102550Siwasaki
3964114237SnjlReferences to named objects within packages are resolved to the
3965114237Snjlfull pathname string before packages are returned directly (via
3966114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
3967114237Snjlinterfaces.
3968102550Siwasaki
3969102550SiwasakiLinux OS Services Layer (OSL):
3970102550Siwasaki
3971102550SiwasakiImproved /proc battery interface.
3972102550Siwasaki
3973102550Siwasaki
3974104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
3975102550Siwasaki
3976102550SiwasakiASL Compiler Version X2014:
3977102550Siwasaki
3978114237SnjlAll defined method arguments can now be used as local variables,
3979114237Snjlincluding the ones that are not actually passed in as parameters.
3980114237SnjlThe compiler tracks initialization of the arguments and issues an
3981114237Snjlexception if they are used without prior assignment (just like
3982114237Snjllocals).
3983102550Siwasaki
3984104470SiwasakiThe -o option now specifies a filename prefix that is used for
3985126372Snjlall
3986126372Snjloutput files, including the AML output file.  Otherwise, the
3987114237Snjldefault behavior is as follows:  1) the AML goes to the file
3988114237Snjlspecified in the DSDT.  2) all other output files use the input
3989114237Snjlsource filename as the base.
3990102550Siwasaki
3991102550Siwasaki ------------------------------------------
3992102550SiwasakiSummary of changes for this label: 01_25_01
3993102550Siwasaki
3994114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
3995114237Snjlstore support within the  interpreter.  This includes support for
3996114237Snjlthe Store operator as well  as any ASL operators that include a
3997114237Snjltarget operand.
3998102550Siwasaki
3999102550SiwasakiPartially implemented support for Implicit Result-to-Target
4000114237Snjlconversion. This is when a result object is converted on the fly
4001114237Snjlto the type of  an existing target object.  Completion of this
4002114237Snjlsupport is pending  further analysis of the ACPI specification
4003114237Snjlconcerning this matter.
4004102550Siwasaki
4005114237SnjlCPU-specific code has been removed from the subsystem (hardware
4006114237Snjldirectory).
4007102550Siwasaki
4008102550SiwasakiNew Power Management Timer functions added
4009102550Siwasaki
4010114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
4011114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
4012102550Siwasaki
4013102550SiwasakiFixed C2 and C3 latency calculations.
4014102550Siwasaki
4015102550Siwasaki
4016114237SnjlWe no longer use the compilation date for the version message on
4017114237Snjlinitialization, but retrieve the version from
4018102550SiwasakiAcpiGetSystemInfo().
4019102550Siwasaki
4020102550SiwasakiIncorporated for fix Sony VAIO machines.
4021102550Siwasaki
4022104470SiwasakiDocumentation:  The Programmer Reference has been updated and
4023104470Siwasakireformatted.
4024102550Siwasaki
4025102550Siwasaki
4026102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
4027102550Siwasakinumbering and error reporting could get out  of sync in the
4028102550Siwasakipresence of multiple include files.
4029102550Siwasaki
4030102550Siwasaki ------------------------------------------
4031102550SiwasakiSummary of changes for this label: 01_15_01
4032102550Siwasaki
4033102550SiwasakiCore ACPI CA Subsystem:
4034102550Siwasaki
4035114237SnjlImplemented support for type conversions in the execution of the
4036114237SnjlASL  Concatenate operator (The second operand is converted to
4037114237Snjlmatch the type  of the first operand before concatenation.)
4038102550Siwasaki
4039102550SiwasakiSupport for implicit source operand conversion is partially
4040114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
4041114237SnjlString are freely  interchangeable for most ASL operators and are
4042114237Snjlconverted by the interpreter  on the fly as required.  Implicit
4043114237SnjlTarget operand conversion (where the  result is converted to the
4044114237Snjltarget type before storing) is not yet implemented.
4045102550Siwasaki
4046102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
4047102550Siwasaki
4048114237SnjlProblem fixed where a field read on an aligned field could cause
4049126372Snjla
4050126372Snjlread  past the end of the field.
4051102550Siwasaki
4052114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
4053114237Snjldoes not return a value, but the caller expects one.  (The ASL
4054114237Snjlcompiler flags this as a warning.)
4055102550Siwasaki
4056102550SiwasakiASL Compiler:
4057102550Siwasaki
4058102550SiwasakiVersion X2011:
4059102550Siwasaki1. Static typechecking of all operands is implemented. This
4060102550Siwasakiprevents the use of invalid objects (such as using a Package
4061126372Snjlwhere
4062126372Snjlan Integer is required) at compile time instead of at interpreter
4063126372Snjlrun-time.
4064114237Snjl2. The ASL source line is printed with ALL errors and warnings.
4065102550Siwasaki3. Bug fix for source EOF without final linefeed.
4066102550Siwasaki4. Debug option is split into a parse trace and a namespace
4067102550Siwasakitrace.
4068102550Siwasaki5. Namespace output option (-n) includes initial values for
4069102550Siwasakiintegers and strings.
4070102550Siwasaki6. Parse-only option added for quick syntax checking.
4071102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
4072102550Siwasaki
4073102550SiwasakiVersion X2012:
4074102550Siwasaki1. Relaxed typechecking to allow interchangeability between
4075114237Snjlstrings, integers, and buffers.  These types are now converted by
4076114237Snjlthe interpreter at runtime.
4077114237Snjl2. Compiler reports time taken by each internal subsystem in the
4078114237Snjldebug         output file.
4079102550Siwasaki
4080102550Siwasaki
4081102550Siwasaki ------------------------------------------
4082102550SiwasakiSummary of changes for this label: 12_14_00
4083102550Siwasaki
4084102550SiwasakiASL Compiler:
4085102550Siwasaki
4086104470SiwasakiThis is the first official release of the compiler. Since the
4087104470Siwasakicompiler requires elements of the Core Subsystem, this label
4088104470Siwasakisynchronizes everything.
4089102550Siwasaki
4090102550Siwasaki------------------------------------------
4091102550SiwasakiSummary of changes for this label: 12_08_00
4092102550Siwasaki
4093102550Siwasaki
4094114237SnjlFixed a problem where named references within the ASL definition
4095114237Snjlof both OperationRegions and CreateXXXFields did not work
4096114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4097114237Snjlinitialization of the region/field. This is similar (but not
4098114237Snjlrelated internally) to the problem that was fixed in the last
4099114237Snjllabel.
4100114237Snjl
4101102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
4102102550Siwasakifunctions ToBCD and FromBCD.
4103102550Siwasaki
4104102550SiwasakiUpdated all legal headers to include "2000" in the copyright
4105102550Siwasakiyears.
4106102550Siwasaki
4107102550Siwasaki ------------------------------------------
4108102550SiwasakiSummary of changes for this label: 12_01_00
4109102550Siwasaki
4110102550SiwasakiFixed a problem where method invocations within the ASL
4111126372Snjldefinition
4112126372Snjlof both OperationRegions and CreateXXXFields did not work
4113126372Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4114114237Snjlinitialization of the region/field:
4115102550Siwasaki
4116114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
4117114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
4118114237Snjl(0x3005)
4119102550Siwasaki
4120102550SiwasakiFixed a problem where operators with more than one nested
4121104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
4122114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
4123114237Snjlproblem that has gone unnoticed until now.
4124102550Siwasaki
4125102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
4126102550Siwasaki
4127114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
4128114237Snjlprevious build (The prefix part of a relative path was handled
4129114237Snjlincorrectly).
4130102550Siwasaki
4131114237SnjlFixed a problem where Operation Region initialization failed if
4132114237Snjlthe operation region name was a "namepath" instead of a simple
4133114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
4134102550Siwasaki
4135114237SnjlFixed a problem where an assignment to a local variable via the
4136114237Snjlindirect RefOf mechanism only worked for the first such
4137102550Siwasakiassignment.  Subsequent assignments were ignored.
4138102550Siwasaki
4139102550Siwasaki ------------------------------------------
4140102550SiwasakiSummary of changes for this label: 11_15_00
4141102550Siwasaki
4142104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
4143126372Snjlthe
4144126372Snjl0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
4145126372Snjltables,
4146126372Snjlthe AML  interpreter does NOT have support for the new 2.0 ASL
4147126372Snjlgrammar terms at this time.
4148102550Siwasaki
4149104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
4150126372Snjl2.0
4151126372SnjlFADT.
4152102550Siwasaki
4153104470SiwasakiAll physical memory addresses across all platforms are now 64
4154126372Snjlbits
4155126372Snjlwide. Logical address width remains dependent on the platform
4156126372Snjl(i.e., "void *").
4157102550Siwasaki
4158114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
4159102550Siwasaki
4160114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
4161114237Snjl2.0 specification.
4162102550Siwasaki
4163104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
4164104470Siwasakirevision number less than 2 use 32-bit integers only.
4165102550Siwasaki
4166114237SnjlFixed a problem where the evaluation of OpRegion operands did not
4167114237Snjlalways resolve them to numbers properly.
4168102550Siwasaki
4169102550Siwasaki------------------------------------------
4170102550SiwasakiSummary of changes for this label: 10_20_00
4171102550Siwasaki
4172114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
4173114237SnjlCBN_ OpRegions when the _STA returns 0x8.
4174102550Siwasaki
4175104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
4176104470Siwasakivalues before a package object is returned
4177102550Siwasaki
4178104470SiwasakiFix for method call as predicate to if/while construct causing
4179104470Siwasakiincorrect if/while behavior
4180102550Siwasaki
4181114237SnjlFix for Else block package lengths sometimes calculated wrong (if
4182114237Snjlblock > 63 bytes)
4183102550Siwasaki
4184102550SiwasakiFix for Processor object length field, was always zero
4185102550Siwasaki
4186102550SiwasakiTable load abort if FACP sanity check fails
4187102550Siwasaki
4188102550SiwasakiFix for problem with Scope(name) if name already exists
4189102550Siwasaki
4190102550SiwasakiWarning emitted if a named object referenced cannot be found
4191102550Siwasaki(resolved) during method execution.
4192102550Siwasaki
4193102550Siwasaki
4194102550Siwasaki
4195102550Siwasaki
4196102550Siwasaki
4197102550Siwasaki------------------------------------------
4198102550SiwasakiSummary of changes for this label: 9_29_00
4199102550Siwasaki
4200114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
4201114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
4202114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
4203114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
4204114237SnjlAcpiLoadTables
4205102550Siwasaki
4206104470SiwasakiNote: These interface changes require changes to all existing
4207104470SiwasakiOSDs
4208102550Siwasaki
4209114237SnjlThe PCI_Config default address space handler is always installed
4210114237Snjlat the root namespace object.
4211102550Siwasaki
4212102550Siwasaki-------------------------------------------
4213102550SiwasakiSummary of changes for this label: 09_15_00
4214102550Siwasaki
4215102550SiwasakiThe new initialization architecture is implemented.  New
4216114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
4217114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
4218114237Snjl(Namespace is automatically loaded when a table is loaded)
4219102550Siwasaki
4220104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
4221126372Snjlfrom
4222126372Snjl52 bytes to 32 bytes.  There is usually one of these for every
4223126372Snjlnamespace object, so the memory savings is significant.
4224102550Siwasaki
4225114237SnjlImplemented just-in-time evaluation of the CreateField operators.
4226102550Siwasaki
4227102550SiwasakiBug fixes for IA-64 support have been integrated.
4228102550Siwasaki
4229102550SiwasakiAdditional code review comments have been implemented
4230102550Siwasaki
4231104470SiwasakiThe so-called "third pass parse" has been replaced by a final
4232126372Snjlwalk
4233126372Snjlthrough the namespace to initialize all operation regions
4234126372Snjl(address
4235126372Snjlspaces) and fields that have not yet been initialized during the
4236126372Snjlexecution of the various _INI and REG methods.
4237102550Siwasaki
4238102550SiwasakiNew file - namespace/nsinit.c
4239102550Siwasaki
4240102550Siwasaki-------------------------------------------
4241102550SiwasakiSummary of changes for this label: 09_01_00
4242102550Siwasaki
4243104470SiwasakiNamespace manager data structures have been reworked to change
4244126372Snjlthe
4245126372Snjlprimary  object from a table to a single object.  This has
4246104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
4247126372Snjland
4248126372Snjl2X overall in the ACPI CA subsystem.
4249102550Siwasaki
4250102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
4251102550Siwasakiinadvertently left  commented out.
4252102550Siwasaki
4253114237SnjlReduced the warning count when generating the source with the GCC
4254114237Snjlcompiler.
4255102550Siwasaki
4256102550SiwasakiRevision numbers added to each module header showing the
4257104470SiwasakiSourceSafe version of the file.  Please refer to this version
4258114237Snjlnumber when giving us feedback or comments on individual modules.
4259102550Siwasaki
4260114237SnjlThe main object types within the subsystem have been renamed to
4261114237Snjlclarify their  purpose:
4262102550Siwasaki
4263102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
4264102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
4265102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
4266102550Siwasaki
4267114237SnjlNOTE: no changes to the initialization sequence are included in
4268114237Snjlthis label.
4269102550Siwasaki
4270102550Siwasaki-------------------------------------------
4271102550SiwasakiSummary of changes for this label: 08_23_00
4272102550Siwasaki
4273102550SiwasakiFixed problem where TerminateControlMethod was being called
4274102550Siwasakimultiple times per  method
4275102550Siwasaki
4276114237SnjlFixed debugger problem where single stepping caused a semaphore
4277126372Snjlto
4278126372Snjlbe  oversignalled
4279102550Siwasaki
4280104470SiwasakiImproved performance through additional parse object caching -
4281104470Siwasakiadded  ACPI_EXTENDED_OP type
4282102550Siwasaki
4283102550Siwasaki-------------------------------------------
4284102550SiwasakiSummary of changes for this label: 08_10_00
4285102550Siwasaki
4286102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
4287102550Siwasakicomplete parse trees  for ACPI tables and control methods.
4288114237SnjlInstead, parse subtrees are created and  then deleted as soon as
4289114237Snjlthey are processed (Either entered into the namespace or
4290126372Snjlexecuted
4291126372Snjlby the interpreter).  This reduces the use of dynamic kernel
4292126372Snjlmemory  significantly. (about 10X)
4293102550Siwasaki
4294114237SnjlException codes broken into classes and renumbered.  Be sure to
4295114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
4296114237Snjlhave to renumber the codes  again now that they are split into
4297114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
4298114237Snjlinternal).
4299102550Siwasaki
4300104470SiwasakiFixed some additional alignment issues in the Resource Manager
4301104470Siwasakisubcomponent
4302102550Siwasaki
4303114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
4304114237Snjlseveral places  where mutexes/semaphores were being unlocked
4305114237Snjlwithout a corresponding lock  operation.  There are no known
4306114237Snjlsemaphore or mutex "leaks" at this time.
4307102550Siwasaki
4308114237SnjlFixed the case where an ASL Return operator is used to return an
4309114237Snjlunnamed  package.
4310102550Siwasaki
4311102550Siwasaki-------------------------------------------
4312102550SiwasakiSummary of changes for this label: 07_28_00
4313102550Siwasaki
4314102550SiwasakiFixed a problem with the way addresses were calculated in
4315114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
4316114237Snjlmanifested itself when a Field was  created with WordAccess or
4317114237SnjlDwordAccess, but the field unit defined within the  Field was
4318126372Snjlless
4319126372Snjlthan a Word or Dword.
4320102550Siwasaki
4321102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
4322104470Siwasakioperands off of the  operand stack to display information. The
4323114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
4324114237Snjlaccessing an operand stack with two or more  operands.
4325102550Siwasaki
4326114237SnjlFixed a problem with the PCI configuration space handlers where
4327114237Snjlcontext was  getting confused between accesses. This required a
4328114237Snjlchange to the generic address  space handler and address space
4329114237Snjlsetup definitions. Handlers now get both a  global handler
4330126372Snjlcontext
4331126372Snjl(this is the one passed in by the user when executing
4332114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
4333114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
4334114237Snjl_BBN values associated with a  specific region). The generic
4335114237Snjlfunction definitions have changed to the  following:
4336102550Siwasaki
4337114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
4338114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
4339104470Siwasaki*HandlerContext, // This used to be void *Context void
4340102550Siwasaki*RegionContext); // This is an additional parameter
4341102550Siwasaki
4342102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
4343102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
4344102550Siwasaki**RegionContext); // This used to be **ReturnContext
4345102550Siwasaki
4346102550Siwasaki-------------------------------------------
4347102550SiwasakiSummary of changes for this label: 07_21_00
4348102550Siwasaki
4349102550SiwasakiMajor file consolidation and rename.  All files within the
4350102550Siwasakiinterpreter have been  renamed as well as most header files.
4351126372SnjlThis
4352126372Snjlwas done to prevent collisions with  existing files in the host
4353126372SnjlOSs -- filenames such as "config.h" and "global.h"  seem to be
4354126372Snjlquite common.  The VC project files have been updated.  All
4355114237Snjlmakefiles  will require modification.
4356102550Siwasaki
4357114237SnjlThe parser/interpreter integration continues in Phase 5 with the
4358114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
4359114237Snjltwice) for each table;  This  avoids the construction of a huge
4360114237Snjlparse tree and therefore reduces the amount of  dynamic memory
4361114237Snjlrequired by the subsystem.  Greater use of the parse object cache
4362114237Snjlmeans that performance is unaffected.
4363102550Siwasaki
4364102550SiwasakiMany comments from the two code reviews have been rolled in.
4365102550Siwasaki
4366102550SiwasakiThe 64-bit alignment support is complete.
4367102550Siwasaki
4368102550Siwasaki-------------------------------------------
4369102550SiwasakiSummary of changes for this label: 06_30_00
4370102550Siwasaki
4371114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
4372114237Snjlwe've added  support in the source code for 80 column output
4373114237Snjldevices.  The code is now mostly  constrained to 80 columns or
4374114237Snjlless to support environments and editors that 1)  cannot display
4375114237Snjlor print more than 80 characters on a single line, and 2) cannot
4376114237Snjldisable line wrapping.
4377102550Siwasaki
4378104470SiwasakiA major restructuring of the namespace data structure has been
4379104470Siwasakicompleted.  The  result is 1) cleaner and more
4380114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
4381114237Snjlin the dynamic memory requirement for each named ACPI  object
4382114237Snjl(almost half).
4383102550Siwasaki
4384102550Siwasaki-------------------------------------------
4385102550SiwasakiSummary of changes for this label: 06_23_00
4386102550Siwasaki
4387114237SnjlLinux support has been added.  In order to obtain approval to get
4388114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
4389114237Snjlquite a few changes to the  base subsystem that will affect all
4390114237Snjlusers (all the changes are generic and OS- independent).  The
4391114237Snjleffects of these global changes have been somewhat far  reaching.
4392114237SnjlFiles have been merged and/or renamed and interfaces have been
4393114237Snjlrenamed.   The major changes are described below.
4394102550Siwasaki
4395102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
4396102550Siwasakipollution/confusion  within our target kernels.  All OSD
4397114237Snjlinterfaces must be modified to match the new  naming convention.
4398102550Siwasaki
4399102550SiwasakiFiles merged across the subsystem.  A number of the smaller
4400126372Snjlsource
4401126372Snjland header  files have been merged to reduce the file count and
4402126372Snjlincrease the density of the  existing files.  There are too many
4403126372Snjlto list here.  In general, makefiles that  call out individual
4404126372Snjlfiles will require rebuilding.
4405102550Siwasaki
4406104470SiwasakiInterpreter files renamed.  All interpreter files now have the
4407104470Siwasakiprefix am*  instead of ie* and is*.
4408102550Siwasaki
4409104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
4410114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
4411114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
4412114237Snjl"external interface" or xface or xf in the  filenames.j
4413102550Siwasaki
4414102550Siwasaki
4415114237SnjlAll manifest constants have been forced to upper case (some were
4416114237Snjlmixed case.)   Also, the string "ACPI_" has been prepended to
4417126372Snjlmany
4418126372Snjl(not all) of the constants,  typedefs, and structs.
4419102550Siwasaki
4420102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
4421102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
4422102550Siwasaki
4423102550SiwasakiAll other globals within the subsystem are now prefixed with
4424102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
4425114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
4426114237Snjltwo-letter abbreviation for the subcomponent  remains after
4427126372Snjl"Acpi"
4428126372Snjl- for example, CmCallocate became AcpiCmCallocate.
4429102550Siwasaki
4430102550SiwasakiAdded a source code translation/conversion utility.  Used to
4431114237Snjlgenerate the Linux  source code, it can be modified to generate
4432114237Snjlother types of source as well. Can  also be used to cleanup
4433114237Snjlexisting source by removing extraneous spaces and blank  lines.
4434114237SnjlFound in tools/acpisrc/*
4435102550Siwasaki
4436102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
4437102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
4438102550Siwasaki
4439114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
4440114237SnjlWhen set to  one, this indicates that the caller wants to use the
4441114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
4442114237Snjlboth types.  However, implementers of this  call may want to use
4443114237Snjldifferent OS primitives depending on the type of semaphore
4444114237Snjlrequested.  For example, some operating systems provide separate
4445114237Snjl"mutex" and  "semaphore" interfaces - where the mutex interface
4446126372Snjlis
4447126372Snjlmuch faster because it  doesn't have all the overhead of a full
4448126372Snjlsemaphore implementation.
4449102550Siwasaki
4450104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
4451114237Snjladdress space can  block forever if it is the first access to the
4452114237Snjlspace.
4453102550Siwasaki
4454102550Siwasaki-------------------------------------------
4455102550SiwasakiSummary of changes for this label: 06_02_00
4456102550Siwasaki
4457102550SiwasakiSupport for environments that cannot handle unaligned data
4458114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
4459114237Snjlhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
4460126372Snjlhas
4461126372Snjlbeen added (via configurable macros) in  these three areas: -
4462114237SnjlTransfer of data from the raw AML byte stream is done via byte
4463114237Snjlmoves instead of    word/dword/qword moves. - External objects
4464126372Snjlare
4465126372Snjlaligned within the user buffer, including package   elements (sub-
4466126372Snjlobjects). - Conversion of name strings to UINT32 Acpi Names is
4467126372Snjlnow
4468126372Snjldone byte-wise.
4469102550Siwasaki
4470102550SiwasakiThe Store operator was modified to mimic Microsoft's
4471102550Siwasakiimplementation when storing  to a Buffer Field.
4472102550Siwasaki
4473102550SiwasakiAdded a check of the BM_STS bit before entering C3.
4474102550Siwasaki
4475114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
4476114237Snjlfile, cmeval.c  subsumes the functionality.
4477102550Siwasaki
4478102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
4479102550Siwasakimakefile is under  the acpiexec directory.
4480