changes.txt revision 128212
1117521Snjl----------------------------------------
2128212Snjl02 April 2004.  Summary of changes for version 20040402:
3128212Snjl
4128212Snjl1) ACPI CA Core Subsystem:
5128212Snjl
6128212SnjlFixed an interpreter problem where an indirect store through an
7128212SnjlArgX parameter was incorrectly applying the "implicit conversion
8128212Snjlrules" during the store.  From the ACPI specification: "If the
9128212Snjltarget is a method local or argument (LocalX or ArgX), no
10128212Snjlconversion is performed and the result is stored directly to the
11128212Snjltarget".  The new behavior is to disable implicit conversion
12128212Snjlduring ALL stores to an ArgX.
13128212Snjl
14128212SnjlChanged the behavior of the _PRW method scan to ignore any and
15128212Snjlall errors returned by a given _PRW.  This prevents the scan from
16128212Snjlaborting from the failure of any single _PRW.
17128212Snjl
18128212SnjlMoved the runtime configuration parameters from the global init
19128212Snjlprocedure to static variables in acglobal.h.  This will allow the
20128212Snjlhost to override the default values easily.
21128212Snjl
22128212SnjlCode and Data Size: Current and previous core subsystem library
23128212Snjlsizes are shown below.  These are the code and data sizes for the
24128212Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
25128212Snjlthese values do not include any ACPI driver or OSPM code.  The
26128212Snjldebug version of the code includes the debug output trace
27128212Snjlmechanism and has a much larger code and data size.  Note that
28128212Snjlthese values will vary depending on the efficiency of the
29128212Snjlcompiler and the compiler options used during generation.
30128212Snjl
31128212Snjl  Previous Release:
32128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
33128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
34128212Snjl  Current Release:
35128212Snjl    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
36128212Snjl    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
37128212Snjl
38128212Snjl
39128212Snjl2) iASL Compiler/Disassembler:
40128212Snjl
41128212SnjliASL now fully disassembles SSDTs.  However, External()
42128212Snjlstatements are not generated automatically for unresolved symbols
43128212Snjlat this time.  This is a planned feature for future
44128212Snjlimplementation.
45128212Snjl
46128212SnjlFixed a scoping problem in the disassembler that occurs when the
47128212Snjltype of the target of a Scope() operator is overridden.  This
48128212Snjlproblem caused an incorrectly nested internal namespace to be
49128212Snjlconstructed.
50128212Snjl
51128212SnjlAny warnings or errors that are emitted during disassembly are
52128212Snjlnow commented out automatically so that the resulting file can be
53128212Snjlrecompiled without any hand editing.
54128212Snjl
55128212Snjl----------------------------------------
56128212Snjl26 March 2004.  Summary of changes for version 20040326:
57128212Snjl
58128212Snjl1) ACPI CA Core Subsystem:
59128212Snjl
60128212SnjlImplemented support for "wake" GPEs via interaction between GPEs
61128212Snjland the _PRW methods.  Every GPE that is pointed to by one or
62128212Snjlmore _PRWs is identified as a WAKE GPE and by default will no
63128212Snjllonger be enabled at runtime.  Previously, we were blindly
64128212Snjlenabling all GPEs with a corresponding _Lxx or _Exx method - but
65128212Snjlmost of these turn out to be WAKE GPEs anyway.  We believe this
66128212Snjlhas been the cause of thousands of "spurious" GPEs on some
67128212Snjlsystems.
68128212Snjl
69128212SnjlThis new GPE behavior is can be reverted to the original behavior
70128212Snjl(enable ALL GPEs at runtime) via a runtime flag.
71128212Snjl
72128212SnjlFixed a problem where aliased control methods could not access
73128212Snjlobjects properly.  The proper scope within the namespace was not
74128212Snjlinitialized (transferred to the target of the aliased method)
75128212Snjlbefore executing the target method.
76128212Snjl
77128212SnjlFixed a potential race condition on internal object deletion on
78128212Snjlthe return object in AcpiEvaluateObject.
79128212Snjl
80128212SnjlIntegrated a fix for resource descriptors where both _MEM and
81128212Snjl_MTP were being extracted instead of just _MEM.  (i.e. bitmask
82128212Snjlwas incorrectly too wide, 0x0F instead of 0x03.)
83128212Snjl
84128212SnjlAdded a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName,
85128212Snjlpreventing a fault in some cases.
86128212Snjl
87128212SnjlUpdated Notify() values for debug statements in evmisc.c
88128212Snjl
89128212SnjlReturn proper status from AcpiUtMutexInitialize, not just simply
90128212SnjlAE_OK.
91128212Snjl
92128212SnjlCode and Data Size: Current and previous core subsystem library
93128212Snjlsizes are shown below.  These are the code and data sizes for the
94128212Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
95128212Snjlthese values do not include any ACPI driver or OSPM code.  The
96128212Snjldebug version of the code includes the debug output trace
97128212Snjlmechanism and has a much larger code and data size.  Note that
98128212Snjlthese values will vary depending on the efficiency of the
99128212Snjlcompiler and the compiler options used during generation.
100128212Snjl
101128212Snjl  Previous Release:
102128212Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
103128212Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
104128212Snjl  Current Release:
105128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
106128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
107128212Snjl
108128212Snjl----------------------------------------
109127175Snjl11 March 2004.  Summary of changes for version 20040311:
110127175Snjl
111127175Snjl1) ACPI CA Core Subsystem:
112127175Snjl
113127175SnjlFixed a problem where errors occurring during the parse phase of
114127175Snjlcontrol method execution did not abort cleanly.  For example,
115127175Snjlobjects created and installed in the namespace were not deleted.
116127175SnjlThis caused all subsequent invocations of the method to return
117127175Snjlthe AE_ALREADY_EXISTS exception.
118127175Snjl
119127175SnjlImplemented a mechanism to force a control method to "Serialized"
120127175Snjlexecution if the method attempts to create namespace objects.
121127175Snjl(The root of the AE_ALREADY_EXISTS problem.)
122127175Snjl
123127175SnjlImplemented support for the predefined _OSI "internal" control
124127175Snjlmethod.  Initial supported strings are "Linux", "Windows 2000",
125127175Snjl"Windows 2001", and "Windows 2001.1", and can be easily upgraded
126127175Snjlfor new strings as necessary.  This feature will allow "other"
127127175Snjloperating systems to execute the fully tested, "Windows" code
128127175Snjlpath through the ASL code
129127175Snjl
130127175SnjlGlobal Lock Support:  Now allows multiple acquires and releases
131127175Snjlwith any internal thread.  Removed concept of "owning thread" for
132127175Snjlthis special mutex.
133127175Snjl
134127175SnjlFixed two functions that were inappropriately declaring large
135127175Snjlobjects on the CPU stack:  PsParseLoop, NsEvaluateRelative.
136127175SnjlReduces the stack usage during method execution considerably.
137127175Snjl
138127175SnjlFixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where
139127175Snjlthe S4Bios_f field was incorrectly defined as UINT32 instead of
140127175SnjlUINT32_BIT.
141127175Snjl
142127175SnjlFixed a problem where AcpiEvGpeDetect would fault if there were
143127175Snjlno GPEs defined on the machine.
144127175Snjl
145127175SnjlImplemented two runtime options:  One to force all control method
146127175Snjlexecution to "Serialized" to mimic Windows behavior, another to
147127175Snjldisable _OSI support if it causes problems on a given machine.
148127175Snjl
149127175SnjlCode and Data Size: Current and previous core subsystem library
150127175Snjlsizes are shown below.  These are the code and data sizes for the
151127175Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
152127175Snjlthese values do not include any ACPI driver or OSPM code.  The
153127175Snjldebug version of the code includes the debug output trace
154127175Snjlmechanism and has a much larger code and data size.  Note that
155127175Snjlthese values will vary depending on the efficiency of the
156127175Snjlcompiler and the compiler options used during generation.
157127175Snjl
158127175Snjl  Previous Release:
159127175Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
160127175Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
161127175Snjl  Current Release:
162127175Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
163127175Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
164127175Snjl
165127175Snjl2) iASL Compiler/Disassembler:
166127175Snjl
167127175SnjlFixed an array size problem for FreeBSD that would cause the
168127175Snjlcompiler to fault.
169127175Snjl
170127175Snjl----------------------------------------
171126372Snjl20 February 2004.  Summary of changes for version 20040220:
172126372Snjl
173126372Snjl1) ACPI CA Core Subsystem:
174126372Snjl
175126372SnjlImplemented execution of _SxD methods for Device objects in the
176126372SnjlGetObjectInfo interface.
177126372Snjl
178126372SnjlFixed calls to _SST method to pass the correct arguments.
179126372Snjl
180126372SnjlAdded a call to _SST on wake to restore to "working" state.
181126372Snjl
182126372SnjlCheck for End-Of-Buffer failure case in the WalkResources
183126372Snjlinterface.
184126372Snjl
185126372SnjlIntegrated fix for 64-bit alignment issue in acglobal.h by moving
186126372Snjltwo structures to the beginning of the file.
187126372Snjl
188126372SnjlAfter wake, clear GPE status register(s) before enabling GPEs.
189126372Snjl
190126372SnjlAfter wake, clear/enable power button.  (Perhaps we should
191126372Snjlclear/enable all fixed events upon wake.)
192126372Snjl
193126372SnjlFixed a couple of possible memory leaks in the Namespace manager.
194126372Snjl
195126372SnjlIntegrated latest acnetbsd.h file.
196126372Snjl
197126372Snjl----------------------------------------
198126372Snjl11 February 2004.  Summary of changes for version 20040211:
199126372Snjl
200126372Snjl1) ACPI CA Core Subsystem:
201126372Snjl
202126372SnjlCompleted investigation and implementation of the call-by-
203126372Snjlreference mechanism for control method arguments.
204126372Snjl
205126372SnjlFixed a problem where a store of an object into an indexed
206126372Snjlpackage could fail if the store occurs within a different method
207126372Snjlthan the method that created the package.
208126372Snjl
209126372SnjlFixed a problem where the ToDecimal operator could return
210126372Snjlincorrect results.
211126372Snjl
212126372SnjlFixed a problem where the CopyObject operator could fail on some
213126372Snjlof the more obscure objects (e.g., Reference objects.)
214126372Snjl
215126372SnjlImproved the output of the Debug object to display buffer,
216126372Snjlpackage, and index objects.
217126372Snjl
218126372SnjlFixed a problem where constructs of the form "RefOf (ArgX)" did
219126372Snjlnot return the expected result.
220126372Snjl
221126372SnjlAdded permanent ACPI_REPORT_ERROR macros for all instances of the
222126372SnjlACPI_AML_INTERNAL exception.
223126372Snjl
224126372SnjlIntegrated latest version of acfreebsd.h
225126372Snjl
226126372Snjl----------------------------------------
227126372Snjl16 January 2004.  Summary of changes for version 20040116:
228126372Snjl
229126372SnjlThe purpose of this release is primarily to update the copyright
230126372Snjlyears in each module, thus causing a huge number of diffs.  There
231126372Snjlare a few small functional changes, however.
232126372Snjl
233126372Snjl1) ACPI CA Core Subsystem:
234126372Snjl
235126372SnjlImproved error messages when there is a problem finding one or
236126372Snjlmore of the required base ACPI tables
237126372Snjl
238126372SnjlReintroduced the definition of APIC_HEADER in actbl.h
239126372Snjl
240126372SnjlChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
241126372Snjl
242126372SnjlRemoved extraneous reference to NewObj in dsmthdat.c
243126372Snjl
244126372Snjl2) iASL compiler
245126372Snjl
246126372SnjlFixed a problem introduced in December that disabled the correct
247126372Snjldisassembly of Resource Templates
248126372Snjl
249126372Snjl
250126372Snjl----------------------------------------
251126372Snjl03 December 2003.  Summary of changes for version 20031203:
252126372Snjl
253126372Snjl1) ACPI CA Core Subsystem:
254126372Snjl
255126372SnjlChanged the initialization of Operation Regions during subsystem
256126372Snjlinit to perform two entire walks of the ACPI namespace; The first
257126372Snjlto initialize the regions themselves, the second to execute the
258126372Snjl_REG methods.  This fixed some interdependencies across _REG
259126372Snjlmethods found on some machines.
260126372Snjl
261126372SnjlFixed a problem where a Store(Local0, Local1) could simply update
262126372Snjlthe object reference count, and not create a new copy of the
263126372Snjlobject if the Local1 is uninitialized.
264126372Snjl
265126372SnjlImplemented support for the _SST reserved method during sleep
266126372Snjltransitions.
267126372Snjl
268126372SnjlImplemented support to clear the SLP_TYP and SLP_EN bits when
269126372Snjlwaking up, this is apparently required by some machines.
270126372Snjl
271126372SnjlWhen sleeping, clear the wake status only if SleepState is not
272126372SnjlS5.
273126372Snjl
274126372SnjlFixed a problem in AcpiRsExtendedIrqResource() where an incorrect
275126372Snjlpointer arithmetic advanced a string pointer too far.
276126372Snjl
277126372SnjlFixed a problem in AcpiTbGetTablePtr() where a garbage pointer
278126372Snjlcould be returned if the requested table has not been loaded.
279126372Snjl
280126372SnjlWithin the support for IRQ resources, restructured the handling
281126372Snjlof
282126372Snjlthe active and edge/level bits.
283126372Snjl
284126372SnjlFixed a few problems in AcpiPsxExecute() where memory could be
285126372Snjlleaked under certain error conditions.
286126372Snjl
287126372SnjlImproved error messages for the cases where the ACPI mode could
288126372Snjlnot be entered.
289126372Snjl
290126372SnjlCode and Data Size: Current and previous core subsystem library
291126372Snjlsizes are shown below.  These are the code and data sizes for the
292126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
293126372Snjlthese values do not include any ACPI driver or OSPM code.  The
294126372Snjldebug version of the code includes the debug output trace
295126372Snjlmechanism and has a much larger code and data size.  Note that
296126372Snjlthese values will vary depending on the efficiency of the
297126372Snjlcompiler
298126372Snjland the compiler options used during generation.
299126372Snjl
300126372Snjl  Previous Release (20031029):
301126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
302126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
303126372Snjl  Current Release:
304126372Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
305126372Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
306126372Snjl
307126372Snjl2) iASL Compiler/Disassembler:
308126372Snjl
309126372SnjlImplemented a fix for the iASL disassembler where a bad index was
310126372Snjlgenerated.  This was most noticeable on 64-bit platforms
311126372Snjl
312126372Snjl
313126372Snjl----------------------------------------
314126372Snjl29 October 2003.  Summary of changes for version 20031029:
315126372Snjl
316126372Snjl1) ACPI CA Core Subsystem:
317126372Snjl
318126372SnjlFixed a problem where a level-triggered GPE with an associated
319126372Snjl_Lxx control method was incorrectly cleared twice.
320126372Snjl
321126372SnjlFixed a problem with the Field support code where an access can
322126372Snjloccur beyond the end-of-region if the field is non-aligned but
323126372Snjlextends to the very end of the parent region (resulted in an
324126372SnjlAE_AML_REGION_LIMIT exception.)
325126372Snjl
326126372SnjlFixed a problem with ACPI Fixed Events where an RT Clock handler
327126372Snjlwould not get invoked on an RTC event.  The RTC event bitmasks
328126372Snjlfor
329126372Snjlthe PM1 registers were not being initialized properly.
330126372Snjl
331126372SnjlImplemented support for executing _STA and _INI methods for
332126372SnjlProcessor objects.  Although this is currently not part of the
333126372SnjlACPI specification, there is existing ASL code that depends on
334126372Snjlthe
335126372Snjlinit-time execution of these methods.
336126372Snjl
337126372SnjlImplemented and deployed a GetDescriptorName function to decode
338126372Snjlthe various types of internal descriptors.  Guards against null
339126372Snjldescriptors during debug output also.
340126372Snjl
341126372SnjlImplemented and deployed a GetNodeName function to extract the 4-
342126372Snjlcharacter namespace node name.  This function simplifies the
343126372Snjldebug
344126372Snjland error output, as well as guarding against null pointers
345126372Snjlduring
346126372Snjloutput.
347126372Snjl
348126372SnjlImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to
349126372Snjlsimplify the debug and error output of 64-bit integers.  This
350126372Snjlmacro replaces the HIDWORD and LODWORD macros for dumping these
351126372Snjlintegers.
352126372Snjl
353126372SnjlUpdated the implementation of the Stall() operator to only call
354126372SnjlAcpiOsStall(), and also return an error if the operand is larger
355126372Snjlthan 255.  This preserves the required behavior of not
356126372Snjlrelinquishing the processor, as would happen if AcpiOsSleep() was
357126372Snjlcalled for "long stalls".
358126372Snjl
359126372SnjlConstructs of the form "Store(LocalX,LocalX)" where LocalX is not
360126372Snjlinitialized are now treated as NOOPs.
361126372Snjl
362126372SnjlCleaned up a handful of warnings during 64-bit generation.
363126372Snjl
364126372SnjlFixed a reported error where and incorrect GPE number was passed
365126372Snjlto the GPE dispatch handler.  This value is only used for error
366126372Snjloutput, however.  Used this opportunity to clean up and
367126372Snjlstreamline
368126372Snjlthe GPE dispatch code.
369126372Snjl
370126372SnjlCode and Data Size: Current and previous core subsystem library
371126372Snjlsizes are shown below.  These are the code and data sizes for the
372126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
373126372Snjlthese values do not include any ACPI driver or OSPM code.  The
374126372Snjldebug version of the code includes the debug output trace
375126372Snjlmechanism and has a much larger code and data size.  Note that
376126372Snjlthese values will vary depending on the efficiency of the
377126372Snjlcompiler
378126372Snjland the compiler options used during generation.
379126372Snjl
380126372Snjl  Previous Release (20031002):
381126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
382126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
383126372Snjl  Current Release:
384126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
385126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
386126372Snjl
387126372Snjl
388126372Snjl2) iASL Compiler/Disassembler:
389126372Snjl
390126372SnjlUpdated the iASL compiler to return an error if the operand to
391126372Snjlthe
392126372SnjlStall() operator is larger than 255.
393126372Snjl
394126372Snjl
395126372Snjl----------------------------------------
396126372Snjl02 October 2003.  Summary of changes for version 20031002:
397126372Snjl
398126372Snjl
399126372Snjl1) ACPI CA Core Subsystem:
400126372Snjl
401126372SnjlFixed a problem with Index Fields where the index was not
402126372Snjlincremented for fields that require multiple writes to the
403126372Snjlindex/data registers (Fields that are wider than the data
404126372Snjlregister.)
405126372Snjl
406126372SnjlFixed a problem with all Field objects where a write could go
407126372Snjlbeyond the end-of-field if the field was larger than the access
408126372Snjlgranularity and therefore required multiple writes to complete
409126372Snjlthe
410126372Snjlrequest.  An extra write beyond the end of the field could happen
411126372Snjlinadvertently.
412126372Snjl
413126372SnjlFixed a problem with Index Fields where a BUFFER_OVERFLOW error
414126372Snjlwould incorrectly be returned if the width of the Data Register
415126372Snjlwas larger than the specified field access width.
416126372Snjl
417126372SnjlCompleted fixes for LoadTable() and Unload() and verified their
418126372Snjloperation.  Implemented full support for the "DdbHandle" object
419126372Snjlthroughout the ACPI CA subsystem.
420126372Snjl
421126372SnjlImplemented full support for the MADT and ECDT tables in the ACPI
422126372SnjlCA header files.  Even though these tables are not directly
423126372Snjlconsumed by ACPI CA, the header definitions are useful for ACPI
424126372Snjldevice drivers.
425126372Snjl
426126372SnjlIntegrated resource descriptor fixes posted to the Linux ACPI
427126372Snjllist.  This included checks for minimum descriptor length, and
428126372Snjlsupport for trailing NULL strings within descriptors that have
429126372Snjloptional string elements.
430126372Snjl
431126372SnjlCode and Data Size: Current and previous core subsystem library
432126372Snjlsizes are shown below.  These are the code and data sizes for the
433126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
434126372Snjlthese values do not include any ACPI driver or OSPM code.  The
435126372Snjldebug version of the code includes the debug output trace
436126372Snjlmechanism and has a much larger code and data size.  Note that
437126372Snjlthese values will vary depending on the efficiency of the
438126372Snjlcompiler
439126372Snjland the compiler options used during generation.
440126372Snjl
441126372Snjl  Previous Release (20030918):
442126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
443126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
444126372Snjl  Current Release:
445126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
446126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
447126372Snjl
448126372Snjl
449126372Snjl2) iASL Compiler:
450126372Snjl
451126372SnjlImplemented detection of non-ASCII characters within the input
452126372Snjlsource ASL file.  This catches attempts to compile binary (AML)
453126372Snjlfiles early in the compile, with an informative error message.
454126372Snjl
455126372SnjlFixed a problem where the disassembler would fault if the output
456126372Snjlfilename could not be generated or if the output file could not
457126372Snjlbe
458126372Snjlopened.
459126372Snjl
460126372Snjl----------------------------------------
461126372Snjl18 September 2003.  Summary of changes for version 20030918:
462126372Snjl
463126372Snjl
464126372Snjl1) ACPI CA Core Subsystem:
465126372Snjl
466126372SnjlFound and fixed a longstanding problem with the late execution of
467126372Snjlthe various deferred AML opcodes (such as Operation Regions,
468126372SnjlBuffer Fields, Buffers, and Packages).  If the name string
469126372Snjlspecified for the name of the new object placed the object in a
470126372Snjlscope other than the current scope, the initialization/execution
471126372Snjlof the opcode failed.  The solution to this problem was to
472126372Snjlimplement a mechanism where the late execution of such opcodes
473126372Snjldoes not attempt to lookup/create the name a second time in an
474126372Snjlincorrect scope.  This fixes the "region size computed
475126372Snjlincorrectly" problem.
476126372Snjl
477126372SnjlFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
478126372Snjla
479126372SnjlGlobal Lock AE_BAD_PARAMETER error.
480126372Snjl
481126372SnjlFixed several 64-bit issues with prototypes, casting and data
482126372Snjltypes.
483126372Snjl
484126372SnjlRemoved duplicate prototype from acdisasm.h
485126372Snjl
486126372SnjlFixed an issue involving EC Operation Region Detach (Shaohua Li)
487126372Snjl
488126372SnjlCode and Data Size: Current and previous core subsystem library
489126372Snjlsizes are shown below.  These are the code and data sizes for the
490126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
491126372Snjlthese values do not include any ACPI driver or OSPM code.  The
492126372Snjldebug version of the code includes the debug output trace
493126372Snjlmechanism and has a much larger code and data size.  Note that
494126372Snjlthese values will vary depending on the efficiency of the
495126372Snjlcompiler
496126372Snjland the compiler options used during generation.
497126372Snjl
498126372Snjl  Previous Release:
499126372Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
500126372Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
501126372Snjl  Current Release:
502126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
503126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
504126372Snjl
505126372Snjl
506126372Snjl2) Linux:
507126372Snjl
508126372SnjlFixed the AcpiOsSleep implementation in osunixxf.c to pass the
509126372Snjlcorrect sleep time in seconds.
510126372Snjl
511126372Snjl----------------------------------------
512126372Snjl14 July 2003.  Summary of changes for version 20030619:
513126372Snjl
514126372Snjl1) ACPI CA Core Subsystem:
515126372Snjl
516126372SnjlParse SSDTs in order discovered, as opposed to reverse order
517126372Snjl(Hrvoje Habjanic)
518126372Snjl
519126372SnjlFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
520126372SnjlKlausner,
521126372Snjl   Nate Lawson)
522126372Snjl
523126372Snjl
524126372Snjl2) Linux:
525126372Snjl
526126372SnjlDynamically allocate SDT list (suggested by Andi Kleen)
527126372Snjl
528126372Snjlproc function return value cleanups (Andi Kleen)
529126372Snjl
530126372SnjlCorrectly handle NMI watchdog during long stalls (Andrew Morton)
531126372Snjl
532126372SnjlMake it so acpismp=force works (reported by Andrew Morton)
533126372Snjl
534126372Snjl
535126372Snjl----------------------------------------
536117521Snjl19 June 2003.  Summary of changes for version 20030619:
537117521Snjl
538117521Snjl1) ACPI CA Core Subsystem:
539117521Snjl
540117521SnjlFix To/FromBCD, eliminating the need for an arch-specific
541117521Snjl#define.
542117521Snjl
543117521SnjlDo not acquire a semaphore in the S5 shutdown path.
544117521Snjl
545117521SnjlFix ex_digits_needed for 0. (Takayoshi Kochi)
546117521Snjl
547117521SnjlFix sleep/stall code reversal. (Andi Kleen)
548117521Snjl
549117521SnjlRevert a change having to do with control method calling
550117521Snjlsemantics.
551117521Snjl
552117521Snjl2) Linux:
553117521Snjl
554117521Snjlacpiphp update (Takayoshi Kochi)
555117521Snjl
556117521SnjlExport acpi_disabled for sonypi (Stelian Pop)
557117521Snjl
558117521SnjlMention acpismp=force in config help
559117521Snjl
560117521SnjlRe-add acpitable.c and acpismp=force. This improves backwards
561117521Snjlcompatibility and also cleans up the code to a significant
562117521Snjldegree.
563117521Snjl
564117521SnjlAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
565117521Snjl
566117521Snjl----------------------------------------
567117521Snjl22 May 2003.  Summary of changes for version 20030522:
568117521Snjl
569117521Snjl1) ACPI CA Core Subsystem:
570117521Snjl
571117521SnjlFound and fixed a reported problem where an AE_NOT_FOUND error
572117521Snjloccurred occasionally during _BST evaluation.  This turned out to
573117521Snjlbe an Owner ID allocation issue where a called method did not get
574117521Snjla new ID assigned to it.  Eventually, (after 64k calls), the
575126372SnjlOwner
576126372SnjlID UINT16 would wraparound so that the ID would be the same as
577126372Snjlthe
578126372Snjlcaller's and the called method would delete the caller's
579117521Snjlnamespace.
580117521Snjl
581117521SnjlImplemented extended error reporting for control methods that are
582117521Snjlaborted due to a run-time exception.  Output includes the exact
583117521SnjlAML instruction that caused the method abort, a dump of the
584126372Snjlmethod
585126372Snjllocals and arguments at the time of the abort, and a trace of all
586126372Snjlnested control method calls.
587117521Snjl
588117521SnjlModified the interpreter to allow the creation of buffers of zero
589117521Snjllength from the AML code. Implemented new code to ensure that no
590117521Snjlattempt is made to actually allocate a memory buffer (of length
591117521Snjlzero) - instead, a simple buffer object with a NULL buffer
592126372Snjlpointer
593126372Snjland length zero is created.  A warning is no longer issued when
594126372Snjlthe AML attempts to create a zero-length buffer.
595117521Snjl
596117521SnjlImplemented a workaround for the "leading asterisk issue" in
597117521Snjl_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
598117521Snjlasterisk is automatically removed if present in any HID, UID, or
599117521SnjlCID strings.  The iASL compiler will still flag this asterisk as
600117521Snjlan error, however.
601117521Snjl
602117521SnjlImplemented full support for _CID methods that return a package
603126372Snjlof
604126372Snjlmultiple CIDs (Compatible IDs).  The AcpiGetObjectInfo()
605126372Snjlinterface
606126372Snjlnow additionally returns a device _CID list if present.  This
607126372Snjlrequired a change to the external interface in order to pass an
608126372SnjlACPI_BUFFER object as a parameter since the _CID list is of
609117521Snjlvariable length.
610117521Snjl
611117521SnjlFixed a problem with the new AE_SAME_HANDLER exception where
612117521Snjlhandler initialization code did not know about this exception.
613117521Snjl
614117521SnjlCode and Data Size: Current and previous core subsystem library
615117521Snjlsizes are shown below.  These are the code and data sizes for the
616117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
617117521Snjlthese values do not include any ACPI driver or OSPM code.  The
618117521Snjldebug version of the code includes the debug output trace
619117521Snjlmechanism and has a much larger code and data size.  Note that
620117521Snjlthese values will vary depending on the efficiency of the
621126372Snjlcompiler
622126372Snjland the compiler options used during generation.
623117521Snjl
624117521Snjl  Previous Release (20030509):
625117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
626117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
627117521Snjl  Current Release:
628117521Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
629117521Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
630117521Snjl
631117521Snjl
632117521Snjl2) Linux:
633117521Snjl
634117521SnjlFixed a bug in which we would reinitialize the ACPI interrupt
635117521Snjlafter it was already working, thus disabling all ACPI and the
636126372SnjlIRQs
637126372Snjlfor any other device sharing the interrupt. (Thanks to Stian
638117521SnjlJordet)
639117521Snjl
640117521SnjlToshiba driver update (John Belmonte)
641117521Snjl
642117521SnjlReturn only 0 or 1 for our interrupt handler status (Andrew
643117521SnjlMorton)
644117521Snjl
645117521Snjl
646117521Snjl3) iASL Compiler:
647117521Snjl
648117521SnjlFixed a reported problem where multiple (nested) ElseIf()
649117521Snjlstatements were not handled correctly by the compiler, resulting
650117521Snjlin incorrect warnings and incorrect AML code.  This was a problem
651117521Snjlin both the ASL parser and the code generator.
652117521Snjl
653117521Snjl
654117521Snjl4) Documentation:
655117521Snjl
656117521SnjlAdded changes to existing interfaces, new exception codes, and
657126372Snjlnew
658126372Snjltext concerning reference count object management versus garbage
659126372Snjlcollection.
660117521Snjl
661117521Snjl----------------------------------------
662117521Snjl09 May 2003.  Summary of changes for version 20030509.
663117521Snjl
664117521Snjl
665117521Snjl1) ACPI CA Core Subsystem:
666117521Snjl
667117521SnjlChanged the subsystem initialization sequence to hold off
668117521Snjlinstallation of address space handlers until the hardware has
669126372Snjlbeen
670126372Snjlinitialized and the system has entered ACPI mode.  This is
671126372Snjlbecause
672126372Snjlthe installation of space handlers can cause _REG methods to be
673126372Snjlrun.  Previously, the _REG methods could potentially be run
674126372Snjlbefore
675126372SnjlACPI mode was enabled.
676117521Snjl
677117521SnjlFixed some memory leak issues related to address space handler
678126372Snjland
679126372Snjlnotify handler installation.  There were some problems with the
680126372Snjlreference count mechanism caused by the fact that the handler
681117521Snjlobjects are shared across several namespace objects.
682117521Snjl
683117521SnjlFixed a reported problem where reference counts within the
684117521Snjlnamespace were not properly updated when named objects created by
685117521Snjlmethod execution were deleted.
686117521Snjl
687117521SnjlFixed a reported problem where multiple SSDTs caused a deletion
688117521Snjlissue during subsystem termination.  Restructured the table data
689117521Snjlstructures to simplify the linked lists and the related code.
690117521Snjl
691117521SnjlFixed a problem where the table ID associated with secondary
692117521Snjltables (SSDTs) was not being propagated into the namespace
693126372Snjlobjects
694126372Snjlcreated by those tables.  This would only present a problem for
695126372Snjltables that are unloaded at run-time, however.
696117521Snjl
697117521SnjlUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
698117521Snjltype as the length parameter (instead of UINT32).
699117521Snjl
700117521SnjlSolved a long-standing problem where an ALREADY_EXISTS error
701117521Snjlappears on various systems.  This problem could happen when there
702117521Snjlare multiple PCI_Config operation regions under a single PCI root
703117521Snjlbus.  This doesn't happen very frequently, but there are some
704117521Snjlsystems that do this in the ASL.
705117521Snjl
706117521SnjlFixed a reported problem where the internal DeleteNode function
707117521Snjlwas incorrectly handling the case where a namespace node was the
708117521Snjlfirst in the parent's child list, and had additional peers (not
709117521Snjlthe only child, but first in the list of children.)
710117521Snjl
711117521SnjlCode and Data Size: Current core subsystem library sizes are
712126372Snjlshown
713126372Snjlbelow.  These are the code and data sizes for the acpica.lib
714126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
715126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
716126372Snjlversion of the code includes the debug output trace mechanism and
717126372Snjlhas a much larger code and data size.  Note that these values
718126372Snjlwill
719126372Snjlvary depending on the efficiency of the compiler and the compiler
720126372Snjloptions used during generation.
721117521Snjl
722117521Snjl  Previous Release
723117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
724117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
725117521Snjl  Current Release:
726117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
727117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
728117521Snjl
729117521Snjl
730117521Snjl2) Linux:
731117521Snjl
732117521SnjlAllow ":" in OS override string (Ducrot Bruno)
733117521Snjl
734117521SnjlKobject fix (Greg KH)
735117521Snjl
736117521Snjl
737117521Snjl3 iASL Compiler/Disassembler:
738117521Snjl
739117521SnjlFixed a problem in the generation of the C source code files (AML
740117521Snjlis emitted in C source statements for BIOS inclusion) where the
741117521SnjlAscii dump that appears within a C comment at the end of each
742126372Snjlline
743126372Snjlcould cause a compile time error if the AML sequence happens to
744126372Snjlhave an open comment or close comment sequence embedded.
745117521Snjl
746117521Snjl
747117521Snjl----------------------------------------
748117521Snjl24 April 2003.  Summary of changes for version 20030424.
749117521Snjl
750117521Snjl
751117521Snjl1) ACPI CA Core Subsystem:
752117521Snjl
753117521SnjlSupport for big-endian systems has been implemented.  Most of the
754117521Snjlsupport has been invisibly added behind big-endian versions of
755126372Snjlthe
756126372SnjlACPI_MOVE_* macros.
757117521Snjl
758117521SnjlFixed a problem in AcpiHwDisableGpeBlock() and
759117521SnjlAcpiHwClearGpeBlock() where an incorrect offset was passed to the
760117521Snjllow level hardware write routine.  The offset parameter was
761117521Snjlactually eliminated from the low level read/write routines
762126372Snjlbecause
763126372Snjlthey had become obsolete.
764117521Snjl
765117521SnjlFixed a problem where a handler object was deleted twice during
766117521Snjlthe removal of a fixed event handler.
767117521Snjl
768117521Snjl
769117521Snjl2) Linux:
770117521Snjl
771117521SnjlA fix for SMP systems with link devices was contributed by
772117521SnjlCompaq's Dan Zink.
773117521Snjl
774117521Snjl(2.5) Return whether we handled the interrupt in our IRQ handler.
775117521Snjl(Linux ISRs no longer return void, so we can propagate the
776126372Snjlhandler
777126372Snjlreturn value from the ACPI CA core back to the OS.)
778117521Snjl
779117521Snjl
780117521Snjl3) Documentation:
781117521Snjl
782117521SnjlThe ACPI CA Programmer Reference has been updated to reflect new
783117521Snjlinterfaces and changes to existing interfaces.
784117521Snjl
785117521Snjl----------------------------------------
786117521Snjl28 March 2003.  Summary of changes for version 20030328.
787117521Snjl
788117521Snjl1) ACPI CA Core Subsystem:
789117521Snjl
790117521SnjlThe GPE Block Device support has been completed.  New interfaces
791117521Snjlare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
792117521Snjlinterfaces (enable, disable, clear, getstatus) have been split
793117521Snjlinto separate interfaces for Fixed Events and General Purpose
794117521SnjlEvents (GPEs) in order to support GPE Block Devices properly.
795117521Snjl
796117521SnjlFixed a problem where the error message "Failed to acquire
797117521Snjlsemaphore" would appear during operations on the embedded
798117521Snjlcontroller (EC).
799117521Snjl
800117521SnjlCode and Data Size: Current core subsystem library sizes are
801126372Snjlshown
802126372Snjlbelow.  These are the code and data sizes for the acpica.lib
803126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
804126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
805126372Snjlversion of the code includes the debug output trace mechanism and
806126372Snjlhas a much larger code and data size.  Note that these values
807126372Snjlwill
808126372Snjlvary depending on the efficiency of the compiler and the compiler
809126372Snjloptions used during generation.
810117521Snjl
811117521Snjl  Previous Release
812117521Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
813117521Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
814117521Snjl  Current Release:
815117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
816117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
817117521Snjl
818117521Snjl
819117521Snjl----------------------------------------
820114237Snjl28 February 2003.  Summary of changes for version 20030228.
821114237Snjl
822114237Snjl
823114237Snjl1) ACPI CA Core Subsystem:
824114237Snjl
825114237SnjlThe GPE handling and dispatch code has been completely overhauled
826114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
827114237SnjlThis affects internal data structures and code only; there should
828114237Snjlbe no differences visible externally.  One new file has been
829114237Snjladded, evgpeblk.c
830114237Snjl
831114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
832114237Snjlfields that are used to determine the GPE block lengths.  The
833114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
834114237Snjlstructures are ignored.  This is per the ACPI specification but
835126372Snjlit
836126372Snjlisn't very clear.  The full 256 Block 0/1 GPEs are now supported
837126372Snjl(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
838126372Snjl128).
839114237Snjl
840114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
841114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
842114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
843114237Snjlin fact be the cause of slow battery status response on some
844114237Snjlsystems.)
845114237Snjl
846114237SnjlFixed a problem where a store of a NULL string to a package
847126372Snjlobject
848126372Snjlcould cause the premature deletion of the object.  This was seen
849126372Snjlduring execution of the battery _BIF method on some systems,
850126372Snjlresulting in no battery data being returned.
851114237Snjl
852114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
853114237Snjllists.
854114237Snjl
855114237SnjlCode and Data Size: Current core subsystem library sizes are
856126372Snjlshown
857126372Snjlbelow.  These are the code and data sizes for the acpica.lib
858126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
859126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
860126372Snjlversion of the code includes the debug output trace mechanism and
861126372Snjlhas a much larger code and data size.  Note that these values
862126372Snjlwill
863126372Snjlvary depending on the efficiency of the compiler and the compiler
864126372Snjloptions used during generation.
865114237Snjl
866114237Snjl  Previous Release
867114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
868114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
869114237Snjl  Current Release:
870114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
871114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
872114237Snjl
873114237Snjl
874114237Snjl2) Linux
875114237Snjl
876114237SnjlS3 fixes (Ole Rohne)
877114237Snjl
878114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
879114237Snjl(Bjorn Helgaas)
880114237Snjl
881114237SnjlAdd S4BIOS support (Pavel Machek)
882114237Snjl
883114237SnjlMap in entire table before performing checksum (John Stultz)
884114237Snjl
885114237SnjlExpand the mem= cmdline to allow the specification of reserved
886126372Snjland
887126372SnjlACPI DATA blocks (Pavel Machek)
888114237Snjl
889114237SnjlNever use ACPI on VISWS
890114237Snjl
891114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
892114237Snjl
893114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
894114237Snjlcausing us to think that some systems support C2 when they really
895114237Snjldon't.
896114237Snjl
897114237SnjlDo not count processor objects for non-present CPUs (Thanks to
898114237SnjlDominik Brodowski)
899114237Snjl
900114237Snjl
901114237Snjl3) iASL Compiler:
902114237Snjl
903114237SnjlFixed a problem where ASL include files could not be found and
904114237Snjlopened.
905114237Snjl
906114237SnjlAdded support for the _PDC reserved name.
907114237Snjl
908114237Snjl
909117521Snjl----------------------------------------
910114237Snjl22 January 2003.  Summary of changes for version 20030122.
911114237Snjl
912114237Snjl
913114237Snjl1) ACPI CA Core Subsystem:
914114237Snjl
915114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
916114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
917114237Snjlprogrammers believe that this is a NOOP.  Since this store
918126372Snjldoesn't
919126372Snjldo anything anyway, the new prototype behavior will ignore this
920126372Snjlerror.  This is a case where we can relax the strict checking in
921126372Snjlthe interpreter in the name of compatibility.
922114237Snjl
923114237Snjl
924114237Snjl2) Linux
925114237Snjl
926114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
927114237SnjlLinux package for the first time.  This is the utility that is
928114237Snjlused to convert the ACPI CA base source code to the Linux
929114237Snjlversion.
930114237Snjl
931114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
932114237Snjl
933114237Snjl(Both) Move more headers to include/acpi, and delete an unused
934114237Snjlheader.
935114237Snjl
936114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
937114237Snjl
938114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
939114237Snjl
940114237Snjl(Both) Remove include of unused header (Adrian Bunk)
941114237Snjl
942114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
943114237Snjlthe
944114237Snjlformer now also includes the latter, acpiphp.h only needs the
945126372Snjlone,
946126372Snjlnow.
947114237Snjl
948114237Snjl(2.5) Make it possible to select method of bios restoring after
949114237SnjlS3
950114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
951114237Snjl
952114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
953114237Snjl
954114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
955114237Snjl
956114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
957114237Snjl(Dominik Brodowski)
958114237Snjl
959114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
960114237Snjl
961114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
962114237SnjlVisinoni)
963114237Snjl
964114237Snjl
965114237Snjl3) iASL Compiler:
966114237Snjl
967114237SnjlAdded support to disassemble SSDT and PSDTs.
968114237Snjl
969114237SnjlImplemented support to obtain SSDTs from the Windows registry if
970114237Snjlavailable.
971114237Snjl
972114237Snjl
973102550Siwasaki----------------------------------------
974114237Snjl09 January 2003.  Summary of changes for version 20030109.
975114237Snjl
976114237Snjl1) ACPI CA Core Subsystem:
977114237Snjl
978114237SnjlChanged the behavior of the internal Buffer-to-String conversion
979114237Snjlfunction.  The current ACPI specification states that the
980126372Snjlcontents
981126372Snjlof the buffer are "converted to a string of two-character
982126372Snjlhexadecimal numbers, each separated by a space".  Unfortunately,
983126372Snjlthis definition is not backwards compatible with existing ACPI
984126372Snjl1.0
985126372Snjlimplementations (although the behavior was not defined in the
986126372SnjlACPI
987126372Snjl1.0 specification).  The new behavior simply copies data from the
988126372Snjlbuffer to the string until a null character is found or the end
989126372Snjlof
990126372Snjlthe buffer is reached.  The new String object is always null
991126372Snjlterminated.  This problem was seen during the generation of _BIF
992126372Snjlbattery data where incorrect strings were returned for battery
993126372Snjltype, etc.  This will also require an errata to the ACPI
994126372Snjlspecification.
995114237Snjl
996114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
997114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
998114237Snjl
999114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
1000114237Snjlupdated to 2003.
1001114237Snjl
1002114237SnjlCode and Data Size: Current core subsystem library sizes are
1003126372Snjlshown
1004126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1005126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1006126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1007126372Snjlversion of the code includes the debug output trace mechanism and
1008126372Snjlhas a much larger code and data size.  Note that these values
1009126372Snjlwill
1010126372Snjlvary depending on the efficiency of the compiler and the compiler
1011126372Snjloptions used during generation.
1012114237Snjl
1013114237Snjl  Previous Release
1014114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1015114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1016114237Snjl  Current Release:
1017114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1018114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1019114237Snjl
1020114237Snjl
1021114237Snjl2) Linux
1022114237Snjl
1023114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
1024114237Snjl
1025114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
1026114237Snjl
1027114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
1028114237Snjl
1029114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
1030114237Snjl
1031114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
1032114237Snjlof schedule_work()
1033114237Snjl
1034114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
1035114237Snjl
1036114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
1037114237Snjl
1038114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
1039114237Snjl
1040114237SnjlSeveral changes have been made to the source code translation
1041114237Snjlutility that generates the Linux Code in order to make the code
1042114237Snjlmore "Linux-like":
1043114237Snjl
1044114237SnjlAll typedefs on structs and unions have been removed in keeping
1045114237Snjlwith the Linux coding style.
1046114237Snjl
1047114237SnjlRemoved the non-Linux SourceSafe module revision number from each
1048114237Snjlmodule header.
1049114237Snjl
1050114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
1051114237SnjlDoubled the number of symbols that are lowercased.
1052114237Snjl
1053114237SnjlFixed a problem where identifiers within procedure headers and
1054114237Snjlwithin quotes were not fully lower cased (they were left with a
1055114237Snjlstarting capital.)
1056114237Snjl
1057114237SnjlSome C macros whose only purpose is to allow the generation of 16-
1058114237Snjlbit code are now completely removed in the Linux code, increasing
1059114237Snjlreadability and maintainability.
1060114237Snjl
1061114237Snjl----------------------------------------
1062114237Snjl
1063114237Snjl12 December 2002.  Summary of changes for version 20021212.
1064114237Snjl
1065114237Snjl
1066114237Snjl1) ACPI CA Core Subsystem:
1067114237Snjl
1068114237SnjlFixed a problem where the creation of a zero-length AML Buffer
1069114237Snjlwould cause a fault.
1070114237Snjl
1071114237SnjlFixed a problem where a Buffer object that pointed to a static
1072126372SnjlAML
1073126372Snjlbuffer (in an ACPI table) could inadvertently be deleted, causing
1074126372Snjlmemory corruption.
1075114237Snjl
1076114237SnjlFixed a problem where a user buffer (passed in to the external
1077114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
1078114237Snjlsmall to complete the operation, causing memory corruption.
1079114237Snjl
1080114237SnjlFixed a problem in the Buffer-to-String conversion code where a
1081114237Snjlstring of length one was always returned, regardless of the size
1082114237Snjlof the input Buffer object.
1083114237Snjl
1084114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
1085114237Snjllack of need and lack of consistent use.
1086114237Snjl
1087114237SnjlCode and Data Size: Current core subsystem library sizes are
1088126372Snjlshown
1089126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1090126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1091126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1092126372Snjlversion of the code includes the debug output trace mechanism and
1093126372Snjlhas a much larger code and data size.  Note that these values
1094126372Snjlwill
1095126372Snjlvary depending on the efficiency of the compiler and the compiler
1096126372Snjloptions used during generation.
1097114237Snjl
1098114237Snjl  Previous Release
1099114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1100114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1101114237Snjl  Current Release:
1102114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1103114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1104114237Snjl
1105114237Snjl
1106114237Snjl----------------------------------------
1107114237Snjl05 December 2002.  Summary of changes for version 20021205.
1108114237Snjl
1109114237Snjl1) ACPI CA Core Subsystem:
1110114237Snjl
1111114237SnjlFixed a problem where a store to a String or Buffer object could
1112114237Snjlcause corruption of the DSDT if the object type being stored was
1113114237Snjlthe same as the target object type and the length of the object
1114114237Snjlbeing stored was equal to or smaller than the original (existing)
1115114237Snjltarget object.  This was seen to cause corruption of battery _BIF
1116114237Snjlbuffers if the _BIF method modified the buffer on the fly.
1117114237Snjl
1118114237SnjlFixed a problem where an internal error was generated if a
1119126372Snjlcontrol
1120126372Snjlmethod invocation was used in an OperationRegion, Buffer, or
1121126372SnjlPackage declaration.  This was caused by the deferred parsing of
1122126372Snjlthe control method and thus the deferred creation of the internal
1123126372Snjlmethod object.  The solution to this problem was to create the
1124126372Snjlinternal method object at the moment the method is encountered in
1125126372Snjlthe first pass - so that subsequent references to the method will
1126126372Snjlable to obtain the required parameter count and thus properly
1127126372Snjlparse the method invocation.  This problem presented itself as an
1128126372SnjlAE_AML_INTERNAL during the pass 1 parse phase during table load.
1129114237Snjl
1130114237SnjlFixed a problem where the internal String object copy routine did
1131114237Snjlnot always allocate sufficient memory for the target String
1132126372Snjlobject
1133126372Snjland caused memory corruption.  This problem was seen to cause
1134126372Snjl"Allocation already present in list!" errors as memory allocation
1135126372Snjlbecame corrupted.
1136114237Snjl
1137114237SnjlImplemented a new function for the evaluation of namespace
1138126372Snjlobjects
1139126372Snjlthat allows the specification of the allowable return object
1140126372Snjltypes.  This simplifies a lot of code that checks for a return
1141126372Snjlobject of one or more specific objects returned from the
1142114237Snjlevaluation (such as _STA, etc.)  This may become and external
1143114237Snjlfunction if it would be useful to ACPI-related drivers.
1144114237Snjl
1145114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
1146114237Snjlclarity.
1147114237Snjl
1148114237SnjlCompleted additional code restructuring to allow more modular
1149114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
1150114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
1151114237Snjl
1152114237SnjlImplemented an abort mechanism to terminate an executing control
1153114237Snjlmethod via the AML debugger.  This feature is useful for
1154126372Snjldebugging
1155126372Snjlcontrol methods that depend (wait) for specific hardware
1156126372Snjlresponses.
1157114237Snjl
1158114237SnjlCode and Data Size: Current core subsystem library sizes are
1159126372Snjlshown
1160126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1161126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1162126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1163126372Snjlversion of the code includes the debug output trace mechanism and
1164126372Snjlhas a much larger code and data size.  Note that these values
1165126372Snjlwill
1166126372Snjlvary depending on the efficiency of the compiler and the compiler
1167126372Snjloptions used during generation.
1168114237Snjl
1169114237Snjl  Previous Release
1170114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1171114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1172114237Snjl  Current Release:
1173114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1174114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1175114237Snjl
1176114237Snjl
1177114237Snjl2) iASL Compiler/Disassembler
1178114237Snjl
1179114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
1180114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
1181114237SnjlSource Index" and "Resource Source" fields were not inserted into
1182114237Snjlthe correct location within the AML resource descriptor, creating
1183114237Snjlan invalid descriptor.
1184114237Snjl
1185114237SnjlFixed a disassembler problem for "Interrupt" resource
1186126372Snjldescriptors.
1187126372SnjlThe optional "Resource Source Index" and "Resource Source" fields
1188126372Snjlwere ignored.
1189114237Snjl
1190114237Snjl
1191114237Snjl----------------------------------------
1192114237Snjl22 November 2002.  Summary of changes for version 20021122.
1193114237Snjl
1194114237Snjl
1195114237Snjl1) ACPI CA Core Subsystem:
1196114237Snjl
1197114237SnjlFixed a reported problem where an object stored to a Method Local
1198114237Snjlor Arg was not copied to a new object during the store - the
1199114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
1200114237Snjlall subsequent operations on the Local/Arg to also affect the
1201114237Snjloriginal source of the store operation.
1202114237Snjl
1203114237SnjlFixed a problem where a store operation to a Method Local or Arg
1204114237Snjlwas not completed properly if the Local/Arg contained a reference
1205114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
1206114237Snjlnamespace-node code is now used so that this case is handled
1207114237Snjlautomatically.
1208114237Snjl
1209114237SnjlFixed a problem where the internal object copy routine would
1210126372Snjlcause
1211126372Snjla protection fault if the object being copied was a Package and
1212126372Snjlcontained either 1) a NULL package element or 2) a nested sub-
1213114237Snjlpackage.
1214114237Snjl
1215114237SnjlFixed a problem with the GPE initialization that resulted from an
1216114237Snjlambiguity in the ACPI specification.  One section of the
1217114237Snjlspecification states that both the address and length of the GPE
1218114237Snjlblock must be zero if the block is not supported.  Another
1219126372Snjlsection
1220126372Snjlimplies that only the address need be zero if the block is not
1221126372Snjlsupported.  The code has been changed so that both the address
1222126372Snjland
1223126372Snjlthe length must be non-zero to indicate a valid GPE block (i.e.,
1224126372Snjlif either the address or the length is zero, the GPE block is
1225126372Snjlinvalid.)
1226114237Snjl
1227114237SnjlCode and Data Size: Current core subsystem library sizes are
1228126372Snjlshown
1229126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1230126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1231126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1232126372Snjlversion of the code includes the debug output trace mechanism and
1233126372Snjlhas a much larger code and data size.  Note that these values
1234126372Snjlwill
1235126372Snjlvary depending on the efficiency of the compiler and the compiler
1236126372Snjloptions used during generation.
1237114237Snjl
1238114237Snjl  Previous Release
1239114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1240114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1241114237Snjl  Current Release:
1242114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1243114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1244114237Snjl
1245114237Snjl
1246114237Snjl2) Linux
1247114237Snjl
1248114237SnjlCleaned up EC driver. Exported an external EC read/write
1249114237Snjlinterface. By going through this, other drivers (most notably
1250114237Snjlsonypi) will be able to serialize access to the EC.
1251114237Snjl
1252114237Snjl
1253114237Snjl3) iASL Compiler/Disassembler
1254114237Snjl
1255114237SnjlImplemented support to optionally generate include files for both
1256114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
1257114237Snjlautomatically creating include files that contain external
1258114237Snjldeclarations for the symbols that are created within the
1259114237Snjl(optionally generated) ASM and C AML source files.
1260114237Snjl
1261114237Snjl
1262114237Snjl----------------------------------------
1263107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
1264104470Siwasaki
1265107325Siwasaki1) ACPI CA Core Subsystem:
1266107325Siwasaki
1267114237SnjlFixed a memory leak problem where an error during resolution of
1268114237Snjlmethod arguments during a method invocation from another method
1269114237Snjlfailed to cleanup properly by deleting all successfully resolved
1270114237Snjlargument objects.
1271107325Siwasaki
1272114237SnjlFixed a problem where the target of the Index() operator was not
1273114237Snjlcorrectly constructed if the source object was a package.  This
1274114237Snjlproblem has not been detected because the use of a target operand
1275114237Snjlwith Index() is very rare.
1276107325Siwasaki
1277107325SiwasakiFixed a problem with the Index() operator where an attempt was
1278107325Siwasakimade to delete the operand objects twice.
1279107325Siwasaki
1280107325SiwasakiFixed a problem where an attempt was made to delete an operand
1281114237Snjltwice during execution of the CondRefOf() operator if the target
1282114237Snjldid not exist.
1283107325Siwasaki
1284114237SnjlImplemented the first of perhaps several internal create object
1285114237Snjlfunctions that create and initialize a specific object type.
1286126372SnjlThis
1287126372Snjlconsolidates duplicated code wherever the object is created, thus
1288126372Snjlshrinking the size of the subsystem.
1289107325Siwasaki
1290114237SnjlImplemented improved debug/error messages for errors that occur
1291114237Snjlduring nested method invocations.  All executing method pathnames
1292114237Snjlare displayed (with the error) as the call stack is unwound -
1293126372Snjlthus
1294126372Snjlsimplifying debug.
1295107325Siwasaki
1296107325SiwasakiFixed a problem introduced in the 10/02 release that caused
1297114237Snjlpremature deletion of a buffer object if a buffer was used as an
1298114237SnjlASL operand where an integer operand is required (Thus causing an
1299114237Snjlimplicit object conversion from Buffer to Integer.)  The change
1300126372Snjlin
1301126372Snjlthe 10/02 release was attempting to fix a memory leak (albeit
1302114237Snjlincorrectly.)
1303107325Siwasaki
1304107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1305126372Snjlshown
1306126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1307126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1308126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1309126372Snjlversion of the code includes the debug output trace mechanism and
1310126372Snjlhas a much larger code and data size.  Note that these values
1311126372Snjlwill
1312126372Snjlvary depending on the efficiency of the compiler and the compiler
1313126372Snjloptions used during generation.
1314107325Siwasaki
1315107325Siwasaki  Previous Release
1316107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1317107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1318107325Siwasaki  Current Release:
1319107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1320107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1321107325Siwasaki
1322107325Siwasaki
1323107325Siwasaki2) Linux
1324107325Siwasaki
1325114237SnjlChanged the implementation of the ACPI semaphores to use down()
1326114237Snjlinstead of down_interruptable().  It is important that the
1327114237Snjlexecution of ACPI control methods not be interrupted by signals.
1328114237SnjlMethods must run to completion, or the system may be left in an
1329114237Snjlunknown/unstable state.
1330107325Siwasaki
1331107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
1332126372Snjlset.
1333126372Snjl(Shawn Starr)
1334107325Siwasaki
1335107325Siwasaki
1336107325Siwasaki3) iASL Compiler/Disassembler
1337107325Siwasaki
1338107325Siwasaki
1339114237SnjlChanged the default location of output files.  All output files
1340114237Snjlare now placed in the current directory by default instead of in
1341114237Snjlthe directory of the source file.  This change may affect some
1342114237Snjlexisting makefiles, but it brings the behavior of the compiler in
1343114237Snjlline with other similar tools.  The location of the output files
1344114237Snjlcan be overridden with the -p command line switch.
1345107325Siwasaki
1346114237Snjl
1347107325Siwasaki----------------------------------------
1348107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
1349107325Siwasaki
1350107325Siwasaki
1351114237Snjl0) ACPI Specification 2.0B is released and is now available at:
1352114237Snjlhttp://www.acpi.info/index.html
1353107325Siwasaki
1354107325Siwasaki
1355107325Siwasaki1) ACPI CA Core Subsystem:
1356107325Siwasaki
1357107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
1358114237SnjlThis includes the early detection and handoff of the request to
1359114237Snjlthe SMBus region handler (avoiding all of the complex field
1360107325Siwasakisupport code), and support for the bidirectional return packet
1361107325Siwasakifrom an SMBus write operation.  This paves the way for the
1362107325Siwasakidevelopment of SMBus drivers in each host operating system.
1363107325Siwasaki
1364107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
1365107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
1366107325Siwasakispecification.  This had the side effect of causing ASL
1367107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
1368107325Siwasakiforever.  Changed all internal references to the ACPI timeout
1369107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
1370126372Snjlname
1371126372Snjlof WAIT_FOREVER to ACPI_WAIT_FOREVER.
1372107325Siwasaki
1373107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1374126372Snjlshown
1375126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1376126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1377126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1378126372Snjlversion of the code includes the debug output trace mechanism and
1379126372Snjlhas a much larger code and data size.  Note that these values
1380126372Snjlwill
1381126372Snjlvary depending on the efficiency of the compiler and the compiler
1382126372Snjloptions used during generation.
1383107325Siwasaki
1384107325Siwasaki  Previous Release
1385107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1386107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1387107325Siwasaki  Current Release:
1388107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1389107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1390107325Siwasaki
1391107325Siwasaki
1392107325Siwasaki2) Linux
1393107325Siwasaki
1394107325SiwasakiModule loading/unloading fixes (John Cagle)
1395107325Siwasaki
1396107325Siwasaki
1397107325Siwasaki3) iASL Compiler/Disassembler
1398107325Siwasaki
1399107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
1400107325Siwasaki
1401107325SiwasakiImplemented support for the disassembly of all SMBus protocol
1402107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
1403107325Siwasaki
1404107325Siwasaki----------------------------------------
1405107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
1406107325Siwasaki
1407107325Siwasaki
1408107325Siwasaki1) ACPI CA Core Subsystem:
1409107325Siwasaki
1410107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
1411126372SnjlGPE0
1412126372Snjlblock were not handled correctly.  This resulted in a "GPE
1413114237Snjloverlap" error message.  GPE0 is no longer required.
1414107325Siwasaki
1415107325SiwasakiRemoved code added in the previous release that inserted nodes
1416114237Snjlinto the namespace in alphabetical order.  This caused some side-
1417114237Snjleffects on various machines.  The root cause of the problem is
1418114237Snjlstill under investigation since in theory, the internal ordering
1419114237Snjlof the namespace nodes should not matter.
1420107325Siwasaki
1421107325Siwasaki
1422114237SnjlEnhanced error reporting for the case where a named object is not
1423114237Snjlfound during control method execution.  The full ACPI namepath
1424114237Snjl(name reference) of the object that was not found is displayed in
1425114237Snjlthis case.
1426107325Siwasaki
1427114237SnjlNote: as a result of the overhaul of the namespace object types
1428126372Snjlin
1429126372Snjlthe previous release, the namespace nodes for the predefined
1430114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
1431114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
1432114237Snjlmanagement code but may affect code that walks the namespace tree
1433114237Snjllooking for specific object types.
1434114237Snjl
1435107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1436126372Snjlshown
1437126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1438126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1439126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1440126372Snjlversion of the code includes the debug output trace mechanism and
1441126372Snjlhas a much larger code and data size.  Note that these values
1442126372Snjlwill
1443126372Snjlvary depending on the efficiency of the compiler and the compiler
1444126372Snjloptions used during generation.
1445107325Siwasaki
1446107325Siwasaki  Previous Release
1447107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1448107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1449107325Siwasaki  Current Release:
1450107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1451107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1452107325Siwasaki
1453107325Siwasaki
1454107325Siwasaki2) Linux
1455107325Siwasaki
1456107325SiwasakiFixed a problem introduced in the previous release where the
1457114237SnjlProcessor and Thermal objects were not recognized and installed
1458126372Snjlin
1459126372Snjl/proc.  This was related to the scope type change described
1460114237Snjlabove.
1461107325Siwasaki
1462107325Siwasaki
1463107325Siwasaki3) iASL Compiler/Disassembler
1464107325Siwasaki
1465114237SnjlImplemented the -g option to get all of the required ACPI tables
1466114237Snjlfrom the registry and save them to files (Windows version of the
1467114237Snjlcompiler only.)  The required tables are the FADT, FACS, and
1468114237SnjlDSDT.
1469107325Siwasaki
1470114237SnjlAdded ACPI table checksum validation during table disassembly in
1471114237Snjlorder to catch corrupted tables.
1472107325Siwasaki
1473107325Siwasaki
1474107325Siwasaki----------------------------------------
1475107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
1476107325Siwasaki
1477107325Siwasaki1) ACPI CA Core Subsystem:
1478107325Siwasaki
1479114237SnjlImplemented a restriction on the Scope operator that the target
1480114237Snjlmust already exist in the namespace at the time the operator is
1481114237Snjlencountered (during table load or method execution).  In other
1482114237Snjlwords, forward references are not allowed and Scope() cannot
1483114237Snjlcreate a new object. This changes the previous behavior where the
1484114237Snjlinterpreter would create the name if not found.  This new
1485126372Snjlbehavior
1486126372Snjlcorrectly enables the search-to-root algorithm during namespace
1487126372Snjllookup of the target name.  Because of this upsearch, this fixes
1488126372Snjlthe known Compaq _SB_.OKEC problem and makes both the AML
1489126372Snjlinterpreter and iASL compiler compatible with other ACPI
1490114237Snjlimplementations.
1491107325Siwasaki
1492114237SnjlCompleted a major overhaul of the internal ACPI object types for
1493114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
1494114237Snjlthese types had become obsolete with the introduction of the two-
1495114237Snjlpass namespace load.  This cleanup simplifies the code and makes
1496114237Snjlthe entire namespace load mechanism much clearer and easier to
1497114237Snjlunderstand.
1498107325Siwasaki
1499114237SnjlImproved debug output for tracking scope opening/closing to help
1500114237Snjldiagnose scoping issues.  The old scope name as well as the new
1501114237Snjlscope name are displayed.  Also improved error messages for
1502114237Snjlproblems with ASL Mutex objects and error messages for GPE
1503114237Snjlproblems.
1504107325Siwasaki
1505107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
1506107325Siwasaki
1507114237SnjlAll string output (for all namespace/object dumps) now uses the
1508114237Snjlcommon ACPI string output procedure which handles escapes
1509126372Snjlproperly
1510126372Snjland does not emit non-printable characters.
1511107325Siwasaki
1512107325SiwasakiFixed some issues with constants in the 64-bit version of the
1513107325Siwasakilocal C library (utclib.c)
1514107325Siwasaki
1515107325Siwasaki
1516107325Siwasaki2) Linux
1517107325Siwasaki
1518107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
1519107325Siwasakiinterrupt level.
1520107325Siwasaki
1521107325Siwasaki
1522107325Siwasaki3) iASL Compiler/Disassembler
1523107325Siwasaki
1524107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
1525126372Snjland
1526126372Snjl2 opcodes outside of a control method.  This means that the
1527114237Snjl"executable" operators (versus the "namespace" operators) cannot
1528114237Snjlbe used at the table level; they can only be used within a
1529126372Snjlcontrol
1530126372Snjlmethod.
1531107325Siwasaki
1532107325SiwasakiImplemented the restriction on the Scope() operator where the
1533107325Siwasakitarget must already exist in the namespace at the time the
1534114237Snjloperator is encountered (during ASL compilation). In other words,
1535114237Snjlforward references are not allowed and Scope() cannot create a
1536126372Snjlnew
1537126372Snjlobject.  This makes the iASL compiler compatible with other ACPI
1538126372Snjlimplementations and makes the Scope() implementation adhere to
1539126372Snjlthe
1540126372SnjlACPI specification.
1541107325Siwasaki
1542107325SiwasakiFixed a problem where namepath optimization for the Alias
1543126372Snjloperator
1544126372Snjlwas optimizing the wrong path (of the two namepaths.)  This
1545126372Snjlcaused
1546126372Snjla "Missing alias link" error message.
1547107325Siwasaki
1548114237SnjlFixed a problem where an "unknown reserved name" warning could be
1549114237Snjlincorrectly generated for names like "_SB" when the trailing
1550114237Snjlunderscore is not used in the original ASL.
1551107325Siwasaki
1552107325SiwasakiFixed a problem where the reserved name check did not handle
1553114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
1554114237Snjlthe NamePath was examined instead of the last NameSeg.
1555107325Siwasaki
1556107325Siwasaki
1557107325Siwasaki----------------------------------------
1558107325Siwasaki
1559104470Siwasaki02 October 2002.  Summary of changes for this release.
1560104470Siwasaki
1561104470Siwasaki
1562104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
1563104470Siwasaki
1564104470SiwasakiFixed a problem where a store/copy of a string to an existing
1565104470Siwasakistring did not always set the string length properly in the
1566126372SnjlString
1567126372Snjlobject.
1568104470Siwasaki
1569104470SiwasakiFixed a reported problem with the ToString operator where the
1570104470Siwasakibehavior was identical to the ToHexString operator instead of
1571126372Snjljust
1572126372Snjlsimply converting a raw buffer to a string data type.
1573104470Siwasaki
1574104470SiwasakiFixed a problem where CopyObject and the other "explicit"
1575104470Siwasakiconversion operators were not updating the internal namespace
1576126372Snjlnode
1577126372Snjltype as part of the store operation.
1578104470Siwasaki
1579104470SiwasakiFixed a memory leak during implicit source operand conversion
1580114237Snjlwhere the original object was not deleted if it was converted to
1581126372Snjla
1582126372Snjlnew object of a different type.
1583104470Siwasaki
1584104470SiwasakiEnhanced error messages for all problems associated with
1585126372Snjlnamespace
1586126372Snjllookups.  Common procedure generates and prints the lookup name
1587126372Snjlas
1588126372Snjlwell as the formatted status.
1589104470Siwasaki
1590104470SiwasakiCompleted implementation of a new design for the Alias support
1591104470Siwasakiwithin the namespace.  The existing design did not handle the
1592126372Snjlcase
1593126372Snjlwhere a new object was assigned to one of the two names due to
1594126372Snjlthe
1595126372Snjluse of an explicit conversion operator, resulting in the two
1596126372Snjlnames
1597126372Snjlpointing to two different objects.  The new design simply points
1598126372Snjlthe Alias name to the original name node - not to the object.
1599126372SnjlThis results in a level of indirection that must be handled in
1600126372Snjlthe
1601126372Snjlname resolution mechanism.
1602104470Siwasaki
1603104470SiwasakiCode and Data Size: Current core subsystem library sizes are
1604126372Snjlshown
1605126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1606126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1607126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1608126372Snjlversion of the code includes the debug output trace mechanism and
1609126372Snjlhas a larger code and data size.  Note that these values will
1610126372Snjlvary
1611126372Snjldepending on the efficiency of the compiler and the compiler
1612126372Snjloptions used during generation.
1613104470Siwasaki
1614104470Siwasaki  Previous Release
1615104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1616104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1617104470Siwasaki  Current Release:
1618104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1619104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1620104470Siwasaki
1621104470Siwasaki
1622104470Siwasaki2) Linux
1623104470Siwasaki
1624104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
1625104470SiwasakiNeumann)
1626104470Siwasaki
1627104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
1628104470Siwasaki
1629114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
1630104470Siwasaki
1631104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
1632104470Siwasaki
1633104470SiwasakiIA64 fixes. (David Mosberger)
1634104470Siwasaki
1635104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
1636104470Siwasaki
1637104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
1638104470SiwasakiBrodowski)
1639104470Siwasaki
1640104470Siwasaki
1641104470Siwasaki3) iASL Compiler/Disassembler
1642104470Siwasaki
1643104470SiwasakiClarified some warning/error messages.
1644104470Siwasaki
1645104470Siwasaki
1646104470Siwasaki----------------------------------------
1647104470Siwasaki18 September 2002.  Summary of changes for this release.
1648104470Siwasaki
1649104470Siwasaki
1650104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
1651104470Siwasaki
1652114237SnjlFixed a reported problem with reference chaining (via the Index()
1653114237Snjland RefOf() operators) in the ObjectType() and SizeOf()
1654126372Snjloperators.
1655126372SnjlThe definition of these operators includes the dereferencing of
1656126372Snjlall chained references to return information on the base object.
1657104470Siwasaki
1658104470SiwasakiFixed a problem with stores to indexed package elements - the
1659104470Siwasakiexisting code would not complete the store if an "implicit
1660114237Snjlconversion" was not performed.  In other words, if the existing
1661114237Snjlobject (package element) was to be replaced completely, the code
1662114237Snjldidn't handle this case.
1663104470Siwasaki
1664104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
1665104470Siwasakitarget name to refer to an object of type Integer, String, or
1666104470SiwasakiBuffer, in addition to the scoping object types (Device,
1667104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
1668114237SnjlThis allows existing AML code that has workarounds for a bug in
1669114237SnjlWindows to function properly.  A warning is issued, however.
1670126372SnjlThis
1671126372Snjlaffects both the AML interpreter and the iASL compiler. Below is
1672126372Snjlan example of this type of ASL code:
1673104470Siwasaki
1674104470Siwasaki      Name(DEB,0x00)
1675104470Siwasaki      Scope(DEB)
1676104470Siwasaki      {
1677104470Siwasaki
1678114237SnjlFixed some reported problems with 64-bit integer support in the
1679114237Snjllocal implementation of C library functions (clib.c)
1680104470Siwasaki
1681104470Siwasaki
1682104470Siwasaki2) Linux
1683104470Siwasaki
1684104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
1685104470Siwasakiundefined in non-SMP.
1686104470Siwasaki
1687114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
1688114237Snjlsystems that do not have an interrupt override entry in the MADT.
1689104470Siwasaki
1690104470Siwasaki2.5 big driver reorganization (Pat Mochel)
1691104470Siwasaki
1692104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
1693104470Siwasaki
1694104470SiwasakiNew blacklist entries (Andi Kleen)
1695104470Siwasaki
1696114237SnjlBlacklist improvements. Split blacklist code out into a separate
1697114237Snjlfile. Move checking the blacklist to very early. Previously, we
1698114237Snjlwould use ACPI tables, and then halfway through init, check the
1699114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
1700114237Snjlback to non-ACPI.
1701104470Siwasaki
1702104470Siwasaki
1703104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
1704104470Siwasaki
1705114237SnjlFixed a problem where the typechecking code didn't know that an
1706114237Snjlalias could point to a method.  In other words, aliases were not
1707114237Snjlbeing dereferenced during typechecking.
1708104470Siwasaki
1709104470Siwasaki
1710104470Siwasaki----------------------------------------
1711104470Siwasaki29 August 2002.  Summary of changes for this release.
1712104470Siwasaki
1713104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
1714104470Siwasaki
1715114237SnjlIf the target of a Scope() operator already exists, it must be an
1716114237Snjlobject type that actually opens a scope -- such as a Device,
1717114237SnjlMethod, Scope, etc.  This is a fatal runtime error.  Similar
1718126372Snjlerror
1719126372Snjlcheck has been added to the iASL compiler also.
1720104470Siwasaki
1721114237SnjlTightened up the namespace load to disallow multiple names in the
1722114237Snjlsame scope.  This previously was allowed if both objects were of
1723114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
1724114237Snjlname).
1725104470Siwasaki
1726104470Siwasaki
1727104470Siwasaki2) Linux
1728104470Siwasaki
1729104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
1730104470Siwasakipolarity.
1731104470Siwasaki
1732104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
1733104470Siwasaki
1734104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
1735104470Siwasakiinterpreter *or* the tables.
1736104470Siwasaki
1737104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
1738126372Snjl(Kochi
1739126372SnjlTakayoshi)
1740104470Siwasaki
1741104470Siwasaki
1742104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
1743104470Siwasaki
1744104470SiwasakiImplemented namepath optimization for name declarations.  For
1745104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
1746104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
1747104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
1748104470Siwasakireference path optimization first released in the previous
1749114237Snjlversion. This would seem to complete all possible optimizations
1750114237Snjlfor namepaths within the ASL/AML.
1751104470Siwasaki
1752114237SnjlIf the target of a Scope() operator already exists, it must be an
1753114237Snjlobject type that actually opens a scope -- such as a Device,
1754114237SnjlMethod, Scope, etc.
1755104470Siwasaki
1756114237SnjlImplemented a check and warning for unreachable code in the same
1757114237Snjlblock below a Return() statement.
1758104470Siwasaki
1759114237SnjlFixed a problem where the listing file was not generated if the
1760114237Snjlcompiler aborted if the maximum error count was exceeded (200).
1761104470Siwasaki
1762104470SiwasakiFixed a problem where the typechecking of method return values
1763126372Snjlwas
1764126372Snjlbroken.  This includes the check for a return value when the
1765114237Snjlmethod is invoked as a TermArg (a return value is expected.)
1766104470Siwasaki
1767104470SiwasakiFixed a reported problem where EOF conditions during a quoted
1768104470Siwasakistring or comment caused a fault.
1769104470Siwasaki
1770104470Siwasaki
1771104470Siwasaki----------------------------------------
1772102550Siwasaki15 August 2002.  Summary of changes for this release.
1773102550Siwasaki
1774102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
1775102550Siwasaki
1776114237SnjlFixed a reported problem where a Store to a method argument that
1777114237Snjlcontains a reference did not perform the indirect store
1778126372Snjlcorrectly.
1779126372SnjlThis problem was created during the conversion to the new
1780126372Snjlreference object model - the indirect store to a method argument
1781126372Snjlcode was not updated to reflect the new model.
1782102550Siwasaki
1783114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
1784114237Snjlhandle corner cases, and improve code legibility (Kochi
1785102550SiwasakiTakayoshi)
1786102550Siwasaki
1787102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
1788114237Snjlprefix.  The heavy use of the carat operator by the new namepath
1789114237Snjloptimization in the iASL compiler uncovered a problem with the
1790126372SnjlAML
1791126372Snjlinterpreter handling of this prefix.  In the case where one or
1792126372Snjlmore carats precede a single nameseg, the nameseg was treated as
1793126372Snjlstandalone and the search rule (to root) was inadvertently
1794114237Snjlapplied.  This could cause both the iASL compiler and the
1795114237Snjlinterpreter to find the wrong object or to miss the error that
1796114237Snjlshould occur if the object does not exist at that exact pathname.
1797102550Siwasaki
1798114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
1799114237Snjlload.  This was a relatively minor tweak to the table loading
1800126372Snjlcode
1801126372Snjl(a problem caused by the unexpected encounter with a method
1802114237Snjlinvocation not within a control method), but it does not solve
1803126372Snjlthe
1804126372Snjloverall issue of the execution of AML code at the table level.
1805126372SnjlThis investigation is still ongoing.
1806102550Siwasaki
1807102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1808126372Snjlshown
1809126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1810126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1811126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1812126372Snjlversion of the code includes the debug output trace mechanism and
1813126372Snjlhas a larger code and data size.  Note that these values will
1814126372Snjlvary
1815126372Snjldepending on the efficiency of the compiler and the compiler
1816126372Snjloptions used during generation.
1817102550Siwasaki
1818102550Siwasaki  Previous Release
1819104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1820104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1821102550Siwasaki  Current Release:
1822104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1823104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1824102550Siwasaki
1825102550Siwasaki
1826102550Siwasaki2) Linux
1827102550Siwasaki
1828102550SiwasakiRemove redundant slab.h include (Brad Hards)
1829102550Siwasaki
1830102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
1831102550Siwasaki
1832102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
1833102550Siwasaki
1834104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
1835104470SiwasakiMachek)
1836102550Siwasaki
1837102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
1838102550Siwasaki
1839102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
1840102550Siwasaki
1841102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
1842102550Siwasaki
1843102550Siwasaki
1844102550Siwasaki3) iASL Compiler/Disassembler
1845102550Siwasaki
1846114237SnjlReworked the compiler options to make them more consistent and to
1847114237Snjluse two-letter options where appropriate.  We were running out of
1848114237Snjlsensible letters.   This may break some makefiles, so check the
1849114237Snjlcurrent options list by invoking the compiler with no parameters.
1850102550Siwasaki
1851102550SiwasakiCompleted the design and implementation of the ASL namepath
1852114237Snjloptimization option for the compiler.  This option optimizes all
1853114237Snjlreferences to named objects to the shortest possible path.  The
1854114237Snjlfirst attempt tries to utilize a single nameseg (4 characters)
1855126372Snjland
1856126372Snjlthe "search-to-root" algorithm used by the interpreter.  If that
1857126372Snjlcannot be used (because either the name is not in the search path
1858126372Snjlor there is a conflict with another object with the same name),
1859126372Snjlthe pathname is optimized using the carat prefix (usually a
1860126372Snjlshorter string than specifying the entire path from the root.)
1861102550Siwasaki
1862114237SnjlImplemented support to obtain the DSDT from the Windows registry
1863114237Snjl(when the disassembly option is specified with no input file).
1864114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
1865114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
1866114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
1867114237Snjlfunction in the DOS OSL to make the disassembler truly OS
1868114237Snjlindependent.
1869102550Siwasaki
1870114237SnjlImplemented a new option to disassemble and compile in one step.
1871114237SnjlWhen used without an input filename, this option will grab the
1872114237SnjlDSDT from the local machine, disassemble it, and compile it in
1873126372Snjlone
1874126372Snjlstep.
1875102550Siwasaki
1876114237SnjlAdded a warning message for invalid escapes (a backslash followed
1877114237Snjlby any character other than the allowable escapes).  This catches
1878114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
1879114237SnjlAlso, there are numerous instances in the ACPI specification
1880126372Snjlwhere
1881126372Snjlthis error occurs.
1882102550Siwasaki
1883104470SiwasakiAdded a compiler option to disable all optimizations.  This is
1884114237Snjlbasically the "compatibility mode" because by using this option,
1885114237Snjlthe AML code will come out exactly the same as other ASL
1886114237Snjlcompilers.
1887102550Siwasaki
1888114237SnjlAdded error messages for incorrectly ordered dependent resource
1889114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
1890114237Snjldependent resource list, nested dependent function macros (both
1891114237Snjlstart and end), and missing StartDependentFn macro.  These are
1892114237Snjlcommon errors that should be caught at compile time.
1893102550Siwasaki
1894114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
1895114237Snjlmust be included in the namespace for proper disassembly (because
1896114237Snjlthe disassembler must know the number of arguments.)
1897102550Siwasaki
1898104470SiwasakiAdded an "optimization" message type that is optional (off by
1899114237Snjldefault).  This message is used for all optimizations - including
1900114237Snjlconstant folding, integer optimization, and namepath
1901104470Siwasakioptimization.
1902102550Siwasaki
1903102550Siwasaki----------------------------------------
1904102550Siwasaki25 July 2002.  Summary of changes for this release.
1905102550Siwasaki
1906102550Siwasaki
1907102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
1908102550Siwasaki
1909114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
1910114237Snjlcode and has been integrated into the iASL compiler (see below)
1911126372Snjlas
1912126372Snjlwell as the single-step disassembly for the AML debugger and the
1913126372Snjldisassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
1914126372Snjlresource templates and macros are fully supported.  The
1915114237Snjldisassembler has been tested on over 30 different AML files,
1916114237Snjlproducing identical AML when the resulting disassembled ASL file
1917114237Snjlis recompiled with the same ASL compiler.
1918102550Siwasaki
1919114237SnjlModified the Resource Manager to allow zero interrupts and zero
1920114237Snjldma channels during the GetCurrentResources call.  This was
1921114237Snjlcausing problems on some platforms.
1922102550Siwasaki
1923114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
1924114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
1925114237Snjlinterfaces.
1926102550Siwasaki
1927102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1928126372Snjlshown
1929126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1930126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1931126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1932126372Snjlversion of the code includes the debug output trace mechanism and
1933126372Snjlhas a larger code and data size.  Note that these values will
1934126372Snjlvary
1935126372Snjldepending on the efficiency of the compiler and the compiler
1936126372Snjloptions used during generation.
1937102550Siwasaki
1938102550Siwasaki  Previous Release
1939104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1940104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1941102550Siwasaki  Current Release:
1942104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1943104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1944102550Siwasaki
1945102550Siwasaki
1946102550Siwasaki2) Linux
1947102550Siwasaki
1948102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
1949102550Siwasaki
1950114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
1951114237Snjl(Richard Schaal)
1952102550Siwasaki
1953102550Siwasaki
1954102550Siwasaki3) iASL compiler
1955102550Siwasaki
1956114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
1957114237Snjloption invokes the disassembler  to completely disassemble an
1958114237Snjlinput AML file, producing as output a text ASL file with the
1959114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
1960114237Snjlsource files.)  A future enhancement will allow the disassembler
1961114237Snjlto obtain the BIOS DSDT from the registry under Windows.
1962102550Siwasaki
1963102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
1964102550Siwasakidescriptors where an invalid AML sequence was created.
1965102550Siwasaki
1966114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
1967114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
1968114237Snjlcausing reduction conflicts.
1969102550Siwasaki
1970104470SiwasakiFixed a problem where the Ones opcode could get converted to a
1971104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
1972126372Snjlvalue
1973126372Snjlwas expected.  The 64-bit value is now truncated to the correct
1974126372Snjlsize with the correct value.
1975102550Siwasaki
1976102550Siwasaki
1977102550Siwasaki----------------------------------------
1978102550Siwasaki02 July 2002.  Summary of changes for this release.
1979102550Siwasaki
1980102550Siwasaki
1981102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
1982102550Siwasaki
1983114237SnjlThe Table Manager code has been restructured to add several new
1984114237Snjlfeatures.  Tables that are not required by the core subsystem
1985114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
1986114237Snjlvalidated in any way and are returned from AcpiGetFirmwareTable
1987126372Snjlif
1988126372Snjlrequested.  The AcpiOsTableOverride interface is now called for
1989126372Snjleach table that is loaded by the subsystem in order to allow the
1990126372Snjlhost to override any table it chooses.  Previously, only the DSDT
1991126372Snjlcould be overridden.  Added one new files, tbrsdt.c and
1992114237Snjltbgetall.c.
1993102550Siwasaki
1994114237SnjlFixed a problem with the conversion of internal package objects
1995126372Snjlto
1996126372Snjlexternal objects (when a package is returned from a control
1997114237Snjlmethod.)  The return buffer length was set to zero instead of the
1998114237Snjlproper length of the package object.
1999102550Siwasaki
2000104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
2001114237Snjloperators when passing reference arguments to control methods.  A
2002114237Snjlnew type of Reference object is used internally for references
2003114237Snjlproduced by the RefOf operator.
2004102550Siwasaki
2005102550SiwasakiAdded additional error messages in the Resource Manager to
2006126372Snjlexplain
2007126372SnjlAE_BAD_DATA errors when they occur during resource parsing.
2008102550Siwasaki
2009104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
2010104470Siwasakifiner granularity initialization sequence.  These two calls
2011126372Snjlshould
2012126372Snjlbe called in this order: AcpiEnableSubsystem (flags),
2013114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
2014114237Snjlsame.
2015102550Siwasaki
2016102550Siwasaki
2017102550Siwasaki2) Linux
2018102550Siwasaki
2019114237SnjlUpdated the ACPI utilities module to understand the new style of
2020114237Snjlfully resolved package objects that are now returned from the
2021126372Snjlcore
2022126372Snjlsubsystem.  This eliminates errors of the form:
2023102550Siwasaki
2024102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
2025102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
2026102550Siwasaki        Invalid element in package (not a device reference)
2027102550Siwasaki
2028102550SiwasakiThe method evaluation utility uses the new buffer allocation
2029102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
2030102550Siwasaki
2031102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
2032114237SnjlController before the namespace has been fully initialized, which
2033114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
2034114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
2035114237Snjllimited testing was performed of the added functionality.)
2036102550Siwasaki
2037102550SiwasakiFixed memory leaks in the EC driver.
2038102550Siwasaki
2039102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
2040102550Siwasaki
2041114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
2042114237Snjlno longer needed since acpi_evaluate_object can optionally
2043104470Siwasakiallocate memory for the return object.
2044102550Siwasaki
2045114237SnjlImplemented fix for keyboard hang when getting battery readings
2046126372Snjlon
2047126372Snjlsome systems (Stephen White)
2048102550Siwasaki
2049102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
2050102550Siwasaki
2051114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
2052114237Snjlsupport
2053102550Siwasaki
2054102550Siwasaki----------------------------------------
2055102550Siwasaki11 June 2002.  Summary of changes for this release.
2056102550Siwasaki
2057102550Siwasaki
2058102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
2059102550Siwasaki
2060104470SiwasakiFixed a reported problem where constants such as Zero and One
2061114237Snjlappearing within _PRT packages were not handled correctly within
2062114237Snjlthe resource manager code.  Originally reported against the ASL
2063114237Snjlcompiler because the code generator now optimizes integers to
2064114237Snjltheir minimal AML representation (i.e. AML constants if
2065126372Snjlpossible.)
2066126372SnjlThe _PRT code now handles all AML constant opcodes correctly
2067126372Snjl(Zero, One, Ones, Revision).
2068102550Siwasaki
2069102550SiwasakiFixed a problem with the Concatenate operator in the AML
2070114237Snjlinterpreter where a buffer result object was incorrectly marked
2071126372Snjlas
2072126372Snjlnot fully evaluated, causing a run-time error of AE_AML_INTERNAL.
2073102550Siwasaki
2074104470SiwasakiAll package sub-objects are now fully resolved before they are
2075114237Snjlreturned from the external ACPI interfaces.  This means that name
2076114237Snjlstrings are resolved to object handles, and constant operators
2077114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
2078102550Siwasaki
2079102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
2080104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
2081104470Siwasakiwithin the AML stream. This has simplified and reduced the
2082104470Siwasakigenerated code size of the subsystem by eliminating about 10
2083104470Siwasakiswitch statements for these constants (which previously were
2084104470Siwasakicontained in Reference objects.)  The complicating issues are
2085126372Snjlthat
2086126372Snjlthe Zero opcode is used as a "placeholder" for unspecified
2087114237Snjloptional target operands and stores to constants are defined to
2088126372Snjlbe
2089126372Snjlno-ops.
2090102550Siwasaki
2091102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2092126372Snjlshown
2093126372Snjlbelow. These are the code and data sizes for the acpica.lib
2094114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2095114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2096114237Snjlversion of the code includes the debug output trace mechanism and
2097114237Snjlhas a larger code and data size.  Note that these values will
2098126372Snjlvary
2099126372Snjldepending on the efficiency of the compiler and the compiler
2100114237Snjloptions used during generation.
2101102550Siwasaki
2102102550Siwasaki  Previous Release
2103104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2104104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2105102550Siwasaki  Current Release:
2106104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
2107104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
2108102550Siwasaki
2109102550Siwasaki
2110102550Siwasaki2) Linux
2111102550Siwasaki
2112104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
2113104470Siwasakibridges (Bjorn Helgaas).
2114102550Siwasaki
2115102550Siwasaki
2116102550Siwasaki3) iASL Compiler Version X2046:
2117102550Siwasaki
2118114237SnjlFixed a problem where the "_DDN" reserved name was defined to be
2119126372Snjla
2120126372Snjlcontrol method with one argument.  There are no arguments, and
2121114237Snjl_DDN does not have to be a control method.
2122102550Siwasaki
2123114237SnjlFixed a problem with the Linux version of the compiler where the
2124114237Snjlsource lines printed with error messages were the wrong lines.
2125114237SnjlThis turned out to be the "LF versus CR/LF" difference between
2126114237SnjlWindows and Unix.  This appears to be the longstanding issue
2127114237Snjlconcerning listing output and error messages.
2128102550Siwasaki
2129114237SnjlFixed a problem with the Linux version of compiler where opcode
2130114237Snjlnames within error messages were wrong.  This was caused by a
2131114237Snjlslight difference in the output of the Flex tool on Linux versus
2132114237SnjlWindows.
2133102550Siwasaki
2134102550SiwasakiFixed a problem with the Linux compiler where the hex output
2135126372Snjlfiles
2136126372Snjlcontained some garbage data caused by an internal buffer overrun.
2137102550Siwasaki
2138102550Siwasaki
2139102550Siwasaki----------------------------------------
2140102550Siwasaki17 May 2002.  Summary of changes for this release.
2141102550Siwasaki
2142102550Siwasaki
2143102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
2144102550Siwasaki
2145102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
2146104470SiwasakiOmniBook where the FADT revision number and the table size are
2147104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
2148126372Snjlnew
2149126372Snjlbehavior is to fallback to using only the ACPI 1.0 fields of the
2150126372SnjlFADT if the table is too small to be a ACPI 2.0 table as claimed
2151126372Snjlby the revision number.  Although this is a BIOS bug, this is a
2152126372Snjlcase where the workaround is simple enough and with no side
2153126372Snjleffects, so it seemed prudent to add it.  A warning message is
2154126372Snjlissued, however.
2155102550Siwasaki
2156114237SnjlImplemented minimum size checks for the fixed-length ACPI tables
2157126372Snjl-
2158126372Snjl- the FADT and FACS, as well as consistency checks between the
2159114237Snjlrevision number and the table size.
2160102550Siwasaki
2161114237SnjlFixed a reported problem in the table override support where the
2162114237Snjlnew table pointer was incorrectly treated as a physical address
2163114237Snjlinstead of a logical address.
2164102550Siwasaki
2165114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
2166114237Snjlwith more descriptive codes.
2167102550Siwasaki
2168104470SiwasakiFixed a problem where an exception would occur if an ASL Field
2169126372Snjlwas
2170126372Snjldefined with no named Field Units underneath it (used by some
2171114237Snjlindex fields).
2172102550Siwasaki
2173102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2174126372Snjlshown
2175126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2176126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2177126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2178126372Snjlversion of the code includes the debug output trace mechanism and
2179126372Snjlhas a larger code and data size.  Note that these values will
2180126372Snjlvary
2181126372Snjldepending on the efficiency of the compiler and the compiler
2182126372Snjloptions used during generation.
2183102550Siwasaki
2184102550Siwasaki  Previous Release
2185104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2186104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2187102550Siwasaki  Current Release:
2188104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2189104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2190102550Siwasaki
2191102550Siwasaki
2192102550Siwasaki
2193102550Siwasaki2) Linux
2194102550Siwasaki
2195114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
2196114237Snjl(Paul D. and Dominik Brodowski)
2197102550Siwasaki
2198102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
2199102550Siwasaki
2200102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
2201102550Siwasaki
2202102550SiwasakiFix "MHz" typo (Dominik Brodowski)
2203102550Siwasaki
2204102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
2205102550Siwasaki
2206102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
2207102550Siwasaki
2208102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
2209102550Siwasaki
2210102550Siwasaki3) iASL Compiler Version X2044:
2211102550Siwasaki
2212102550SiwasakiImplemented error checking for the string used in the EISAID
2213126372Snjlmacro
2214126372Snjl(Usually used in the definition of the _HID object.)  The code
2215126372Snjlnow
2216126372Snjlstrictly enforces the PnP format - exactly 7 characters, 3
2217126372Snjluppercase letters and 4 hex digits.
2218102550Siwasaki
2219102550SiwasakiIf a raw string is used in the definition of the _HID object
2220102550Siwasaki(instead of the EISAID macro), the string must contain all
2221114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
2222114237Snjlof the asterisk.)
2223102550Siwasaki
2224114237SnjlImplemented checking for invalid use of ACPI reserved names for
2225114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
2226114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
2227114237SnjlPreviously, this check was only performed for control methods.
2228102550Siwasaki
2229114237SnjlImplemented an additional check on the Name operator to emit an
2230114237Snjlerror if a reserved name that must be implemented in ASL as a
2231114237Snjlcontrol method is used.  We know that a reserved name must be a
2232114237Snjlmethod if it is defined with input arguments.
2233102550Siwasaki
2234102550SiwasakiThe warning emitted when a namespace object reference is not
2235126372Snjlfound
2236126372Snjlduring the cross reference phase has been changed into an error.
2237126372SnjlThe "External" directive should be used for names defined in
2238126372Snjlother
2239126372Snjlmodules.
2240102550Siwasaki
2241102550Siwasaki
2242102550Siwasaki4) Tools and Utilities
2243102550Siwasaki
2244114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
2245114237Snjltested.
2246102550Siwasaki
2247102550SiwasakiFixed a problem with the output of both acpidump and adump16
2248126372Snjlwhere
2249126372Snjlthe indentation of closing parentheses and brackets was not
2250114237Snjlaligned properly with the parent block.
2251102550Siwasaki
2252102550Siwasaki
2253102550Siwasaki----------------------------------------
2254102550Siwasaki03 May 2002.  Summary of changes for this release.
2255102550Siwasaki
2256102550Siwasaki
2257102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
2258102550Siwasaki
2259114237SnjlAdded support a new OSL interface that allows the host operating
2260114237Snjlsystem software to override the DSDT found in the firmware -
2261114237SnjlAcpiOsTableOverride.  With this interface, the OSL can examine
2262126372Snjlthe
2263126372Snjlversion of the firmware DSDT and replace it with a different one
2264126372Snjlif desired.
2265102550Siwasaki
2266114237SnjlAdded new external interfaces for accessing ACPI registers from
2267114237Snjldevice drivers and other system software - AcpiGetRegister and
2268114237SnjlAcpiSetRegister.  This was simply an externalization of the
2269114237Snjlexisting AcpiHwBitRegister interfaces.
2270102550Siwasaki
2271104470SiwasakiFixed a regression introduced in the previous build where the
2272104470SiwasakiASL/AML CreateField operator always returned an error,
2273102550Siwasaki"destination must be a NS Node".
2274102550Siwasaki
2275114237SnjlExtended the maximum time (before failure) to successfully enable
2276114237SnjlACPI mode to 3 seconds.
2277102550Siwasaki
2278102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2279126372Snjlshown
2280126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2281126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2282126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2283126372Snjlversion of the code includes the debug output trace mechanism and
2284126372Snjlhas a larger code and data size.  Note that these values will
2285126372Snjlvary
2286126372Snjldepending on the efficiency of the compiler and the compiler
2287126372Snjloptions used during generation.
2288102550Siwasaki
2289102550Siwasaki  Previous Release
2290104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2291104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2292102550Siwasaki  Current Release:
2293104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2294104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2295102550Siwasaki
2296102550Siwasaki
2297102550Siwasaki2) Linux
2298102550Siwasaki
2299104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
2300104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
2301126372Snjllast
2302126372Snjlone still hangs when testing the LAPIC timer.
2303102550Siwasaki
2304114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
2305114237Snjlname.
2306102550Siwasaki
2307102550SiwasakiAdded warning on boot for Presario 711FR.
2308102550Siwasaki
2309102550SiwasakiSleep improvements (Pavel Machek)
2310102550Siwasaki
2311102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
2312102550Siwasaki
2313102550SiwasakiIA64: Fixed memory map functions (JI Lee)
2314102550Siwasaki
2315102550Siwasaki
2316102550Siwasaki3) iASL Compiler Version X2043:
2317102550Siwasaki
2318114237SnjlAdded support to allow the compiler to be integrated into the MS
2319114237SnjlVC++ development environment for one-button compilation of single
2320114237Snjlfiles or entire projects -- with error-to-source-line mapping.
2321102550Siwasaki
2322104470SiwasakiImplemented support for compile-time constant folding for the
2323104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
2324104470Siwasakispecification.  This allows the ASL writer to use expressions
2325104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
2326114237Snjlevaluate to constants at compile time and will also simplify the
2327114237Snjlemitted AML in any such sub-expressions that can be folded
2328104470Siwasaki(evaluated at compile-time.)  This increases the size of the
2329104470Siwasakicompiler significantly because a portion of the ACPI CA AML
2330104470Siwasakiinterpreter is included within the compiler in order to pre-
2331104470Siwasakievaluate constant expressions.
2332102550Siwasaki
2333114237Snjl
2334102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
2335114237Snjlcompiler to fault.  (This macro is used in conjunction with the
2336114237Snjl_STR reserved name.)
2337102550Siwasaki
2338114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
2339114237SnjlOnes opcodes where possible to further reduce the size of integer
2340114237Snjlconstants and thus reduce the overall size of the generated AML
2341114237Snjlcode.
2342102550Siwasaki
2343102550SiwasakiImplemented error checking for new reserved terms for ACPI
2344126372Snjlversion
2345126372Snjl2.0A.
2346102550Siwasaki
2347104470SiwasakiImplemented the -qr option to display the current list of ACPI
2348104470Siwasakireserved names known to the compiler.
2349102550Siwasaki
2350104470SiwasakiImplemented the -qc option to display the current list of ASL
2351104470Siwasakioperators that are allowed within constant expressions and can
2352104470Siwasakitherefore be folded at compile time if the operands are
2353104470Siwasakiconstants.
2354102550Siwasaki
2355102550Siwasaki
2356102550Siwasaki4) Documentation
2357102550Siwasaki
2358102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
2359126372Snjltypes,
2360126372Snjland memory allocation model options.
2361102550Siwasaki
2362114237SnjlUpdated the iASL Compiler User Reference to apply new format and
2363114237Snjladd information about new features and options.
2364102550Siwasaki
2365102550Siwasaki----------------------------------------
2366102550Siwasaki19 April 2002.  Summary of changes for this release.
2367102550Siwasaki
2368102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
2369102550Siwasaki
2370114237SnjlThe source code base for the Core Subsystem has been completely
2371114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
2372114237Snjlversions.  The Lint option files used are included in the
2373114237Snjl/acpi/generate/lint directory.
2374102550Siwasaki
2375102550SiwasakiImplemented enhanced status/error checking across the entire
2376114237SnjlHardware manager subsystem.  Any hardware errors (reported from
2377114237Snjlthe OSL) are now bubbled up and will abort a running control
2378114237Snjlmethod.
2379102550Siwasaki
2380114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
2381114237Snjlwas stored only with control method nodes, causing a fault when
2382114237Snjlnon-control method code was executed during table loading.  The
2383114237Snjlsolution implemented uses a global variable to indicate table
2384114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
2385114237Snjlnot support mixed integer widths across different ACPI tables
2386114237Snjl(DSDT, SSDT).
2387102550Siwasaki
2388114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
2389114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
2390114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
2391114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
2392114237SnjlACPI 2.0 X field is zero (even though the table revision
2393126372Snjlindicates
2394126372Snjla full ACPI 2.0 table.)  The ACPI specification will be updated
2395126372Snjlto
2396126372Snjlclarify this issue.
2397102550Siwasaki
2398104470SiwasakiFixed a problem with the SystemMemory operation region handler
2399104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
2400104470Siwasakispecified access width was larger than a byte.  This caused
2401104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
2402104470Siwasakiaccessed with the width specified.  On systems that do not
2403126372Snjlsupport
2404126372Snjlnon-aligned transfers, a check is made to guarantee proper
2405126372Snjladdress
2406126372Snjlalignment before proceeding in order to avoid an AML-caused
2407126372Snjlalignment fault within the kernel.
2408102550Siwasaki
2409102550Siwasaki
2410114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
2411114237Snjlof the 4-byte Irq field was extracted.
2412102550Siwasaki
2413114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
2414114237Snjlfunction was out of date and required a rewrite.
2415114237Snjl
2416102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2417126372Snjlshown
2418126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2419126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2420126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2421126372Snjlversion of the code includes the debug output trace mechanism and
2422126372Snjlhas a larger code and data size.  Note that these values will
2423126372Snjlvary
2424126372Snjldepending on the efficiency of the compiler and the compiler
2425126372Snjloptions used during generation.
2426102550Siwasaki
2427102550Siwasaki  Previous Release
2428104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2429104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2430102550Siwasaki  Current Release:
2431104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2432104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2433102550Siwasaki
2434102550Siwasaki
2435102550Siwasaki2) Linux
2436102550Siwasaki
2437102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
2438102550Siwasaki
2439102550Siwasaki
2440102550Siwasaki3) iASL Compiler Version X2042:
2441102550Siwasaki
2442104470SiwasakiImplemented an additional compile-time error check for a field
2443104470Siwasakiunit whose size + minimum access width would cause a run-time
2444114237Snjlaccess beyond the end-of-region.  Previously, only the field size
2445114237Snjlitself was checked.
2446102550Siwasaki
2447104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
2448104470Siwasakiobject in preparation for compile-time evaluation of the type
2449104470Siwasaki3/4/5 ASL operators.
2450102550Siwasaki
2451102550Siwasaki
2452102550Siwasaki----------------------------------------
2453102550SiwasakiSummary of changes for this release: 03_29_02
2454102550Siwasaki
2455102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
2456102550Siwasaki
2457104470SiwasakiImplemented support for late evaluation of TermArg operands to
2458114237SnjlBuffer and Package objects.  This allows complex expressions to
2459126372Snjlbe
2460126372Snjlused in the declarations of these object types.
2461102550Siwasaki
2462104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
2463126372SnjlACPI
2464126372Snjl1.0, if the field was larger than 32 bits, it was returned as a
2465126372Snjlbuffer - otherwise it was returned as an integer.  In ACPI 2.0,
2466126372Snjlthe field is returned as a buffer only if the field is larger
2467126372Snjlthan
2468126372Snjl64 bits.  The TableRevision is now considered when making this
2469126372Snjlconversion to avoid incompatibility with existing ASL code.
2470102550Siwasaki
2471104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
2472114237Snjlallows an RSDP with either a logical or physical address.  With
2473114237Snjlthis support, the host OS can now override all ACPI tables with
2474114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
2475114237Snjlsupport to allow a common data type for both physical and logical
2476114237Snjlpointers internally.  This required a change to the
2477114237SnjlAcpiOsGetRootPointer interface.
2478102550Siwasaki
2479104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
2480126372Snjlall
2481126372SnjlGPE, Fixed Event, and PM Timer I/O.  This allows the use of
2482126372Snjlmemory
2483126372Snjlmapped I/O for these ACPI features.
2484102550Siwasaki
2485102550SiwasakiInitialization now ignores not only non-required tables (All
2486114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
2487114237Snjlnot validate the table headers of unrecognized tables.
2488102550Siwasaki
2489102550SiwasakiFixed a problem where a notify handler could only be
2490102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
2491102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
2492102550SiwasakiThermal.
2493102550Siwasaki
2494114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
2495114237Snjlcritical information is returned when this debug level is
2496104470Siwasakienabled.
2497102550Siwasaki
2498102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2499126372Snjlshown
2500126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2501126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2502126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2503126372Snjlversion of the code includes the debug output trace mechanism and
2504126372Snjlhas a larger code and data size.  Note that these values will
2505126372Snjlvary
2506126372Snjldepending on the efficiency of the compiler and the compiler
2507126372Snjloptions used during generation.
2508102550Siwasaki
2509102550Siwasaki  Previous Release
2510104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2511104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2512102550Siwasaki  Current Release:
2513104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2514104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2515102550Siwasaki
2516102550Siwasaki
2517102550Siwasaki2) Linux:
2518102550Siwasaki
2519114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
2520114237Snjl2.0-based processor performance control (e.g. Intel(R)
2521114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
2522114237Snjlthe Intel "applet" interface are not supported through this.  The
2523114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
2524114237Snjl[Note that basic policy for controlling performance state
2525114237Snjltransitions will be included in the next version of ospmd.]  The
2526114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
2527114237Snjlerrata handling underwent a complete overhaul (big thanks to
2528114237SnjlDominik Brodowski).
2529102550Siwasaki
2530114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
2531114237Snjlbased devices in the ACPI namespace are now dynamically bound
2532114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
2533114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
2534114237Snjlsubordinate PCI bridges.
2535102550Siwasaki
2536104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
2537104470Siwasakientries defined underneath PCI bridges.
2538102550Siwasaki
2539104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
2540104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
2541102550Siwasaki
2542114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
2543114237Snjl(acpi.c, mpparse.c) -- stay tuned.
2544102550Siwasaki
2545102550SiwasakiAdded back visual differentiation between fixed-feature and
2546114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
2547114237Snjlbutton/power/PWRF) to simplify button identification.
2548102550Siwasaki
2549114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
2550114237Snjlany "_THIS_MODULE defined but not used" messages.
2551102550Siwasaki
2552102550SiwasakiCan now shut down the system using "magic sysrq" key.
2553102550Siwasaki
2554102550Siwasaki
2555102550Siwasaki3) iASL Compiler version 2041:
2556102550Siwasaki
2557104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
2558104470Siwasakiconstants were not reported.
2559102550Siwasaki
2560102550SiwasakiImplemented a fix for the General Register template Address
2561126372Snjlfield.
2562126372SnjlThis field was 8 bits when it should be 64.
2563102550Siwasaki
2564102550SiwasakiFixed a problem where errors/warnings were no longer being
2565126372Snjlemitted
2566126372Snjlwithin the listing output file.
2567102550Siwasaki
2568114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
2569114237Snjlexactly 4 characters, alphanumeric only.
2570102550Siwasaki
2571102550Siwasaki
2572102550Siwasaki
2573102550Siwasaki
2574102550Siwasaki----------------------------------------
2575102550SiwasakiSummary of changes for this release: 03_08_02
2576102550Siwasaki
2577102550Siwasaki
2578102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
2579102550Siwasaki
2580114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
2581114237Snjlkeyword could cause an interpreter error due to attempting to
2582126372Snjlread
2583126372Snjlor write beyond the end of the parent Operation Region.
2584102550Siwasaki
2585102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
2586126372Snjlwhere
2587126372Snjlan attempt was made to map memory beyond the end of the region.
2588126372SnjlThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
2589126372Snjlerrors on some Linux systems.
2590102550Siwasaki
2591114237SnjlFixed a problem where the interpreter/namespace "search to root"
2592114237Snjlalgorithm was not functioning for some object types.  Relaxed the
2593114237Snjlinternal restriction on the search to allow upsearches for all
2594114237Snjlexternal object types as well as most internal types.
2595102550Siwasaki
2596102550Siwasaki
2597102550Siwasaki2) Linux:
2598102550Siwasaki
2599104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
2600104470Siwasakihlt.
2601102550Siwasaki
2602114237SnjlWriting to the processor limit interface should now work. "echo
2603126372Snjl1"
2604126372Snjlwill increase the limit, 2 will decrease, and 0 will reset to the
2605126372Snjldefault.
2606102550Siwasaki
2607102550Siwasaki
2608102550Siwasaki3) ASL compiler:
2609102550Siwasaki
2610102550SiwasakiFixed segfault on Linux version.
2611102550Siwasaki
2612102550Siwasaki
2613102550Siwasaki----------------------------------------
2614102550SiwasakiSummary of changes for this release: 02_25_02
2615102550Siwasaki
2616102550Siwasaki1) ACPI CA Core Subsystem:
2617102550Siwasaki
2618102550Siwasaki
2619102550SiwasakiFixed a problem where the GPE bit masks were not initialized
2620102550Siwasakiproperly, causing erratic GPE behavior.
2621102550Siwasaki
2622104470SiwasakiImplemented limited support for multiple calling conventions.
2623126372SnjlThe
2624126372Snjlcode can be generated with either the VPL (variable parameter
2625114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
2626114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
2627114237Snjlwhen generated with FPL.
2628102550Siwasaki
2629102550Siwasaki
2630102550Siwasaki2) Linux
2631102550Siwasaki
2632114237SnjlRe-add some /proc/acpi/event functionality that was lost during
2633114237Snjlthe rewrite
2634102550Siwasaki
2635102550SiwasakiResolved issue with /proc events for fixed-feature buttons
2636126372Snjlshowing
2637126372Snjlup as the system device.
2638102550Siwasaki
2639102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
2640102550Siwasakivalues.
2641102550Siwasaki
2642114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
2643102550Siwasaki
2644114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
2645102550Siwasaki
2646104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
2647104470Siwasakihysterisis.
2648102550Siwasaki
2649102550SiwasakiRestructured PRT support.
2650102550Siwasaki
2651102550Siwasaki
2652102550Siwasaki----------------------------------------
2653102550SiwasakiSummary of changes for this label: 02_14_02
2654102550Siwasaki
2655102550Siwasaki
2656102550Siwasaki1) ACPI CA Core Subsystem:
2657102550Siwasaki
2658114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
2659114237SnjlFADT tables.
2660102550Siwasaki
2661114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
2662114237Snjlbeen removed.  All 64-bit platforms should be migrated to the
2663126372SnjlACPI
2664126372Snjl2.0 tables.  The actbl71.h header has been removed from the
2665126372Snjlsource
2666126372Snjltree.
2667102550Siwasaki
2668114237SnjlAll C macros defined within the subsystem have been prefixed with
2669114237Snjl"ACPI_" to avoid collision with other system include files.
2670102550Siwasaki
2671102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
2672126372Snjlsince
2673126372Snjlit is never used and causes lint warnings for ignoring the return
2674126372Snjlvalue.
2675102550Siwasaki
2676104470SiwasakiAdded error checking to all internal mutex acquire and release
2677104470Siwasakicalls.  Although a failure from one of these interfaces is
2678104470Siwasakiprobably a fatal system error, these checks will cause the
2679114237Snjlimmediate abort of the currently executing method or interface.
2680102550Siwasaki
2681114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
2682114237Snjlfault.  This was a side effect of the deployment of the new
2683126372Snjlmemory
2684126372Snjlallocation model.
2685102550Siwasaki
2686102550SiwasakiFixed a couple of problems with the Global Lock support
2687126372Snjlintroduced
2688126372Snjlin the last major build.  The "common" (1.0/2.0) internal FACS
2689126372Snjlwas
2690126372Snjlbeing overwritten with the FACS signature and clobbering the
2691126372SnjlGlobal Lock pointer.  Also, the actual firmware FACS was being
2692126372Snjlunmapped after construction of the "common" FACS, preventing
2693126372Snjlaccess to the actual Global Lock field within it.  The "common"
2694126372Snjlinternal FACS is no longer installed as an actual ACPI table; it
2695126372Snjlis used simply as a global.
2696102550Siwasaki
2697102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2698126372Snjlshown
2699126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2700126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2701126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2702126372Snjlversion of the code includes the debug output trace mechanism and
2703126372Snjlhas a larger code and data size.  Note that these values will
2704126372Snjlvary
2705126372Snjldepending on the efficiency of the compiler and the compiler
2706126372Snjloptions used during generation.
2707102550Siwasaki
2708102550Siwasaki  Previous Release (02_07_01)
2709104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2710104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2711102550Siwasaki  Current Release:
2712104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2713104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2714102550Siwasaki
2715102550Siwasaki
2716102550Siwasaki2) Linux
2717102550Siwasaki
2718102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
2719102550Siwasakichanges described above.
2720102550Siwasaki
2721114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
2722114237Snjlproper poll functionality.
2723102550Siwasaki
2724102550SiwasakiFixed and restructured power management (acpi_bus).
2725102550Siwasaki
2726102550SiwasakiOnly create /proc "view by type" when devices of that class
2727102550Siwasakiexist.
2728102550Siwasaki
2729104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
2730102550Siwasaki
2731102550SiwasakiImproved thermal zone code.
2732102550Siwasaki
2733102550Siwasaki
2734102550Siwasaki3) ASL Compiler, version X2039:
2735102550Siwasaki
2736114237Snjl
2737114237SnjlImplemented the new compiler restriction on ASL String hex/octal
2738114237Snjlescapes to non-null, ASCII values.  An error results if an
2739126372Snjlinvalid
2740126372Snjlvalue is used.  (This will require an ACPI 2.0 specification
2741126372Snjlchange.)
2742102550Siwasaki
2743102550SiwasakiAML object labels that are output to the optional C and ASM
2744126372Snjlsource
2745126372Snjlare now prefixed with both the ACPI table signature and table ID
2746126372Snjlto help guarantee uniqueness within a large BIOS project.
2747102550Siwasaki
2748102550Siwasaki
2749102550Siwasaki----------------------------------------
2750102550SiwasakiSummary of changes for this label: 02_01_02
2751102550Siwasaki
2752102550Siwasaki1) ACPI CA Core Subsystem:
2753102550Siwasaki
2754114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
2755114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
2756114237Snjlother changes for ACPI 2.0 support are complete.  With
2757104470Siwasakisimultaneous code and data optimizations throughout the
2758126372Snjlsubsystem,
2759126372SnjlACPI 2.0 support has been implemented with almost no additional
2760126372Snjlcost in terms of code and data size.
2761102550Siwasaki
2762114237SnjlImplemented a new mechanism for allocation of return buffers.  If
2763114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
2764114237Snjlbe allocated on behalf of the caller.  Consolidated all return
2765114237Snjlbuffer validation and allocation to a common procedure.  Return
2766114237Snjlbuffers will be allocated via the primary OSL allocation
2767126372Snjlinterface
2768126372Snjlsince it appears that a separate pool is not needed by most
2769126372Snjlusers.
2770126372SnjlIf a separate pool is required for these buffers, the caller can
2771126372Snjlstill use the original mechanism and pre-allocate the buffer(s).
2772102550Siwasaki
2773102550SiwasakiImplemented support for string operands within the DerefOf
2774102550Siwasakioperator.
2775102550Siwasaki
2776114237SnjlRestructured the Hardware and Event managers to be table driven,
2777114237Snjlsimplifying the source code and reducing the amount of generated
2778114237Snjlcode.
2779102550Siwasaki
2780102550SiwasakiSplit the common read/write low-level ACPI register bitfield
2781104470Siwasakiprocedure into a separate read and write, simplifying the code
2782104470Siwasakiconsiderably.
2783102550Siwasaki
2784114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
2785114237Snjlused only a handful of times and didn't have enough critical mass
2786114237Snjlfor a separate interface.  Replaced with a common calloc
2787126372Snjlprocedure
2788126372Snjlin the core.
2789102550Siwasaki
2790104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
2791104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
2792114237SnjlReorganized the GPE information and shrunk a large array that was
2793114237Snjloriginally large enough to hold info for all possible GPEs (256)
2794114237Snjlto simply large enough to hold all GPEs up to the largest GPE
2795114237Snjlnumber on the machine.
2796102550Siwasaki
2797114237SnjlFixed a reported problem with resource structure alignment on 64-
2798114237Snjlbit platforms.
2799102550Siwasaki
2800102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
2801102550Siwasakiinterfaces to not require any flags for the common case of
2802102550Siwasakienabling/disabling a GPE.
2803102550Siwasaki
2804104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
2805102550Siwasaki
2806114237SnjlMost TBDs in comments within the source code have been resolved
2807114237Snjland eliminated.
2808102550Siwasaki
2809102550SiwasakiFixed a problem in the interpreter where a standalone parent
2810102550Siwasakiprefix (^) was not handled correctly in the interpreter and
2811102550Siwasakidebugger.
2812102550Siwasaki
2813102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
2814102550Siwasaki
2815114237SnjlImplemented Field support in the ASL Load operator.  This allows
2816126372Snjla
2817126372Snjltable to be loaded from a named field, in addition to loading a
2818114237Snjltable directly from an Operation Region.
2819102550Siwasaki
2820104470SiwasakiImplemented timeout and handle support in the external Global
2821126372SnjlLock
2822126372Snjlinterfaces.
2823102550Siwasaki
2824114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
2825114237Snjllonger being generated correctly during the dump of named
2826102550Siwasakiobjects.
2827102550Siwasaki
2828102550SiwasakiModified the AML debugger to give a full display of if/while
2829102550Siwasakipredicates instead of just one AML opcode at a time.  (The
2830102550Siwasakipredicate can have several nested ASL statements.)  The old
2831126372Snjlmethod
2832126372Snjlwas confusing during single stepping.
2833102550Siwasaki
2834102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2835126372Snjlshown
2836126372Snjlbelow. These are the code and data sizes for the acpica.lib
2837114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2838114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2839114237Snjlversion of the code includes the debug output trace mechanism and
2840114237Snjlhas a larger code and data size.  Note that these values will
2841126372Snjlvary
2842126372Snjldepending on the efficiency of the compiler and the compiler
2843114237Snjloptions used during generation.
2844102550Siwasaki
2845102550Siwasaki  Previous Release (12_18_01)
2846114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2847114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2848102550Siwasaki   Current Release:
2849114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2850114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2851102550Siwasaki
2852102550Siwasaki2) Linux
2853102550Siwasaki
2854104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
2855104470Siwasakidriver)
2856102550Siwasaki
2857102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
2858102550Siwasaki
2859102550SiwasakiNew thermal policy (Thermal driver)
2860102550Siwasaki
2861102550SiwasakiMany updates to /proc
2862102550Siwasaki
2863102550SiwasakiBattery "low" event support (Battery driver)
2864102550Siwasaki
2865104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
2866102550Siwasaki
2867104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
2868102550Siwasaki
2869102550SiwasakiMenuconfig options redesigned
2870102550Siwasaki
2871102550Siwasaki3) ASL Compiler, version X2037:
2872102550Siwasaki
2873114237SnjlImplemented several new output features to simplify integration
2874126372Snjlof
2875126372SnjlAML code into  firmware: 1) Output the AML in C source code with
2876126372Snjllabels for each named ASL object.  The    original ASL source
2877126372Snjlcode
2878126372Snjlis interleaved as C comments. 2) Output the AML in ASM source
2879126372Snjlcode
2880126372Snjlwith labels and interleaved ASL    source. 3) Output the AML in
2881126372Snjlraw hex table form, in either C or ASM.
2882102550Siwasaki
2883102550SiwasakiImplemented support for optional string parameters to the
2884102550SiwasakiLoadTable operator.
2885102550Siwasaki
2886104470SiwasakiCompleted support for embedded escape sequences within string
2887114237Snjlliterals.  The compiler now supports all single character escapes
2888114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
2889114237Snjlnull byte into a string literal (via the hex/octal escape) causes
2890114237Snjlthe string to be immediately terminated.  A warning is issued.
2891102550Siwasaki
2892104470SiwasakiFixed a problem where incorrect AML was generated for the case
2893104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
2894102550Siwasaki
2895102550Siwasaki) with no trailing name segments.
2896102550Siwasaki
2897102550SiwasakiThe compiler has been successfully generated with a 64-bit C
2898102550Siwasakicompiler.
2899102550Siwasaki
2900102550Siwasaki
2901102550Siwasaki
2902102550Siwasaki
2903102550Siwasaki----------------------------------------
2904102550SiwasakiSummary of changes for this label: 12_18_01
2905102550Siwasaki
2906102550Siwasaki1) Linux
2907102550Siwasaki
2908114237SnjlEnhanced blacklist with reason and severity fields. Any table's
2909114237Snjlsignature may now be used to identify a blacklisted system.
2910102550Siwasaki
2911114237SnjlCall _PIC control method to inform the firmware which interrupt
2912114237Snjlmodel the OS is using. Turn on any disabled link devices.
2913102550Siwasaki
2914102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
2915102550Siwasaki
2916102550Siwasaki 2) ACPI CA Core Subsystem:
2917102550Siwasaki
2918104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
2919126372Snjlfrom
2920126372Snjlwhile loop)
2921102550Siwasaki
2922102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
2923102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
2924104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
2925126372Snjlboth
2926126372Snjlthe ASL compiler and the AML interpreter.  The only remaining
2927126372SnjlACPI
2928126372Snjl2.0 task is support for the String data type in the DerefOf
2929126372Snjloperator.  Fixed a problem with AcquireMutex where the status
2930126372Snjlcode
2931126372Snjlwas lost if the caller had to actually wait for the mutex.
2932102550Siwasaki
2933104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
2934102550Siwasaki
2935114237SnjlCompleted implementation of the external Global Lock interfaces -
2936126372Snjl-
2937126372SnjlAcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
2938126372SnjlHandler parameters were added.
2939102550Siwasaki
2940102550SiwasakiCompleted another pass at removing warnings and issues when
2941114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
2942114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
2943114237Snjladd and subtract (diff) macros have changed considerably.
2944102550Siwasaki
2945114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
2946114237Snjl64-bit platforms, 32-bits on all others.  This type is used
2947104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
2948126372Snjlused,
2949126372Snjland affects the OSL memory allocation interfaces AcpiOsAllocate
2950126372Snjland AcpiOsCallocate.
2951102550Siwasaki
2952102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
2953102550Siwasaki
2954102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2955126372Snjlshown
2956126372Snjlbelow. These are the code and data sizes for the acpica.lib
2957114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2958114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2959114237Snjlversion of the code includes the debug output trace mechanism and
2960114237Snjlhas a larger code and data size. Note that these values will vary
2961114237Snjldepending on the efficiency of the compiler and the compiler
2962114237Snjloptions used during generation.
2963102550Siwasaki
2964102550Siwasaki  Previous Release (12_05_01)
2965114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2966114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2967102550Siwasaki   Current Release:
2968114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2969114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2970102550Siwasaki
2971102550Siwasaki 3) ASL Compiler, version X2034:
2972102550Siwasaki
2973114237SnjlNow checks for (and generates an error if detected) the use of a
2974114237SnjlBreak or Continue statement without an enclosing While statement.
2975102550Siwasaki
2976102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
2977102550Siwasakicompiler.
2978102550Siwasaki
2979102550Siwasaki ----------------------------------------
2980102550SiwasakiSummary of changes for this label: 12_05_01
2981102550Siwasaki
2982102550Siwasaki 1) ACPI CA Core Subsystem:
2983102550Siwasaki
2984102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
2985104470Siwasakioperator creates a new copy of an object (and is also used to
2986104470Siwasakibypass the "implicit conversion" mechanism of the Store
2987102550Siwasakioperator.)
2988102550Siwasaki
2989102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
2990102550Siwasakiimplemented.  The change is that performing a SizeOf on a
2991114237Snjlreference object causes an automatic dereference of the object to
2992114237Snjltha actual value before the size is evaluated. This behavior was
2993114237Snjlundefined in ACPI 1.0.
2994102550Siwasaki
2995114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
2996114237Snjlhave been implemented.  The interrupt polarity and mode are now
2997114237Snjlindependently set.
2998102550Siwasaki
2999114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
3000114237Snjlappearing in Package objects were not properly converted to
3001114237Snjlintegers when the internal Package was converted to an external
3002114237Snjlobject (via the AcpiEvaluateObject interface.)
3003102550Siwasaki
3004114237SnjlFixed a problem with the namespace object deletion mechanism for
3005114237Snjlobjects created by control methods.  There were two parts to this
3006114237Snjlproblem: 1) Objects created during the initialization phase
3007126372Snjlmethod
3008126372Snjlparse were not being deleted, and 2) The object owner ID
3009126372Snjlmechanism
3010126372Snjlto track objects was broken.
3011102550Siwasaki
3012114237SnjlFixed a problem where the use of the ASL Scope operator within a
3013114237Snjlcontrol method would result in an invalid opcode exception.
3014102550Siwasaki
3015114237SnjlFixed a problem introduced in the previous label where the buffer
3016114237Snjllength required for the _PRT structure was not being returned
3017114237Snjlcorrectly.
3018102550Siwasaki
3019102550SiwasakiCode and Data Size: Current core subsystem library sizes are
3020126372Snjlshown
3021126372Snjlbelow. These are the code and data sizes for the acpica.lib
3022114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
3023114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
3024114237Snjlversion of the code includes the debug output trace mechanism and
3025114237Snjlhas a larger code and data size.  Note that these values will
3026126372Snjlvary
3027126372Snjldepending on the efficiency of the compiler and the compiler
3028114237Snjloptions used during generation.
3029102550Siwasaki
3030102550Siwasaki  Previous Release (11_20_01)
3031114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
3032114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
3033102550Siwasaki
3034102550Siwasaki  Current Release:
3035114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
3036114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
3037102550Siwasaki
3038102550Siwasaki 2) Linux:
3039102550Siwasaki
3040102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
3041102550Siwasaki
3042104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
3043114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
3044114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
3045114237Snjlentries are treated as if they were static (not yet
3046114237Snjlreconfigurable).  Architecture- specific code to use this data is
3047114237Snjlabsent on IA32 but should be available shortly.
3048102550Siwasaki
3049114237SnjlChanged the initialization sequence to start the ACPI interpreter
3050114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
3051114237Snjlin init/main.c.  This ordering is required to support PRT and
3052114237Snjlfacilitate other (future) enhancement.  A side effect is that the
3053114237SnjlACPI bus driver and certain device drivers can no longer be
3054126372Snjlloaded
3055126372Snjlas modules.
3056102550Siwasaki
3057104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
3058104470SiwasakiRouting support to be included without the ACPI Bus and other
3059104470Siwasakidevice drivers.
3060102550Siwasaki
3061102550Siwasaki 3) ASL Compiler, version X2033:
3062102550Siwasaki
3063102550SiwasakiFixed some issues with the use of the new CopyObject and
3064102550SiwasakiDataTableRegion operators.  Both are fully functional.
3065102550Siwasaki
3066102550Siwasaki ----------------------------------------
3067102550SiwasakiSummary of changes for this label: 11_20_01
3068102550Siwasaki
3069102550Siwasaki 20 November 2001.  Summary of changes for this release.
3070102550Siwasaki
3071102550Siwasaki 1) ACPI CA Core Subsystem:
3072102550Siwasaki
3073104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
3074104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
3075126372Snjlonly
3076126372Snjlthe least-significant byte of the source to the Indexed buffer
3077126372Snjlbyte.  Multiple writes are not performed.
3078102550Siwasaki
3079104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
3080104470Siwasakioperator was not recorded correctly into the field object.
3081102550Siwasaki
3082102550SiwasakiFixed a problem where ASL Event objects were created in a
3083114237Snjlsignalled state. Events are now created in an unsignalled state.
3084102550Siwasaki
3085114237SnjlThe internal object cache is now purged after table loading and
3086114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
3087114237Snjlthe assumption that object use is greatest during the parse phase
3088114237Snjlof the entire table (versus the run-time use of individual
3089126372Snjlcontrol
3090126372Snjlmethods.)
3091102550Siwasaki
3092102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
3093102550Siwasaki
3094104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
3095126372Snjlnew
3096126372Snjlfeature development with an actual reduction in the library size.
3097126372SnjlCurrent core subsystem library sizes are shown below.  These are
3098126372Snjlthe code and data sizes for the acpica.lib produced by the
3099126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3100126372Snjlinclude
3101126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3102126372Snjlincludes the debug output trace mechanism and has a larger code
3103126372Snjland data size.  Note that these values will vary depending on the
3104126372Snjlefficiency of the compiler and the compiler options used during
3105126372Snjlgeneration.
3106102550Siwasaki
3107102550Siwasaki  Previous Release (11_09_01):
3108114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3109114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3110102550Siwasaki
3111102550Siwasaki  Current Release:
3112114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
3113114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
3114102550Siwasaki
3115102550Siwasaki 2) Linux:
3116102550Siwasaki
3117114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
3118114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
3119114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
3120114237Snjlnear future.  This functionality replaces
3121114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
3122114237Snjl2.4.15-preX release.  To enable this feature you must add
3123114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
3124114237Snjlfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
3125126372Snjlin
3126126372Snjlthe works...
3127102550Siwasaki
3128114237SnjlRestructured the configuration options to allow boot-time table
3129114237Snjlparsing support without inclusion of the ACPI Interpreter (and
3130114237Snjlother) code.
3131102550Siwasaki
3132102550SiwasakiNOTE: This release does not include fixes for the reported
3133126372Snjlevents,
3134126372Snjlpower-down, and thermal passive cooling issues (coming soon).
3135102550Siwasaki
3136102550Siwasaki 3) ASL Compiler:
3137102550Siwasaki
3138114237SnjlAdded additional typechecking for Fields within restricted access
3139114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
3140114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
3141114237Snjldeclared with the BufferAcc access type.
3142102550Siwasaki
3143114237SnjlFixed a problem where the listing file output of control methods
3144114237Snjlno longer interleaved the actual AML code with the ASL source
3145114237Snjlcode.
3146102550Siwasaki
3147102550Siwasaki
3148102550Siwasaki
3149102550Siwasaki----------------------------------------
3150102550SiwasakiSummary of changes for this label: 11_09_01
3151102550Siwasaki
3152102550Siwasaki1) ACPI CA Core Subsystem:
3153102550Siwasaki
3154114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
3155114237SnjlBuffer, String, or Integer source operand that is smaller than
3156126372Snjlthe
3157126372Snjltarget field. In these cases, the source operand is zero-extended
3158126372Snjlto fill the target field.
3159102550Siwasaki
3160104470SiwasakiFixed a problem where a Field starting bit offset (within the
3161104470Siwasakiparent operation region) was calculated incorrectly if the
3162104470Siwasakialignment of the field differed from the access width.  This
3163114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
3164114237Snjlpossibly other fields that use the "AccessAny" keyword.
3165102550Siwasaki
3166114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
3167114237Snjlstores through method arguments did not operate correctly.
3168102550Siwasaki
3169102550Siwasaki2) Linux:
3170102550Siwasaki
3171102550SiwasakiImplemented boot-time ACPI table parsing support
3172114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
3173114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
3174114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
3175114237Snjlprocessors, memory, and interrupts during setup_arch().  Note
3176126372Snjlthat
3177126372Snjlthis patch does not include the required architecture-specific
3178126372Snjlchanges required to apply this information -- subsequent patches
3179126372Snjlwill be posted for both IA32 and IA64 to achieve this.
3180102550Siwasaki
3181114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
3182114237SnjlMochel. This allows IA32 systems to transition to/from various
3183114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
3184114237Snjldriver model and power-manageable drivers will prevent its
3185114237Snjl(successful) use on most systems.
3186102550Siwasaki
3187114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
3188114237Snjlsubmenu, unified IA32 and IA64 options, added new "Boot using
3189126372SnjlACPI
3190126372Snjltables" option, etc.
3191102550Siwasaki
3192114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
3193114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
3194114237Snjltransactions.
3195102550Siwasaki
3196102550Siwasaki ----------------------------------------
3197102550SiwasakiSummary of changes for this label: 11_02_01
3198102550Siwasaki
3199102550Siwasaki1) ACPI CA Core Subsystem:
3200102550Siwasaki
3201102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
3202102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
3203102550Siwasakiimplemented.
3204102550Siwasaki
3205114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
3206114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
3207114237SnjlPciConfiguration(), Read/Write Memory(), and Read/Write Port()
3208126372Snjlnow
3209126372Snjlaccept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
3210126372Snjlthe value parameter for the address space handler interface is
3211126372Snjlnow
3212126372Snjlan ACPI_INTEGER.  OSL implementations of these interfaces must
3213126372Snjlnow
3214126372Snjlhandle the case where the Width parameter is 64.
3215102550Siwasaki
3216104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
3217104470Siwasakidisassembly for IndexFields was not supported correctly.
3218102550Siwasaki
3219102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
3220104470Siwasakisupported. During field access, a check is performed to ensure
3221114237Snjlthat the value written to an Index or Bank register is not out of
3222114237Snjlthe range of the register.  The Index (or Bank) register is
3223114237Snjlwritten before each access to the field data. Future support will
3224114237Snjlinclude allowing individual IndexFields to be wider than the
3225114237SnjlDataRegister width.
3226102550Siwasaki
3227114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
3228114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
3229114237Snjla boundary case that occurred when a DWORD field was written to a
3230114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
3231114237Snjlinterpreter to write one datum too many.
3232102550Siwasaki
3233102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
3234114237Snjlstarting bit address of a field was incorrectly calculated if the
3235114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
3236114237SnjlQwordAcc).
3237102550Siwasaki
3238104470SiwasakiFields: Fixed a problem where forward references to individual
3239104470SiwasakiFieldUnits (individual Field names within a Field definition)
3240126372Snjlwere
3241126372Snjlnot resolved during the AML table load.
3242102550Siwasaki
3243104470SiwasakiFields: Fixed a problem where forward references from a Field
3244104470Siwasakidefinition to the parent Operation Region definition were not
3245104470Siwasakiresolved during the AML table load.
3246104470Siwasaki
3247114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
3248114237Snjlduring AML table load.
3249102550Siwasaki
3250102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
3251126372Snjlinterface
3252126372Snjlreturned an incorrect name for the root node.
3253102550Siwasaki
3254104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
3255126372Snjlnew
3256126372Snjlfeature development with an actual reduction in the library size.
3257126372SnjlCurrent core subsystem library sizes are shown below.  These are
3258126372Snjlthe code and data sizes for the acpica.lib produced by the
3259126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3260126372Snjlinclude
3261126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3262126372Snjlincludes the debug output trace mechanism and has a larger code
3263126372Snjland data size.  Note that these values will vary depending on the
3264126372Snjlefficiency of the compiler and the compiler options used during
3265126372Snjlgeneration.
3266102550Siwasaki
3267102550Siwasaki  Previous Release (10_18_01):
3268114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3269114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3270102550Siwasaki
3271102550Siwasaki  Current Release:
3272114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3273114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3274102550Siwasaki
3275102550Siwasaki 2) Linux:
3276102550Siwasaki
3277102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
3278102550SiwasakiMODULE_LICENSE("GPL") to all modules.
3279102550Siwasaki
3280102550Siwasaki 3) ASL Compiler version X2030:
3281102550Siwasaki
3282104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
3283104470Siwasakiflagged as errors.
3284102550Siwasaki
3285102550Siwasaki 4) Documentation:
3286102550Siwasaki
3287104470SiwasakiProgrammer Reference updated to reflect OSL and address space
3288104470Siwasakihandler interface changes described above.
3289102550Siwasaki
3290102550Siwasaki----------------------------------------
3291102550SiwasakiSummary of changes for this label: 10_18_01
3292102550Siwasaki
3293102550SiwasakiACPI CA Core Subsystem:
3294102550Siwasaki
3295102550SiwasakiFixed a problem with the internal object reference count
3296126372Snjlmechanism
3297126372Snjlthat occasionally caused premature object deletion. This resolves
3298126372Snjlall of the outstanding problem reports where an object is deleted
3299126372Snjlin the middle of an interpreter evaluation.  Although this
3300126372Snjlproblem
3301126372Snjlonly showed up in rather obscure cases, the solution to the
3302126372Snjlproblem involved an adjustment of all reference counts involving
3303126372Snjlobjects attached to namespace nodes.
3304102550Siwasaki
3305102550SiwasakiFixed a problem with Field support in the interpreter where
3306114237Snjlwriting to an aligned field whose length is an exact multiple (2
3307114237Snjlor greater) of the field access granularity would cause an
3308126372Snjlattempt
3309126372Snjlto write beyond the end of the field.
3310102550Siwasaki
3311102550SiwasakiThe top level AML opcode execution functions within the
3312102550Siwasakiinterpreter have been renamed with a more meaningful and
3313102550Siwasakiconsistent naming convention.  The modules exmonad.c and
3314102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
3315102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
3316102550Siwasaki
3317114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
3318102550Siwasaki
3319114237SnjlFixed a problem where the AML debugger was causing some internal
3320114237Snjlobjects to not be deleted during subsystem termination.
3321102550Siwasaki
3322104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
3323104470Siwasakiwhere the subsystem would fault if the named object to be
3324104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
3325102550Siwasaki
3326102550SiwasakiFixed a problem with IndexFields and BankFields where the
3327114237Snjlsubsystem would fault if the index, data, or bank registers were
3328114237Snjlnot defined in the same scope as the field itself.
3329102550Siwasaki
3330104470SiwasakiAdded printf format string checking for compilers that support
3331104470Siwasakithis feature.  Corrected more than 50 instances of issues with
3332104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
3333104470Siwasakithroughout the core subsystem code.
3334102550Siwasaki
3335104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
3336104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
3337126372Snjlsupport
3338126372Snjlis more than 50% implemented.
3339102550Siwasaki
3340114237SnjlEnhanced the output of the AML debugger "dump namespace" command
3341114237Snjlto output in a more human-readable form.
3342102550Siwasaki
3343114237SnjlCurrent core subsystem library code sizes are shown below.  These
3344114237Snjlare the code and data sizes for the acpica.lib produced by the
3345114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3346126372Snjlinclude
3347126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3348126372Snjlincludes the full debug trace mechanism -- leading to a much
3349114237Snjllarger code and data size.  Note that these values will vary
3350114237Snjldepending on the efficiency of the compiler and the compiler
3351114237Snjloptions used during generation.
3352102550Siwasaki
3353102550Siwasaki     Previous Label (09_20_01):
3354114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
3355114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
3356102550Siwasaki
3357102550Siwasaki     This Label:
3358102550Siwasaki
3359114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3360114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3361114237Snjl
3362102550SiwasakiLinux:
3363102550Siwasaki
3364104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
3365104470Siwasakiknown ASL/AML problems.
3366102550Siwasaki
3367102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
3368126372Snjladded
3369126372Snjlsupport for _HOT (the critical suspend trip point).  The 'info'
3370126372Snjlfile now includes threshold/policy information, and allows
3371126372Snjlsetting
3372126372Snjlof _SCP (cooling preference) and _TZP (polling frequency) values
3373126372Snjlto the 'info' file. Examples: "echo tzp=5 > info" sets the
3374126372Snjlpolling
3375126372Snjlfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling
3376126372Snjlpreference to the passive/quiet mode (if supported by the ASL).
3377102550Siwasaki
3378104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
3379104470Siwasakiwhen loading the control method battery driver.
3380102550Siwasaki
3381102550Siwasaki ----------------------------------------
3382102550SiwasakiSummary of changes for this label: 09_20_01
3383102550Siwasaki
3384102550Siwasaki ACPI CA Core Subsystem:
3385102550Siwasaki
3386104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
3387104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
3388114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
3389114237Snjlsleeps.)
3390102550Siwasaki
3391104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
3392104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
3393104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
3394104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
3395102550Siwasaki
3396114237SnjlA local double-precision divide/modulo module has been added to
3397114237Snjlenhance portability to OS kernels where a 64-bit math library is
3398114237Snjlnot available.  The new module is "utmath.c".
3399102550Siwasaki
3400104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
3401114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
3402114237Snjl2K at 1860  bytes (1.82k)
3403102550Siwasaki
3404114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
3405114237Snjlroot table pointer was not mapped into a logical address
3406104470Siwasakiproperly.
3407102550Siwasaki
3408104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
3409126372Snjlthe
3410126372Snjlinterpreter code for the ASL Notify operator.
3411102550Siwasaki
3412102550SiwasakiFixed a problem where the use of the ASL Revision operator
3413114237Snjlreturned an error. This operator now returns the current version
3414114237Snjlof the ACPI CA core subsystem.
3415102550Siwasaki
3416114237SnjlFixed a problem where objects passed as control method parameters
3417114237Snjlto AcpiEvaluateObject were always deleted at method termination.
3418114237SnjlHowever, these objects may end up being stored into the namespace
3419114237Snjlby the called method.  The object reference count mechanism was
3420114237Snjlapplied to these objects instead of a force delete.
3421102550Siwasaki
3422114237SnjlFixed a problem where static strings or buffers (contained in the
3423114237SnjlAML code) that are declared as package elements within the ASL
3424114237Snjlcode could cause a fault because the interpreter would attempt to
3425114237Snjldelete them.  These objects are now marked with the "static
3426114237Snjlobject" flag to prevent any attempt to delete them.
3427102550Siwasaki
3428114237SnjlImplemented an interpreter optimization to use operands directly
3429114237Snjlfrom the state object instead of extracting the operands to local
3430114237Snjlvariables.  This reduces stack use and code size, and improves
3431114237Snjlperformance.
3432102550Siwasaki
3433102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
3434126372Snjlextra
3435126372Snjllayer of code.
3436102550Siwasaki
3437114237SnjlCurrent core subsystem library code sizes are shown below.  These
3438114237Snjlare the code and data sizes for the acpica.lib produced by the
3439114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3440126372Snjlinclude
3441126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3442126372Snjlincludes the full debug trace mechanism -- leading to a much
3443114237Snjllarger code and data size.  Note that these values will vary
3444114237Snjldepending on the efficiency of the compiler and the compiler
3445114237Snjloptions used during generation.
3446102550Siwasaki
3447102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
3448114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
3449114237SnjlTotal  (Previously 195K)
3450102550Siwasaki
3451102550SiwasakiLinux:
3452102550Siwasaki
3453114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
3454114237SnjlInteger objects are now 64 bits wide
3455102550Siwasaki
3456114237SnjlAll Acpi data types and structures are now in lower case.  Only
3457114237SnjlAcpi macros are upper case for differentiation.
3458102550Siwasaki
3459102550Siwasaki Documentation:
3460102550Siwasaki
3461102550SiwasakiChanges to the external interfaces as described above.
3462102550Siwasaki
3463102550Siwasaki ----------------------------------------
3464102550SiwasakiSummary of changes for this label: 08_31_01
3465102550Siwasaki
3466102550Siwasaki ACPI CA Core Subsystem:
3467102550Siwasaki
3468114237SnjlA bug with interpreter implementation of the ASL Divide operator
3469114237Snjlwas found and fixed.  The implicit function return value (not the
3470114237Snjlexplicit store operands) was returning the remainder instead of
3471114237Snjlthe quotient.  This was a longstanding bug and it fixes several
3472114237Snjlknown outstanding issues on various platforms.
3473102550Siwasaki
3474104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
3475104470Siwasakibeen further optimized for size.  There are 700 invocations of
3476126372Snjlthe
3477126372SnjlDEBUG_PRINT macro alone, so each optimization reduces the size of
3478126372Snjlthe debug version of the subsystem significantly.
3479102550Siwasaki
3480114237SnjlA stack trace mechanism has been implemented.  The maximum stack
3481114237Snjlusage is about 2K on 32-bit platforms.  The debugger command
3482126372Snjl"stat
3483126372Snjlstack" will display the current maximum stack usage.
3484102550Siwasaki
3485114237SnjlAll public symbols and global variables within the subsystem are
3486114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
3487114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
3488114237Snjlwith other kernel subsystems.
3489102550Siwasaki
3490114237SnjlMost of the internal fixed lookup tables have been moved into the
3491114237Snjlcode segment via the const operator.
3492102550Siwasaki
3493104470SiwasakiSeveral enhancements have been made to the interpreter to both
3494104470Siwasakireduce the code size and improve performance.
3495102550Siwasaki
3496114237SnjlCurrent core subsystem library code sizes are shown below.  These
3497114237Snjlare the code and data sizes for the acpica.lib produced by the
3498114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3499126372Snjlinclude
3500126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3501126372Snjlincludes the full debug trace mechanism which contains over 700
3502126372Snjlinvocations of the DEBUG_PRINT macro, 500 function entry macro
3503126372Snjlinvocations, and over 900 function exit macro invocations --
3504126372Snjlleading to a much larger code and data size.  Note that these
3505114237Snjlvalues will vary depending on the efficiency of the compiler and
3506114237Snjlthe compiler options used during generation.
3507102550Siwasaki
3508102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
3509102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
3510102550Siwasaki
3511102550Siwasaki Linux:
3512102550Siwasaki
3513104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
3514102550Siwasaki
3515102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
3516102550Siwasaki
3517102550Siwasaki ASL Compiler, version X2026:
3518102550Siwasaki
3519104470SiwasakiFixed a problem introduced in the previous label where the AML
3520104470Siwasakicode emitted for package objects produced packages with zero
3521104470Siwasakilength.
3522102550Siwasaki
3523102550Siwasaki ----------------------------------------
3524102550SiwasakiSummary of changes for this label: 08_16_01
3525102550Siwasaki
3526102550SiwasakiACPI CA Core Subsystem:
3527102550Siwasaki
3528114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
3529114237SnjlAML interpreter (These are already supported by the Intel ASL
3530114237Snjlcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
3531126372Snjland
3532126372SnjlToBuffer.  Support for 64-bit AML constants is implemented in the
3533126372SnjlAML parser, debugger, and disassembler.
3534102550Siwasaki
3535114237SnjlThe internal memory tracking mechanism (leak detection code) has
3536114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
3537114237Snjlblock is no longer allocated for each memory allocation), and now
3538114237Snjlsupports all of the internal object caches.
3539102550Siwasaki
3540114237SnjlThe data structures and code for the internal object caches have
3541114237Snjlbeen coelesced and optimized so that there is a single cache and
3542114237Snjlmemory list data structure and a single group of functions that
3543114237Snjlimplement generic cache management.  This has reduced the code
3544114237Snjlsize in both the debug and release versions of the subsystem.
3545102550Siwasaki
3546102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
3547126372Snjlreplaced
3548126372Snjlby ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
3549126372Snjldifferent, because it generates a single call to an internal
3550126372Snjlfunction.  This results in a savings of about 90 bytes per
3551126372Snjlinvocation, resulting in an overall code and data savings of
3552126372Snjlabout
3553126372Snjl16% in the debug version of the subsystem.
3554102550Siwasaki
3555102550Siwasaki Linux:
3556102550Siwasaki
3557114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
3558114237Snjlmachines.
3559102550Siwasaki
3560102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
3561102550Siwasaki
3562102550SiwasakiFurther tweaked source code Linuxization.
3563102550Siwasaki
3564102550SiwasakiOther minor fixes.
3565102550Siwasaki
3566102550Siwasaki ASL Compiler:
3567102550Siwasaki
3568114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
3569102550Siwasaki
3570114237SnjlFixed a problem where the optional length parameter for the ACPI
3571114237Snjl2.0 ToString operator.
3572102550Siwasaki
3573114237SnjlFixed multiple extraneous error messages when a syntax error is
3574114237Snjldetected within the declaration line of a control method.
3575102550Siwasaki
3576102550Siwasaki ----------------------------------------
3577102550SiwasakiSummary of changes for this label: 07_17_01
3578102550Siwasaki
3579102550SiwasakiACPI CA Core Subsystem:
3580102550Siwasaki
3581104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
3582114237SnjlACPI table via the ACPI signature.  The interface can be called
3583126372Snjlat
3584126372Snjlany time during kernel initialization, even before the kernel
3585114237Snjlvirtual memory manager is initialized and paging is enabled.
3586126372SnjlThis
3587126372Snjlallows kernel subsystems to obtain ACPI tables very early, even
3588126372Snjlbefore the ACPI CA subsystem is initialized.
3589102550Siwasaki
3590104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
3591104470Siwasakicould be resolved to the incorrect address under the following
3592114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
3593114237Snjlparent operation region is not defined on a DWORD boundary.
3594102550Siwasaki
3595114237SnjlFixed a problem where the interpreter is not being locked during
3596114237Snjlnamespace initialization (during execution of the _INI control
3597114237Snjlmethods), causing an error when an attempt is made to release it
3598114237Snjllater.
3599102550Siwasaki
3600104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
3601114237Snjlongoing throughout the rest of this year.  In this label, The Mod
3602114237Snjloperator is implemented.
3603102550Siwasaki
3604102550SiwasakiAdded a new data type to contain full PCI addresses named
3605102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
3606126372SnjlDevice,
3607126372Snjland Function values.
3608102550Siwasaki
3609102550Siwasaki Linux:
3610102550Siwasaki
3611102550SiwasakiEnhanced the Linux version of the source code to change most
3612102550Siwasakicapitalized ACPI type names to lowercase. For example, all
3613114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
3614114237Snjlresult in a large diff, but the change is strictly cosmetic and
3615114237Snjlaligns the CA code closer to the Linux coding standard.
3616102550Siwasaki
3617102550SiwasakiOSL Interfaces:
3618102550Siwasaki
3619114237SnjlThe interfaces to the PCI configuration space have been changed
3620126372Snjlto
3621126372Snjladd the PCI Segment number and to split the single 32-bit
3622126372Snjlcombined
3623126372SnjlDeviceFunction field into two 16-bit fields.  This was
3624114237Snjlaccomplished by moving the four values that define an address in
3625114237SnjlPCI configuration space (segment, bus, device, and function) to
3626114237Snjlthe new ACPI_PCI_ID structure.
3627102550Siwasaki
3628104470SiwasakiThe changes to the PCI configuration space interfaces led to a
3629104470Siwasakireexamination of the complete set of address space access
3630114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
3631114237Snjlinterfaces have proven difficult to maintain (any small change
3632114237Snjlmust be propagated across at least 6 interfaces) and do not
3633126372Snjleasily
3634126372Snjlallow for future expansion to 64 bits if necessary.  Also, on
3635126372Snjlsome
3636126372Snjlsystems, it would not be appropriate to demultiplex the access
3637126372Snjlwidth (8, 16, 32,or 64) before calling the OSL if the
3638114237Snjlcorresponding native OS interfaces contain a similar access width
3639114237Snjlparameter.  For these reasons, the 18 address space interfaces
3640114237Snjlhave been replaced by these 6 new ones:
3641102550Siwasaki
3642102550SiwasakiAcpiOsReadPciConfiguration
3643102550SiwasakiAcpiOsWritePciConfiguration
3644102550SiwasakiAcpiOsReadMemory
3645102550SiwasakiAcpiOsWriteMemory
3646102550SiwasakiAcpiOsReadPort
3647102550SiwasakiAcpiOsWritePort
3648102550Siwasaki
3649114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
3650114237Snjlto perform the platform and/or OS-specific actions necessary to
3651114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
3652114237Snjlinterface will simply call down to the CA core to perform the low-
3653114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
3654114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
3655114237Snjlremain OS and platform independent.
3656102550Siwasaki
3657104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
3658114237Snjl"function code and pointer" interface for various miscellaneous
3659114237Snjlsignals and notifications that must be made to the host OS.   The
3660114237Snjlfirst such signals are intended to support the ASL Fatal and
3661114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
3662114237Snjlinterface has been obsoleted.
3663102550Siwasaki
3664102550SiwasakiThe definition of the AcpiFormatException interface has been
3665114237Snjlchanged to simplify its use.  The caller no longer must supply a
3666114237Snjlbuffer to the call; A pointer to a const string is now returned
3667114237Snjldirectly.  This allows the call to be easily used in printf
3668114237Snjlstatements, etc. since the caller does not have to manage a local
3669114237Snjlbuffer.
3670102550Siwasaki
3671114237Snjl
3672102550Siwasaki ASL Compiler, Version X2025:
3673102550Siwasaki
3674114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
3675114237Snjland are fully functional.  They will work with all ACPI 1.0
3676114237Snjlinterpreters, since the operators are simply translated to
3677126372SnjlIf/Else
3678126372Snjlpairs.
3679102550Siwasaki
3680104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
3681104470Siwasakiwith 1.0 interpreters, for the same reason.
3682102550Siwasaki
3683114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
3684114237Snjlpackages have a separate opcode, and their size is determined by
3685114237Snjlthe interpreter at run-time.
3686102550Siwasaki
3687114237SnjlDocumentation The ACPI CA Programmer Reference has been updated
3688126372Snjlto
3689126372Snjlreflect the new interfaces and changes to existing interfaces.
3690102550Siwasaki
3691102550Siwasaki ------------------------------------------
3692102550SiwasakiSummary of changes for this label: 06_15_01
3693102550Siwasaki
3694102550Siwasaki ACPI CA Core Subsystem:
3695102550Siwasaki
3696102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
3697114237Snjlobject would get its byte address inadvertently rounded down to
3698114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
3699102550Siwasaki
3700102550Siwasaki ASL Compiler, version X2024:
3701102550Siwasaki
3702114237SnjlFixed a problem where the Switch() operator would either fault or
3703114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
3704114237Snjl2.0 operator is not yet implemented.
3705102550Siwasaki
3706114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
3707114237Snjltimings.
3708102550Siwasaki
3709114237SnjlImplementation of the CreateField operator automatically converts
3710114237Snjla reference to a named field within a resource descriptor from a
3711114237Snjlbyte offset to a bit offset if required.
3712102550Siwasaki
3713102550SiwasakiAdded some missing named fields from the resource descriptor
3714104470Siwasakisupport. These are the names that are automatically created by
3715126372Snjlthe
3716126372Snjlcompiler to reference fields within a descriptor.  They are only
3717126372Snjlvalid at compile time and are not passed through to the AML
3718114237Snjlinterpreter.
3719102550Siwasaki
3720104470SiwasakiResource descriptor named fields are now typed as Integers and
3721104470Siwasakisubject to compile-time typechecking when used in expressions.
3722102550Siwasaki
3723102550Siwasaki ------------------------------------------
3724102550SiwasakiSummary of changes for this label: 05_18_01
3725102550Siwasaki
3726102550Siwasaki ACPI CA Core Subsystem:
3727102550Siwasaki
3728114237SnjlFixed a couple of problems in the Field support code where bits
3729114237Snjlfrom adjacent fields could be returned along with the proper
3730126372Snjlfield
3731126372Snjlbits. Restructured the field support code to improve performance,
3732126372Snjlreadability and maintainability.
3733102550Siwasaki
3734114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
3735114237Snjlinto the output, saving hundreds of copies of procedure name
3736114237Snjlstrings within the source, shrinking the memory footprint of the
3737114237Snjldebug version of the core subsystem.
3738102550Siwasaki
3739102550Siwasaki Source Code Structure:
3740102550Siwasaki
3741104470SiwasakiThe source code directory tree was restructured to reflect the
3742114237Snjlcurrent organization of the component architecture.  Some files
3743114237Snjland directories have been moved and/or renamed.
3744102550Siwasaki
3745102550Siwasaki Linux:
3746102550Siwasaki
3747102550SiwasakiFixed leaking kacpidpc processes.
3748102550Siwasaki
3749102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
3750102550Siwasakiopened.
3751102550Siwasaki
3752102550Siwasaki ASL Compiler, version X2020:
3753102550Siwasaki
3754114237SnjlMemory allocation performance enhancement - over 24X compile time
3755114237Snjlimprovement on large ASL files.  Parse nodes and namestring
3756114237Snjlbuffers are now allocated from a large internal compiler buffer.
3757102550Siwasaki
3758102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
3759102550Siwasakispecified
3760102550Siwasaki
3761104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
3762126372Snjlfile
3763126372Snjlinstead of the console.
3764102550Siwasaki
3765102550Siwasaki"External" second parameter is now optional
3766102550Siwasaki
3767102550Siwasaki"ElseIf" syntax now properly allows the predicate
3768102550Siwasaki
3769102550SiwasakiLast operand to "Load" now recognized as a Target operand
3770102550Siwasaki
3771102550SiwasakiDebug object can now be used anywhere as a normal object.
3772102550Siwasaki
3773102550SiwasakiResourceTemplate now returns an object of type BUFFER
3774102550Siwasaki
3775102550SiwasakiEISAID now returns an object of type INTEGER
3776102550Siwasaki
3777102550Siwasaki"Index" now works with a STRING operand
3778102550Siwasaki
3779102550Siwasaki"LoadTable" now accepts optional parameters
3780102550Siwasaki
3781102550Siwasaki"ToString" length parameter is now optional
3782102550Siwasaki
3783102550Siwasaki"Interrupt (ResourceType," parse error fixed.
3784102550Siwasaki
3785104470Siwasaki"Register" with a user-defined region space parse error fixed
3786102550Siwasaki
3787114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
3788114237Snjlfixed
3789102550Siwasaki
3790102550Siwasaki"Revision" is now an object of type INTEGER.
3791102550Siwasaki
3792102550Siwasaki
3793102550Siwasaki
3794102550Siwasaki------------------------------------------
3795102550SiwasakiSummary of changes for this label: 05_02_01
3796102550Siwasaki
3797102550SiwasakiLinux:
3798102550Siwasaki
3799102550Siwasaki/proc/acpi/event now blocks properly.
3800102550Siwasaki
3801102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
3802102550Siwasaki/proc/acpi/dsdt.
3803102550Siwasaki
3804102550Siwasaki ACPI CA Core Subsystem:
3805102550Siwasaki
3806104470SiwasakiFixed a problem introduced in the previous label where some of
3807126372Snjlthe
3808126372Snjl"small" resource descriptor types were not recognized.
3809102550Siwasaki
3810102550SiwasakiImproved error messages for the case where an ASL Field is
3811126372Snjloutside
3812126372Snjlthe range of the parent operation region.
3813102550Siwasaki
3814102550Siwasaki ASL Compiler, version X2018:
3815102550Siwasaki
3816102550SiwasakiAdded error detection for ASL Fields that extend beyond the
3817126372Snjllength
3818126372Snjlof the parent operation region (only if the length of the region
3819126372Snjlis known at compile time.)  This includes fields that have a
3820126372Snjlminimum access width that is smaller than the parent region, and
3821126372Snjlindividual field units that are partially or entirely beyond the
3822126372Snjlextent of the parent.
3823102550Siwasaki
3824102550Siwasaki
3825102550Siwasaki
3826102550Siwasaki------------------------------------------
3827102550SiwasakiSummary of changes for this label: 04_27_01
3828102550Siwasaki
3829102550Siwasaki ACPI CA Core Subsystem:
3830102550Siwasaki
3831104470SiwasakiFixed a problem where the namespace mutex could be released at
3832126372Snjlthe
3833126372Snjlwrong time during execution of AcpiRemoveAddressSpaceHandler.
3834102550Siwasaki
3835104470SiwasakiAdded optional thread ID output for debug traces, to simplify
3836114237Snjldebugging of multiple threads.  Added context switch notification
3837114237Snjlwhen the debug code realizes that a different thread is now
3838114237Snjlexecuting ACPI code.
3839102550Siwasaki
3840114237SnjlSome additional external data types have been prefixed with the
3841114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
3842114237SnjlThe data types affected are the external callback typedefs -
3843126372Snjle.g.,
3844126372SnjlWALK_CALLBACK becomes ACPI_WALK_CALLBACK.
3845102550Siwasaki
3846102550Siwasaki Linux:
3847102550Siwasaki
3848102550SiwasakiFixed an issue with the OSL semaphore implementation where a
3849102550Siwasakithread was waking up with an error from receiving a SIGCHLD
3850102550Siwasakisignal.
3851102550Siwasaki
3852114237SnjlLinux version of ACPI CA now uses the system C library for string
3853114237Snjlmanipulation routines instead of a local implementation.
3854102550Siwasaki
3855102550SiwasakiCleaned up comments and removed TBDs.
3856102550Siwasaki
3857102550Siwasaki ASL Compiler, version X2017:
3858102550Siwasaki
3859102550SiwasakiEnhanced error detection and reporting for all file I/O
3860102550Siwasakioperations.
3861102550Siwasaki
3862102550Siwasaki Documentation:
3863102550Siwasaki
3864102550SiwasakiProgrammer Reference updated to version 1.06.
3865102550Siwasaki
3866102550Siwasaki
3867102550Siwasaki
3868102550Siwasaki------------------------------------------
3869102550SiwasakiSummary of changes for this label: 04_13_01
3870102550Siwasaki
3871102550Siwasaki ACPI CA Core Subsystem:
3872102550Siwasaki
3873102550SiwasakiRestructured support for BufferFields and RegionFields.
3874104470SiwasakiBankFields support is now fully operational.  All known 32-bit
3875114237Snjllimitations on field sizes have been removed.  Both BufferFields
3876114237Snjland (Operation) RegionFields are now supported by the same field
3877114237Snjlmanagement code.
3878102550Siwasaki
3879114237SnjlResource support now supports QWORD address and IO resources. The
3880114237Snjl16/32/64 bit address structures and the Extended IRQ structure
3881114237Snjlhave been changed to properly handle Source Resource strings.
3882102550Siwasaki
3883114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
3884114237Snjlcondition internally and must never be returned by
3885126372SnjlAcpiOsThreadId.
3886126372SnjlThis reserved value was changed from 0 since Unix systems allow a
3887126372Snjlthread ID of 0.
3888102550Siwasaki
3889102550SiwasakiLinux:
3890102550Siwasaki
3891102550SiwasakiDriver code reorganized to enhance portability
3892102550Siwasaki
3893102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
3894102550Siwasaki
3895102550SiwasakiFixed the EC driver to honor _GLK.
3896102550Siwasaki
3897102550SiwasakiASL Compiler, version X2016:
3898102550Siwasaki
3899114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
3900114237Snjladdress space was set to 0, not 0x7f as it should be.
3901102550Siwasaki
3902102550Siwasaki ------------------------------------------
3903102550SiwasakiSummary of changes for this label: 03_13_01
3904102550Siwasaki
3905102550Siwasaki ACPI CA Core Subsystem:
3906102550Siwasaki
3907104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
3908104470Siwasakipresent.
3909102550Siwasaki
3910102550SiwasakiNotify handler fix - notifies are deferred until the parent
3911126372Snjlmethod
3912126372Snjlcompletes execution.  This fixes the "mutex already acquired"
3913126372Snjlissue seen occasionally.
3914102550Siwasaki
3915104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
3916114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
3917114237Snjlconvert "result-to-target-type" implementation has been removed
3918114237Snjlfor stores to method Args and Locals.  Source operand conversion
3919114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
3920114237Snjlspecification pending.
3921102550Siwasaki
3922104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
3923104470Siwasakilength.
3924102550Siwasaki
3925102550SiwasakiFix for compiler warnings for 64-bit compiles.
3926102550Siwasaki
3927102550Siwasaki Linux:
3928102550Siwasaki
3929102550Siwasaki/proc output aligned for easier parsing.
3930102550Siwasaki
3931102550SiwasakiRelease-version compile problem fixed.
3932102550Siwasaki
3933104470SiwasakiNew kernel configuration options documented in Configure.help.
3934102550Siwasaki
3935102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
3936102550Siwasakicontext" message.
3937102550Siwasaki
3938102550Siwasaki OSPM:
3939102550Siwasaki
3940102550SiwasakiPower resource driver integrated with bus manager.
3941102550Siwasaki
3942102550SiwasakiFixed kernel fault during active cooling for thermal zones.
3943102550Siwasaki
3944102550SiwasakiSource Code:
3945102550Siwasaki
3946102550SiwasakiThe source code tree has been restructured.
3947102550Siwasaki
3948102550Siwasaki
3949102550Siwasaki
3950102550Siwasaki------------------------------------------
3951102550SiwasakiSummary of changes for this label: 03_02_01
3952102550Siwasaki
3953102550Siwasaki Linux OS Services Layer (OSL):
3954102550Siwasaki
3955102550SiwasakiMajor revision of all Linux-specific code.
3956102550Siwasaki
3957102550SiwasakiModularized all ACPI-specific drivers.
3958102550Siwasaki
3959102550SiwasakiAdded new thermal zone and power resource drivers.
3960102550Siwasaki
3961114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
3962102550Siwasaki
3963102550SiwasakiNew kernel configuration options.
3964102550Siwasaki
3965102550Siwasaki Linux known issues:
3966102550Siwasaki
3967114237SnjlNew kernel configuration options not documented in Configure.help
3968114237Snjlyet.
3969102550Siwasaki
3970114237Snjl
3971102550SiwasakiModule dependencies not currently implemented. If used, they
3972102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
3973102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
3974102550Siwasaki
3975102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
3976102550Siwasaki
3977102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
3978102550Siwasaki
3979104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
3980104470Siwasakimessage.
3981102550Siwasaki
3982104470SiwasakiSome systems may fail with "execution mutex already acquired"
3983104470Siwasakimessage.
3984102550Siwasaki
3985102550Siwasaki ACPI CA Core Subsystem:
3986102550Siwasaki
3987114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
3988114237Snjlfor the  deadlock detection code. Defined to return a non-zero,
3989126372Snjl32-
3990126372Snjlbit thread ID for the currently executing thread.  May be a non-
3991126372Snjlzero constant integer on single-thread systems.
3992102550Siwasaki
3993104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
3994126372SnjlWe
3995126372Snjlmay add conditional compilation for this code (debug only) later.
3996102550Siwasaki
3997104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
3998114237Snjlincludes multiple acquires/releases by owner and support for the
3999114237SnjlMutex SyncLevel parameter.
4000102550Siwasaki
4001102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
4002104470SiwasakiMutexes that have been acquired but not released when a thread
4003114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
4004114237Snjl("All mutexes must be released when an invocation exits") and
4005114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
4006114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
4007114237Snjlcontinues to misbehave (which it will).
4008102550Siwasaki
4009104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
4010104470Siwasakisupport.
4011102550Siwasaki
4012104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
4013114237Snjlspec does in fact allow recursive method calls.)  The number of
4014114237Snjlrecursive calls is subject to the restrictions imposed by the
4015114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
4016104470Siwasakiparameter.
4017102550Siwasaki
4018102550SiwasakiImplemented support for the SyncLevel parameter for control
4019102550Siwasakimethods (ACPI 2.0 feature)
4020102550Siwasaki
4021114237SnjlFixed a deadlock problem when multiple threads attempted to use
4022114237Snjlthe interpreter.
4023102550Siwasaki
4024102550SiwasakiFixed a problem where the string length of a String package
4025102550Siwasakielement was not always set in a package returned from
4026102550SiwasakiAcpiEvaluateObject.
4027102550Siwasaki
4028114237SnjlFixed a problem where the length of a String package element was
4029114237Snjlnot always included in the length of the overall package returned
4030114237Snjlfrom AcpiEvaluateObject.
4031102550Siwasaki
4032102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
4033102550Siwasakimanager.  This manager keeps a list of all outstanding
4034114237Snjlallocations, and can therefore detect memory leaks and attempts
4035126372Snjlto
4036126372Snjlfree memory blocks more than once. Useful for code such as the
4037114237Snjlpower manager, etc.  May not be appropriate for device drivers.
4038114237SnjlPerformance with the debug code enabled is slow.
4039102550Siwasaki
4040102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
4041102550Siwasaki
4042102550Siwasaki ASL Compiler Version X2015:
4043102550Siwasaki
4044102550SiwasakiIntegrated changes to allow the compiler to be generated on
4045102550Siwasakimultiple platforms.
4046102550Siwasaki
4047102550SiwasakiLinux makefile added to generate the compiler on Linux
4048102550Siwasaki
4049102550Siwasaki Source Code:
4050102550Siwasaki
4051102550SiwasakiAll platform-specific headers have been moved to their own
4052102550Siwasakisubdirectory, Include/Platform.
4053102550Siwasaki
4054102550SiwasakiNew source file added, Interpreter/ammutex.c
4055102550Siwasaki
4056102550SiwasakiNew header file, Include/acstruct.h
4057102550Siwasaki
4058102550Siwasaki Documentation:
4059102550Siwasaki
4060114237SnjlThe programmer reference has been updated for the following new
4061114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
4062102550Siwasaki
4063102550Siwasaki ------------------------------------------
4064102550SiwasakiSummary of changes for this label: 02_08_01
4065102550Siwasaki
4066102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
4067104470Siwasakiincorrectly returned if the return resource buffer was larger
4068126372Snjlthan
4069126372Snjlthe actual data (in the resource interfaces).
4070102550Siwasaki
4071114237SnjlReferences to named objects within packages are resolved to the
4072114237Snjlfull pathname string before packages are returned directly (via
4073114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
4074114237Snjlinterfaces.
4075102550Siwasaki
4076102550SiwasakiLinux OS Services Layer (OSL):
4077102550Siwasaki
4078102550SiwasakiImproved /proc battery interface.
4079102550Siwasaki
4080102550Siwasaki
4081104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
4082102550Siwasaki
4083102550SiwasakiASL Compiler Version X2014:
4084102550Siwasaki
4085114237SnjlAll defined method arguments can now be used as local variables,
4086114237Snjlincluding the ones that are not actually passed in as parameters.
4087114237SnjlThe compiler tracks initialization of the arguments and issues an
4088114237Snjlexception if they are used without prior assignment (just like
4089114237Snjllocals).
4090102550Siwasaki
4091104470SiwasakiThe -o option now specifies a filename prefix that is used for
4092126372Snjlall
4093126372Snjloutput files, including the AML output file.  Otherwise, the
4094114237Snjldefault behavior is as follows:  1) the AML goes to the file
4095114237Snjlspecified in the DSDT.  2) all other output files use the input
4096114237Snjlsource filename as the base.
4097102550Siwasaki
4098102550Siwasaki ------------------------------------------
4099102550SiwasakiSummary of changes for this label: 01_25_01
4100102550Siwasaki
4101114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
4102114237Snjlstore support within the  interpreter.  This includes support for
4103114237Snjlthe Store operator as well  as any ASL operators that include a
4104114237Snjltarget operand.
4105102550Siwasaki
4106102550SiwasakiPartially implemented support for Implicit Result-to-Target
4107114237Snjlconversion. This is when a result object is converted on the fly
4108114237Snjlto the type of  an existing target object.  Completion of this
4109114237Snjlsupport is pending  further analysis of the ACPI specification
4110114237Snjlconcerning this matter.
4111102550Siwasaki
4112114237SnjlCPU-specific code has been removed from the subsystem (hardware
4113114237Snjldirectory).
4114102550Siwasaki
4115102550SiwasakiNew Power Management Timer functions added
4116102550Siwasaki
4117114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
4118114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
4119102550Siwasaki
4120102550SiwasakiFixed C2 and C3 latency calculations.
4121102550Siwasaki
4122102550Siwasaki
4123114237SnjlWe no longer use the compilation date for the version message on
4124114237Snjlinitialization, but retrieve the version from
4125102550SiwasakiAcpiGetSystemInfo().
4126102550Siwasaki
4127102550SiwasakiIncorporated for fix Sony VAIO machines.
4128102550Siwasaki
4129104470SiwasakiDocumentation:  The Programmer Reference has been updated and
4130104470Siwasakireformatted.
4131102550Siwasaki
4132102550Siwasaki
4133102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
4134102550Siwasakinumbering and error reporting could get out  of sync in the
4135102550Siwasakipresence of multiple include files.
4136102550Siwasaki
4137102550Siwasaki ------------------------------------------
4138102550SiwasakiSummary of changes for this label: 01_15_01
4139102550Siwasaki
4140102550SiwasakiCore ACPI CA Subsystem:
4141102550Siwasaki
4142114237SnjlImplemented support for type conversions in the execution of the
4143114237SnjlASL  Concatenate operator (The second operand is converted to
4144114237Snjlmatch the type  of the first operand before concatenation.)
4145102550Siwasaki
4146102550SiwasakiSupport for implicit source operand conversion is partially
4147114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
4148114237SnjlString are freely  interchangeable for most ASL operators and are
4149114237Snjlconverted by the interpreter  on the fly as required.  Implicit
4150114237SnjlTarget operand conversion (where the  result is converted to the
4151114237Snjltarget type before storing) is not yet implemented.
4152102550Siwasaki
4153102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
4154102550Siwasaki
4155114237SnjlProblem fixed where a field read on an aligned field could cause
4156126372Snjla
4157126372Snjlread  past the end of the field.
4158102550Siwasaki
4159114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
4160114237Snjldoes not return a value, but the caller expects one.  (The ASL
4161114237Snjlcompiler flags this as a warning.)
4162102550Siwasaki
4163102550SiwasakiASL Compiler:
4164102550Siwasaki
4165102550SiwasakiVersion X2011:
4166102550Siwasaki1. Static typechecking of all operands is implemented. This
4167102550Siwasakiprevents the use of invalid objects (such as using a Package
4168126372Snjlwhere
4169126372Snjlan Integer is required) at compile time instead of at interpreter
4170126372Snjlrun-time.
4171114237Snjl2. The ASL source line is printed with ALL errors and warnings.
4172102550Siwasaki3. Bug fix for source EOF without final linefeed.
4173102550Siwasaki4. Debug option is split into a parse trace and a namespace
4174102550Siwasakitrace.
4175102550Siwasaki5. Namespace output option (-n) includes initial values for
4176102550Siwasakiintegers and strings.
4177102550Siwasaki6. Parse-only option added for quick syntax checking.
4178102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
4179102550Siwasaki
4180102550SiwasakiVersion X2012:
4181102550Siwasaki1. Relaxed typechecking to allow interchangeability between
4182114237Snjlstrings, integers, and buffers.  These types are now converted by
4183114237Snjlthe interpreter at runtime.
4184114237Snjl2. Compiler reports time taken by each internal subsystem in the
4185114237Snjldebug         output file.
4186102550Siwasaki
4187102550Siwasaki
4188102550Siwasaki ------------------------------------------
4189102550SiwasakiSummary of changes for this label: 12_14_00
4190102550Siwasaki
4191102550SiwasakiASL Compiler:
4192102550Siwasaki
4193104470SiwasakiThis is the first official release of the compiler. Since the
4194104470Siwasakicompiler requires elements of the Core Subsystem, this label
4195104470Siwasakisynchronizes everything.
4196102550Siwasaki
4197102550Siwasaki------------------------------------------
4198102550SiwasakiSummary of changes for this label: 12_08_00
4199102550Siwasaki
4200102550Siwasaki
4201114237SnjlFixed a problem where named references within the ASL definition
4202114237Snjlof both OperationRegions and CreateXXXFields did not work
4203114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4204114237Snjlinitialization of the region/field. This is similar (but not
4205114237Snjlrelated internally) to the problem that was fixed in the last
4206114237Snjllabel.
4207114237Snjl
4208102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
4209102550Siwasakifunctions ToBCD and FromBCD.
4210102550Siwasaki
4211102550SiwasakiUpdated all legal headers to include "2000" in the copyright
4212102550Siwasakiyears.
4213102550Siwasaki
4214102550Siwasaki ------------------------------------------
4215102550SiwasakiSummary of changes for this label: 12_01_00
4216102550Siwasaki
4217102550SiwasakiFixed a problem where method invocations within the ASL
4218126372Snjldefinition
4219126372Snjlof both OperationRegions and CreateXXXFields did not work
4220126372Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4221114237Snjlinitialization of the region/field:
4222102550Siwasaki
4223114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
4224114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
4225114237Snjl(0x3005)
4226102550Siwasaki
4227102550SiwasakiFixed a problem where operators with more than one nested
4228104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
4229114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
4230114237Snjlproblem that has gone unnoticed until now.
4231102550Siwasaki
4232102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
4233102550Siwasaki
4234114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
4235114237Snjlprevious build (The prefix part of a relative path was handled
4236114237Snjlincorrectly).
4237102550Siwasaki
4238114237SnjlFixed a problem where Operation Region initialization failed if
4239114237Snjlthe operation region name was a "namepath" instead of a simple
4240114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
4241102550Siwasaki
4242114237SnjlFixed a problem where an assignment to a local variable via the
4243114237Snjlindirect RefOf mechanism only worked for the first such
4244102550Siwasakiassignment.  Subsequent assignments were ignored.
4245102550Siwasaki
4246102550Siwasaki ------------------------------------------
4247102550SiwasakiSummary of changes for this label: 11_15_00
4248102550Siwasaki
4249104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
4250126372Snjlthe
4251126372Snjl0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
4252126372Snjltables,
4253126372Snjlthe AML  interpreter does NOT have support for the new 2.0 ASL
4254126372Snjlgrammar terms at this time.
4255102550Siwasaki
4256104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
4257126372Snjl2.0
4258126372SnjlFADT.
4259102550Siwasaki
4260104470SiwasakiAll physical memory addresses across all platforms are now 64
4261126372Snjlbits
4262126372Snjlwide. Logical address width remains dependent on the platform
4263126372Snjl(i.e., "void *").
4264102550Siwasaki
4265114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
4266102550Siwasaki
4267114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
4268114237Snjl2.0 specification.
4269102550Siwasaki
4270104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
4271104470Siwasakirevision number less than 2 use 32-bit integers only.
4272102550Siwasaki
4273114237SnjlFixed a problem where the evaluation of OpRegion operands did not
4274114237Snjlalways resolve them to numbers properly.
4275102550Siwasaki
4276102550Siwasaki------------------------------------------
4277102550SiwasakiSummary of changes for this label: 10_20_00
4278102550Siwasaki
4279114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
4280114237SnjlCBN_ OpRegions when the _STA returns 0x8.
4281102550Siwasaki
4282104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
4283104470Siwasakivalues before a package object is returned
4284102550Siwasaki
4285104470SiwasakiFix for method call as predicate to if/while construct causing
4286104470Siwasakiincorrect if/while behavior
4287102550Siwasaki
4288114237SnjlFix for Else block package lengths sometimes calculated wrong (if
4289114237Snjlblock > 63 bytes)
4290102550Siwasaki
4291102550SiwasakiFix for Processor object length field, was always zero
4292102550Siwasaki
4293102550SiwasakiTable load abort if FACP sanity check fails
4294102550Siwasaki
4295102550SiwasakiFix for problem with Scope(name) if name already exists
4296102550Siwasaki
4297102550SiwasakiWarning emitted if a named object referenced cannot be found
4298102550Siwasaki(resolved) during method execution.
4299102550Siwasaki
4300102550Siwasaki
4301102550Siwasaki
4302102550Siwasaki
4303102550Siwasaki
4304102550Siwasaki------------------------------------------
4305102550SiwasakiSummary of changes for this label: 9_29_00
4306102550Siwasaki
4307114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
4308114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
4309114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
4310114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
4311114237SnjlAcpiLoadTables
4312102550Siwasaki
4313104470SiwasakiNote: These interface changes require changes to all existing
4314104470SiwasakiOSDs
4315102550Siwasaki
4316114237SnjlThe PCI_Config default address space handler is always installed
4317114237Snjlat the root namespace object.
4318102550Siwasaki
4319102550Siwasaki-------------------------------------------
4320102550SiwasakiSummary of changes for this label: 09_15_00
4321102550Siwasaki
4322102550SiwasakiThe new initialization architecture is implemented.  New
4323114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
4324114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
4325114237Snjl(Namespace is automatically loaded when a table is loaded)
4326102550Siwasaki
4327104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
4328126372Snjlfrom
4329126372Snjl52 bytes to 32 bytes.  There is usually one of these for every
4330126372Snjlnamespace object, so the memory savings is significant.
4331102550Siwasaki
4332114237SnjlImplemented just-in-time evaluation of the CreateField operators.
4333102550Siwasaki
4334102550SiwasakiBug fixes for IA-64 support have been integrated.
4335102550Siwasaki
4336102550SiwasakiAdditional code review comments have been implemented
4337102550Siwasaki
4338104470SiwasakiThe so-called "third pass parse" has been replaced by a final
4339126372Snjlwalk
4340126372Snjlthrough the namespace to initialize all operation regions
4341126372Snjl(address
4342126372Snjlspaces) and fields that have not yet been initialized during the
4343126372Snjlexecution of the various _INI and REG methods.
4344102550Siwasaki
4345102550SiwasakiNew file - namespace/nsinit.c
4346102550Siwasaki
4347102550Siwasaki-------------------------------------------
4348102550SiwasakiSummary of changes for this label: 09_01_00
4349102550Siwasaki
4350104470SiwasakiNamespace manager data structures have been reworked to change
4351126372Snjlthe
4352126372Snjlprimary  object from a table to a single object.  This has
4353104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
4354126372Snjland
4355126372Snjl2X overall in the ACPI CA subsystem.
4356102550Siwasaki
4357102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
4358102550Siwasakiinadvertently left  commented out.
4359102550Siwasaki
4360114237SnjlReduced the warning count when generating the source with the GCC
4361114237Snjlcompiler.
4362102550Siwasaki
4363102550SiwasakiRevision numbers added to each module header showing the
4364104470SiwasakiSourceSafe version of the file.  Please refer to this version
4365114237Snjlnumber when giving us feedback or comments on individual modules.
4366102550Siwasaki
4367114237SnjlThe main object types within the subsystem have been renamed to
4368114237Snjlclarify their  purpose:
4369102550Siwasaki
4370102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
4371102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
4372102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
4373102550Siwasaki
4374114237SnjlNOTE: no changes to the initialization sequence are included in
4375114237Snjlthis label.
4376102550Siwasaki
4377102550Siwasaki-------------------------------------------
4378102550SiwasakiSummary of changes for this label: 08_23_00
4379102550Siwasaki
4380102550SiwasakiFixed problem where TerminateControlMethod was being called
4381102550Siwasakimultiple times per  method
4382102550Siwasaki
4383114237SnjlFixed debugger problem where single stepping caused a semaphore
4384126372Snjlto
4385126372Snjlbe  oversignalled
4386102550Siwasaki
4387104470SiwasakiImproved performance through additional parse object caching -
4388104470Siwasakiadded  ACPI_EXTENDED_OP type
4389102550Siwasaki
4390102550Siwasaki-------------------------------------------
4391102550SiwasakiSummary of changes for this label: 08_10_00
4392102550Siwasaki
4393102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
4394102550Siwasakicomplete parse trees  for ACPI tables and control methods.
4395114237SnjlInstead, parse subtrees are created and  then deleted as soon as
4396114237Snjlthey are processed (Either entered into the namespace or
4397126372Snjlexecuted
4398126372Snjlby the interpreter).  This reduces the use of dynamic kernel
4399126372Snjlmemory  significantly. (about 10X)
4400102550Siwasaki
4401114237SnjlException codes broken into classes and renumbered.  Be sure to
4402114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
4403114237Snjlhave to renumber the codes  again now that they are split into
4404114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
4405114237Snjlinternal).
4406102550Siwasaki
4407104470SiwasakiFixed some additional alignment issues in the Resource Manager
4408104470Siwasakisubcomponent
4409102550Siwasaki
4410114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
4411114237Snjlseveral places  where mutexes/semaphores were being unlocked
4412114237Snjlwithout a corresponding lock  operation.  There are no known
4413114237Snjlsemaphore or mutex "leaks" at this time.
4414102550Siwasaki
4415114237SnjlFixed the case where an ASL Return operator is used to return an
4416114237Snjlunnamed  package.
4417102550Siwasaki
4418102550Siwasaki-------------------------------------------
4419102550SiwasakiSummary of changes for this label: 07_28_00
4420102550Siwasaki
4421102550SiwasakiFixed a problem with the way addresses were calculated in
4422114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
4423114237Snjlmanifested itself when a Field was  created with WordAccess or
4424114237SnjlDwordAccess, but the field unit defined within the  Field was
4425126372Snjlless
4426126372Snjlthan a Word or Dword.
4427102550Siwasaki
4428102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
4429104470Siwasakioperands off of the  operand stack to display information. The
4430114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
4431114237Snjlaccessing an operand stack with two or more  operands.
4432102550Siwasaki
4433114237SnjlFixed a problem with the PCI configuration space handlers where
4434114237Snjlcontext was  getting confused between accesses. This required a
4435114237Snjlchange to the generic address  space handler and address space
4436114237Snjlsetup definitions. Handlers now get both a  global handler
4437126372Snjlcontext
4438126372Snjl(this is the one passed in by the user when executing
4439114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
4440114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
4441114237Snjl_BBN values associated with a  specific region). The generic
4442114237Snjlfunction definitions have changed to the  following:
4443102550Siwasaki
4444114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
4445114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
4446104470Siwasaki*HandlerContext, // This used to be void *Context void
4447102550Siwasaki*RegionContext); // This is an additional parameter
4448102550Siwasaki
4449102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
4450102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
4451102550Siwasaki**RegionContext); // This used to be **ReturnContext
4452102550Siwasaki
4453102550Siwasaki-------------------------------------------
4454102550SiwasakiSummary of changes for this label: 07_21_00
4455102550Siwasaki
4456102550SiwasakiMajor file consolidation and rename.  All files within the
4457102550Siwasakiinterpreter have been  renamed as well as most header files.
4458126372SnjlThis
4459126372Snjlwas done to prevent collisions with  existing files in the host
4460126372SnjlOSs -- filenames such as "config.h" and "global.h"  seem to be
4461126372Snjlquite common.  The VC project files have been updated.  All
4462114237Snjlmakefiles  will require modification.
4463102550Siwasaki
4464114237SnjlThe parser/interpreter integration continues in Phase 5 with the
4465114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
4466114237Snjltwice) for each table;  This  avoids the construction of a huge
4467114237Snjlparse tree and therefore reduces the amount of  dynamic memory
4468114237Snjlrequired by the subsystem.  Greater use of the parse object cache
4469114237Snjlmeans that performance is unaffected.
4470102550Siwasaki
4471102550SiwasakiMany comments from the two code reviews have been rolled in.
4472102550Siwasaki
4473102550SiwasakiThe 64-bit alignment support is complete.
4474102550Siwasaki
4475102550Siwasaki-------------------------------------------
4476102550SiwasakiSummary of changes for this label: 06_30_00
4477102550Siwasaki
4478114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
4479114237Snjlwe've added  support in the source code for 80 column output
4480114237Snjldevices.  The code is now mostly  constrained to 80 columns or
4481114237Snjlless to support environments and editors that 1)  cannot display
4482114237Snjlor print more than 80 characters on a single line, and 2) cannot
4483114237Snjldisable line wrapping.
4484102550Siwasaki
4485104470SiwasakiA major restructuring of the namespace data structure has been
4486104470Siwasakicompleted.  The  result is 1) cleaner and more
4487114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
4488114237Snjlin the dynamic memory requirement for each named ACPI  object
4489114237Snjl(almost half).
4490102550Siwasaki
4491102550Siwasaki-------------------------------------------
4492102550SiwasakiSummary of changes for this label: 06_23_00
4493102550Siwasaki
4494114237SnjlLinux support has been added.  In order to obtain approval to get
4495114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
4496114237Snjlquite a few changes to the  base subsystem that will affect all
4497114237Snjlusers (all the changes are generic and OS- independent).  The
4498114237Snjleffects of these global changes have been somewhat far  reaching.
4499114237SnjlFiles have been merged and/or renamed and interfaces have been
4500114237Snjlrenamed.   The major changes are described below.
4501102550Siwasaki
4502102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
4503102550Siwasakipollution/confusion  within our target kernels.  All OSD
4504114237Snjlinterfaces must be modified to match the new  naming convention.
4505102550Siwasaki
4506102550SiwasakiFiles merged across the subsystem.  A number of the smaller
4507126372Snjlsource
4508126372Snjland header  files have been merged to reduce the file count and
4509126372Snjlincrease the density of the  existing files.  There are too many
4510126372Snjlto list here.  In general, makefiles that  call out individual
4511126372Snjlfiles will require rebuilding.
4512102550Siwasaki
4513104470SiwasakiInterpreter files renamed.  All interpreter files now have the
4514104470Siwasakiprefix am*  instead of ie* and is*.
4515102550Siwasaki
4516104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
4517114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
4518114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
4519114237Snjl"external interface" or xface or xf in the  filenames.j
4520102550Siwasaki
4521102550Siwasaki
4522114237SnjlAll manifest constants have been forced to upper case (some were
4523114237Snjlmixed case.)   Also, the string "ACPI_" has been prepended to
4524126372Snjlmany
4525126372Snjl(not all) of the constants,  typedefs, and structs.
4526102550Siwasaki
4527102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
4528102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
4529102550Siwasaki
4530102550SiwasakiAll other globals within the subsystem are now prefixed with
4531102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
4532114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
4533114237Snjltwo-letter abbreviation for the subcomponent  remains after
4534126372Snjl"Acpi"
4535126372Snjl- for example, CmCallocate became AcpiCmCallocate.
4536102550Siwasaki
4537102550SiwasakiAdded a source code translation/conversion utility.  Used to
4538114237Snjlgenerate the Linux  source code, it can be modified to generate
4539114237Snjlother types of source as well. Can  also be used to cleanup
4540114237Snjlexisting source by removing extraneous spaces and blank  lines.
4541114237SnjlFound in tools/acpisrc/*
4542102550Siwasaki
4543102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
4544102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
4545102550Siwasaki
4546114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
4547114237SnjlWhen set to  one, this indicates that the caller wants to use the
4548114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
4549114237Snjlboth types.  However, implementers of this  call may want to use
4550114237Snjldifferent OS primitives depending on the type of semaphore
4551114237Snjlrequested.  For example, some operating systems provide separate
4552114237Snjl"mutex" and  "semaphore" interfaces - where the mutex interface
4553126372Snjlis
4554126372Snjlmuch faster because it  doesn't have all the overhead of a full
4555126372Snjlsemaphore implementation.
4556102550Siwasaki
4557104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
4558114237Snjladdress space can  block forever if it is the first access to the
4559114237Snjlspace.
4560102550Siwasaki
4561102550Siwasaki-------------------------------------------
4562102550SiwasakiSummary of changes for this label: 06_02_00
4563102550Siwasaki
4564102550SiwasakiSupport for environments that cannot handle unaligned data
4565114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
4566114237Snjlhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
4567126372Snjlhas
4568126372Snjlbeen added (via configurable macros) in  these three areas: -
4569114237SnjlTransfer of data from the raw AML byte stream is done via byte
4570114237Snjlmoves instead of    word/dword/qword moves. - External objects
4571126372Snjlare
4572126372Snjlaligned within the user buffer, including package   elements (sub-
4573126372Snjlobjects). - Conversion of name strings to UINT32 Acpi Names is
4574126372Snjlnow
4575126372Snjldone byte-wise.
4576102550Siwasaki
4577102550SiwasakiThe Store operator was modified to mimic Microsoft's
4578102550Siwasakiimplementation when storing  to a Buffer Field.
4579102550Siwasaki
4580102550SiwasakiAdded a check of the BM_STS bit before entering C3.
4581102550Siwasaki
4582114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
4583114237Snjlfile, cmeval.c  subsumes the functionality.
4584102550Siwasaki
4585102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
4586102550Siwasakimakefile is under  the acpiexec directory.
4587