changes.txt revision 129684
1117521Snjl----------------------------------------
2129684Snjl14 May 2004.  Summary of changes for version 20040514:
3129684Snjl
4129684Snjl1) ACPI CA Core Subsystem:
5129684Snjl
6129684SnjlFixed a problem where hardware GPE enable bits sometimes not set
7129684Snjlproperly during and after GPE method execution.  Result of 04/27
8129684Snjlchanges.
9129684Snjl
10129684SnjlRemoved extra "clear all GPEs" when sleeping/waking.
11129684Snjl
12129684SnjlRemoved AcpiHwEnableGpe and AcpiHwDisableGpe, replaced by the
13129684Snjlsingle AcpiHwWriteGpeEnableReg. Changed a couple of calls to the
14129684Snjlfunctions above to the new AcpiEv* calls as appropriate.
15129684Snjl
16129684SnjlACPI_OS_NAME was removed from the OS-specific headers.  The
17129684Snjldefault name is now "Microsoft Windows NT" for maximum
18129684Snjlcompatibility.  However this can be changed by modifying the
19129684Snjlacconfig.h file.
20129684Snjl
21129684SnjlAllow a single invocation of AcpiInstallNotifyHandler for a
22129684Snjlhandler that traps both types of notifies (System, Device).  Use
23129684SnjlACPI_ALL_NOTIFY flag.
24129684Snjl
25129684SnjlRun _INI methods on ThermalZone objects.  This is against the
26129684SnjlACPI specification, but there is apparently ASL code in the field
27129684Snjlthat has these _INI methods, and apparently "other" AML
28129684Snjlinterpreters execute them.
29129684Snjl
30129684SnjlPerformed a full 16/32/64 bit lint that resulted in some small
31129684Snjlchanges.
32129684Snjl
33129684SnjlAdded a sleep simulation command to the AML debugger to test
34129684Snjlsleep code.
35129684Snjl
36129684SnjlCode and Data Size: Current and previous core subsystem library
37129684Snjlsizes are shown below.  These are the code and data sizes for the
38129684Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
39129684Snjlthese values do not include any ACPI driver or OSPM code.  The
40129684Snjldebug version of the code includes the debug output trace
41129684Snjlmechanism and has a much larger code and data size.  Note that
42129684Snjlthese values will vary depending on the efficiency of the
43129684Snjlcompiler and the compiler options used during generation.
44129684Snjl
45129684Snjl  Previous Release:
46129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
47129684Snjl    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
48129684Snjl  Current Release:
49129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
50129684Snjl    Debug Version:     163.2K Code,  67.2K Data,  230.4K Total
51129684Snjl
52129684Snjl----------------------------------------
53129684Snjl27 April 2004.  Summary of changes for version 20040427:
54129684Snjl
55129684Snjl1) ACPI CA Core Subsystem:
56129684Snjl
57129684SnjlCompleted a major overhaul of the GPE handling within ACPI CA.
58129684SnjlThere are now three types of GPEs:  wake-only, runtime-only, and
59129684Snjlcombination wake/run.  The only GPEs allowed to be combination
60129684Snjlwake/run are for button-style devices such as a control-method
61129684Snjlpower button, control-method sleep button, or a notebook lid
62129684Snjlswitch.  GPEs that have an _Lxx or _Exx method and are not
63129684Snjlreferenced by any _PRW methods are marked for "runtime" and
64129684Snjlhardware enabled.  Any GPE that is referenced by a _PRW method is
65129684Snjlmarked for "wake" (and disabled at runtime).  However, at sleep
66129684Snjltime, only those GPEs that have been specifically enabled for
67129684Snjlwake via the AcpiEnableGpe interface will actually be hardware
68129684Snjlenabled.
69129684Snjl
70129684SnjlA new external interface has been added, AcpiSetGpeType(), that
71129684Snjlis meant to be used by device drivers to force a GPE to a
72129684Snjlparticular type.  It will be especially useful for the drivers
73129684Snjlfor the button devices mentioned above.
74129684Snjl
75129684SnjlCompleted restructuring of the ACPI CA initialization sequence so
76129684Snjlthat default operation region handlers are installed before GPEs
77129684Snjlare initialized and the _PRW methods are executed.  This will
78129684Snjlprevent errors when the _PRW methods attempt to access system
79129684Snjlmemory or I/O space.
80129684Snjl
81129684SnjlGPE enable/disable no longer reads the GPE enable register.  We
82129684Snjlnow keep the enable info for runtime and wake separate and in the
83129684SnjlGPE_EVENT_INFO.  We thus no longer depend on the hardware to
84129684Snjlmaintain these bits.
85129684Snjl
86129684SnjlAlways clear the wake status and fixed/GPE status bits before
87129684Snjlsleep, even for state S5.
88129684Snjl
89129684SnjlImproved the AML debugger output for displaying the GPE blocks
90129684Snjland their current status.
91129684Snjl
92129684SnjlAdded new strings for the _OSI method, of the form "Windows 2001
93129684SnjlSPx" where x = 0,1,2,3,4.
94129684Snjl
95129684SnjlFixed a problem where the physical address was incorrectly
96129684Snjlcalculated when the Load() operator was used to directly load
97129684Snjlfrom an Operation Region (vs. loading from a Field object.)  Also
98129684Snjladded check for minimum table length for this case.
99129684Snjl
100129684SnjlFix for multiple mutex acquisition.  Restore original thread
101129684SnjlSyncLevel on mutex release.
102129684Snjl
103129684SnjlAdded ACPI_VALID_SXDS flag to the AcpiGetObjectInfo interface for
104129684Snjlconsistency with the other fields returned.
105129684Snjl
106129684SnjlShrunk the ACPI_GPE_EVENT_INFO structure by 40%.  There is one
107129684Snjlsuch structure for each GPE in the system, so the size of this
108129684Snjlstructure is important.
109129684Snjl
110129684SnjlCPU stack requirement reduction:  Cleaned up the method execution
111129684Snjland object evaluation paths so that now a parameter structure is
112129684Snjlpassed, instead of copying the various method parameters over and
113129684Snjlover again.
114129684Snjl
115129684SnjlIn evregion.c:  Correctly exit and reenter the interpreter region
116129684Snjlif and only if dispatching an operation region request to a user-
117129684Snjlinstalled handler.  Do not exit/reenter when dispatching to a
118129684Snjldefault handler (e.g., default system memory or I/O handlers)
119129684Snjl
120129684Snjl
121129684SnjlNotes for updating drivers for the new GPE support.  The
122129684Snjlfollowing changes must be made to ACPI-related device drivers
123129684Snjlthat are attached to one or more GPEs: (This information will be
124129684Snjladded to the ACPI CA Programmer Reference.)
125129684Snjl
126129684Snjl1) AcpiInstallGpeHandler no longer automatically enables the GPE,
127129684Snjlyou must explicitly call AcpiEnableGpe.
128129684Snjl2) There is a new interface called AcpiSetGpeType. This should be
129129684Snjlcalled before enabling the GPE.  Also, this interface will
130129684Snjlautomatically disable the GPE if it is currently enabled.
131129684Snjl3) AcpiEnableGpe no longer supports a GPE type flag.
132129684Snjl
133129684SnjlSpecific drivers that must be changed:
134129684Snjl1) EC driver:
135129684Snjl    AcpiInstallGpeHandler (NULL, GpeNum, ACPI_GPE_EDGE_TRIGGERED,
136129684SnjlAeGpeHandler, NULL);
137129684Snjl    AcpiSetGpeType (NULL, GpeNum, ACPI_GPE_TYPE_RUNTIME);
138129684Snjl    AcpiEnableGpe (NULL, GpeNum, ACPI_NOT_ISR);
139129684Snjl
140129684Snjl2) Button Drivers (Power, Lid, Sleep):
141129684SnjlRun _PRW method under parent device
142129684SnjlIf _PRW exists: /* This is a control-method button */
143129684Snjl    Extract GPE number and possibly GpeDevice
144129684Snjl    AcpiSetGpeType (GpeDevice, GpeNum, ACPI_GPE_TYPE_WAKE_RUN);
145129684Snjl    AcpiEnableGpe (GpeDevice, GpeNum, ACPI_NOT_ISR);
146129684Snjl
147129684SnjlFor all other devices that have _PRWs, we automatically set the
148129684SnjlGPE type to ACPI_GPE_TYPE_WAKE, but the GPE is NOT automatically
149129684Snjl(wake) enabled.  This must be done on a selective basis, usually
150129684Snjlrequiring some kind of user app to allow the user to pick the
151129684Snjlwake devices.
152129684Snjl
153129684Snjl
154129684SnjlCode and Data Size: Current and previous core subsystem library
155129684Snjlsizes are shown below.  These are the code and data sizes for the
156129684Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
157129684Snjlthese values do not include any ACPI driver or OSPM code.  The
158129684Snjldebug version of the code includes the debug output trace
159129684Snjlmechanism and has a much larger code and data size.  Note that
160129684Snjlthese values will vary depending on the efficiency of the
161129684Snjlcompiler and the compiler options used during generation.
162129684Snjl
163129684Snjl  Previous Release:
164129684Snjl    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
165129684Snjl    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
166129684Snjl  Current Release:
167129684Snjl    Non-Debug Version:  77.6K Code,  11.5K Data,   89.1K Total
168129684Snjl    Debug Version:     162.9K Code,  67.0K Data,  229.9K Total
169129684Snjl
170129684Snjl
171129684Snjl
172129684Snjl----------------------------------------
173128212Snjl02 April 2004.  Summary of changes for version 20040402:
174128212Snjl
175128212Snjl1) ACPI CA Core Subsystem:
176128212Snjl
177128212SnjlFixed an interpreter problem where an indirect store through an
178128212SnjlArgX parameter was incorrectly applying the "implicit conversion
179128212Snjlrules" during the store.  From the ACPI specification: "If the
180128212Snjltarget is a method local or argument (LocalX or ArgX), no
181128212Snjlconversion is performed and the result is stored directly to the
182128212Snjltarget".  The new behavior is to disable implicit conversion
183128212Snjlduring ALL stores to an ArgX.
184128212Snjl
185128212SnjlChanged the behavior of the _PRW method scan to ignore any and
186128212Snjlall errors returned by a given _PRW.  This prevents the scan from
187128212Snjlaborting from the failure of any single _PRW.
188128212Snjl
189128212SnjlMoved the runtime configuration parameters from the global init
190128212Snjlprocedure to static variables in acglobal.h.  This will allow the
191128212Snjlhost to override the default values easily.
192128212Snjl
193128212SnjlCode and Data Size: Current and previous core subsystem library
194128212Snjlsizes are shown below.  These are the code and data sizes for the
195128212Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
196128212Snjlthese values do not include any ACPI driver or OSPM code.  The
197128212Snjldebug version of the code includes the debug output trace
198128212Snjlmechanism and has a much larger code and data size.  Note that
199128212Snjlthese values will vary depending on the efficiency of the
200128212Snjlcompiler and the compiler options used during generation.
201128212Snjl
202128212Snjl  Previous Release:
203128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
204128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
205128212Snjl  Current Release:
206128212Snjl    Non-Debug Version:  77.0K Code,  11.4K Data,   88.4K Total
207128212Snjl    Debug Version:     161.0K Code,  66.3K Data,  227.3K Total
208128212Snjl
209128212Snjl
210128212Snjl2) iASL Compiler/Disassembler:
211128212Snjl
212128212SnjliASL now fully disassembles SSDTs.  However, External()
213128212Snjlstatements are not generated automatically for unresolved symbols
214128212Snjlat this time.  This is a planned feature for future
215128212Snjlimplementation.
216128212Snjl
217128212SnjlFixed a scoping problem in the disassembler that occurs when the
218128212Snjltype of the target of a Scope() operator is overridden.  This
219128212Snjlproblem caused an incorrectly nested internal namespace to be
220128212Snjlconstructed.
221128212Snjl
222128212SnjlAny warnings or errors that are emitted during disassembly are
223128212Snjlnow commented out automatically so that the resulting file can be
224128212Snjlrecompiled without any hand editing.
225128212Snjl
226128212Snjl----------------------------------------
227128212Snjl26 March 2004.  Summary of changes for version 20040326:
228128212Snjl
229128212Snjl1) ACPI CA Core Subsystem:
230128212Snjl
231128212SnjlImplemented support for "wake" GPEs via interaction between GPEs
232128212Snjland the _PRW methods.  Every GPE that is pointed to by one or
233128212Snjlmore _PRWs is identified as a WAKE GPE and by default will no
234128212Snjllonger be enabled at runtime.  Previously, we were blindly
235128212Snjlenabling all GPEs with a corresponding _Lxx or _Exx method - but
236128212Snjlmost of these turn out to be WAKE GPEs anyway.  We believe this
237128212Snjlhas been the cause of thousands of "spurious" GPEs on some
238128212Snjlsystems.
239128212Snjl
240128212SnjlThis new GPE behavior is can be reverted to the original behavior
241128212Snjl(enable ALL GPEs at runtime) via a runtime flag.
242128212Snjl
243128212SnjlFixed a problem where aliased control methods could not access
244128212Snjlobjects properly.  The proper scope within the namespace was not
245128212Snjlinitialized (transferred to the target of the aliased method)
246128212Snjlbefore executing the target method.
247128212Snjl
248128212SnjlFixed a potential race condition on internal object deletion on
249128212Snjlthe return object in AcpiEvaluateObject.
250128212Snjl
251128212SnjlIntegrated a fix for resource descriptors where both _MEM and
252128212Snjl_MTP were being extracted instead of just _MEM.  (i.e. bitmask
253128212Snjlwas incorrectly too wide, 0x0F instead of 0x03.)
254128212Snjl
255128212SnjlAdded a special case for ACPI_ROOT_OBJECT in AcpiUtGetNodeName,
256128212Snjlpreventing a fault in some cases.
257128212Snjl
258128212SnjlUpdated Notify() values for debug statements in evmisc.c
259128212Snjl
260128212SnjlReturn proper status from AcpiUtMutexInitialize, not just simply
261128212SnjlAE_OK.
262128212Snjl
263128212SnjlCode and Data Size: Current and previous core subsystem library
264128212Snjlsizes are shown below.  These are the code and data sizes for the
265128212Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
266128212Snjlthese values do not include any ACPI driver or OSPM code.  The
267128212Snjldebug version of the code includes the debug output trace
268128212Snjlmechanism and has a much larger code and data size.  Note that
269128212Snjlthese values will vary depending on the efficiency of the
270128212Snjlcompiler and the compiler options used during generation.
271128212Snjl
272128212Snjl  Previous Release:
273128212Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
274128212Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
275128212Snjl  Current Release:
276128212Snjl    Non-Debug Version:  76.9K Code,  11.4K Data,   88.3K Total
277128212Snjl    Debug Version:     160.8K Code,  66.1K Data,  226.9K Total
278128212Snjl
279128212Snjl----------------------------------------
280127175Snjl11 March 2004.  Summary of changes for version 20040311:
281127175Snjl
282127175Snjl1) ACPI CA Core Subsystem:
283127175Snjl
284127175SnjlFixed a problem where errors occurring during the parse phase of
285127175Snjlcontrol method execution did not abort cleanly.  For example,
286127175Snjlobjects created and installed in the namespace were not deleted.
287127175SnjlThis caused all subsequent invocations of the method to return
288127175Snjlthe AE_ALREADY_EXISTS exception.
289127175Snjl
290127175SnjlImplemented a mechanism to force a control method to "Serialized"
291127175Snjlexecution if the method attempts to create namespace objects.
292127175Snjl(The root of the AE_ALREADY_EXISTS problem.)
293127175Snjl
294127175SnjlImplemented support for the predefined _OSI "internal" control
295127175Snjlmethod.  Initial supported strings are "Linux", "Windows 2000",
296127175Snjl"Windows 2001", and "Windows 2001.1", and can be easily upgraded
297127175Snjlfor new strings as necessary.  This feature will allow "other"
298127175Snjloperating systems to execute the fully tested, "Windows" code
299127175Snjlpath through the ASL code
300127175Snjl
301127175SnjlGlobal Lock Support:  Now allows multiple acquires and releases
302127175Snjlwith any internal thread.  Removed concept of "owning thread" for
303127175Snjlthis special mutex.
304127175Snjl
305127175SnjlFixed two functions that were inappropriately declaring large
306127175Snjlobjects on the CPU stack:  PsParseLoop, NsEvaluateRelative.
307127175SnjlReduces the stack usage during method execution considerably.
308127175Snjl
309127175SnjlFixed a problem in the ACPI 2.0 FACS descriptor (actbl2.h) where
310127175Snjlthe S4Bios_f field was incorrectly defined as UINT32 instead of
311127175SnjlUINT32_BIT.
312127175Snjl
313127175SnjlFixed a problem where AcpiEvGpeDetect would fault if there were
314127175Snjlno GPEs defined on the machine.
315127175Snjl
316127175SnjlImplemented two runtime options:  One to force all control method
317127175Snjlexecution to "Serialized" to mimic Windows behavior, another to
318127175Snjldisable _OSI support if it causes problems on a given machine.
319127175Snjl
320127175SnjlCode and Data Size: Current and previous core subsystem library
321127175Snjlsizes are shown below.  These are the code and data sizes for the
322127175Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
323127175Snjlthese values do not include any ACPI driver or OSPM code.  The
324127175Snjldebug version of the code includes the debug output trace
325127175Snjlmechanism and has a much larger code and data size.  Note that
326127175Snjlthese values will vary depending on the efficiency of the
327127175Snjlcompiler and the compiler options used during generation.
328127175Snjl
329127175Snjl  Previous Release:
330127175Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
331127175Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
332127175Snjl  Current Release:
333127175Snjl    Non-Debug Version:  76.5K Code,  11.3K Data,   87.8K Total
334127175Snjl    Debug Version:     160.3K Code,  66.0K Data,  226.3K Total
335127175Snjl
336127175Snjl2) iASL Compiler/Disassembler:
337127175Snjl
338127175SnjlFixed an array size problem for FreeBSD that would cause the
339127175Snjlcompiler to fault.
340127175Snjl
341127175Snjl----------------------------------------
342126372Snjl20 February 2004.  Summary of changes for version 20040220:
343126372Snjl
344126372Snjl1) ACPI CA Core Subsystem:
345126372Snjl
346126372SnjlImplemented execution of _SxD methods for Device objects in the
347126372SnjlGetObjectInfo interface.
348126372Snjl
349126372SnjlFixed calls to _SST method to pass the correct arguments.
350126372Snjl
351126372SnjlAdded a call to _SST on wake to restore to "working" state.
352126372Snjl
353126372SnjlCheck for End-Of-Buffer failure case in the WalkResources
354126372Snjlinterface.
355126372Snjl
356126372SnjlIntegrated fix for 64-bit alignment issue in acglobal.h by moving
357126372Snjltwo structures to the beginning of the file.
358126372Snjl
359126372SnjlAfter wake, clear GPE status register(s) before enabling GPEs.
360126372Snjl
361126372SnjlAfter wake, clear/enable power button.  (Perhaps we should
362126372Snjlclear/enable all fixed events upon wake.)
363126372Snjl
364126372SnjlFixed a couple of possible memory leaks in the Namespace manager.
365126372Snjl
366126372SnjlIntegrated latest acnetbsd.h file.
367126372Snjl
368126372Snjl----------------------------------------
369126372Snjl11 February 2004.  Summary of changes for version 20040211:
370126372Snjl
371126372Snjl1) ACPI CA Core Subsystem:
372126372Snjl
373126372SnjlCompleted investigation and implementation of the call-by-
374126372Snjlreference mechanism for control method arguments.
375126372Snjl
376126372SnjlFixed a problem where a store of an object into an indexed
377126372Snjlpackage could fail if the store occurs within a different method
378126372Snjlthan the method that created the package.
379126372Snjl
380126372SnjlFixed a problem where the ToDecimal operator could return
381126372Snjlincorrect results.
382126372Snjl
383126372SnjlFixed a problem where the CopyObject operator could fail on some
384126372Snjlof the more obscure objects (e.g., Reference objects.)
385126372Snjl
386126372SnjlImproved the output of the Debug object to display buffer,
387126372Snjlpackage, and index objects.
388126372Snjl
389126372SnjlFixed a problem where constructs of the form "RefOf (ArgX)" did
390126372Snjlnot return the expected result.
391126372Snjl
392126372SnjlAdded permanent ACPI_REPORT_ERROR macros for all instances of the
393126372SnjlACPI_AML_INTERNAL exception.
394126372Snjl
395126372SnjlIntegrated latest version of acfreebsd.h
396126372Snjl
397126372Snjl----------------------------------------
398126372Snjl16 January 2004.  Summary of changes for version 20040116:
399126372Snjl
400126372SnjlThe purpose of this release is primarily to update the copyright
401126372Snjlyears in each module, thus causing a huge number of diffs.  There
402126372Snjlare a few small functional changes, however.
403126372Snjl
404126372Snjl1) ACPI CA Core Subsystem:
405126372Snjl
406126372SnjlImproved error messages when there is a problem finding one or
407126372Snjlmore of the required base ACPI tables
408126372Snjl
409126372SnjlReintroduced the definition of APIC_HEADER in actbl.h
410126372Snjl
411126372SnjlChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h)
412126372Snjl
413126372SnjlRemoved extraneous reference to NewObj in dsmthdat.c
414126372Snjl
415126372Snjl2) iASL compiler
416126372Snjl
417126372SnjlFixed a problem introduced in December that disabled the correct
418126372Snjldisassembly of Resource Templates
419126372Snjl
420126372Snjl
421126372Snjl----------------------------------------
422126372Snjl03 December 2003.  Summary of changes for version 20031203:
423126372Snjl
424126372Snjl1) ACPI CA Core Subsystem:
425126372Snjl
426126372SnjlChanged the initialization of Operation Regions during subsystem
427126372Snjlinit to perform two entire walks of the ACPI namespace; The first
428126372Snjlto initialize the regions themselves, the second to execute the
429126372Snjl_REG methods.  This fixed some interdependencies across _REG
430126372Snjlmethods found on some machines.
431126372Snjl
432126372SnjlFixed a problem where a Store(Local0, Local1) could simply update
433126372Snjlthe object reference count, and not create a new copy of the
434126372Snjlobject if the Local1 is uninitialized.
435126372Snjl
436126372SnjlImplemented support for the _SST reserved method during sleep
437126372Snjltransitions.
438126372Snjl
439126372SnjlImplemented support to clear the SLP_TYP and SLP_EN bits when
440126372Snjlwaking up, this is apparently required by some machines.
441126372Snjl
442126372SnjlWhen sleeping, clear the wake status only if SleepState is not
443126372SnjlS5.
444126372Snjl
445126372SnjlFixed a problem in AcpiRsExtendedIrqResource() where an incorrect
446126372Snjlpointer arithmetic advanced a string pointer too far.
447126372Snjl
448126372SnjlFixed a problem in AcpiTbGetTablePtr() where a garbage pointer
449126372Snjlcould be returned if the requested table has not been loaded.
450126372Snjl
451126372SnjlWithin the support for IRQ resources, restructured the handling
452126372Snjlof
453126372Snjlthe active and edge/level bits.
454126372Snjl
455126372SnjlFixed a few problems in AcpiPsxExecute() where memory could be
456126372Snjlleaked under certain error conditions.
457126372Snjl
458126372SnjlImproved error messages for the cases where the ACPI mode could
459126372Snjlnot be entered.
460126372Snjl
461126372SnjlCode and Data Size: Current and previous core subsystem library
462126372Snjlsizes are shown below.  These are the code and data sizes for the
463126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
464126372Snjlthese values do not include any ACPI driver or OSPM code.  The
465126372Snjldebug version of the code includes the debug output trace
466126372Snjlmechanism and has a much larger code and data size.  Note that
467126372Snjlthese values will vary depending on the efficiency of the
468126372Snjlcompiler
469126372Snjland the compiler options used during generation.
470126372Snjl
471126372Snjl  Previous Release (20031029):
472126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
473126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
474126372Snjl  Current Release:
475126372Snjl    Non-Debug Version:  74.8K Code,  10.1K Data,   84.9K Total
476126372Snjl    Debug Version:     158.7K Code,  65.1K Data,  223.8K Total
477126372Snjl
478126372Snjl2) iASL Compiler/Disassembler:
479126372Snjl
480126372SnjlImplemented a fix for the iASL disassembler where a bad index was
481126372Snjlgenerated.  This was most noticeable on 64-bit platforms
482126372Snjl
483126372Snjl
484126372Snjl----------------------------------------
485126372Snjl29 October 2003.  Summary of changes for version 20031029:
486126372Snjl
487126372Snjl1) ACPI CA Core Subsystem:
488126372Snjl
489126372SnjlFixed a problem where a level-triggered GPE with an associated
490126372Snjl_Lxx control method was incorrectly cleared twice.
491126372Snjl
492126372SnjlFixed a problem with the Field support code where an access can
493126372Snjloccur beyond the end-of-region if the field is non-aligned but
494126372Snjlextends to the very end of the parent region (resulted in an
495126372SnjlAE_AML_REGION_LIMIT exception.)
496126372Snjl
497126372SnjlFixed a problem with ACPI Fixed Events where an RT Clock handler
498126372Snjlwould not get invoked on an RTC event.  The RTC event bitmasks
499126372Snjlfor
500126372Snjlthe PM1 registers were not being initialized properly.
501126372Snjl
502126372SnjlImplemented support for executing _STA and _INI methods for
503126372SnjlProcessor objects.  Although this is currently not part of the
504126372SnjlACPI specification, there is existing ASL code that depends on
505126372Snjlthe
506126372Snjlinit-time execution of these methods.
507126372Snjl
508126372SnjlImplemented and deployed a GetDescriptorName function to decode
509126372Snjlthe various types of internal descriptors.  Guards against null
510126372Snjldescriptors during debug output also.
511126372Snjl
512126372SnjlImplemented and deployed a GetNodeName function to extract the 4-
513126372Snjlcharacter namespace node name.  This function simplifies the
514126372Snjldebug
515126372Snjland error output, as well as guarding against null pointers
516126372Snjlduring
517126372Snjloutput.
518126372Snjl
519126372SnjlImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to
520126372Snjlsimplify the debug and error output of 64-bit integers.  This
521126372Snjlmacro replaces the HIDWORD and LODWORD macros for dumping these
522126372Snjlintegers.
523126372Snjl
524126372SnjlUpdated the implementation of the Stall() operator to only call
525126372SnjlAcpiOsStall(), and also return an error if the operand is larger
526126372Snjlthan 255.  This preserves the required behavior of not
527126372Snjlrelinquishing the processor, as would happen if AcpiOsSleep() was
528126372Snjlcalled for "long stalls".
529126372Snjl
530126372SnjlConstructs of the form "Store(LocalX,LocalX)" where LocalX is not
531126372Snjlinitialized are now treated as NOOPs.
532126372Snjl
533126372SnjlCleaned up a handful of warnings during 64-bit generation.
534126372Snjl
535126372SnjlFixed a reported error where and incorrect GPE number was passed
536126372Snjlto the GPE dispatch handler.  This value is only used for error
537126372Snjloutput, however.  Used this opportunity to clean up and
538126372Snjlstreamline
539126372Snjlthe GPE dispatch code.
540126372Snjl
541126372SnjlCode and Data Size: Current and previous core subsystem library
542126372Snjlsizes are shown below.  These are the code and data sizes for the
543126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
544126372Snjlthese values do not include any ACPI driver or OSPM code.  The
545126372Snjldebug version of the code includes the debug output trace
546126372Snjlmechanism and has a much larger code and data size.  Note that
547126372Snjlthese values will vary depending on the efficiency of the
548126372Snjlcompiler
549126372Snjland the compiler options used during generation.
550126372Snjl
551126372Snjl  Previous Release (20031002):
552126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
553126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
554126372Snjl  Current Release:
555126372Snjl    Non-Debug Version:  74.4K Code,  10.1K Data,   84.5K Total
556126372Snjl    Debug Version:     158.3K Code,  65.0K Data,  223.3K Total
557126372Snjl
558126372Snjl
559126372Snjl2) iASL Compiler/Disassembler:
560126372Snjl
561126372SnjlUpdated the iASL compiler to return an error if the operand to
562126372Snjlthe
563126372SnjlStall() operator is larger than 255.
564126372Snjl
565126372Snjl
566126372Snjl----------------------------------------
567126372Snjl02 October 2003.  Summary of changes for version 20031002:
568126372Snjl
569126372Snjl
570126372Snjl1) ACPI CA Core Subsystem:
571126372Snjl
572126372SnjlFixed a problem with Index Fields where the index was not
573126372Snjlincremented for fields that require multiple writes to the
574126372Snjlindex/data registers (Fields that are wider than the data
575126372Snjlregister.)
576126372Snjl
577126372SnjlFixed a problem with all Field objects where a write could go
578126372Snjlbeyond the end-of-field if the field was larger than the access
579126372Snjlgranularity and therefore required multiple writes to complete
580126372Snjlthe
581126372Snjlrequest.  An extra write beyond the end of the field could happen
582126372Snjlinadvertently.
583126372Snjl
584126372SnjlFixed a problem with Index Fields where a BUFFER_OVERFLOW error
585126372Snjlwould incorrectly be returned if the width of the Data Register
586126372Snjlwas larger than the specified field access width.
587126372Snjl
588126372SnjlCompleted fixes for LoadTable() and Unload() and verified their
589126372Snjloperation.  Implemented full support for the "DdbHandle" object
590126372Snjlthroughout the ACPI CA subsystem.
591126372Snjl
592126372SnjlImplemented full support for the MADT and ECDT tables in the ACPI
593126372SnjlCA header files.  Even though these tables are not directly
594126372Snjlconsumed by ACPI CA, the header definitions are useful for ACPI
595126372Snjldevice drivers.
596126372Snjl
597126372SnjlIntegrated resource descriptor fixes posted to the Linux ACPI
598126372Snjllist.  This included checks for minimum descriptor length, and
599126372Snjlsupport for trailing NULL strings within descriptors that have
600126372Snjloptional string elements.
601126372Snjl
602126372SnjlCode and Data Size: Current and previous core subsystem library
603126372Snjlsizes are shown below.  These are the code and data sizes for the
604126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
605126372Snjlthese values do not include any ACPI driver or OSPM code.  The
606126372Snjldebug version of the code includes the debug output trace
607126372Snjlmechanism and has a much larger code and data size.  Note that
608126372Snjlthese values will vary depending on the efficiency of the
609126372Snjlcompiler
610126372Snjland the compiler options used during generation.
611126372Snjl
612126372Snjl  Previous Release (20030918):
613126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
614126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
615126372Snjl  Current Release:
616126372Snjl    Non-Debug Version:  74.1K Code,   9.7K Data,   83.8K Total
617126372Snjl    Debug Version:     157.9K Code,  64.8K Data,  222.7K Total
618126372Snjl
619126372Snjl
620126372Snjl2) iASL Compiler:
621126372Snjl
622126372SnjlImplemented detection of non-ASCII characters within the input
623126372Snjlsource ASL file.  This catches attempts to compile binary (AML)
624126372Snjlfiles early in the compile, with an informative error message.
625126372Snjl
626126372SnjlFixed a problem where the disassembler would fault if the output
627126372Snjlfilename could not be generated or if the output file could not
628126372Snjlbe
629126372Snjlopened.
630126372Snjl
631126372Snjl----------------------------------------
632126372Snjl18 September 2003.  Summary of changes for version 20030918:
633126372Snjl
634126372Snjl
635126372Snjl1) ACPI CA Core Subsystem:
636126372Snjl
637126372SnjlFound and fixed a longstanding problem with the late execution of
638126372Snjlthe various deferred AML opcodes (such as Operation Regions,
639126372SnjlBuffer Fields, Buffers, and Packages).  If the name string
640126372Snjlspecified for the name of the new object placed the object in a
641126372Snjlscope other than the current scope, the initialization/execution
642126372Snjlof the opcode failed.  The solution to this problem was to
643126372Snjlimplement a mechanism where the late execution of such opcodes
644126372Snjldoes not attempt to lookup/create the name a second time in an
645126372Snjlincorrect scope.  This fixes the "region size computed
646126372Snjlincorrectly" problem.
647126372Snjl
648126372SnjlFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing
649126372Snjla
650126372SnjlGlobal Lock AE_BAD_PARAMETER error.
651126372Snjl
652126372SnjlFixed several 64-bit issues with prototypes, casting and data
653126372Snjltypes.
654126372Snjl
655126372SnjlRemoved duplicate prototype from acdisasm.h
656126372Snjl
657126372SnjlFixed an issue involving EC Operation Region Detach (Shaohua Li)
658126372Snjl
659126372SnjlCode and Data Size: Current and previous core subsystem library
660126372Snjlsizes are shown below.  These are the code and data sizes for the
661126372Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
662126372Snjlthese values do not include any ACPI driver or OSPM code.  The
663126372Snjldebug version of the code includes the debug output trace
664126372Snjlmechanism and has a much larger code and data size.  Note that
665126372Snjlthese values will vary depending on the efficiency of the
666126372Snjlcompiler
667126372Snjland the compiler options used during generation.
668126372Snjl
669126372Snjl  Previous Release:
670126372Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
671126372Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
672126372Snjl  Current Release:
673126372Snjl    Non-Debug Version:  73.9K Code,   9.7K Data,   83.6K Total
674126372Snjl    Debug Version:     157.3K Code,  64.5K Data,  221.8K Total
675126372Snjl
676126372Snjl
677126372Snjl2) Linux:
678126372Snjl
679126372SnjlFixed the AcpiOsSleep implementation in osunixxf.c to pass the
680126372Snjlcorrect sleep time in seconds.
681126372Snjl
682126372Snjl----------------------------------------
683126372Snjl14 July 2003.  Summary of changes for version 20030619:
684126372Snjl
685126372Snjl1) ACPI CA Core Subsystem:
686126372Snjl
687126372SnjlParse SSDTs in order discovered, as opposed to reverse order
688126372Snjl(Hrvoje Habjanic)
689126372Snjl
690126372SnjlFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas
691126372SnjlKlausner,
692126372Snjl   Nate Lawson)
693126372Snjl
694126372Snjl
695126372Snjl2) Linux:
696126372Snjl
697126372SnjlDynamically allocate SDT list (suggested by Andi Kleen)
698126372Snjl
699126372Snjlproc function return value cleanups (Andi Kleen)
700126372Snjl
701126372SnjlCorrectly handle NMI watchdog during long stalls (Andrew Morton)
702126372Snjl
703126372SnjlMake it so acpismp=force works (reported by Andrew Morton)
704126372Snjl
705126372Snjl
706126372Snjl----------------------------------------
707117521Snjl19 June 2003.  Summary of changes for version 20030619:
708117521Snjl
709117521Snjl1) ACPI CA Core Subsystem:
710117521Snjl
711117521SnjlFix To/FromBCD, eliminating the need for an arch-specific
712117521Snjl#define.
713117521Snjl
714117521SnjlDo not acquire a semaphore in the S5 shutdown path.
715117521Snjl
716117521SnjlFix ex_digits_needed for 0. (Takayoshi Kochi)
717117521Snjl
718117521SnjlFix sleep/stall code reversal. (Andi Kleen)
719117521Snjl
720117521SnjlRevert a change having to do with control method calling
721117521Snjlsemantics.
722117521Snjl
723117521Snjl2) Linux:
724117521Snjl
725117521Snjlacpiphp update (Takayoshi Kochi)
726117521Snjl
727117521SnjlExport acpi_disabled for sonypi (Stelian Pop)
728117521Snjl
729117521SnjlMention acpismp=force in config help
730117521Snjl
731117521SnjlRe-add acpitable.c and acpismp=force. This improves backwards
732117521Snjlcompatibility and also cleans up the code to a significant
733117521Snjldegree.
734117521Snjl
735117521SnjlAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
736117521Snjl
737117521Snjl----------------------------------------
738117521Snjl22 May 2003.  Summary of changes for version 20030522:
739117521Snjl
740117521Snjl1) ACPI CA Core Subsystem:
741117521Snjl
742117521SnjlFound and fixed a reported problem where an AE_NOT_FOUND error
743117521Snjloccurred occasionally during _BST evaluation.  This turned out to
744117521Snjlbe an Owner ID allocation issue where a called method did not get
745117521Snjla new ID assigned to it.  Eventually, (after 64k calls), the
746126372SnjlOwner
747126372SnjlID UINT16 would wraparound so that the ID would be the same as
748126372Snjlthe
749126372Snjlcaller's and the called method would delete the caller's
750117521Snjlnamespace.
751117521Snjl
752117521SnjlImplemented extended error reporting for control methods that are
753117521Snjlaborted due to a run-time exception.  Output includes the exact
754117521SnjlAML instruction that caused the method abort, a dump of the
755126372Snjlmethod
756126372Snjllocals and arguments at the time of the abort, and a trace of all
757126372Snjlnested control method calls.
758117521Snjl
759117521SnjlModified the interpreter to allow the creation of buffers of zero
760117521Snjllength from the AML code. Implemented new code to ensure that no
761117521Snjlattempt is made to actually allocate a memory buffer (of length
762117521Snjlzero) - instead, a simple buffer object with a NULL buffer
763126372Snjlpointer
764126372Snjland length zero is created.  A warning is no longer issued when
765126372Snjlthe AML attempts to create a zero-length buffer.
766117521Snjl
767117521SnjlImplemented a workaround for the "leading asterisk issue" in
768117521Snjl_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
769117521Snjlasterisk is automatically removed if present in any HID, UID, or
770117521SnjlCID strings.  The iASL compiler will still flag this asterisk as
771117521Snjlan error, however.
772117521Snjl
773117521SnjlImplemented full support for _CID methods that return a package
774126372Snjlof
775126372Snjlmultiple CIDs (Compatible IDs).  The AcpiGetObjectInfo()
776126372Snjlinterface
777126372Snjlnow additionally returns a device _CID list if present.  This
778126372Snjlrequired a change to the external interface in order to pass an
779126372SnjlACPI_BUFFER object as a parameter since the _CID list is of
780117521Snjlvariable length.
781117521Snjl
782117521SnjlFixed a problem with the new AE_SAME_HANDLER exception where
783117521Snjlhandler initialization code did not know about this exception.
784117521Snjl
785117521SnjlCode and Data Size: Current and previous core subsystem library
786117521Snjlsizes are shown below.  These are the code and data sizes for the
787117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
788117521Snjlthese values do not include any ACPI driver or OSPM code.  The
789117521Snjldebug version of the code includes the debug output trace
790117521Snjlmechanism and has a much larger code and data size.  Note that
791117521Snjlthese values will vary depending on the efficiency of the
792126372Snjlcompiler
793126372Snjland the compiler options used during generation.
794117521Snjl
795117521Snjl  Previous Release (20030509):
796117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
797117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
798117521Snjl  Current Release:
799117521Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
800117521Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
801117521Snjl
802117521Snjl
803117521Snjl2) Linux:
804117521Snjl
805117521SnjlFixed a bug in which we would reinitialize the ACPI interrupt
806117521Snjlafter it was already working, thus disabling all ACPI and the
807126372SnjlIRQs
808126372Snjlfor any other device sharing the interrupt. (Thanks to Stian
809117521SnjlJordet)
810117521Snjl
811117521SnjlToshiba driver update (John Belmonte)
812117521Snjl
813117521SnjlReturn only 0 or 1 for our interrupt handler status (Andrew
814117521SnjlMorton)
815117521Snjl
816117521Snjl
817117521Snjl3) iASL Compiler:
818117521Snjl
819117521SnjlFixed a reported problem where multiple (nested) ElseIf()
820117521Snjlstatements were not handled correctly by the compiler, resulting
821117521Snjlin incorrect warnings and incorrect AML code.  This was a problem
822117521Snjlin both the ASL parser and the code generator.
823117521Snjl
824117521Snjl
825117521Snjl4) Documentation:
826117521Snjl
827117521SnjlAdded changes to existing interfaces, new exception codes, and
828126372Snjlnew
829126372Snjltext concerning reference count object management versus garbage
830126372Snjlcollection.
831117521Snjl
832117521Snjl----------------------------------------
833117521Snjl09 May 2003.  Summary of changes for version 20030509.
834117521Snjl
835117521Snjl
836117521Snjl1) ACPI CA Core Subsystem:
837117521Snjl
838117521SnjlChanged the subsystem initialization sequence to hold off
839117521Snjlinstallation of address space handlers until the hardware has
840126372Snjlbeen
841126372Snjlinitialized and the system has entered ACPI mode.  This is
842126372Snjlbecause
843126372Snjlthe installation of space handlers can cause _REG methods to be
844126372Snjlrun.  Previously, the _REG methods could potentially be run
845126372Snjlbefore
846126372SnjlACPI mode was enabled.
847117521Snjl
848117521SnjlFixed some memory leak issues related to address space handler
849126372Snjland
850126372Snjlnotify handler installation.  There were some problems with the
851126372Snjlreference count mechanism caused by the fact that the handler
852117521Snjlobjects are shared across several namespace objects.
853117521Snjl
854117521SnjlFixed a reported problem where reference counts within the
855117521Snjlnamespace were not properly updated when named objects created by
856117521Snjlmethod execution were deleted.
857117521Snjl
858117521SnjlFixed a reported problem where multiple SSDTs caused a deletion
859117521Snjlissue during subsystem termination.  Restructured the table data
860117521Snjlstructures to simplify the linked lists and the related code.
861117521Snjl
862117521SnjlFixed a problem where the table ID associated with secondary
863117521Snjltables (SSDTs) was not being propagated into the namespace
864126372Snjlobjects
865126372Snjlcreated by those tables.  This would only present a problem for
866126372Snjltables that are unloaded at run-time, however.
867117521Snjl
868117521SnjlUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
869117521Snjltype as the length parameter (instead of UINT32).
870117521Snjl
871117521SnjlSolved a long-standing problem where an ALREADY_EXISTS error
872117521Snjlappears on various systems.  This problem could happen when there
873117521Snjlare multiple PCI_Config operation regions under a single PCI root
874117521Snjlbus.  This doesn't happen very frequently, but there are some
875117521Snjlsystems that do this in the ASL.
876117521Snjl
877117521SnjlFixed a reported problem where the internal DeleteNode function
878117521Snjlwas incorrectly handling the case where a namespace node was the
879117521Snjlfirst in the parent's child list, and had additional peers (not
880117521Snjlthe only child, but first in the list of children.)
881117521Snjl
882117521SnjlCode and Data Size: Current core subsystem library sizes are
883126372Snjlshown
884126372Snjlbelow.  These are the code and data sizes for the acpica.lib
885126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
886126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
887126372Snjlversion of the code includes the debug output trace mechanism and
888126372Snjlhas a much larger code and data size.  Note that these values
889126372Snjlwill
890126372Snjlvary depending on the efficiency of the compiler and the compiler
891126372Snjloptions used during generation.
892117521Snjl
893117521Snjl  Previous Release
894117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
895117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
896117521Snjl  Current Release:
897117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
898117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
899117521Snjl
900117521Snjl
901117521Snjl2) Linux:
902117521Snjl
903117521SnjlAllow ":" in OS override string (Ducrot Bruno)
904117521Snjl
905117521SnjlKobject fix (Greg KH)
906117521Snjl
907117521Snjl
908117521Snjl3 iASL Compiler/Disassembler:
909117521Snjl
910117521SnjlFixed a problem in the generation of the C source code files (AML
911117521Snjlis emitted in C source statements for BIOS inclusion) where the
912117521SnjlAscii dump that appears within a C comment at the end of each
913126372Snjlline
914126372Snjlcould cause a compile time error if the AML sequence happens to
915126372Snjlhave an open comment or close comment sequence embedded.
916117521Snjl
917117521Snjl
918117521Snjl----------------------------------------
919117521Snjl24 April 2003.  Summary of changes for version 20030424.
920117521Snjl
921117521Snjl
922117521Snjl1) ACPI CA Core Subsystem:
923117521Snjl
924117521SnjlSupport for big-endian systems has been implemented.  Most of the
925117521Snjlsupport has been invisibly added behind big-endian versions of
926126372Snjlthe
927126372SnjlACPI_MOVE_* macros.
928117521Snjl
929117521SnjlFixed a problem in AcpiHwDisableGpeBlock() and
930117521SnjlAcpiHwClearGpeBlock() where an incorrect offset was passed to the
931117521Snjllow level hardware write routine.  The offset parameter was
932117521Snjlactually eliminated from the low level read/write routines
933126372Snjlbecause
934126372Snjlthey had become obsolete.
935117521Snjl
936117521SnjlFixed a problem where a handler object was deleted twice during
937117521Snjlthe removal of a fixed event handler.
938117521Snjl
939117521Snjl
940117521Snjl2) Linux:
941117521Snjl
942117521SnjlA fix for SMP systems with link devices was contributed by
943117521SnjlCompaq's Dan Zink.
944117521Snjl
945117521Snjl(2.5) Return whether we handled the interrupt in our IRQ handler.
946117521Snjl(Linux ISRs no longer return void, so we can propagate the
947126372Snjlhandler
948126372Snjlreturn value from the ACPI CA core back to the OS.)
949117521Snjl
950117521Snjl
951117521Snjl3) Documentation:
952117521Snjl
953117521SnjlThe ACPI CA Programmer Reference has been updated to reflect new
954117521Snjlinterfaces and changes to existing interfaces.
955117521Snjl
956117521Snjl----------------------------------------
957117521Snjl28 March 2003.  Summary of changes for version 20030328.
958117521Snjl
959117521Snjl1) ACPI CA Core Subsystem:
960117521Snjl
961117521SnjlThe GPE Block Device support has been completed.  New interfaces
962117521Snjlare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
963117521Snjlinterfaces (enable, disable, clear, getstatus) have been split
964117521Snjlinto separate interfaces for Fixed Events and General Purpose
965117521SnjlEvents (GPEs) in order to support GPE Block Devices properly.
966117521Snjl
967117521SnjlFixed a problem where the error message "Failed to acquire
968117521Snjlsemaphore" would appear during operations on the embedded
969117521Snjlcontroller (EC).
970117521Snjl
971117521SnjlCode and Data Size: Current core subsystem library sizes are
972126372Snjlshown
973126372Snjlbelow.  These are the code and data sizes for the acpica.lib
974126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
975126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
976126372Snjlversion of the code includes the debug output trace mechanism and
977126372Snjlhas a much larger code and data size.  Note that these values
978126372Snjlwill
979126372Snjlvary depending on the efficiency of the compiler and the compiler
980126372Snjloptions used during generation.
981117521Snjl
982117521Snjl  Previous Release
983117521Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
984117521Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
985117521Snjl  Current Release:
986117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
987117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
988117521Snjl
989117521Snjl
990117521Snjl----------------------------------------
991114237Snjl28 February 2003.  Summary of changes for version 20030228.
992114237Snjl
993114237Snjl
994114237Snjl1) ACPI CA Core Subsystem:
995114237Snjl
996114237SnjlThe GPE handling and dispatch code has been completely overhauled
997114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
998114237SnjlThis affects internal data structures and code only; there should
999114237Snjlbe no differences visible externally.  One new file has been
1000114237Snjladded, evgpeblk.c
1001114237Snjl
1002114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
1003114237Snjlfields that are used to determine the GPE block lengths.  The
1004114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
1005114237Snjlstructures are ignored.  This is per the ACPI specification but
1006126372Snjlit
1007126372Snjlisn't very clear.  The full 256 Block 0/1 GPEs are now supported
1008126372Snjl(the use of REGISTER_BIT_WIDTH limited the number of GPEs to
1009126372Snjl128).
1010114237Snjl
1011114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
1012114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
1013114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
1014114237Snjlin fact be the cause of slow battery status response on some
1015114237Snjlsystems.)
1016114237Snjl
1017114237SnjlFixed a problem where a store of a NULL string to a package
1018126372Snjlobject
1019126372Snjlcould cause the premature deletion of the object.  This was seen
1020126372Snjlduring execution of the battery _BIF method on some systems,
1021126372Snjlresulting in no battery data being returned.
1022114237Snjl
1023114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
1024114237Snjllists.
1025114237Snjl
1026114237SnjlCode and Data Size: Current core subsystem library sizes are
1027126372Snjlshown
1028126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1029126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1030126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1031126372Snjlversion of the code includes the debug output trace mechanism and
1032126372Snjlhas a much larger code and data size.  Note that these values
1033126372Snjlwill
1034126372Snjlvary depending on the efficiency of the compiler and the compiler
1035126372Snjloptions used during generation.
1036114237Snjl
1037114237Snjl  Previous Release
1038114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1039114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1040114237Snjl  Current Release:
1041114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
1042114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
1043114237Snjl
1044114237Snjl
1045114237Snjl2) Linux
1046114237Snjl
1047114237SnjlS3 fixes (Ole Rohne)
1048114237Snjl
1049114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
1050114237Snjl(Bjorn Helgaas)
1051114237Snjl
1052114237SnjlAdd S4BIOS support (Pavel Machek)
1053114237Snjl
1054114237SnjlMap in entire table before performing checksum (John Stultz)
1055114237Snjl
1056114237SnjlExpand the mem= cmdline to allow the specification of reserved
1057126372Snjland
1058126372SnjlACPI DATA blocks (Pavel Machek)
1059114237Snjl
1060114237SnjlNever use ACPI on VISWS
1061114237Snjl
1062114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
1063114237Snjl
1064114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
1065114237Snjlcausing us to think that some systems support C2 when they really
1066114237Snjldon't.
1067114237Snjl
1068114237SnjlDo not count processor objects for non-present CPUs (Thanks to
1069114237SnjlDominik Brodowski)
1070114237Snjl
1071114237Snjl
1072114237Snjl3) iASL Compiler:
1073114237Snjl
1074114237SnjlFixed a problem where ASL include files could not be found and
1075114237Snjlopened.
1076114237Snjl
1077114237SnjlAdded support for the _PDC reserved name.
1078114237Snjl
1079114237Snjl
1080117521Snjl----------------------------------------
1081114237Snjl22 January 2003.  Summary of changes for version 20030122.
1082114237Snjl
1083114237Snjl
1084114237Snjl1) ACPI CA Core Subsystem:
1085114237Snjl
1086114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
1087114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
1088114237Snjlprogrammers believe that this is a NOOP.  Since this store
1089126372Snjldoesn't
1090126372Snjldo anything anyway, the new prototype behavior will ignore this
1091126372Snjlerror.  This is a case where we can relax the strict checking in
1092126372Snjlthe interpreter in the name of compatibility.
1093114237Snjl
1094114237Snjl
1095114237Snjl2) Linux
1096114237Snjl
1097114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
1098114237SnjlLinux package for the first time.  This is the utility that is
1099114237Snjlused to convert the ACPI CA base source code to the Linux
1100114237Snjlversion.
1101114237Snjl
1102114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
1103114237Snjl
1104114237Snjl(Both) Move more headers to include/acpi, and delete an unused
1105114237Snjlheader.
1106114237Snjl
1107114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
1108114237Snjl
1109114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
1110114237Snjl
1111114237Snjl(Both) Remove include of unused header (Adrian Bunk)
1112114237Snjl
1113114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
1114114237Snjlthe
1115114237Snjlformer now also includes the latter, acpiphp.h only needs the
1116126372Snjlone,
1117126372Snjlnow.
1118114237Snjl
1119114237Snjl(2.5) Make it possible to select method of bios restoring after
1120114237SnjlS3
1121114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
1122114237Snjl
1123114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
1124114237Snjl
1125114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
1126114237Snjl
1127114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
1128114237Snjl(Dominik Brodowski)
1129114237Snjl
1130114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
1131114237Snjl
1132114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
1133114237SnjlVisinoni)
1134114237Snjl
1135114237Snjl
1136114237Snjl3) iASL Compiler:
1137114237Snjl
1138114237SnjlAdded support to disassemble SSDT and PSDTs.
1139114237Snjl
1140114237SnjlImplemented support to obtain SSDTs from the Windows registry if
1141114237Snjlavailable.
1142114237Snjl
1143114237Snjl
1144102550Siwasaki----------------------------------------
1145114237Snjl09 January 2003.  Summary of changes for version 20030109.
1146114237Snjl
1147114237Snjl1) ACPI CA Core Subsystem:
1148114237Snjl
1149114237SnjlChanged the behavior of the internal Buffer-to-String conversion
1150114237Snjlfunction.  The current ACPI specification states that the
1151126372Snjlcontents
1152126372Snjlof the buffer are "converted to a string of two-character
1153126372Snjlhexadecimal numbers, each separated by a space".  Unfortunately,
1154126372Snjlthis definition is not backwards compatible with existing ACPI
1155126372Snjl1.0
1156126372Snjlimplementations (although the behavior was not defined in the
1157126372SnjlACPI
1158126372Snjl1.0 specification).  The new behavior simply copies data from the
1159126372Snjlbuffer to the string until a null character is found or the end
1160126372Snjlof
1161126372Snjlthe buffer is reached.  The new String object is always null
1162126372Snjlterminated.  This problem was seen during the generation of _BIF
1163126372Snjlbattery data where incorrect strings were returned for battery
1164126372Snjltype, etc.  This will also require an errata to the ACPI
1165126372Snjlspecification.
1166114237Snjl
1167114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
1168114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
1169114237Snjl
1170114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
1171114237Snjlupdated to 2003.
1172114237Snjl
1173114237SnjlCode and Data Size: Current core subsystem library sizes are
1174126372Snjlshown
1175126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1176126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1177126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1178126372Snjlversion of the code includes the debug output trace mechanism and
1179126372Snjlhas a much larger code and data size.  Note that these values
1180126372Snjlwill
1181126372Snjlvary depending on the efficiency of the compiler and the compiler
1182126372Snjloptions used during generation.
1183114237Snjl
1184114237Snjl  Previous Release
1185114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1186114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1187114237Snjl  Current Release:
1188114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1189114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1190114237Snjl
1191114237Snjl
1192114237Snjl2) Linux
1193114237Snjl
1194114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
1195114237Snjl
1196114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
1197114237Snjl
1198114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
1199114237Snjl
1200114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
1201114237Snjl
1202114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
1203114237Snjlof schedule_work()
1204114237Snjl
1205114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
1206114237Snjl
1207114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
1208114237Snjl
1209114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
1210114237Snjl
1211114237SnjlSeveral changes have been made to the source code translation
1212114237Snjlutility that generates the Linux Code in order to make the code
1213114237Snjlmore "Linux-like":
1214114237Snjl
1215114237SnjlAll typedefs on structs and unions have been removed in keeping
1216114237Snjlwith the Linux coding style.
1217114237Snjl
1218114237SnjlRemoved the non-Linux SourceSafe module revision number from each
1219114237Snjlmodule header.
1220114237Snjl
1221114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
1222114237SnjlDoubled the number of symbols that are lowercased.
1223114237Snjl
1224114237SnjlFixed a problem where identifiers within procedure headers and
1225114237Snjlwithin quotes were not fully lower cased (they were left with a
1226114237Snjlstarting capital.)
1227114237Snjl
1228114237SnjlSome C macros whose only purpose is to allow the generation of 16-
1229114237Snjlbit code are now completely removed in the Linux code, increasing
1230114237Snjlreadability and maintainability.
1231114237Snjl
1232114237Snjl----------------------------------------
1233114237Snjl
1234114237Snjl12 December 2002.  Summary of changes for version 20021212.
1235114237Snjl
1236114237Snjl
1237114237Snjl1) ACPI CA Core Subsystem:
1238114237Snjl
1239114237SnjlFixed a problem where the creation of a zero-length AML Buffer
1240114237Snjlwould cause a fault.
1241114237Snjl
1242114237SnjlFixed a problem where a Buffer object that pointed to a static
1243126372SnjlAML
1244126372Snjlbuffer (in an ACPI table) could inadvertently be deleted, causing
1245126372Snjlmemory corruption.
1246114237Snjl
1247114237SnjlFixed a problem where a user buffer (passed in to the external
1248114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
1249114237Snjlsmall to complete the operation, causing memory corruption.
1250114237Snjl
1251114237SnjlFixed a problem in the Buffer-to-String conversion code where a
1252114237Snjlstring of length one was always returned, regardless of the size
1253114237Snjlof the input Buffer object.
1254114237Snjl
1255114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
1256114237Snjllack of need and lack of consistent use.
1257114237Snjl
1258114237SnjlCode and Data Size: Current core subsystem library sizes are
1259126372Snjlshown
1260126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1261126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1262126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1263126372Snjlversion of the code includes the debug output trace mechanism and
1264126372Snjlhas a much larger code and data size.  Note that these values
1265126372Snjlwill
1266126372Snjlvary depending on the efficiency of the compiler and the compiler
1267126372Snjloptions used during generation.
1268114237Snjl
1269114237Snjl  Previous Release
1270114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1271114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1272114237Snjl  Current Release:
1273114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
1274114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
1275114237Snjl
1276114237Snjl
1277114237Snjl----------------------------------------
1278114237Snjl05 December 2002.  Summary of changes for version 20021205.
1279114237Snjl
1280114237Snjl1) ACPI CA Core Subsystem:
1281114237Snjl
1282114237SnjlFixed a problem where a store to a String or Buffer object could
1283114237Snjlcause corruption of the DSDT if the object type being stored was
1284114237Snjlthe same as the target object type and the length of the object
1285114237Snjlbeing stored was equal to or smaller than the original (existing)
1286114237Snjltarget object.  This was seen to cause corruption of battery _BIF
1287114237Snjlbuffers if the _BIF method modified the buffer on the fly.
1288114237Snjl
1289114237SnjlFixed a problem where an internal error was generated if a
1290126372Snjlcontrol
1291126372Snjlmethod invocation was used in an OperationRegion, Buffer, or
1292126372SnjlPackage declaration.  This was caused by the deferred parsing of
1293126372Snjlthe control method and thus the deferred creation of the internal
1294126372Snjlmethod object.  The solution to this problem was to create the
1295126372Snjlinternal method object at the moment the method is encountered in
1296126372Snjlthe first pass - so that subsequent references to the method will
1297126372Snjlable to obtain the required parameter count and thus properly
1298126372Snjlparse the method invocation.  This problem presented itself as an
1299126372SnjlAE_AML_INTERNAL during the pass 1 parse phase during table load.
1300114237Snjl
1301114237SnjlFixed a problem where the internal String object copy routine did
1302114237Snjlnot always allocate sufficient memory for the target String
1303126372Snjlobject
1304126372Snjland caused memory corruption.  This problem was seen to cause
1305126372Snjl"Allocation already present in list!" errors as memory allocation
1306126372Snjlbecame corrupted.
1307114237Snjl
1308114237SnjlImplemented a new function for the evaluation of namespace
1309126372Snjlobjects
1310126372Snjlthat allows the specification of the allowable return object
1311126372Snjltypes.  This simplifies a lot of code that checks for a return
1312126372Snjlobject of one or more specific objects returned from the
1313114237Snjlevaluation (such as _STA, etc.)  This may become and external
1314114237Snjlfunction if it would be useful to ACPI-related drivers.
1315114237Snjl
1316114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
1317114237Snjlclarity.
1318114237Snjl
1319114237SnjlCompleted additional code restructuring to allow more modular
1320114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
1321114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
1322114237Snjl
1323114237SnjlImplemented an abort mechanism to terminate an executing control
1324114237Snjlmethod via the AML debugger.  This feature is useful for
1325126372Snjldebugging
1326126372Snjlcontrol methods that depend (wait) for specific hardware
1327126372Snjlresponses.
1328114237Snjl
1329114237SnjlCode and Data Size: Current core subsystem library sizes are
1330126372Snjlshown
1331126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1332126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1333126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1334126372Snjlversion of the code includes the debug output trace mechanism and
1335126372Snjlhas a much larger code and data size.  Note that these values
1336126372Snjlwill
1337126372Snjlvary depending on the efficiency of the compiler and the compiler
1338126372Snjloptions used during generation.
1339114237Snjl
1340114237Snjl  Previous Release
1341114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1342114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1343114237Snjl  Current Release:
1344114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
1345114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
1346114237Snjl
1347114237Snjl
1348114237Snjl2) iASL Compiler/Disassembler
1349114237Snjl
1350114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
1351114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
1352114237SnjlSource Index" and "Resource Source" fields were not inserted into
1353114237Snjlthe correct location within the AML resource descriptor, creating
1354114237Snjlan invalid descriptor.
1355114237Snjl
1356114237SnjlFixed a disassembler problem for "Interrupt" resource
1357126372Snjldescriptors.
1358126372SnjlThe optional "Resource Source Index" and "Resource Source" fields
1359126372Snjlwere ignored.
1360114237Snjl
1361114237Snjl
1362114237Snjl----------------------------------------
1363114237Snjl22 November 2002.  Summary of changes for version 20021122.
1364114237Snjl
1365114237Snjl
1366114237Snjl1) ACPI CA Core Subsystem:
1367114237Snjl
1368114237SnjlFixed a reported problem where an object stored to a Method Local
1369114237Snjlor Arg was not copied to a new object during the store - the
1370114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
1371114237Snjlall subsequent operations on the Local/Arg to also affect the
1372114237Snjloriginal source of the store operation.
1373114237Snjl
1374114237SnjlFixed a problem where a store operation to a Method Local or Arg
1375114237Snjlwas not completed properly if the Local/Arg contained a reference
1376114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
1377114237Snjlnamespace-node code is now used so that this case is handled
1378114237Snjlautomatically.
1379114237Snjl
1380114237SnjlFixed a problem where the internal object copy routine would
1381126372Snjlcause
1382126372Snjla protection fault if the object being copied was a Package and
1383126372Snjlcontained either 1) a NULL package element or 2) a nested sub-
1384114237Snjlpackage.
1385114237Snjl
1386114237SnjlFixed a problem with the GPE initialization that resulted from an
1387114237Snjlambiguity in the ACPI specification.  One section of the
1388114237Snjlspecification states that both the address and length of the GPE
1389114237Snjlblock must be zero if the block is not supported.  Another
1390126372Snjlsection
1391126372Snjlimplies that only the address need be zero if the block is not
1392126372Snjlsupported.  The code has been changed so that both the address
1393126372Snjland
1394126372Snjlthe length must be non-zero to indicate a valid GPE block (i.e.,
1395126372Snjlif either the address or the length is zero, the GPE block is
1396126372Snjlinvalid.)
1397114237Snjl
1398114237SnjlCode and Data Size: Current core subsystem library sizes are
1399126372Snjlshown
1400126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1401126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1402126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1403126372Snjlversion of the code includes the debug output trace mechanism and
1404126372Snjlhas a much larger code and data size.  Note that these values
1405126372Snjlwill
1406126372Snjlvary depending on the efficiency of the compiler and the compiler
1407126372Snjloptions used during generation.
1408114237Snjl
1409114237Snjl  Previous Release
1410114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1411114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1412114237Snjl  Current Release:
1413114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1414114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
1415114237Snjl
1416114237Snjl
1417114237Snjl2) Linux
1418114237Snjl
1419114237SnjlCleaned up EC driver. Exported an external EC read/write
1420114237Snjlinterface. By going through this, other drivers (most notably
1421114237Snjlsonypi) will be able to serialize access to the EC.
1422114237Snjl
1423114237Snjl
1424114237Snjl3) iASL Compiler/Disassembler
1425114237Snjl
1426114237SnjlImplemented support to optionally generate include files for both
1427114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
1428114237Snjlautomatically creating include files that contain external
1429114237Snjldeclarations for the symbols that are created within the
1430114237Snjl(optionally generated) ASM and C AML source files.
1431114237Snjl
1432114237Snjl
1433114237Snjl----------------------------------------
1434107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
1435104470Siwasaki
1436107325Siwasaki1) ACPI CA Core Subsystem:
1437107325Siwasaki
1438114237SnjlFixed a memory leak problem where an error during resolution of
1439114237Snjlmethod arguments during a method invocation from another method
1440114237Snjlfailed to cleanup properly by deleting all successfully resolved
1441114237Snjlargument objects.
1442107325Siwasaki
1443114237SnjlFixed a problem where the target of the Index() operator was not
1444114237Snjlcorrectly constructed if the source object was a package.  This
1445114237Snjlproblem has not been detected because the use of a target operand
1446114237Snjlwith Index() is very rare.
1447107325Siwasaki
1448107325SiwasakiFixed a problem with the Index() operator where an attempt was
1449107325Siwasakimade to delete the operand objects twice.
1450107325Siwasaki
1451107325SiwasakiFixed a problem where an attempt was made to delete an operand
1452114237Snjltwice during execution of the CondRefOf() operator if the target
1453114237Snjldid not exist.
1454107325Siwasaki
1455114237SnjlImplemented the first of perhaps several internal create object
1456114237Snjlfunctions that create and initialize a specific object type.
1457126372SnjlThis
1458126372Snjlconsolidates duplicated code wherever the object is created, thus
1459126372Snjlshrinking the size of the subsystem.
1460107325Siwasaki
1461114237SnjlImplemented improved debug/error messages for errors that occur
1462114237Snjlduring nested method invocations.  All executing method pathnames
1463114237Snjlare displayed (with the error) as the call stack is unwound -
1464126372Snjlthus
1465126372Snjlsimplifying debug.
1466107325Siwasaki
1467107325SiwasakiFixed a problem introduced in the 10/02 release that caused
1468114237Snjlpremature deletion of a buffer object if a buffer was used as an
1469114237SnjlASL operand where an integer operand is required (Thus causing an
1470114237Snjlimplicit object conversion from Buffer to Integer.)  The change
1471126372Snjlin
1472126372Snjlthe 10/02 release was attempting to fix a memory leak (albeit
1473114237Snjlincorrectly.)
1474107325Siwasaki
1475107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1476126372Snjlshown
1477126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1478126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1479126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1480126372Snjlversion of the code includes the debug output trace mechanism and
1481126372Snjlhas a much larger code and data size.  Note that these values
1482126372Snjlwill
1483126372Snjlvary depending on the efficiency of the compiler and the compiler
1484126372Snjloptions used during generation.
1485107325Siwasaki
1486107325Siwasaki  Previous Release
1487107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1488107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1489107325Siwasaki  Current Release:
1490107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
1491107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
1492107325Siwasaki
1493107325Siwasaki
1494107325Siwasaki2) Linux
1495107325Siwasaki
1496114237SnjlChanged the implementation of the ACPI semaphores to use down()
1497114237Snjlinstead of down_interruptable().  It is important that the
1498114237Snjlexecution of ACPI control methods not be interrupted by signals.
1499114237SnjlMethods must run to completion, or the system may be left in an
1500114237Snjlunknown/unstable state.
1501107325Siwasaki
1502107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
1503126372Snjlset.
1504126372Snjl(Shawn Starr)
1505107325Siwasaki
1506107325Siwasaki
1507107325Siwasaki3) iASL Compiler/Disassembler
1508107325Siwasaki
1509107325Siwasaki
1510114237SnjlChanged the default location of output files.  All output files
1511114237Snjlare now placed in the current directory by default instead of in
1512114237Snjlthe directory of the source file.  This change may affect some
1513114237Snjlexisting makefiles, but it brings the behavior of the compiler in
1514114237Snjlline with other similar tools.  The location of the output files
1515114237Snjlcan be overridden with the -p command line switch.
1516107325Siwasaki
1517114237Snjl
1518107325Siwasaki----------------------------------------
1519107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
1520107325Siwasaki
1521107325Siwasaki
1522114237Snjl0) ACPI Specification 2.0B is released and is now available at:
1523114237Snjlhttp://www.acpi.info/index.html
1524107325Siwasaki
1525107325Siwasaki
1526107325Siwasaki1) ACPI CA Core Subsystem:
1527107325Siwasaki
1528107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
1529114237SnjlThis includes the early detection and handoff of the request to
1530114237Snjlthe SMBus region handler (avoiding all of the complex field
1531107325Siwasakisupport code), and support for the bidirectional return packet
1532107325Siwasakifrom an SMBus write operation.  This paves the way for the
1533107325Siwasakidevelopment of SMBus drivers in each host operating system.
1534107325Siwasaki
1535107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
1536107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
1537107325Siwasakispecification.  This had the side effect of causing ASL
1538107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
1539107325Siwasakiforever.  Changed all internal references to the ACPI timeout
1540107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
1541126372Snjlname
1542126372Snjlof WAIT_FOREVER to ACPI_WAIT_FOREVER.
1543107325Siwasaki
1544107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1545126372Snjlshown
1546126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1547126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1548126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1549126372Snjlversion of the code includes the debug output trace mechanism and
1550126372Snjlhas a much larger code and data size.  Note that these values
1551126372Snjlwill
1552126372Snjlvary depending on the efficiency of the compiler and the compiler
1553126372Snjloptions used during generation.
1554107325Siwasaki
1555107325Siwasaki  Previous Release
1556107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1557107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1558107325Siwasaki  Current Release:
1559107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
1560107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
1561107325Siwasaki
1562107325Siwasaki
1563107325Siwasaki2) Linux
1564107325Siwasaki
1565107325SiwasakiModule loading/unloading fixes (John Cagle)
1566107325Siwasaki
1567107325Siwasaki
1568107325Siwasaki3) iASL Compiler/Disassembler
1569107325Siwasaki
1570107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
1571107325Siwasaki
1572107325SiwasakiImplemented support for the disassembly of all SMBus protocol
1573107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
1574107325Siwasaki
1575107325Siwasaki----------------------------------------
1576107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
1577107325Siwasaki
1578107325Siwasaki
1579107325Siwasaki1) ACPI CA Core Subsystem:
1580107325Siwasaki
1581107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
1582126372SnjlGPE0
1583126372Snjlblock were not handled correctly.  This resulted in a "GPE
1584114237Snjloverlap" error message.  GPE0 is no longer required.
1585107325Siwasaki
1586107325SiwasakiRemoved code added in the previous release that inserted nodes
1587114237Snjlinto the namespace in alphabetical order.  This caused some side-
1588114237Snjleffects on various machines.  The root cause of the problem is
1589114237Snjlstill under investigation since in theory, the internal ordering
1590114237Snjlof the namespace nodes should not matter.
1591107325Siwasaki
1592107325Siwasaki
1593114237SnjlEnhanced error reporting for the case where a named object is not
1594114237Snjlfound during control method execution.  The full ACPI namepath
1595114237Snjl(name reference) of the object that was not found is displayed in
1596114237Snjlthis case.
1597107325Siwasaki
1598114237SnjlNote: as a result of the overhaul of the namespace object types
1599126372Snjlin
1600126372Snjlthe previous release, the namespace nodes for the predefined
1601114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
1602114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
1603114237Snjlmanagement code but may affect code that walks the namespace tree
1604114237Snjllooking for specific object types.
1605114237Snjl
1606107325SiwasakiCode and Data Size: Current core subsystem library sizes are
1607126372Snjlshown
1608126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1609126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1610126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1611126372Snjlversion of the code includes the debug output trace mechanism and
1612126372Snjlhas a much larger code and data size.  Note that these values
1613126372Snjlwill
1614126372Snjlvary depending on the efficiency of the compiler and the compiler
1615126372Snjloptions used during generation.
1616107325Siwasaki
1617107325Siwasaki  Previous Release
1618107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1619107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1620107325Siwasaki  Current Release:
1621107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
1622107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
1623107325Siwasaki
1624107325Siwasaki
1625107325Siwasaki2) Linux
1626107325Siwasaki
1627107325SiwasakiFixed a problem introduced in the previous release where the
1628114237SnjlProcessor and Thermal objects were not recognized and installed
1629126372Snjlin
1630126372Snjl/proc.  This was related to the scope type change described
1631114237Snjlabove.
1632107325Siwasaki
1633107325Siwasaki
1634107325Siwasaki3) iASL Compiler/Disassembler
1635107325Siwasaki
1636114237SnjlImplemented the -g option to get all of the required ACPI tables
1637114237Snjlfrom the registry and save them to files (Windows version of the
1638114237Snjlcompiler only.)  The required tables are the FADT, FACS, and
1639114237SnjlDSDT.
1640107325Siwasaki
1641114237SnjlAdded ACPI table checksum validation during table disassembly in
1642114237Snjlorder to catch corrupted tables.
1643107325Siwasaki
1644107325Siwasaki
1645107325Siwasaki----------------------------------------
1646107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
1647107325Siwasaki
1648107325Siwasaki1) ACPI CA Core Subsystem:
1649107325Siwasaki
1650114237SnjlImplemented a restriction on the Scope operator that the target
1651114237Snjlmust already exist in the namespace at the time the operator is
1652114237Snjlencountered (during table load or method execution).  In other
1653114237Snjlwords, forward references are not allowed and Scope() cannot
1654114237Snjlcreate a new object. This changes the previous behavior where the
1655114237Snjlinterpreter would create the name if not found.  This new
1656126372Snjlbehavior
1657126372Snjlcorrectly enables the search-to-root algorithm during namespace
1658126372Snjllookup of the target name.  Because of this upsearch, this fixes
1659126372Snjlthe known Compaq _SB_.OKEC problem and makes both the AML
1660126372Snjlinterpreter and iASL compiler compatible with other ACPI
1661114237Snjlimplementations.
1662107325Siwasaki
1663114237SnjlCompleted a major overhaul of the internal ACPI object types for
1664114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
1665114237Snjlthese types had become obsolete with the introduction of the two-
1666114237Snjlpass namespace load.  This cleanup simplifies the code and makes
1667114237Snjlthe entire namespace load mechanism much clearer and easier to
1668114237Snjlunderstand.
1669107325Siwasaki
1670114237SnjlImproved debug output for tracking scope opening/closing to help
1671114237Snjldiagnose scoping issues.  The old scope name as well as the new
1672114237Snjlscope name are displayed.  Also improved error messages for
1673114237Snjlproblems with ASL Mutex objects and error messages for GPE
1674114237Snjlproblems.
1675107325Siwasaki
1676107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
1677107325Siwasaki
1678114237SnjlAll string output (for all namespace/object dumps) now uses the
1679114237Snjlcommon ACPI string output procedure which handles escapes
1680126372Snjlproperly
1681126372Snjland does not emit non-printable characters.
1682107325Siwasaki
1683107325SiwasakiFixed some issues with constants in the 64-bit version of the
1684107325Siwasakilocal C library (utclib.c)
1685107325Siwasaki
1686107325Siwasaki
1687107325Siwasaki2) Linux
1688107325Siwasaki
1689107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
1690107325Siwasakiinterrupt level.
1691107325Siwasaki
1692107325Siwasaki
1693107325Siwasaki3) iASL Compiler/Disassembler
1694107325Siwasaki
1695107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
1696126372Snjland
1697126372Snjl2 opcodes outside of a control method.  This means that the
1698114237Snjl"executable" operators (versus the "namespace" operators) cannot
1699114237Snjlbe used at the table level; they can only be used within a
1700126372Snjlcontrol
1701126372Snjlmethod.
1702107325Siwasaki
1703107325SiwasakiImplemented the restriction on the Scope() operator where the
1704107325Siwasakitarget must already exist in the namespace at the time the
1705114237Snjloperator is encountered (during ASL compilation). In other words,
1706114237Snjlforward references are not allowed and Scope() cannot create a
1707126372Snjlnew
1708126372Snjlobject.  This makes the iASL compiler compatible with other ACPI
1709126372Snjlimplementations and makes the Scope() implementation adhere to
1710126372Snjlthe
1711126372SnjlACPI specification.
1712107325Siwasaki
1713107325SiwasakiFixed a problem where namepath optimization for the Alias
1714126372Snjloperator
1715126372Snjlwas optimizing the wrong path (of the two namepaths.)  This
1716126372Snjlcaused
1717126372Snjla "Missing alias link" error message.
1718107325Siwasaki
1719114237SnjlFixed a problem where an "unknown reserved name" warning could be
1720114237Snjlincorrectly generated for names like "_SB" when the trailing
1721114237Snjlunderscore is not used in the original ASL.
1722107325Siwasaki
1723107325SiwasakiFixed a problem where the reserved name check did not handle
1724114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
1725114237Snjlthe NamePath was examined instead of the last NameSeg.
1726107325Siwasaki
1727107325Siwasaki
1728107325Siwasaki----------------------------------------
1729107325Siwasaki
1730104470Siwasaki02 October 2002.  Summary of changes for this release.
1731104470Siwasaki
1732104470Siwasaki
1733104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
1734104470Siwasaki
1735104470SiwasakiFixed a problem where a store/copy of a string to an existing
1736104470Siwasakistring did not always set the string length properly in the
1737126372SnjlString
1738126372Snjlobject.
1739104470Siwasaki
1740104470SiwasakiFixed a reported problem with the ToString operator where the
1741104470Siwasakibehavior was identical to the ToHexString operator instead of
1742126372Snjljust
1743126372Snjlsimply converting a raw buffer to a string data type.
1744104470Siwasaki
1745104470SiwasakiFixed a problem where CopyObject and the other "explicit"
1746104470Siwasakiconversion operators were not updating the internal namespace
1747126372Snjlnode
1748126372Snjltype as part of the store operation.
1749104470Siwasaki
1750104470SiwasakiFixed a memory leak during implicit source operand conversion
1751114237Snjlwhere the original object was not deleted if it was converted to
1752126372Snjla
1753126372Snjlnew object of a different type.
1754104470Siwasaki
1755104470SiwasakiEnhanced error messages for all problems associated with
1756126372Snjlnamespace
1757126372Snjllookups.  Common procedure generates and prints the lookup name
1758126372Snjlas
1759126372Snjlwell as the formatted status.
1760104470Siwasaki
1761104470SiwasakiCompleted implementation of a new design for the Alias support
1762104470Siwasakiwithin the namespace.  The existing design did not handle the
1763126372Snjlcase
1764126372Snjlwhere a new object was assigned to one of the two names due to
1765126372Snjlthe
1766126372Snjluse of an explicit conversion operator, resulting in the two
1767126372Snjlnames
1768126372Snjlpointing to two different objects.  The new design simply points
1769126372Snjlthe Alias name to the original name node - not to the object.
1770126372SnjlThis results in a level of indirection that must be handled in
1771126372Snjlthe
1772126372Snjlname resolution mechanism.
1773104470Siwasaki
1774104470SiwasakiCode and Data Size: Current core subsystem library sizes are
1775126372Snjlshown
1776126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1777126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1778126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1779126372Snjlversion of the code includes the debug output trace mechanism and
1780126372Snjlhas a larger code and data size.  Note that these values will
1781126372Snjlvary
1782126372Snjldepending on the efficiency of the compiler and the compiler
1783126372Snjloptions used during generation.
1784104470Siwasaki
1785104470Siwasaki  Previous Release
1786104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1787104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1788104470Siwasaki  Current Release:
1789104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1790104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1791104470Siwasaki
1792104470Siwasaki
1793104470Siwasaki2) Linux
1794104470Siwasaki
1795104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
1796104470SiwasakiNeumann)
1797104470Siwasaki
1798104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
1799104470Siwasaki
1800114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
1801104470Siwasaki
1802104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
1803104470Siwasaki
1804104470SiwasakiIA64 fixes. (David Mosberger)
1805104470Siwasaki
1806104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
1807104470Siwasaki
1808104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
1809104470SiwasakiBrodowski)
1810104470Siwasaki
1811104470Siwasaki
1812104470Siwasaki3) iASL Compiler/Disassembler
1813104470Siwasaki
1814104470SiwasakiClarified some warning/error messages.
1815104470Siwasaki
1816104470Siwasaki
1817104470Siwasaki----------------------------------------
1818104470Siwasaki18 September 2002.  Summary of changes for this release.
1819104470Siwasaki
1820104470Siwasaki
1821104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
1822104470Siwasaki
1823114237SnjlFixed a reported problem with reference chaining (via the Index()
1824114237Snjland RefOf() operators) in the ObjectType() and SizeOf()
1825126372Snjloperators.
1826126372SnjlThe definition of these operators includes the dereferencing of
1827126372Snjlall chained references to return information on the base object.
1828104470Siwasaki
1829104470SiwasakiFixed a problem with stores to indexed package elements - the
1830104470Siwasakiexisting code would not complete the store if an "implicit
1831114237Snjlconversion" was not performed.  In other words, if the existing
1832114237Snjlobject (package element) was to be replaced completely, the code
1833114237Snjldidn't handle this case.
1834104470Siwasaki
1835104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
1836104470Siwasakitarget name to refer to an object of type Integer, String, or
1837104470SiwasakiBuffer, in addition to the scoping object types (Device,
1838104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
1839114237SnjlThis allows existing AML code that has workarounds for a bug in
1840114237SnjlWindows to function properly.  A warning is issued, however.
1841126372SnjlThis
1842126372Snjlaffects both the AML interpreter and the iASL compiler. Below is
1843126372Snjlan example of this type of ASL code:
1844104470Siwasaki
1845104470Siwasaki      Name(DEB,0x00)
1846104470Siwasaki      Scope(DEB)
1847104470Siwasaki      {
1848104470Siwasaki
1849114237SnjlFixed some reported problems with 64-bit integer support in the
1850114237Snjllocal implementation of C library functions (clib.c)
1851104470Siwasaki
1852104470Siwasaki
1853104470Siwasaki2) Linux
1854104470Siwasaki
1855104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
1856104470Siwasakiundefined in non-SMP.
1857104470Siwasaki
1858114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
1859114237Snjlsystems that do not have an interrupt override entry in the MADT.
1860104470Siwasaki
1861104470Siwasaki2.5 big driver reorganization (Pat Mochel)
1862104470Siwasaki
1863104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
1864104470Siwasaki
1865104470SiwasakiNew blacklist entries (Andi Kleen)
1866104470Siwasaki
1867114237SnjlBlacklist improvements. Split blacklist code out into a separate
1868114237Snjlfile. Move checking the blacklist to very early. Previously, we
1869114237Snjlwould use ACPI tables, and then halfway through init, check the
1870114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
1871114237Snjlback to non-ACPI.
1872104470Siwasaki
1873104470Siwasaki
1874104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
1875104470Siwasaki
1876114237SnjlFixed a problem where the typechecking code didn't know that an
1877114237Snjlalias could point to a method.  In other words, aliases were not
1878114237Snjlbeing dereferenced during typechecking.
1879104470Siwasaki
1880104470Siwasaki
1881104470Siwasaki----------------------------------------
1882104470Siwasaki29 August 2002.  Summary of changes for this release.
1883104470Siwasaki
1884104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
1885104470Siwasaki
1886114237SnjlIf the target of a Scope() operator already exists, it must be an
1887114237Snjlobject type that actually opens a scope -- such as a Device,
1888114237SnjlMethod, Scope, etc.  This is a fatal runtime error.  Similar
1889126372Snjlerror
1890126372Snjlcheck has been added to the iASL compiler also.
1891104470Siwasaki
1892114237SnjlTightened up the namespace load to disallow multiple names in the
1893114237Snjlsame scope.  This previously was allowed if both objects were of
1894114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
1895114237Snjlname).
1896104470Siwasaki
1897104470Siwasaki
1898104470Siwasaki2) Linux
1899104470Siwasaki
1900104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
1901104470Siwasakipolarity.
1902104470Siwasaki
1903104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
1904104470Siwasaki
1905104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
1906104470Siwasakiinterpreter *or* the tables.
1907104470Siwasaki
1908104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
1909126372Snjl(Kochi
1910126372SnjlTakayoshi)
1911104470Siwasaki
1912104470Siwasaki
1913104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
1914104470Siwasaki
1915104470SiwasakiImplemented namepath optimization for name declarations.  For
1916104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
1917104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
1918104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
1919104470Siwasakireference path optimization first released in the previous
1920114237Snjlversion. This would seem to complete all possible optimizations
1921114237Snjlfor namepaths within the ASL/AML.
1922104470Siwasaki
1923114237SnjlIf the target of a Scope() operator already exists, it must be an
1924114237Snjlobject type that actually opens a scope -- such as a Device,
1925114237SnjlMethod, Scope, etc.
1926104470Siwasaki
1927114237SnjlImplemented a check and warning for unreachable code in the same
1928114237Snjlblock below a Return() statement.
1929104470Siwasaki
1930114237SnjlFixed a problem where the listing file was not generated if the
1931114237Snjlcompiler aborted if the maximum error count was exceeded (200).
1932104470Siwasaki
1933104470SiwasakiFixed a problem where the typechecking of method return values
1934126372Snjlwas
1935126372Snjlbroken.  This includes the check for a return value when the
1936114237Snjlmethod is invoked as a TermArg (a return value is expected.)
1937104470Siwasaki
1938104470SiwasakiFixed a reported problem where EOF conditions during a quoted
1939104470Siwasakistring or comment caused a fault.
1940104470Siwasaki
1941104470Siwasaki
1942104470Siwasaki----------------------------------------
1943102550Siwasaki15 August 2002.  Summary of changes for this release.
1944102550Siwasaki
1945102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
1946102550Siwasaki
1947114237SnjlFixed a reported problem where a Store to a method argument that
1948114237Snjlcontains a reference did not perform the indirect store
1949126372Snjlcorrectly.
1950126372SnjlThis problem was created during the conversion to the new
1951126372Snjlreference object model - the indirect store to a method argument
1952126372Snjlcode was not updated to reflect the new model.
1953102550Siwasaki
1954114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
1955114237Snjlhandle corner cases, and improve code legibility (Kochi
1956102550SiwasakiTakayoshi)
1957102550Siwasaki
1958102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
1959114237Snjlprefix.  The heavy use of the carat operator by the new namepath
1960114237Snjloptimization in the iASL compiler uncovered a problem with the
1961126372SnjlAML
1962126372Snjlinterpreter handling of this prefix.  In the case where one or
1963126372Snjlmore carats precede a single nameseg, the nameseg was treated as
1964126372Snjlstandalone and the search rule (to root) was inadvertently
1965114237Snjlapplied.  This could cause both the iASL compiler and the
1966114237Snjlinterpreter to find the wrong object or to miss the error that
1967114237Snjlshould occur if the object does not exist at that exact pathname.
1968102550Siwasaki
1969114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
1970114237Snjlload.  This was a relatively minor tweak to the table loading
1971126372Snjlcode
1972126372Snjl(a problem caused by the unexpected encounter with a method
1973114237Snjlinvocation not within a control method), but it does not solve
1974126372Snjlthe
1975126372Snjloverall issue of the execution of AML code at the table level.
1976126372SnjlThis investigation is still ongoing.
1977102550Siwasaki
1978102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1979126372Snjlshown
1980126372Snjlbelow.  These are the code and data sizes for the acpica.lib
1981126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1982126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1983126372Snjlversion of the code includes the debug output trace mechanism and
1984126372Snjlhas a larger code and data size.  Note that these values will
1985126372Snjlvary
1986126372Snjldepending on the efficiency of the compiler and the compiler
1987126372Snjloptions used during generation.
1988102550Siwasaki
1989102550Siwasaki  Previous Release
1990104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1991104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1992102550Siwasaki  Current Release:
1993104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1994104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1995102550Siwasaki
1996102550Siwasaki
1997102550Siwasaki2) Linux
1998102550Siwasaki
1999102550SiwasakiRemove redundant slab.h include (Brad Hards)
2000102550Siwasaki
2001102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
2002102550Siwasaki
2003102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
2004102550Siwasaki
2005104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
2006104470SiwasakiMachek)
2007102550Siwasaki
2008102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
2009102550Siwasaki
2010102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
2011102550Siwasaki
2012102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
2013102550Siwasaki
2014102550Siwasaki
2015102550Siwasaki3) iASL Compiler/Disassembler
2016102550Siwasaki
2017114237SnjlReworked the compiler options to make them more consistent and to
2018114237Snjluse two-letter options where appropriate.  We were running out of
2019114237Snjlsensible letters.   This may break some makefiles, so check the
2020114237Snjlcurrent options list by invoking the compiler with no parameters.
2021102550Siwasaki
2022102550SiwasakiCompleted the design and implementation of the ASL namepath
2023114237Snjloptimization option for the compiler.  This option optimizes all
2024114237Snjlreferences to named objects to the shortest possible path.  The
2025114237Snjlfirst attempt tries to utilize a single nameseg (4 characters)
2026126372Snjland
2027126372Snjlthe "search-to-root" algorithm used by the interpreter.  If that
2028126372Snjlcannot be used (because either the name is not in the search path
2029126372Snjlor there is a conflict with another object with the same name),
2030126372Snjlthe pathname is optimized using the carat prefix (usually a
2031126372Snjlshorter string than specifying the entire path from the root.)
2032102550Siwasaki
2033114237SnjlImplemented support to obtain the DSDT from the Windows registry
2034114237Snjl(when the disassembly option is specified with no input file).
2035114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
2036114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
2037114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
2038114237Snjlfunction in the DOS OSL to make the disassembler truly OS
2039114237Snjlindependent.
2040102550Siwasaki
2041114237SnjlImplemented a new option to disassemble and compile in one step.
2042114237SnjlWhen used without an input filename, this option will grab the
2043114237SnjlDSDT from the local machine, disassemble it, and compile it in
2044126372Snjlone
2045126372Snjlstep.
2046102550Siwasaki
2047114237SnjlAdded a warning message for invalid escapes (a backslash followed
2048114237Snjlby any character other than the allowable escapes).  This catches
2049114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
2050114237SnjlAlso, there are numerous instances in the ACPI specification
2051126372Snjlwhere
2052126372Snjlthis error occurs.
2053102550Siwasaki
2054104470SiwasakiAdded a compiler option to disable all optimizations.  This is
2055114237Snjlbasically the "compatibility mode" because by using this option,
2056114237Snjlthe AML code will come out exactly the same as other ASL
2057114237Snjlcompilers.
2058102550Siwasaki
2059114237SnjlAdded error messages for incorrectly ordered dependent resource
2060114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
2061114237Snjldependent resource list, nested dependent function macros (both
2062114237Snjlstart and end), and missing StartDependentFn macro.  These are
2063114237Snjlcommon errors that should be caught at compile time.
2064102550Siwasaki
2065114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
2066114237Snjlmust be included in the namespace for proper disassembly (because
2067114237Snjlthe disassembler must know the number of arguments.)
2068102550Siwasaki
2069104470SiwasakiAdded an "optimization" message type that is optional (off by
2070114237Snjldefault).  This message is used for all optimizations - including
2071114237Snjlconstant folding, integer optimization, and namepath
2072104470Siwasakioptimization.
2073102550Siwasaki
2074102550Siwasaki----------------------------------------
2075102550Siwasaki25 July 2002.  Summary of changes for this release.
2076102550Siwasaki
2077102550Siwasaki
2078102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
2079102550Siwasaki
2080114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
2081114237Snjlcode and has been integrated into the iASL compiler (see below)
2082126372Snjlas
2083126372Snjlwell as the single-step disassembly for the AML debugger and the
2084126372Snjldisassembler for the AcpiDump utility.  All ACPI 2.0A opcodes,
2085126372Snjlresource templates and macros are fully supported.  The
2086114237Snjldisassembler has been tested on over 30 different AML files,
2087114237Snjlproducing identical AML when the resulting disassembled ASL file
2088114237Snjlis recompiled with the same ASL compiler.
2089102550Siwasaki
2090114237SnjlModified the Resource Manager to allow zero interrupts and zero
2091114237Snjldma channels during the GetCurrentResources call.  This was
2092114237Snjlcausing problems on some platforms.
2093102550Siwasaki
2094114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
2095114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
2096114237Snjlinterfaces.
2097102550Siwasaki
2098102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2099126372Snjlshown
2100126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2101126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2102126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2103126372Snjlversion of the code includes the debug output trace mechanism and
2104126372Snjlhas a larger code and data size.  Note that these values will
2105126372Snjlvary
2106126372Snjldepending on the efficiency of the compiler and the compiler
2107126372Snjloptions used during generation.
2108102550Siwasaki
2109102550Siwasaki  Previous Release
2110104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
2111104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
2112102550Siwasaki  Current Release:
2113104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
2114104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
2115102550Siwasaki
2116102550Siwasaki
2117102550Siwasaki2) Linux
2118102550Siwasaki
2119102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
2120102550Siwasaki
2121114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
2122114237Snjl(Richard Schaal)
2123102550Siwasaki
2124102550Siwasaki
2125102550Siwasaki3) iASL compiler
2126102550Siwasaki
2127114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
2128114237Snjloption invokes the disassembler  to completely disassemble an
2129114237Snjlinput AML file, producing as output a text ASL file with the
2130114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
2131114237Snjlsource files.)  A future enhancement will allow the disassembler
2132114237Snjlto obtain the BIOS DSDT from the registry under Windows.
2133102550Siwasaki
2134102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
2135102550Siwasakidescriptors where an invalid AML sequence was created.
2136102550Siwasaki
2137114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
2138114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
2139114237Snjlcausing reduction conflicts.
2140102550Siwasaki
2141104470SiwasakiFixed a problem where the Ones opcode could get converted to a
2142104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
2143126372Snjlvalue
2144126372Snjlwas expected.  The 64-bit value is now truncated to the correct
2145126372Snjlsize with the correct value.
2146102550Siwasaki
2147102550Siwasaki
2148102550Siwasaki----------------------------------------
2149102550Siwasaki02 July 2002.  Summary of changes for this release.
2150102550Siwasaki
2151102550Siwasaki
2152102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
2153102550Siwasaki
2154114237SnjlThe Table Manager code has been restructured to add several new
2155114237Snjlfeatures.  Tables that are not required by the core subsystem
2156114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
2157114237Snjlvalidated in any way and are returned from AcpiGetFirmwareTable
2158126372Snjlif
2159126372Snjlrequested.  The AcpiOsTableOverride interface is now called for
2160126372Snjleach table that is loaded by the subsystem in order to allow the
2161126372Snjlhost to override any table it chooses.  Previously, only the DSDT
2162126372Snjlcould be overridden.  Added one new files, tbrsdt.c and
2163114237Snjltbgetall.c.
2164102550Siwasaki
2165114237SnjlFixed a problem with the conversion of internal package objects
2166126372Snjlto
2167126372Snjlexternal objects (when a package is returned from a control
2168114237Snjlmethod.)  The return buffer length was set to zero instead of the
2169114237Snjlproper length of the package object.
2170102550Siwasaki
2171104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
2172114237Snjloperators when passing reference arguments to control methods.  A
2173114237Snjlnew type of Reference object is used internally for references
2174114237Snjlproduced by the RefOf operator.
2175102550Siwasaki
2176102550SiwasakiAdded additional error messages in the Resource Manager to
2177126372Snjlexplain
2178126372SnjlAE_BAD_DATA errors when they occur during resource parsing.
2179102550Siwasaki
2180104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
2181104470Siwasakifiner granularity initialization sequence.  These two calls
2182126372Snjlshould
2183126372Snjlbe called in this order: AcpiEnableSubsystem (flags),
2184114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
2185114237Snjlsame.
2186102550Siwasaki
2187102550Siwasaki
2188102550Siwasaki2) Linux
2189102550Siwasaki
2190114237SnjlUpdated the ACPI utilities module to understand the new style of
2191114237Snjlfully resolved package objects that are now returned from the
2192126372Snjlcore
2193126372Snjlsubsystem.  This eliminates errors of the form:
2194102550Siwasaki
2195102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
2196102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
2197102550Siwasaki        Invalid element in package (not a device reference)
2198102550Siwasaki
2199102550SiwasakiThe method evaluation utility uses the new buffer allocation
2200102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
2201102550Siwasaki
2202102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
2203114237SnjlController before the namespace has been fully initialized, which
2204114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
2205114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
2206114237Snjllimited testing was performed of the added functionality.)
2207102550Siwasaki
2208102550SiwasakiFixed memory leaks in the EC driver.
2209102550Siwasaki
2210102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
2211102550Siwasaki
2212114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
2213114237Snjlno longer needed since acpi_evaluate_object can optionally
2214104470Siwasakiallocate memory for the return object.
2215102550Siwasaki
2216114237SnjlImplemented fix for keyboard hang when getting battery readings
2217126372Snjlon
2218126372Snjlsome systems (Stephen White)
2219102550Siwasaki
2220102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
2221102550Siwasaki
2222114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
2223114237Snjlsupport
2224102550Siwasaki
2225102550Siwasaki----------------------------------------
2226102550Siwasaki11 June 2002.  Summary of changes for this release.
2227102550Siwasaki
2228102550Siwasaki
2229102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
2230102550Siwasaki
2231104470SiwasakiFixed a reported problem where constants such as Zero and One
2232114237Snjlappearing within _PRT packages were not handled correctly within
2233114237Snjlthe resource manager code.  Originally reported against the ASL
2234114237Snjlcompiler because the code generator now optimizes integers to
2235114237Snjltheir minimal AML representation (i.e. AML constants if
2236126372Snjlpossible.)
2237126372SnjlThe _PRT code now handles all AML constant opcodes correctly
2238126372Snjl(Zero, One, Ones, Revision).
2239102550Siwasaki
2240102550SiwasakiFixed a problem with the Concatenate operator in the AML
2241114237Snjlinterpreter where a buffer result object was incorrectly marked
2242126372Snjlas
2243126372Snjlnot fully evaluated, causing a run-time error of AE_AML_INTERNAL.
2244102550Siwasaki
2245104470SiwasakiAll package sub-objects are now fully resolved before they are
2246114237Snjlreturned from the external ACPI interfaces.  This means that name
2247114237Snjlstrings are resolved to object handles, and constant operators
2248114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
2249102550Siwasaki
2250102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
2251104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
2252104470Siwasakiwithin the AML stream. This has simplified and reduced the
2253104470Siwasakigenerated code size of the subsystem by eliminating about 10
2254104470Siwasakiswitch statements for these constants (which previously were
2255104470Siwasakicontained in Reference objects.)  The complicating issues are
2256126372Snjlthat
2257126372Snjlthe Zero opcode is used as a "placeholder" for unspecified
2258114237Snjloptional target operands and stores to constants are defined to
2259126372Snjlbe
2260126372Snjlno-ops.
2261102550Siwasaki
2262102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2263126372Snjlshown
2264126372Snjlbelow. These are the code and data sizes for the acpica.lib
2265114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2266114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2267114237Snjlversion of the code includes the debug output trace mechanism and
2268114237Snjlhas a larger code and data size.  Note that these values will
2269126372Snjlvary
2270126372Snjldepending on the efficiency of the compiler and the compiler
2271114237Snjloptions used during generation.
2272102550Siwasaki
2273102550Siwasaki  Previous Release
2274104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2275104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2276102550Siwasaki  Current Release:
2277104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
2278104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
2279102550Siwasaki
2280102550Siwasaki
2281102550Siwasaki2) Linux
2282102550Siwasaki
2283104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
2284104470Siwasakibridges (Bjorn Helgaas).
2285102550Siwasaki
2286102550Siwasaki
2287102550Siwasaki3) iASL Compiler Version X2046:
2288102550Siwasaki
2289114237SnjlFixed a problem where the "_DDN" reserved name was defined to be
2290126372Snjla
2291126372Snjlcontrol method with one argument.  There are no arguments, and
2292114237Snjl_DDN does not have to be a control method.
2293102550Siwasaki
2294114237SnjlFixed a problem with the Linux version of the compiler where the
2295114237Snjlsource lines printed with error messages were the wrong lines.
2296114237SnjlThis turned out to be the "LF versus CR/LF" difference between
2297114237SnjlWindows and Unix.  This appears to be the longstanding issue
2298114237Snjlconcerning listing output and error messages.
2299102550Siwasaki
2300114237SnjlFixed a problem with the Linux version of compiler where opcode
2301114237Snjlnames within error messages were wrong.  This was caused by a
2302114237Snjlslight difference in the output of the Flex tool on Linux versus
2303114237SnjlWindows.
2304102550Siwasaki
2305102550SiwasakiFixed a problem with the Linux compiler where the hex output
2306126372Snjlfiles
2307126372Snjlcontained some garbage data caused by an internal buffer overrun.
2308102550Siwasaki
2309102550Siwasaki
2310102550Siwasaki----------------------------------------
2311102550Siwasaki17 May 2002.  Summary of changes for this release.
2312102550Siwasaki
2313102550Siwasaki
2314102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
2315102550Siwasaki
2316102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
2317104470SiwasakiOmniBook where the FADT revision number and the table size are
2318104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
2319126372Snjlnew
2320126372Snjlbehavior is to fallback to using only the ACPI 1.0 fields of the
2321126372SnjlFADT if the table is too small to be a ACPI 2.0 table as claimed
2322126372Snjlby the revision number.  Although this is a BIOS bug, this is a
2323126372Snjlcase where the workaround is simple enough and with no side
2324126372Snjleffects, so it seemed prudent to add it.  A warning message is
2325126372Snjlissued, however.
2326102550Siwasaki
2327114237SnjlImplemented minimum size checks for the fixed-length ACPI tables
2328126372Snjl-
2329126372Snjl- the FADT and FACS, as well as consistency checks between the
2330114237Snjlrevision number and the table size.
2331102550Siwasaki
2332114237SnjlFixed a reported problem in the table override support where the
2333114237Snjlnew table pointer was incorrectly treated as a physical address
2334114237Snjlinstead of a logical address.
2335102550Siwasaki
2336114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
2337114237Snjlwith more descriptive codes.
2338102550Siwasaki
2339104470SiwasakiFixed a problem where an exception would occur if an ASL Field
2340126372Snjlwas
2341126372Snjldefined with no named Field Units underneath it (used by some
2342114237Snjlindex fields).
2343102550Siwasaki
2344102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2345126372Snjlshown
2346126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2347126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2348126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2349126372Snjlversion of the code includes the debug output trace mechanism and
2350126372Snjlhas a larger code and data size.  Note that these values will
2351126372Snjlvary
2352126372Snjldepending on the efficiency of the compiler and the compiler
2353126372Snjloptions used during generation.
2354102550Siwasaki
2355102550Siwasaki  Previous Release
2356104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2357104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2358102550Siwasaki  Current Release:
2359104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
2360104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
2361102550Siwasaki
2362102550Siwasaki
2363102550Siwasaki
2364102550Siwasaki2) Linux
2365102550Siwasaki
2366114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
2367114237Snjl(Paul D. and Dominik Brodowski)
2368102550Siwasaki
2369102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
2370102550Siwasaki
2371102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
2372102550Siwasaki
2373102550SiwasakiFix "MHz" typo (Dominik Brodowski)
2374102550Siwasaki
2375102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
2376102550Siwasaki
2377102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
2378102550Siwasaki
2379102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
2380102550Siwasaki
2381102550Siwasaki3) iASL Compiler Version X2044:
2382102550Siwasaki
2383102550SiwasakiImplemented error checking for the string used in the EISAID
2384126372Snjlmacro
2385126372Snjl(Usually used in the definition of the _HID object.)  The code
2386126372Snjlnow
2387126372Snjlstrictly enforces the PnP format - exactly 7 characters, 3
2388126372Snjluppercase letters and 4 hex digits.
2389102550Siwasaki
2390102550SiwasakiIf a raw string is used in the definition of the _HID object
2391102550Siwasaki(instead of the EISAID macro), the string must contain all
2392114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
2393114237Snjlof the asterisk.)
2394102550Siwasaki
2395114237SnjlImplemented checking for invalid use of ACPI reserved names for
2396114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
2397114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
2398114237SnjlPreviously, this check was only performed for control methods.
2399102550Siwasaki
2400114237SnjlImplemented an additional check on the Name operator to emit an
2401114237Snjlerror if a reserved name that must be implemented in ASL as a
2402114237Snjlcontrol method is used.  We know that a reserved name must be a
2403114237Snjlmethod if it is defined with input arguments.
2404102550Siwasaki
2405102550SiwasakiThe warning emitted when a namespace object reference is not
2406126372Snjlfound
2407126372Snjlduring the cross reference phase has been changed into an error.
2408126372SnjlThe "External" directive should be used for names defined in
2409126372Snjlother
2410126372Snjlmodules.
2411102550Siwasaki
2412102550Siwasaki
2413102550Siwasaki4) Tools and Utilities
2414102550Siwasaki
2415114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
2416114237Snjltested.
2417102550Siwasaki
2418102550SiwasakiFixed a problem with the output of both acpidump and adump16
2419126372Snjlwhere
2420126372Snjlthe indentation of closing parentheses and brackets was not
2421114237Snjlaligned properly with the parent block.
2422102550Siwasaki
2423102550Siwasaki
2424102550Siwasaki----------------------------------------
2425102550Siwasaki03 May 2002.  Summary of changes for this release.
2426102550Siwasaki
2427102550Siwasaki
2428102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
2429102550Siwasaki
2430114237SnjlAdded support a new OSL interface that allows the host operating
2431114237Snjlsystem software to override the DSDT found in the firmware -
2432114237SnjlAcpiOsTableOverride.  With this interface, the OSL can examine
2433126372Snjlthe
2434126372Snjlversion of the firmware DSDT and replace it with a different one
2435126372Snjlif desired.
2436102550Siwasaki
2437114237SnjlAdded new external interfaces for accessing ACPI registers from
2438114237Snjldevice drivers and other system software - AcpiGetRegister and
2439114237SnjlAcpiSetRegister.  This was simply an externalization of the
2440114237Snjlexisting AcpiHwBitRegister interfaces.
2441102550Siwasaki
2442104470SiwasakiFixed a regression introduced in the previous build where the
2443104470SiwasakiASL/AML CreateField operator always returned an error,
2444102550Siwasaki"destination must be a NS Node".
2445102550Siwasaki
2446114237SnjlExtended the maximum time (before failure) to successfully enable
2447114237SnjlACPI mode to 3 seconds.
2448102550Siwasaki
2449102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2450126372Snjlshown
2451126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2452126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2453126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2454126372Snjlversion of the code includes the debug output trace mechanism and
2455126372Snjlhas a larger code and data size.  Note that these values will
2456126372Snjlvary
2457126372Snjldepending on the efficiency of the compiler and the compiler
2458126372Snjloptions used during generation.
2459102550Siwasaki
2460102550Siwasaki  Previous Release
2461104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2462104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2463102550Siwasaki  Current Release:
2464104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
2465104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
2466102550Siwasaki
2467102550Siwasaki
2468102550Siwasaki2) Linux
2469102550Siwasaki
2470104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
2471104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
2472126372Snjllast
2473126372Snjlone still hangs when testing the LAPIC timer.
2474102550Siwasaki
2475114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
2476114237Snjlname.
2477102550Siwasaki
2478102550SiwasakiAdded warning on boot for Presario 711FR.
2479102550Siwasaki
2480102550SiwasakiSleep improvements (Pavel Machek)
2481102550Siwasaki
2482102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
2483102550Siwasaki
2484102550SiwasakiIA64: Fixed memory map functions (JI Lee)
2485102550Siwasaki
2486102550Siwasaki
2487102550Siwasaki3) iASL Compiler Version X2043:
2488102550Siwasaki
2489114237SnjlAdded support to allow the compiler to be integrated into the MS
2490114237SnjlVC++ development environment for one-button compilation of single
2491114237Snjlfiles or entire projects -- with error-to-source-line mapping.
2492102550Siwasaki
2493104470SiwasakiImplemented support for compile-time constant folding for the
2494104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
2495104470Siwasakispecification.  This allows the ASL writer to use expressions
2496104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
2497114237Snjlevaluate to constants at compile time and will also simplify the
2498114237Snjlemitted AML in any such sub-expressions that can be folded
2499104470Siwasaki(evaluated at compile-time.)  This increases the size of the
2500104470Siwasakicompiler significantly because a portion of the ACPI CA AML
2501104470Siwasakiinterpreter is included within the compiler in order to pre-
2502104470Siwasakievaluate constant expressions.
2503102550Siwasaki
2504114237Snjl
2505102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
2506114237Snjlcompiler to fault.  (This macro is used in conjunction with the
2507114237Snjl_STR reserved name.)
2508102550Siwasaki
2509114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
2510114237SnjlOnes opcodes where possible to further reduce the size of integer
2511114237Snjlconstants and thus reduce the overall size of the generated AML
2512114237Snjlcode.
2513102550Siwasaki
2514102550SiwasakiImplemented error checking for new reserved terms for ACPI
2515126372Snjlversion
2516126372Snjl2.0A.
2517102550Siwasaki
2518104470SiwasakiImplemented the -qr option to display the current list of ACPI
2519104470Siwasakireserved names known to the compiler.
2520102550Siwasaki
2521104470SiwasakiImplemented the -qc option to display the current list of ASL
2522104470Siwasakioperators that are allowed within constant expressions and can
2523104470Siwasakitherefore be folded at compile time if the operands are
2524104470Siwasakiconstants.
2525102550Siwasaki
2526102550Siwasaki
2527102550Siwasaki4) Documentation
2528102550Siwasaki
2529102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
2530126372Snjltypes,
2531126372Snjland memory allocation model options.
2532102550Siwasaki
2533114237SnjlUpdated the iASL Compiler User Reference to apply new format and
2534114237Snjladd information about new features and options.
2535102550Siwasaki
2536102550Siwasaki----------------------------------------
2537102550Siwasaki19 April 2002.  Summary of changes for this release.
2538102550Siwasaki
2539102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
2540102550Siwasaki
2541114237SnjlThe source code base for the Core Subsystem has been completely
2542114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
2543114237Snjlversions.  The Lint option files used are included in the
2544114237Snjl/acpi/generate/lint directory.
2545102550Siwasaki
2546102550SiwasakiImplemented enhanced status/error checking across the entire
2547114237SnjlHardware manager subsystem.  Any hardware errors (reported from
2548114237Snjlthe OSL) are now bubbled up and will abort a running control
2549114237Snjlmethod.
2550102550Siwasaki
2551114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
2552114237Snjlwas stored only with control method nodes, causing a fault when
2553114237Snjlnon-control method code was executed during table loading.  The
2554114237Snjlsolution implemented uses a global variable to indicate table
2555114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
2556114237Snjlnot support mixed integer widths across different ACPI tables
2557114237Snjl(DSDT, SSDT).
2558102550Siwasaki
2559114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
2560114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
2561114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
2562114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
2563114237SnjlACPI 2.0 X field is zero (even though the table revision
2564126372Snjlindicates
2565126372Snjla full ACPI 2.0 table.)  The ACPI specification will be updated
2566126372Snjlto
2567126372Snjlclarify this issue.
2568102550Siwasaki
2569104470SiwasakiFixed a problem with the SystemMemory operation region handler
2570104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
2571104470Siwasakispecified access width was larger than a byte.  This caused
2572104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
2573104470Siwasakiaccessed with the width specified.  On systems that do not
2574126372Snjlsupport
2575126372Snjlnon-aligned transfers, a check is made to guarantee proper
2576126372Snjladdress
2577126372Snjlalignment before proceeding in order to avoid an AML-caused
2578126372Snjlalignment fault within the kernel.
2579102550Siwasaki
2580102550Siwasaki
2581114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
2582114237Snjlof the 4-byte Irq field was extracted.
2583102550Siwasaki
2584114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
2585114237Snjlfunction was out of date and required a rewrite.
2586114237Snjl
2587102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2588126372Snjlshown
2589126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2590126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2591126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2592126372Snjlversion of the code includes the debug output trace mechanism and
2593126372Snjlhas a larger code and data size.  Note that these values will
2594126372Snjlvary
2595126372Snjldepending on the efficiency of the compiler and the compiler
2596126372Snjloptions used during generation.
2597102550Siwasaki
2598102550Siwasaki  Previous Release
2599104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2600104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2601102550Siwasaki  Current Release:
2602104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
2603104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
2604102550Siwasaki
2605102550Siwasaki
2606102550Siwasaki2) Linux
2607102550Siwasaki
2608102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
2609102550Siwasaki
2610102550Siwasaki
2611102550Siwasaki3) iASL Compiler Version X2042:
2612102550Siwasaki
2613104470SiwasakiImplemented an additional compile-time error check for a field
2614104470Siwasakiunit whose size + minimum access width would cause a run-time
2615114237Snjlaccess beyond the end-of-region.  Previously, only the field size
2616114237Snjlitself was checked.
2617102550Siwasaki
2618104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
2619104470Siwasakiobject in preparation for compile-time evaluation of the type
2620104470Siwasaki3/4/5 ASL operators.
2621102550Siwasaki
2622102550Siwasaki
2623102550Siwasaki----------------------------------------
2624102550SiwasakiSummary of changes for this release: 03_29_02
2625102550Siwasaki
2626102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
2627102550Siwasaki
2628104470SiwasakiImplemented support for late evaluation of TermArg operands to
2629114237SnjlBuffer and Package objects.  This allows complex expressions to
2630126372Snjlbe
2631126372Snjlused in the declarations of these object types.
2632102550Siwasaki
2633104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
2634126372SnjlACPI
2635126372Snjl1.0, if the field was larger than 32 bits, it was returned as a
2636126372Snjlbuffer - otherwise it was returned as an integer.  In ACPI 2.0,
2637126372Snjlthe field is returned as a buffer only if the field is larger
2638126372Snjlthan
2639126372Snjl64 bits.  The TableRevision is now considered when making this
2640126372Snjlconversion to avoid incompatibility with existing ASL code.
2641102550Siwasaki
2642104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
2643114237Snjlallows an RSDP with either a logical or physical address.  With
2644114237Snjlthis support, the host OS can now override all ACPI tables with
2645114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
2646114237Snjlsupport to allow a common data type for both physical and logical
2647114237Snjlpointers internally.  This required a change to the
2648114237SnjlAcpiOsGetRootPointer interface.
2649102550Siwasaki
2650104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
2651126372Snjlall
2652126372SnjlGPE, Fixed Event, and PM Timer I/O.  This allows the use of
2653126372Snjlmemory
2654126372Snjlmapped I/O for these ACPI features.
2655102550Siwasaki
2656102550SiwasakiInitialization now ignores not only non-required tables (All
2657114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
2658114237Snjlnot validate the table headers of unrecognized tables.
2659102550Siwasaki
2660102550SiwasakiFixed a problem where a notify handler could only be
2661102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
2662102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
2663102550SiwasakiThermal.
2664102550Siwasaki
2665114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
2666114237Snjlcritical information is returned when this debug level is
2667104470Siwasakienabled.
2668102550Siwasaki
2669102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2670126372Snjlshown
2671126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2672126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2673126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2674126372Snjlversion of the code includes the debug output trace mechanism and
2675126372Snjlhas a larger code and data size.  Note that these values will
2676126372Snjlvary
2677126372Snjldepending on the efficiency of the compiler and the compiler
2678126372Snjloptions used during generation.
2679102550Siwasaki
2680102550Siwasaki  Previous Release
2681104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2682104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2683102550Siwasaki  Current Release:
2684104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
2685104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
2686102550Siwasaki
2687102550Siwasaki
2688102550Siwasaki2) Linux:
2689102550Siwasaki
2690114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
2691114237Snjl2.0-based processor performance control (e.g. Intel(R)
2692114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
2693114237Snjlthe Intel "applet" interface are not supported through this.  The
2694114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
2695114237Snjl[Note that basic policy for controlling performance state
2696114237Snjltransitions will be included in the next version of ospmd.]  The
2697114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
2698114237Snjlerrata handling underwent a complete overhaul (big thanks to
2699114237SnjlDominik Brodowski).
2700102550Siwasaki
2701114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
2702114237Snjlbased devices in the ACPI namespace are now dynamically bound
2703114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
2704114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
2705114237Snjlsubordinate PCI bridges.
2706102550Siwasaki
2707104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
2708104470Siwasakientries defined underneath PCI bridges.
2709102550Siwasaki
2710104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
2711104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
2712102550Siwasaki
2713114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
2714114237Snjl(acpi.c, mpparse.c) -- stay tuned.
2715102550Siwasaki
2716102550SiwasakiAdded back visual differentiation between fixed-feature and
2717114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
2718114237Snjlbutton/power/PWRF) to simplify button identification.
2719102550Siwasaki
2720114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
2721114237Snjlany "_THIS_MODULE defined but not used" messages.
2722102550Siwasaki
2723102550SiwasakiCan now shut down the system using "magic sysrq" key.
2724102550Siwasaki
2725102550Siwasaki
2726102550Siwasaki3) iASL Compiler version 2041:
2727102550Siwasaki
2728104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
2729104470Siwasakiconstants were not reported.
2730102550Siwasaki
2731102550SiwasakiImplemented a fix for the General Register template Address
2732126372Snjlfield.
2733126372SnjlThis field was 8 bits when it should be 64.
2734102550Siwasaki
2735102550SiwasakiFixed a problem where errors/warnings were no longer being
2736126372Snjlemitted
2737126372Snjlwithin the listing output file.
2738102550Siwasaki
2739114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
2740114237Snjlexactly 4 characters, alphanumeric only.
2741102550Siwasaki
2742102550Siwasaki
2743102550Siwasaki
2744102550Siwasaki
2745102550Siwasaki----------------------------------------
2746102550SiwasakiSummary of changes for this release: 03_08_02
2747102550Siwasaki
2748102550Siwasaki
2749102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
2750102550Siwasaki
2751114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
2752114237Snjlkeyword could cause an interpreter error due to attempting to
2753126372Snjlread
2754126372Snjlor write beyond the end of the parent Operation Region.
2755102550Siwasaki
2756102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
2757126372Snjlwhere
2758126372Snjlan attempt was made to map memory beyond the end of the region.
2759126372SnjlThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY"
2760126372Snjlerrors on some Linux systems.
2761102550Siwasaki
2762114237SnjlFixed a problem where the interpreter/namespace "search to root"
2763114237Snjlalgorithm was not functioning for some object types.  Relaxed the
2764114237Snjlinternal restriction on the search to allow upsearches for all
2765114237Snjlexternal object types as well as most internal types.
2766102550Siwasaki
2767102550Siwasaki
2768102550Siwasaki2) Linux:
2769102550Siwasaki
2770104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
2771104470Siwasakihlt.
2772102550Siwasaki
2773114237SnjlWriting to the processor limit interface should now work. "echo
2774126372Snjl1"
2775126372Snjlwill increase the limit, 2 will decrease, and 0 will reset to the
2776126372Snjldefault.
2777102550Siwasaki
2778102550Siwasaki
2779102550Siwasaki3) ASL compiler:
2780102550Siwasaki
2781102550SiwasakiFixed segfault on Linux version.
2782102550Siwasaki
2783102550Siwasaki
2784102550Siwasaki----------------------------------------
2785102550SiwasakiSummary of changes for this release: 02_25_02
2786102550Siwasaki
2787102550Siwasaki1) ACPI CA Core Subsystem:
2788102550Siwasaki
2789102550Siwasaki
2790102550SiwasakiFixed a problem where the GPE bit masks were not initialized
2791102550Siwasakiproperly, causing erratic GPE behavior.
2792102550Siwasaki
2793104470SiwasakiImplemented limited support for multiple calling conventions.
2794126372SnjlThe
2795126372Snjlcode can be generated with either the VPL (variable parameter
2796114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
2797114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
2798114237Snjlwhen generated with FPL.
2799102550Siwasaki
2800102550Siwasaki
2801102550Siwasaki2) Linux
2802102550Siwasaki
2803114237SnjlRe-add some /proc/acpi/event functionality that was lost during
2804114237Snjlthe rewrite
2805102550Siwasaki
2806102550SiwasakiResolved issue with /proc events for fixed-feature buttons
2807126372Snjlshowing
2808126372Snjlup as the system device.
2809102550Siwasaki
2810102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
2811102550Siwasakivalues.
2812102550Siwasaki
2813114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
2814102550Siwasaki
2815114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
2816102550Siwasaki
2817104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
2818104470Siwasakihysterisis.
2819102550Siwasaki
2820102550SiwasakiRestructured PRT support.
2821102550Siwasaki
2822102550Siwasaki
2823102550Siwasaki----------------------------------------
2824102550SiwasakiSummary of changes for this label: 02_14_02
2825102550Siwasaki
2826102550Siwasaki
2827102550Siwasaki1) ACPI CA Core Subsystem:
2828102550Siwasaki
2829114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
2830114237SnjlFADT tables.
2831102550Siwasaki
2832114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
2833114237Snjlbeen removed.  All 64-bit platforms should be migrated to the
2834126372SnjlACPI
2835126372Snjl2.0 tables.  The actbl71.h header has been removed from the
2836126372Snjlsource
2837126372Snjltree.
2838102550Siwasaki
2839114237SnjlAll C macros defined within the subsystem have been prefixed with
2840114237Snjl"ACPI_" to avoid collision with other system include files.
2841102550Siwasaki
2842102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
2843126372Snjlsince
2844126372Snjlit is never used and causes lint warnings for ignoring the return
2845126372Snjlvalue.
2846102550Siwasaki
2847104470SiwasakiAdded error checking to all internal mutex acquire and release
2848104470Siwasakicalls.  Although a failure from one of these interfaces is
2849104470Siwasakiprobably a fatal system error, these checks will cause the
2850114237Snjlimmediate abort of the currently executing method or interface.
2851102550Siwasaki
2852114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
2853114237Snjlfault.  This was a side effect of the deployment of the new
2854126372Snjlmemory
2855126372Snjlallocation model.
2856102550Siwasaki
2857102550SiwasakiFixed a couple of problems with the Global Lock support
2858126372Snjlintroduced
2859126372Snjlin the last major build.  The "common" (1.0/2.0) internal FACS
2860126372Snjlwas
2861126372Snjlbeing overwritten with the FACS signature and clobbering the
2862126372SnjlGlobal Lock pointer.  Also, the actual firmware FACS was being
2863126372Snjlunmapped after construction of the "common" FACS, preventing
2864126372Snjlaccess to the actual Global Lock field within it.  The "common"
2865126372Snjlinternal FACS is no longer installed as an actual ACPI table; it
2866126372Snjlis used simply as a global.
2867102550Siwasaki
2868102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2869126372Snjlshown
2870126372Snjlbelow.  These are the code and data sizes for the acpica.lib
2871126372Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2872126372Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2873126372Snjlversion of the code includes the debug output trace mechanism and
2874126372Snjlhas a larger code and data size.  Note that these values will
2875126372Snjlvary
2876126372Snjldepending on the efficiency of the compiler and the compiler
2877126372Snjloptions used during generation.
2878102550Siwasaki
2879102550Siwasaki  Previous Release (02_07_01)
2880104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2881104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2882102550Siwasaki  Current Release:
2883104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2884104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2885102550Siwasaki
2886102550Siwasaki
2887102550Siwasaki2) Linux
2888102550Siwasaki
2889102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
2890102550Siwasakichanges described above.
2891102550Siwasaki
2892114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
2893114237Snjlproper poll functionality.
2894102550Siwasaki
2895102550SiwasakiFixed and restructured power management (acpi_bus).
2896102550Siwasaki
2897102550SiwasakiOnly create /proc "view by type" when devices of that class
2898102550Siwasakiexist.
2899102550Siwasaki
2900104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
2901102550Siwasaki
2902102550SiwasakiImproved thermal zone code.
2903102550Siwasaki
2904102550Siwasaki
2905102550Siwasaki3) ASL Compiler, version X2039:
2906102550Siwasaki
2907114237Snjl
2908114237SnjlImplemented the new compiler restriction on ASL String hex/octal
2909114237Snjlescapes to non-null, ASCII values.  An error results if an
2910126372Snjlinvalid
2911126372Snjlvalue is used.  (This will require an ACPI 2.0 specification
2912126372Snjlchange.)
2913102550Siwasaki
2914102550SiwasakiAML object labels that are output to the optional C and ASM
2915126372Snjlsource
2916126372Snjlare now prefixed with both the ACPI table signature and table ID
2917126372Snjlto help guarantee uniqueness within a large BIOS project.
2918102550Siwasaki
2919102550Siwasaki
2920102550Siwasaki----------------------------------------
2921102550SiwasakiSummary of changes for this label: 02_01_02
2922102550Siwasaki
2923102550Siwasaki1) ACPI CA Core Subsystem:
2924102550Siwasaki
2925114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
2926114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
2927114237Snjlother changes for ACPI 2.0 support are complete.  With
2928104470Siwasakisimultaneous code and data optimizations throughout the
2929126372Snjlsubsystem,
2930126372SnjlACPI 2.0 support has been implemented with almost no additional
2931126372Snjlcost in terms of code and data size.
2932102550Siwasaki
2933114237SnjlImplemented a new mechanism for allocation of return buffers.  If
2934114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
2935114237Snjlbe allocated on behalf of the caller.  Consolidated all return
2936114237Snjlbuffer validation and allocation to a common procedure.  Return
2937114237Snjlbuffers will be allocated via the primary OSL allocation
2938126372Snjlinterface
2939126372Snjlsince it appears that a separate pool is not needed by most
2940126372Snjlusers.
2941126372SnjlIf a separate pool is required for these buffers, the caller can
2942126372Snjlstill use the original mechanism and pre-allocate the buffer(s).
2943102550Siwasaki
2944102550SiwasakiImplemented support for string operands within the DerefOf
2945102550Siwasakioperator.
2946102550Siwasaki
2947114237SnjlRestructured the Hardware and Event managers to be table driven,
2948114237Snjlsimplifying the source code and reducing the amount of generated
2949114237Snjlcode.
2950102550Siwasaki
2951102550SiwasakiSplit the common read/write low-level ACPI register bitfield
2952104470Siwasakiprocedure into a separate read and write, simplifying the code
2953104470Siwasakiconsiderably.
2954102550Siwasaki
2955114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
2956114237Snjlused only a handful of times and didn't have enough critical mass
2957114237Snjlfor a separate interface.  Replaced with a common calloc
2958126372Snjlprocedure
2959126372Snjlin the core.
2960102550Siwasaki
2961104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
2962104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
2963114237SnjlReorganized the GPE information and shrunk a large array that was
2964114237Snjloriginally large enough to hold info for all possible GPEs (256)
2965114237Snjlto simply large enough to hold all GPEs up to the largest GPE
2966114237Snjlnumber on the machine.
2967102550Siwasaki
2968114237SnjlFixed a reported problem with resource structure alignment on 64-
2969114237Snjlbit platforms.
2970102550Siwasaki
2971102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
2972102550Siwasakiinterfaces to not require any flags for the common case of
2973102550Siwasakienabling/disabling a GPE.
2974102550Siwasaki
2975104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
2976102550Siwasaki
2977114237SnjlMost TBDs in comments within the source code have been resolved
2978114237Snjland eliminated.
2979102550Siwasaki
2980102550SiwasakiFixed a problem in the interpreter where a standalone parent
2981102550Siwasakiprefix (^) was not handled correctly in the interpreter and
2982102550Siwasakidebugger.
2983102550Siwasaki
2984102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
2985102550Siwasaki
2986114237SnjlImplemented Field support in the ASL Load operator.  This allows
2987126372Snjla
2988126372Snjltable to be loaded from a named field, in addition to loading a
2989114237Snjltable directly from an Operation Region.
2990102550Siwasaki
2991104470SiwasakiImplemented timeout and handle support in the external Global
2992126372SnjlLock
2993126372Snjlinterfaces.
2994102550Siwasaki
2995114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
2996114237Snjllonger being generated correctly during the dump of named
2997102550Siwasakiobjects.
2998102550Siwasaki
2999102550SiwasakiModified the AML debugger to give a full display of if/while
3000102550Siwasakipredicates instead of just one AML opcode at a time.  (The
3001102550Siwasakipredicate can have several nested ASL statements.)  The old
3002126372Snjlmethod
3003126372Snjlwas confusing during single stepping.
3004102550Siwasaki
3005102550SiwasakiCode and Data Size: Current core subsystem library sizes are
3006126372Snjlshown
3007126372Snjlbelow. These are the code and data sizes for the acpica.lib
3008114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
3009114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
3010114237Snjlversion of the code includes the debug output trace mechanism and
3011114237Snjlhas a larger code and data size.  Note that these values will
3012126372Snjlvary
3013126372Snjldepending on the efficiency of the compiler and the compiler
3014114237Snjloptions used during generation.
3015102550Siwasaki
3016102550Siwasaki  Previous Release (12_18_01)
3017114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
3018114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
3019102550Siwasaki   Current Release:
3020114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
3021114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
3022102550Siwasaki
3023102550Siwasaki2) Linux
3024102550Siwasaki
3025104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
3026104470Siwasakidriver)
3027102550Siwasaki
3028102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
3029102550Siwasaki
3030102550SiwasakiNew thermal policy (Thermal driver)
3031102550Siwasaki
3032102550SiwasakiMany updates to /proc
3033102550Siwasaki
3034102550SiwasakiBattery "low" event support (Battery driver)
3035102550Siwasaki
3036104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
3037102550Siwasaki
3038104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
3039102550Siwasaki
3040102550SiwasakiMenuconfig options redesigned
3041102550Siwasaki
3042102550Siwasaki3) ASL Compiler, version X2037:
3043102550Siwasaki
3044114237SnjlImplemented several new output features to simplify integration
3045126372Snjlof
3046126372SnjlAML code into  firmware: 1) Output the AML in C source code with
3047126372Snjllabels for each named ASL object.  The    original ASL source
3048126372Snjlcode
3049126372Snjlis interleaved as C comments. 2) Output the AML in ASM source
3050126372Snjlcode
3051126372Snjlwith labels and interleaved ASL    source. 3) Output the AML in
3052126372Snjlraw hex table form, in either C or ASM.
3053102550Siwasaki
3054102550SiwasakiImplemented support for optional string parameters to the
3055102550SiwasakiLoadTable operator.
3056102550Siwasaki
3057104470SiwasakiCompleted support for embedded escape sequences within string
3058114237Snjlliterals.  The compiler now supports all single character escapes
3059114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
3060114237Snjlnull byte into a string literal (via the hex/octal escape) causes
3061114237Snjlthe string to be immediately terminated.  A warning is issued.
3062102550Siwasaki
3063104470SiwasakiFixed a problem where incorrect AML was generated for the case
3064104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
3065102550Siwasaki
3066102550Siwasaki) with no trailing name segments.
3067102550Siwasaki
3068102550SiwasakiThe compiler has been successfully generated with a 64-bit C
3069102550Siwasakicompiler.
3070102550Siwasaki
3071102550Siwasaki
3072102550Siwasaki
3073102550Siwasaki
3074102550Siwasaki----------------------------------------
3075102550SiwasakiSummary of changes for this label: 12_18_01
3076102550Siwasaki
3077102550Siwasaki1) Linux
3078102550Siwasaki
3079114237SnjlEnhanced blacklist with reason and severity fields. Any table's
3080114237Snjlsignature may now be used to identify a blacklisted system.
3081102550Siwasaki
3082114237SnjlCall _PIC control method to inform the firmware which interrupt
3083114237Snjlmodel the OS is using. Turn on any disabled link devices.
3084102550Siwasaki
3085102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
3086102550Siwasaki
3087102550Siwasaki 2) ACPI CA Core Subsystem:
3088102550Siwasaki
3089104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
3090126372Snjlfrom
3091126372Snjlwhile loop)
3092102550Siwasaki
3093102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
3094102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
3095104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
3096126372Snjlboth
3097126372Snjlthe ASL compiler and the AML interpreter.  The only remaining
3098126372SnjlACPI
3099126372Snjl2.0 task is support for the String data type in the DerefOf
3100126372Snjloperator.  Fixed a problem with AcquireMutex where the status
3101126372Snjlcode
3102126372Snjlwas lost if the caller had to actually wait for the mutex.
3103102550Siwasaki
3104104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
3105102550Siwasaki
3106114237SnjlCompleted implementation of the external Global Lock interfaces -
3107126372Snjl-
3108126372SnjlAcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout and
3109126372SnjlHandler parameters were added.
3110102550Siwasaki
3111102550SiwasakiCompleted another pass at removing warnings and issues when
3112114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
3113114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
3114114237Snjladd and subtract (diff) macros have changed considerably.
3115102550Siwasaki
3116114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
3117114237Snjl64-bit platforms, 32-bits on all others.  This type is used
3118104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
3119126372Snjlused,
3120126372Snjland affects the OSL memory allocation interfaces AcpiOsAllocate
3121126372Snjland AcpiOsCallocate.
3122102550Siwasaki
3123102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
3124102550Siwasaki
3125102550SiwasakiCode and Data Size: Current core subsystem library sizes are
3126126372Snjlshown
3127126372Snjlbelow. These are the code and data sizes for the acpica.lib
3128114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
3129114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
3130114237Snjlversion of the code includes the debug output trace mechanism and
3131114237Snjlhas a larger code and data size. Note that these values will vary
3132114237Snjldepending on the efficiency of the compiler and the compiler
3133114237Snjloptions used during generation.
3134102550Siwasaki
3135102550Siwasaki  Previous Release (12_05_01)
3136114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
3137114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
3138102550Siwasaki   Current Release:
3139114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
3140114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
3141102550Siwasaki
3142102550Siwasaki 3) ASL Compiler, version X2034:
3143102550Siwasaki
3144114237SnjlNow checks for (and generates an error if detected) the use of a
3145114237SnjlBreak or Continue statement without an enclosing While statement.
3146102550Siwasaki
3147102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
3148102550Siwasakicompiler.
3149102550Siwasaki
3150102550Siwasaki ----------------------------------------
3151102550SiwasakiSummary of changes for this label: 12_05_01
3152102550Siwasaki
3153102550Siwasaki 1) ACPI CA Core Subsystem:
3154102550Siwasaki
3155102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
3156104470Siwasakioperator creates a new copy of an object (and is also used to
3157104470Siwasakibypass the "implicit conversion" mechanism of the Store
3158102550Siwasakioperator.)
3159102550Siwasaki
3160102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
3161102550Siwasakiimplemented.  The change is that performing a SizeOf on a
3162114237Snjlreference object causes an automatic dereference of the object to
3163114237Snjltha actual value before the size is evaluated. This behavior was
3164114237Snjlundefined in ACPI 1.0.
3165102550Siwasaki
3166114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
3167114237Snjlhave been implemented.  The interrupt polarity and mode are now
3168114237Snjlindependently set.
3169102550Siwasaki
3170114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
3171114237Snjlappearing in Package objects were not properly converted to
3172114237Snjlintegers when the internal Package was converted to an external
3173114237Snjlobject (via the AcpiEvaluateObject interface.)
3174102550Siwasaki
3175114237SnjlFixed a problem with the namespace object deletion mechanism for
3176114237Snjlobjects created by control methods.  There were two parts to this
3177114237Snjlproblem: 1) Objects created during the initialization phase
3178126372Snjlmethod
3179126372Snjlparse were not being deleted, and 2) The object owner ID
3180126372Snjlmechanism
3181126372Snjlto track objects was broken.
3182102550Siwasaki
3183114237SnjlFixed a problem where the use of the ASL Scope operator within a
3184114237Snjlcontrol method would result in an invalid opcode exception.
3185102550Siwasaki
3186114237SnjlFixed a problem introduced in the previous label where the buffer
3187114237Snjllength required for the _PRT structure was not being returned
3188114237Snjlcorrectly.
3189102550Siwasaki
3190102550SiwasakiCode and Data Size: Current core subsystem library sizes are
3191126372Snjlshown
3192126372Snjlbelow. These are the code and data sizes for the acpica.lib
3193114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
3194114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
3195114237Snjlversion of the code includes the debug output trace mechanism and
3196114237Snjlhas a larger code and data size.  Note that these values will
3197126372Snjlvary
3198126372Snjldepending on the efficiency of the compiler and the compiler
3199114237Snjloptions used during generation.
3200102550Siwasaki
3201102550Siwasaki  Previous Release (11_20_01)
3202114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
3203114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
3204102550Siwasaki
3205102550Siwasaki  Current Release:
3206114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
3207114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
3208102550Siwasaki
3209102550Siwasaki 2) Linux:
3210102550Siwasaki
3211102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
3212102550Siwasaki
3213104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
3214114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
3215114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
3216114237Snjlentries are treated as if they were static (not yet
3217114237Snjlreconfigurable).  Architecture- specific code to use this data is
3218114237Snjlabsent on IA32 but should be available shortly.
3219102550Siwasaki
3220114237SnjlChanged the initialization sequence to start the ACPI interpreter
3221114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
3222114237Snjlin init/main.c.  This ordering is required to support PRT and
3223114237Snjlfacilitate other (future) enhancement.  A side effect is that the
3224114237SnjlACPI bus driver and certain device drivers can no longer be
3225126372Snjlloaded
3226126372Snjlas modules.
3227102550Siwasaki
3228104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
3229104470SiwasakiRouting support to be included without the ACPI Bus and other
3230104470Siwasakidevice drivers.
3231102550Siwasaki
3232102550Siwasaki 3) ASL Compiler, version X2033:
3233102550Siwasaki
3234102550SiwasakiFixed some issues with the use of the new CopyObject and
3235102550SiwasakiDataTableRegion operators.  Both are fully functional.
3236102550Siwasaki
3237102550Siwasaki ----------------------------------------
3238102550SiwasakiSummary of changes for this label: 11_20_01
3239102550Siwasaki
3240102550Siwasaki 20 November 2001.  Summary of changes for this release.
3241102550Siwasaki
3242102550Siwasaki 1) ACPI CA Core Subsystem:
3243102550Siwasaki
3244104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
3245104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
3246126372Snjlonly
3247126372Snjlthe least-significant byte of the source to the Indexed buffer
3248126372Snjlbyte.  Multiple writes are not performed.
3249102550Siwasaki
3250104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
3251104470Siwasakioperator was not recorded correctly into the field object.
3252102550Siwasaki
3253102550SiwasakiFixed a problem where ASL Event objects were created in a
3254114237Snjlsignalled state. Events are now created in an unsignalled state.
3255102550Siwasaki
3256114237SnjlThe internal object cache is now purged after table loading and
3257114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
3258114237Snjlthe assumption that object use is greatest during the parse phase
3259114237Snjlof the entire table (versus the run-time use of individual
3260126372Snjlcontrol
3261126372Snjlmethods.)
3262102550Siwasaki
3263102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
3264102550Siwasaki
3265104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
3266126372Snjlnew
3267126372Snjlfeature development with an actual reduction in the library size.
3268126372SnjlCurrent core subsystem library sizes are shown below.  These are
3269126372Snjlthe code and data sizes for the acpica.lib produced by the
3270126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3271126372Snjlinclude
3272126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3273126372Snjlincludes the debug output trace mechanism and has a larger code
3274126372Snjland data size.  Note that these values will vary depending on the
3275126372Snjlefficiency of the compiler and the compiler options used during
3276126372Snjlgeneration.
3277102550Siwasaki
3278102550Siwasaki  Previous Release (11_09_01):
3279114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3280114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3281102550Siwasaki
3282102550Siwasaki  Current Release:
3283114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
3284114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
3285102550Siwasaki
3286102550Siwasaki 2) Linux:
3287102550Siwasaki
3288114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
3289114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
3290114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
3291114237Snjlnear future.  This functionality replaces
3292114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
3293114237Snjl2.4.15-preX release.  To enable this feature you must add
3294114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
3295114237Snjlfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
3296126372Snjlin
3297126372Snjlthe works...
3298102550Siwasaki
3299114237SnjlRestructured the configuration options to allow boot-time table
3300114237Snjlparsing support without inclusion of the ACPI Interpreter (and
3301114237Snjlother) code.
3302102550Siwasaki
3303102550SiwasakiNOTE: This release does not include fixes for the reported
3304126372Snjlevents,
3305126372Snjlpower-down, and thermal passive cooling issues (coming soon).
3306102550Siwasaki
3307102550Siwasaki 3) ASL Compiler:
3308102550Siwasaki
3309114237SnjlAdded additional typechecking for Fields within restricted access
3310114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
3311114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
3312114237Snjldeclared with the BufferAcc access type.
3313102550Siwasaki
3314114237SnjlFixed a problem where the listing file output of control methods
3315114237Snjlno longer interleaved the actual AML code with the ASL source
3316114237Snjlcode.
3317102550Siwasaki
3318102550Siwasaki
3319102550Siwasaki
3320102550Siwasaki----------------------------------------
3321102550SiwasakiSummary of changes for this label: 11_09_01
3322102550Siwasaki
3323102550Siwasaki1) ACPI CA Core Subsystem:
3324102550Siwasaki
3325114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
3326114237SnjlBuffer, String, or Integer source operand that is smaller than
3327126372Snjlthe
3328126372Snjltarget field. In these cases, the source operand is zero-extended
3329126372Snjlto fill the target field.
3330102550Siwasaki
3331104470SiwasakiFixed a problem where a Field starting bit offset (within the
3332104470Siwasakiparent operation region) was calculated incorrectly if the
3333104470Siwasakialignment of the field differed from the access width.  This
3334114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
3335114237Snjlpossibly other fields that use the "AccessAny" keyword.
3336102550Siwasaki
3337114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
3338114237Snjlstores through method arguments did not operate correctly.
3339102550Siwasaki
3340102550Siwasaki2) Linux:
3341102550Siwasaki
3342102550SiwasakiImplemented boot-time ACPI table parsing support
3343114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
3344114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
3345114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
3346114237Snjlprocessors, memory, and interrupts during setup_arch().  Note
3347126372Snjlthat
3348126372Snjlthis patch does not include the required architecture-specific
3349126372Snjlchanges required to apply this information -- subsequent patches
3350126372Snjlwill be posted for both IA32 and IA64 to achieve this.
3351102550Siwasaki
3352114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
3353114237SnjlMochel. This allows IA32 systems to transition to/from various
3354114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
3355114237Snjldriver model and power-manageable drivers will prevent its
3356114237Snjl(successful) use on most systems.
3357102550Siwasaki
3358114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
3359114237Snjlsubmenu, unified IA32 and IA64 options, added new "Boot using
3360126372SnjlACPI
3361126372Snjltables" option, etc.
3362102550Siwasaki
3363114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
3364114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
3365114237Snjltransactions.
3366102550Siwasaki
3367102550Siwasaki ----------------------------------------
3368102550SiwasakiSummary of changes for this label: 11_02_01
3369102550Siwasaki
3370102550Siwasaki1) ACPI CA Core Subsystem:
3371102550Siwasaki
3372102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
3373102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
3374102550Siwasakiimplemented.
3375102550Siwasaki
3376114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
3377114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
3378114237SnjlPciConfiguration(), Read/Write Memory(), and Read/Write Port()
3379126372Snjlnow
3380126372Snjlaccept an ACPI_INTEGER (64 bits) as the value parameter.  Also,
3381126372Snjlthe value parameter for the address space handler interface is
3382126372Snjlnow
3383126372Snjlan ACPI_INTEGER.  OSL implementations of these interfaces must
3384126372Snjlnow
3385126372Snjlhandle the case where the Width parameter is 64.
3386102550Siwasaki
3387104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
3388104470Siwasakidisassembly for IndexFields was not supported correctly.
3389102550Siwasaki
3390102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
3391104470Siwasakisupported. During field access, a check is performed to ensure
3392114237Snjlthat the value written to an Index or Bank register is not out of
3393114237Snjlthe range of the register.  The Index (or Bank) register is
3394114237Snjlwritten before each access to the field data. Future support will
3395114237Snjlinclude allowing individual IndexFields to be wider than the
3396114237SnjlDataRegister width.
3397102550Siwasaki
3398114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
3399114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
3400114237Snjla boundary case that occurred when a DWORD field was written to a
3401114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
3402114237Snjlinterpreter to write one datum too many.
3403102550Siwasaki
3404102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
3405114237Snjlstarting bit address of a field was incorrectly calculated if the
3406114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
3407114237SnjlQwordAcc).
3408102550Siwasaki
3409104470SiwasakiFields: Fixed a problem where forward references to individual
3410104470SiwasakiFieldUnits (individual Field names within a Field definition)
3411126372Snjlwere
3412126372Snjlnot resolved during the AML table load.
3413102550Siwasaki
3414104470SiwasakiFields: Fixed a problem where forward references from a Field
3415104470Siwasakidefinition to the parent Operation Region definition were not
3416104470Siwasakiresolved during the AML table load.
3417104470Siwasaki
3418114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
3419114237Snjlduring AML table load.
3420102550Siwasaki
3421102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
3422126372Snjlinterface
3423126372Snjlreturned an incorrect name for the root node.
3424102550Siwasaki
3425104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
3426126372Snjlnew
3427126372Snjlfeature development with an actual reduction in the library size.
3428126372SnjlCurrent core subsystem library sizes are shown below.  These are
3429126372Snjlthe code and data sizes for the acpica.lib produced by the
3430126372SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3431126372Snjlinclude
3432126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3433126372Snjlincludes the debug output trace mechanism and has a larger code
3434126372Snjland data size.  Note that these values will vary depending on the
3435126372Snjlefficiency of the compiler and the compiler options used during
3436126372Snjlgeneration.
3437102550Siwasaki
3438102550Siwasaki  Previous Release (10_18_01):
3439114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3440114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3441102550Siwasaki
3442102550Siwasaki  Current Release:
3443114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
3444114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
3445102550Siwasaki
3446102550Siwasaki 2) Linux:
3447102550Siwasaki
3448102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
3449102550SiwasakiMODULE_LICENSE("GPL") to all modules.
3450102550Siwasaki
3451102550Siwasaki 3) ASL Compiler version X2030:
3452102550Siwasaki
3453104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
3454104470Siwasakiflagged as errors.
3455102550Siwasaki
3456102550Siwasaki 4) Documentation:
3457102550Siwasaki
3458104470SiwasakiProgrammer Reference updated to reflect OSL and address space
3459104470Siwasakihandler interface changes described above.
3460102550Siwasaki
3461102550Siwasaki----------------------------------------
3462102550SiwasakiSummary of changes for this label: 10_18_01
3463102550Siwasaki
3464102550SiwasakiACPI CA Core Subsystem:
3465102550Siwasaki
3466102550SiwasakiFixed a problem with the internal object reference count
3467126372Snjlmechanism
3468126372Snjlthat occasionally caused premature object deletion. This resolves
3469126372Snjlall of the outstanding problem reports where an object is deleted
3470126372Snjlin the middle of an interpreter evaluation.  Although this
3471126372Snjlproblem
3472126372Snjlonly showed up in rather obscure cases, the solution to the
3473126372Snjlproblem involved an adjustment of all reference counts involving
3474126372Snjlobjects attached to namespace nodes.
3475102550Siwasaki
3476102550SiwasakiFixed a problem with Field support in the interpreter where
3477114237Snjlwriting to an aligned field whose length is an exact multiple (2
3478114237Snjlor greater) of the field access granularity would cause an
3479126372Snjlattempt
3480126372Snjlto write beyond the end of the field.
3481102550Siwasaki
3482102550SiwasakiThe top level AML opcode execution functions within the
3483102550Siwasakiinterpreter have been renamed with a more meaningful and
3484102550Siwasakiconsistent naming convention.  The modules exmonad.c and
3485102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
3486102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
3487102550Siwasaki
3488114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
3489102550Siwasaki
3490114237SnjlFixed a problem where the AML debugger was causing some internal
3491114237Snjlobjects to not be deleted during subsystem termination.
3492102550Siwasaki
3493104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
3494104470Siwasakiwhere the subsystem would fault if the named object to be
3495104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
3496102550Siwasaki
3497102550SiwasakiFixed a problem with IndexFields and BankFields where the
3498114237Snjlsubsystem would fault if the index, data, or bank registers were
3499114237Snjlnot defined in the same scope as the field itself.
3500102550Siwasaki
3501104470SiwasakiAdded printf format string checking for compilers that support
3502104470Siwasakithis feature.  Corrected more than 50 instances of issues with
3503104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
3504104470Siwasakithroughout the core subsystem code.
3505102550Siwasaki
3506104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
3507104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
3508126372Snjlsupport
3509126372Snjlis more than 50% implemented.
3510102550Siwasaki
3511114237SnjlEnhanced the output of the AML debugger "dump namespace" command
3512114237Snjlto output in a more human-readable form.
3513102550Siwasaki
3514114237SnjlCurrent core subsystem library code sizes are shown below.  These
3515114237Snjlare the code and data sizes for the acpica.lib produced by the
3516114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3517126372Snjlinclude
3518126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3519126372Snjlincludes the full debug trace mechanism -- leading to a much
3520114237Snjllarger code and data size.  Note that these values will vary
3521114237Snjldepending on the efficiency of the compiler and the compiler
3522114237Snjloptions used during generation.
3523102550Siwasaki
3524102550Siwasaki     Previous Label (09_20_01):
3525114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
3526114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
3527102550Siwasaki
3528102550Siwasaki     This Label:
3529102550Siwasaki
3530114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
3531114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
3532114237Snjl
3533102550SiwasakiLinux:
3534102550Siwasaki
3535104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
3536104470Siwasakiknown ASL/AML problems.
3537102550Siwasaki
3538102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
3539126372Snjladded
3540126372Snjlsupport for _HOT (the critical suspend trip point).  The 'info'
3541126372Snjlfile now includes threshold/policy information, and allows
3542126372Snjlsetting
3543126372Snjlof _SCP (cooling preference) and _TZP (polling frequency) values
3544126372Snjlto the 'info' file. Examples: "echo tzp=5 > info" sets the
3545126372Snjlpolling
3546126372Snjlfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling
3547126372Snjlpreference to the passive/quiet mode (if supported by the ASL).
3548102550Siwasaki
3549104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
3550104470Siwasakiwhen loading the control method battery driver.
3551102550Siwasaki
3552102550Siwasaki ----------------------------------------
3553102550SiwasakiSummary of changes for this label: 09_20_01
3554102550Siwasaki
3555102550Siwasaki ACPI CA Core Subsystem:
3556102550Siwasaki
3557104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
3558104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
3559114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
3560114237Snjlsleeps.)
3561102550Siwasaki
3562104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
3563104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
3564104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
3565104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
3566102550Siwasaki
3567114237SnjlA local double-precision divide/modulo module has been added to
3568114237Snjlenhance portability to OS kernels where a 64-bit math library is
3569114237Snjlnot available.  The new module is "utmath.c".
3570102550Siwasaki
3571104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
3572114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
3573114237Snjl2K at 1860  bytes (1.82k)
3574102550Siwasaki
3575114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
3576114237Snjlroot table pointer was not mapped into a logical address
3577104470Siwasakiproperly.
3578102550Siwasaki
3579104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
3580126372Snjlthe
3581126372Snjlinterpreter code for the ASL Notify operator.
3582102550Siwasaki
3583102550SiwasakiFixed a problem where the use of the ASL Revision operator
3584114237Snjlreturned an error. This operator now returns the current version
3585114237Snjlof the ACPI CA core subsystem.
3586102550Siwasaki
3587114237SnjlFixed a problem where objects passed as control method parameters
3588114237Snjlto AcpiEvaluateObject were always deleted at method termination.
3589114237SnjlHowever, these objects may end up being stored into the namespace
3590114237Snjlby the called method.  The object reference count mechanism was
3591114237Snjlapplied to these objects instead of a force delete.
3592102550Siwasaki
3593114237SnjlFixed a problem where static strings or buffers (contained in the
3594114237SnjlAML code) that are declared as package elements within the ASL
3595114237Snjlcode could cause a fault because the interpreter would attempt to
3596114237Snjldelete them.  These objects are now marked with the "static
3597114237Snjlobject" flag to prevent any attempt to delete them.
3598102550Siwasaki
3599114237SnjlImplemented an interpreter optimization to use operands directly
3600114237Snjlfrom the state object instead of extracting the operands to local
3601114237Snjlvariables.  This reduces stack use and code size, and improves
3602114237Snjlperformance.
3603102550Siwasaki
3604102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
3605126372Snjlextra
3606126372Snjllayer of code.
3607102550Siwasaki
3608114237SnjlCurrent core subsystem library code sizes are shown below.  These
3609114237Snjlare the code and data sizes for the acpica.lib produced by the
3610114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3611126372Snjlinclude
3612126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3613126372Snjlincludes the full debug trace mechanism -- leading to a much
3614114237Snjllarger code and data size.  Note that these values will vary
3615114237Snjldepending on the efficiency of the compiler and the compiler
3616114237Snjloptions used during generation.
3617102550Siwasaki
3618102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
3619114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
3620114237SnjlTotal  (Previously 195K)
3621102550Siwasaki
3622102550SiwasakiLinux:
3623102550Siwasaki
3624114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
3625114237SnjlInteger objects are now 64 bits wide
3626102550Siwasaki
3627114237SnjlAll Acpi data types and structures are now in lower case.  Only
3628114237SnjlAcpi macros are upper case for differentiation.
3629102550Siwasaki
3630102550Siwasaki Documentation:
3631102550Siwasaki
3632102550SiwasakiChanges to the external interfaces as described above.
3633102550Siwasaki
3634102550Siwasaki ----------------------------------------
3635102550SiwasakiSummary of changes for this label: 08_31_01
3636102550Siwasaki
3637102550Siwasaki ACPI CA Core Subsystem:
3638102550Siwasaki
3639114237SnjlA bug with interpreter implementation of the ASL Divide operator
3640114237Snjlwas found and fixed.  The implicit function return value (not the
3641114237Snjlexplicit store operands) was returning the remainder instead of
3642114237Snjlthe quotient.  This was a longstanding bug and it fixes several
3643114237Snjlknown outstanding issues on various platforms.
3644102550Siwasaki
3645104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
3646104470Siwasakibeen further optimized for size.  There are 700 invocations of
3647126372Snjlthe
3648126372SnjlDEBUG_PRINT macro alone, so each optimization reduces the size of
3649126372Snjlthe debug version of the subsystem significantly.
3650102550Siwasaki
3651114237SnjlA stack trace mechanism has been implemented.  The maximum stack
3652114237Snjlusage is about 2K on 32-bit platforms.  The debugger command
3653126372Snjl"stat
3654126372Snjlstack" will display the current maximum stack usage.
3655102550Siwasaki
3656114237SnjlAll public symbols and global variables within the subsystem are
3657114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
3658114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
3659114237Snjlwith other kernel subsystems.
3660102550Siwasaki
3661114237SnjlMost of the internal fixed lookup tables have been moved into the
3662114237Snjlcode segment via the const operator.
3663102550Siwasaki
3664104470SiwasakiSeveral enhancements have been made to the interpreter to both
3665104470Siwasakireduce the code size and improve performance.
3666102550Siwasaki
3667114237SnjlCurrent core subsystem library code sizes are shown below.  These
3668114237Snjlare the code and data sizes for the acpica.lib produced by the
3669114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
3670126372Snjlinclude
3671126372Snjlany ACPI driver or OSPM code.  The debug version of the code
3672126372Snjlincludes the full debug trace mechanism which contains over 700
3673126372Snjlinvocations of the DEBUG_PRINT macro, 500 function entry macro
3674126372Snjlinvocations, and over 900 function exit macro invocations --
3675126372Snjlleading to a much larger code and data size.  Note that these
3676114237Snjlvalues will vary depending on the efficiency of the compiler and
3677114237Snjlthe compiler options used during generation.
3678102550Siwasaki
3679102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
3680102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
3681102550Siwasaki
3682102550Siwasaki Linux:
3683102550Siwasaki
3684104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
3685102550Siwasaki
3686102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
3687102550Siwasaki
3688102550Siwasaki ASL Compiler, version X2026:
3689102550Siwasaki
3690104470SiwasakiFixed a problem introduced in the previous label where the AML
3691104470Siwasakicode emitted for package objects produced packages with zero
3692104470Siwasakilength.
3693102550Siwasaki
3694102550Siwasaki ----------------------------------------
3695102550SiwasakiSummary of changes for this label: 08_16_01
3696102550Siwasaki
3697102550SiwasakiACPI CA Core Subsystem:
3698102550Siwasaki
3699114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
3700114237SnjlAML interpreter (These are already supported by the Intel ASL
3701114237Snjlcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
3702126372Snjland
3703126372SnjlToBuffer.  Support for 64-bit AML constants is implemented in the
3704126372SnjlAML parser, debugger, and disassembler.
3705102550Siwasaki
3706114237SnjlThe internal memory tracking mechanism (leak detection code) has
3707114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
3708114237Snjlblock is no longer allocated for each memory allocation), and now
3709114237Snjlsupports all of the internal object caches.
3710102550Siwasaki
3711114237SnjlThe data structures and code for the internal object caches have
3712114237Snjlbeen coelesced and optimized so that there is a single cache and
3713114237Snjlmemory list data structure and a single group of functions that
3714114237Snjlimplement generic cache management.  This has reduced the code
3715114237Snjlsize in both the debug and release versions of the subsystem.
3716102550Siwasaki
3717102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
3718126372Snjlreplaced
3719126372Snjlby ACPI_DEBUG_PRINT.  The syntax for this macro is slightly
3720126372Snjldifferent, because it generates a single call to an internal
3721126372Snjlfunction.  This results in a savings of about 90 bytes per
3722126372Snjlinvocation, resulting in an overall code and data savings of
3723126372Snjlabout
3724126372Snjl16% in the debug version of the subsystem.
3725102550Siwasaki
3726102550Siwasaki Linux:
3727102550Siwasaki
3728114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
3729114237Snjlmachines.
3730102550Siwasaki
3731102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
3732102550Siwasaki
3733102550SiwasakiFurther tweaked source code Linuxization.
3734102550Siwasaki
3735102550SiwasakiOther minor fixes.
3736102550Siwasaki
3737102550Siwasaki ASL Compiler:
3738102550Siwasaki
3739114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
3740102550Siwasaki
3741114237SnjlFixed a problem where the optional length parameter for the ACPI
3742114237Snjl2.0 ToString operator.
3743102550Siwasaki
3744114237SnjlFixed multiple extraneous error messages when a syntax error is
3745114237Snjldetected within the declaration line of a control method.
3746102550Siwasaki
3747102550Siwasaki ----------------------------------------
3748102550SiwasakiSummary of changes for this label: 07_17_01
3749102550Siwasaki
3750102550SiwasakiACPI CA Core Subsystem:
3751102550Siwasaki
3752104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
3753114237SnjlACPI table via the ACPI signature.  The interface can be called
3754126372Snjlat
3755126372Snjlany time during kernel initialization, even before the kernel
3756114237Snjlvirtual memory manager is initialized and paging is enabled.
3757126372SnjlThis
3758126372Snjlallows kernel subsystems to obtain ACPI tables very early, even
3759126372Snjlbefore the ACPI CA subsystem is initialized.
3760102550Siwasaki
3761104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
3762104470Siwasakicould be resolved to the incorrect address under the following
3763114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
3764114237Snjlparent operation region is not defined on a DWORD boundary.
3765102550Siwasaki
3766114237SnjlFixed a problem where the interpreter is not being locked during
3767114237Snjlnamespace initialization (during execution of the _INI control
3768114237Snjlmethods), causing an error when an attempt is made to release it
3769114237Snjllater.
3770102550Siwasaki
3771104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
3772114237Snjlongoing throughout the rest of this year.  In this label, The Mod
3773114237Snjloperator is implemented.
3774102550Siwasaki
3775102550SiwasakiAdded a new data type to contain full PCI addresses named
3776102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
3777126372SnjlDevice,
3778126372Snjland Function values.
3779102550Siwasaki
3780102550Siwasaki Linux:
3781102550Siwasaki
3782102550SiwasakiEnhanced the Linux version of the source code to change most
3783102550Siwasakicapitalized ACPI type names to lowercase. For example, all
3784114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
3785114237Snjlresult in a large diff, but the change is strictly cosmetic and
3786114237Snjlaligns the CA code closer to the Linux coding standard.
3787102550Siwasaki
3788102550SiwasakiOSL Interfaces:
3789102550Siwasaki
3790114237SnjlThe interfaces to the PCI configuration space have been changed
3791126372Snjlto
3792126372Snjladd the PCI Segment number and to split the single 32-bit
3793126372Snjlcombined
3794126372SnjlDeviceFunction field into two 16-bit fields.  This was
3795114237Snjlaccomplished by moving the four values that define an address in
3796114237SnjlPCI configuration space (segment, bus, device, and function) to
3797114237Snjlthe new ACPI_PCI_ID structure.
3798102550Siwasaki
3799104470SiwasakiThe changes to the PCI configuration space interfaces led to a
3800104470Siwasakireexamination of the complete set of address space access
3801114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
3802114237Snjlinterfaces have proven difficult to maintain (any small change
3803114237Snjlmust be propagated across at least 6 interfaces) and do not
3804126372Snjleasily
3805126372Snjlallow for future expansion to 64 bits if necessary.  Also, on
3806126372Snjlsome
3807126372Snjlsystems, it would not be appropriate to demultiplex the access
3808126372Snjlwidth (8, 16, 32,or 64) before calling the OSL if the
3809114237Snjlcorresponding native OS interfaces contain a similar access width
3810114237Snjlparameter.  For these reasons, the 18 address space interfaces
3811114237Snjlhave been replaced by these 6 new ones:
3812102550Siwasaki
3813102550SiwasakiAcpiOsReadPciConfiguration
3814102550SiwasakiAcpiOsWritePciConfiguration
3815102550SiwasakiAcpiOsReadMemory
3816102550SiwasakiAcpiOsWriteMemory
3817102550SiwasakiAcpiOsReadPort
3818102550SiwasakiAcpiOsWritePort
3819102550Siwasaki
3820114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
3821114237Snjlto perform the platform and/or OS-specific actions necessary to
3822114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
3823114237Snjlinterface will simply call down to the CA core to perform the low-
3824114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
3825114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
3826114237Snjlremain OS and platform independent.
3827102550Siwasaki
3828104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
3829114237Snjl"function code and pointer" interface for various miscellaneous
3830114237Snjlsignals and notifications that must be made to the host OS.   The
3831114237Snjlfirst such signals are intended to support the ASL Fatal and
3832114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
3833114237Snjlinterface has been obsoleted.
3834102550Siwasaki
3835102550SiwasakiThe definition of the AcpiFormatException interface has been
3836114237Snjlchanged to simplify its use.  The caller no longer must supply a
3837114237Snjlbuffer to the call; A pointer to a const string is now returned
3838114237Snjldirectly.  This allows the call to be easily used in printf
3839114237Snjlstatements, etc. since the caller does not have to manage a local
3840114237Snjlbuffer.
3841102550Siwasaki
3842114237Snjl
3843102550Siwasaki ASL Compiler, Version X2025:
3844102550Siwasaki
3845114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
3846114237Snjland are fully functional.  They will work with all ACPI 1.0
3847114237Snjlinterpreters, since the operators are simply translated to
3848126372SnjlIf/Else
3849126372Snjlpairs.
3850102550Siwasaki
3851104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
3852104470Siwasakiwith 1.0 interpreters, for the same reason.
3853102550Siwasaki
3854114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
3855114237Snjlpackages have a separate opcode, and their size is determined by
3856114237Snjlthe interpreter at run-time.
3857102550Siwasaki
3858114237SnjlDocumentation The ACPI CA Programmer Reference has been updated
3859126372Snjlto
3860126372Snjlreflect the new interfaces and changes to existing interfaces.
3861102550Siwasaki
3862102550Siwasaki ------------------------------------------
3863102550SiwasakiSummary of changes for this label: 06_15_01
3864102550Siwasaki
3865102550Siwasaki ACPI CA Core Subsystem:
3866102550Siwasaki
3867102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
3868114237Snjlobject would get its byte address inadvertently rounded down to
3869114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
3870102550Siwasaki
3871102550Siwasaki ASL Compiler, version X2024:
3872102550Siwasaki
3873114237SnjlFixed a problem where the Switch() operator would either fault or
3874114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
3875114237Snjl2.0 operator is not yet implemented.
3876102550Siwasaki
3877114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
3878114237Snjltimings.
3879102550Siwasaki
3880114237SnjlImplementation of the CreateField operator automatically converts
3881114237Snjla reference to a named field within a resource descriptor from a
3882114237Snjlbyte offset to a bit offset if required.
3883102550Siwasaki
3884102550SiwasakiAdded some missing named fields from the resource descriptor
3885104470Siwasakisupport. These are the names that are automatically created by
3886126372Snjlthe
3887126372Snjlcompiler to reference fields within a descriptor.  They are only
3888126372Snjlvalid at compile time and are not passed through to the AML
3889114237Snjlinterpreter.
3890102550Siwasaki
3891104470SiwasakiResource descriptor named fields are now typed as Integers and
3892104470Siwasakisubject to compile-time typechecking when used in expressions.
3893102550Siwasaki
3894102550Siwasaki ------------------------------------------
3895102550SiwasakiSummary of changes for this label: 05_18_01
3896102550Siwasaki
3897102550Siwasaki ACPI CA Core Subsystem:
3898102550Siwasaki
3899114237SnjlFixed a couple of problems in the Field support code where bits
3900114237Snjlfrom adjacent fields could be returned along with the proper
3901126372Snjlfield
3902126372Snjlbits. Restructured the field support code to improve performance,
3903126372Snjlreadability and maintainability.
3904102550Siwasaki
3905114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
3906114237Snjlinto the output, saving hundreds of copies of procedure name
3907114237Snjlstrings within the source, shrinking the memory footprint of the
3908114237Snjldebug version of the core subsystem.
3909102550Siwasaki
3910102550Siwasaki Source Code Structure:
3911102550Siwasaki
3912104470SiwasakiThe source code directory tree was restructured to reflect the
3913114237Snjlcurrent organization of the component architecture.  Some files
3914114237Snjland directories have been moved and/or renamed.
3915102550Siwasaki
3916102550Siwasaki Linux:
3917102550Siwasaki
3918102550SiwasakiFixed leaking kacpidpc processes.
3919102550Siwasaki
3920102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
3921102550Siwasakiopened.
3922102550Siwasaki
3923102550Siwasaki ASL Compiler, version X2020:
3924102550Siwasaki
3925114237SnjlMemory allocation performance enhancement - over 24X compile time
3926114237Snjlimprovement on large ASL files.  Parse nodes and namestring
3927114237Snjlbuffers are now allocated from a large internal compiler buffer.
3928102550Siwasaki
3929102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
3930102550Siwasakispecified
3931102550Siwasaki
3932104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
3933126372Snjlfile
3934126372Snjlinstead of the console.
3935102550Siwasaki
3936102550Siwasaki"External" second parameter is now optional
3937102550Siwasaki
3938102550Siwasaki"ElseIf" syntax now properly allows the predicate
3939102550Siwasaki
3940102550SiwasakiLast operand to "Load" now recognized as a Target operand
3941102550Siwasaki
3942102550SiwasakiDebug object can now be used anywhere as a normal object.
3943102550Siwasaki
3944102550SiwasakiResourceTemplate now returns an object of type BUFFER
3945102550Siwasaki
3946102550SiwasakiEISAID now returns an object of type INTEGER
3947102550Siwasaki
3948102550Siwasaki"Index" now works with a STRING operand
3949102550Siwasaki
3950102550Siwasaki"LoadTable" now accepts optional parameters
3951102550Siwasaki
3952102550Siwasaki"ToString" length parameter is now optional
3953102550Siwasaki
3954102550Siwasaki"Interrupt (ResourceType," parse error fixed.
3955102550Siwasaki
3956104470Siwasaki"Register" with a user-defined region space parse error fixed
3957102550Siwasaki
3958114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
3959114237Snjlfixed
3960102550Siwasaki
3961102550Siwasaki"Revision" is now an object of type INTEGER.
3962102550Siwasaki
3963102550Siwasaki
3964102550Siwasaki
3965102550Siwasaki------------------------------------------
3966102550SiwasakiSummary of changes for this label: 05_02_01
3967102550Siwasaki
3968102550SiwasakiLinux:
3969102550Siwasaki
3970102550Siwasaki/proc/acpi/event now blocks properly.
3971102550Siwasaki
3972102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
3973102550Siwasaki/proc/acpi/dsdt.
3974102550Siwasaki
3975102550Siwasaki ACPI CA Core Subsystem:
3976102550Siwasaki
3977104470SiwasakiFixed a problem introduced in the previous label where some of
3978126372Snjlthe
3979126372Snjl"small" resource descriptor types were not recognized.
3980102550Siwasaki
3981102550SiwasakiImproved error messages for the case where an ASL Field is
3982126372Snjloutside
3983126372Snjlthe range of the parent operation region.
3984102550Siwasaki
3985102550Siwasaki ASL Compiler, version X2018:
3986102550Siwasaki
3987102550SiwasakiAdded error detection for ASL Fields that extend beyond the
3988126372Snjllength
3989126372Snjlof the parent operation region (only if the length of the region
3990126372Snjlis known at compile time.)  This includes fields that have a
3991126372Snjlminimum access width that is smaller than the parent region, and
3992126372Snjlindividual field units that are partially or entirely beyond the
3993126372Snjlextent of the parent.
3994102550Siwasaki
3995102550Siwasaki
3996102550Siwasaki
3997102550Siwasaki------------------------------------------
3998102550SiwasakiSummary of changes for this label: 04_27_01
3999102550Siwasaki
4000102550Siwasaki ACPI CA Core Subsystem:
4001102550Siwasaki
4002104470SiwasakiFixed a problem where the namespace mutex could be released at
4003126372Snjlthe
4004126372Snjlwrong time during execution of AcpiRemoveAddressSpaceHandler.
4005102550Siwasaki
4006104470SiwasakiAdded optional thread ID output for debug traces, to simplify
4007114237Snjldebugging of multiple threads.  Added context switch notification
4008114237Snjlwhen the debug code realizes that a different thread is now
4009114237Snjlexecuting ACPI code.
4010102550Siwasaki
4011114237SnjlSome additional external data types have been prefixed with the
4012114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
4013114237SnjlThe data types affected are the external callback typedefs -
4014126372Snjle.g.,
4015126372SnjlWALK_CALLBACK becomes ACPI_WALK_CALLBACK.
4016102550Siwasaki
4017102550Siwasaki Linux:
4018102550Siwasaki
4019102550SiwasakiFixed an issue with the OSL semaphore implementation where a
4020102550Siwasakithread was waking up with an error from receiving a SIGCHLD
4021102550Siwasakisignal.
4022102550Siwasaki
4023114237SnjlLinux version of ACPI CA now uses the system C library for string
4024114237Snjlmanipulation routines instead of a local implementation.
4025102550Siwasaki
4026102550SiwasakiCleaned up comments and removed TBDs.
4027102550Siwasaki
4028102550Siwasaki ASL Compiler, version X2017:
4029102550Siwasaki
4030102550SiwasakiEnhanced error detection and reporting for all file I/O
4031102550Siwasakioperations.
4032102550Siwasaki
4033102550Siwasaki Documentation:
4034102550Siwasaki
4035102550SiwasakiProgrammer Reference updated to version 1.06.
4036102550Siwasaki
4037102550Siwasaki
4038102550Siwasaki
4039102550Siwasaki------------------------------------------
4040102550SiwasakiSummary of changes for this label: 04_13_01
4041102550Siwasaki
4042102550Siwasaki ACPI CA Core Subsystem:
4043102550Siwasaki
4044102550SiwasakiRestructured support for BufferFields and RegionFields.
4045104470SiwasakiBankFields support is now fully operational.  All known 32-bit
4046114237Snjllimitations on field sizes have been removed.  Both BufferFields
4047114237Snjland (Operation) RegionFields are now supported by the same field
4048114237Snjlmanagement code.
4049102550Siwasaki
4050114237SnjlResource support now supports QWORD address and IO resources. The
4051114237Snjl16/32/64 bit address structures and the Extended IRQ structure
4052114237Snjlhave been changed to properly handle Source Resource strings.
4053102550Siwasaki
4054114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
4055114237Snjlcondition internally and must never be returned by
4056126372SnjlAcpiOsThreadId.
4057126372SnjlThis reserved value was changed from 0 since Unix systems allow a
4058126372Snjlthread ID of 0.
4059102550Siwasaki
4060102550SiwasakiLinux:
4061102550Siwasaki
4062102550SiwasakiDriver code reorganized to enhance portability
4063102550Siwasaki
4064102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
4065102550Siwasaki
4066102550SiwasakiFixed the EC driver to honor _GLK.
4067102550Siwasaki
4068102550SiwasakiASL Compiler, version X2016:
4069102550Siwasaki
4070114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
4071114237Snjladdress space was set to 0, not 0x7f as it should be.
4072102550Siwasaki
4073102550Siwasaki ------------------------------------------
4074102550SiwasakiSummary of changes for this label: 03_13_01
4075102550Siwasaki
4076102550Siwasaki ACPI CA Core Subsystem:
4077102550Siwasaki
4078104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
4079104470Siwasakipresent.
4080102550Siwasaki
4081102550SiwasakiNotify handler fix - notifies are deferred until the parent
4082126372Snjlmethod
4083126372Snjlcompletes execution.  This fixes the "mutex already acquired"
4084126372Snjlissue seen occasionally.
4085102550Siwasaki
4086104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
4087114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
4088114237Snjlconvert "result-to-target-type" implementation has been removed
4089114237Snjlfor stores to method Args and Locals.  Source operand conversion
4090114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
4091114237Snjlspecification pending.
4092102550Siwasaki
4093104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
4094104470Siwasakilength.
4095102550Siwasaki
4096102550SiwasakiFix for compiler warnings for 64-bit compiles.
4097102550Siwasaki
4098102550Siwasaki Linux:
4099102550Siwasaki
4100102550Siwasaki/proc output aligned for easier parsing.
4101102550Siwasaki
4102102550SiwasakiRelease-version compile problem fixed.
4103102550Siwasaki
4104104470SiwasakiNew kernel configuration options documented in Configure.help.
4105102550Siwasaki
4106102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
4107102550Siwasakicontext" message.
4108102550Siwasaki
4109102550Siwasaki OSPM:
4110102550Siwasaki
4111102550SiwasakiPower resource driver integrated with bus manager.
4112102550Siwasaki
4113102550SiwasakiFixed kernel fault during active cooling for thermal zones.
4114102550Siwasaki
4115102550SiwasakiSource Code:
4116102550Siwasaki
4117102550SiwasakiThe source code tree has been restructured.
4118102550Siwasaki
4119102550Siwasaki
4120102550Siwasaki
4121102550Siwasaki------------------------------------------
4122102550SiwasakiSummary of changes for this label: 03_02_01
4123102550Siwasaki
4124102550Siwasaki Linux OS Services Layer (OSL):
4125102550Siwasaki
4126102550SiwasakiMajor revision of all Linux-specific code.
4127102550Siwasaki
4128102550SiwasakiModularized all ACPI-specific drivers.
4129102550Siwasaki
4130102550SiwasakiAdded new thermal zone and power resource drivers.
4131102550Siwasaki
4132114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
4133102550Siwasaki
4134102550SiwasakiNew kernel configuration options.
4135102550Siwasaki
4136102550Siwasaki Linux known issues:
4137102550Siwasaki
4138114237SnjlNew kernel configuration options not documented in Configure.help
4139114237Snjlyet.
4140102550Siwasaki
4141114237Snjl
4142102550SiwasakiModule dependencies not currently implemented. If used, they
4143102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
4144102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
4145102550Siwasaki
4146102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
4147102550Siwasaki
4148102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
4149102550Siwasaki
4150104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
4151104470Siwasakimessage.
4152102550Siwasaki
4153104470SiwasakiSome systems may fail with "execution mutex already acquired"
4154104470Siwasakimessage.
4155102550Siwasaki
4156102550Siwasaki ACPI CA Core Subsystem:
4157102550Siwasaki
4158114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
4159114237Snjlfor the  deadlock detection code. Defined to return a non-zero,
4160126372Snjl32-
4161126372Snjlbit thread ID for the currently executing thread.  May be a non-
4162126372Snjlzero constant integer on single-thread systems.
4163102550Siwasaki
4164104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
4165126372SnjlWe
4166126372Snjlmay add conditional compilation for this code (debug only) later.
4167102550Siwasaki
4168104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
4169114237Snjlincludes multiple acquires/releases by owner and support for the
4170114237SnjlMutex SyncLevel parameter.
4171102550Siwasaki
4172102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
4173104470SiwasakiMutexes that have been acquired but not released when a thread
4174114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
4175114237Snjl("All mutexes must be released when an invocation exits") and
4176114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
4177114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
4178114237Snjlcontinues to misbehave (which it will).
4179102550Siwasaki
4180104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
4181104470Siwasakisupport.
4182102550Siwasaki
4183104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
4184114237Snjlspec does in fact allow recursive method calls.)  The number of
4185114237Snjlrecursive calls is subject to the restrictions imposed by the
4186114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
4187104470Siwasakiparameter.
4188102550Siwasaki
4189102550SiwasakiImplemented support for the SyncLevel parameter for control
4190102550Siwasakimethods (ACPI 2.0 feature)
4191102550Siwasaki
4192114237SnjlFixed a deadlock problem when multiple threads attempted to use
4193114237Snjlthe interpreter.
4194102550Siwasaki
4195102550SiwasakiFixed a problem where the string length of a String package
4196102550Siwasakielement was not always set in a package returned from
4197102550SiwasakiAcpiEvaluateObject.
4198102550Siwasaki
4199114237SnjlFixed a problem where the length of a String package element was
4200114237Snjlnot always included in the length of the overall package returned
4201114237Snjlfrom AcpiEvaluateObject.
4202102550Siwasaki
4203102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
4204102550Siwasakimanager.  This manager keeps a list of all outstanding
4205114237Snjlallocations, and can therefore detect memory leaks and attempts
4206126372Snjlto
4207126372Snjlfree memory blocks more than once. Useful for code such as the
4208114237Snjlpower manager, etc.  May not be appropriate for device drivers.
4209114237SnjlPerformance with the debug code enabled is slow.
4210102550Siwasaki
4211102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
4212102550Siwasaki
4213102550Siwasaki ASL Compiler Version X2015:
4214102550Siwasaki
4215102550SiwasakiIntegrated changes to allow the compiler to be generated on
4216102550Siwasakimultiple platforms.
4217102550Siwasaki
4218102550SiwasakiLinux makefile added to generate the compiler on Linux
4219102550Siwasaki
4220102550Siwasaki Source Code:
4221102550Siwasaki
4222102550SiwasakiAll platform-specific headers have been moved to their own
4223102550Siwasakisubdirectory, Include/Platform.
4224102550Siwasaki
4225102550SiwasakiNew source file added, Interpreter/ammutex.c
4226102550Siwasaki
4227102550SiwasakiNew header file, Include/acstruct.h
4228102550Siwasaki
4229102550Siwasaki Documentation:
4230102550Siwasaki
4231114237SnjlThe programmer reference has been updated for the following new
4232114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
4233102550Siwasaki
4234102550Siwasaki ------------------------------------------
4235102550SiwasakiSummary of changes for this label: 02_08_01
4236102550Siwasaki
4237102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
4238104470Siwasakiincorrectly returned if the return resource buffer was larger
4239126372Snjlthan
4240126372Snjlthe actual data (in the resource interfaces).
4241102550Siwasaki
4242114237SnjlReferences to named objects within packages are resolved to the
4243114237Snjlfull pathname string before packages are returned directly (via
4244114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
4245114237Snjlinterfaces.
4246102550Siwasaki
4247102550SiwasakiLinux OS Services Layer (OSL):
4248102550Siwasaki
4249102550SiwasakiImproved /proc battery interface.
4250102550Siwasaki
4251102550Siwasaki
4252104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
4253102550Siwasaki
4254102550SiwasakiASL Compiler Version X2014:
4255102550Siwasaki
4256114237SnjlAll defined method arguments can now be used as local variables,
4257114237Snjlincluding the ones that are not actually passed in as parameters.
4258114237SnjlThe compiler tracks initialization of the arguments and issues an
4259114237Snjlexception if they are used without prior assignment (just like
4260114237Snjllocals).
4261102550Siwasaki
4262104470SiwasakiThe -o option now specifies a filename prefix that is used for
4263126372Snjlall
4264126372Snjloutput files, including the AML output file.  Otherwise, the
4265114237Snjldefault behavior is as follows:  1) the AML goes to the file
4266114237Snjlspecified in the DSDT.  2) all other output files use the input
4267114237Snjlsource filename as the base.
4268102550Siwasaki
4269102550Siwasaki ------------------------------------------
4270102550SiwasakiSummary of changes for this label: 01_25_01
4271102550Siwasaki
4272114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
4273114237Snjlstore support within the  interpreter.  This includes support for
4274114237Snjlthe Store operator as well  as any ASL operators that include a
4275114237Snjltarget operand.
4276102550Siwasaki
4277102550SiwasakiPartially implemented support for Implicit Result-to-Target
4278114237Snjlconversion. This is when a result object is converted on the fly
4279114237Snjlto the type of  an existing target object.  Completion of this
4280114237Snjlsupport is pending  further analysis of the ACPI specification
4281114237Snjlconcerning this matter.
4282102550Siwasaki
4283114237SnjlCPU-specific code has been removed from the subsystem (hardware
4284114237Snjldirectory).
4285102550Siwasaki
4286102550SiwasakiNew Power Management Timer functions added
4287102550Siwasaki
4288114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
4289114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
4290102550Siwasaki
4291102550SiwasakiFixed C2 and C3 latency calculations.
4292102550Siwasaki
4293102550Siwasaki
4294114237SnjlWe no longer use the compilation date for the version message on
4295114237Snjlinitialization, but retrieve the version from
4296102550SiwasakiAcpiGetSystemInfo().
4297102550Siwasaki
4298102550SiwasakiIncorporated for fix Sony VAIO machines.
4299102550Siwasaki
4300104470SiwasakiDocumentation:  The Programmer Reference has been updated and
4301104470Siwasakireformatted.
4302102550Siwasaki
4303102550Siwasaki
4304102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
4305102550Siwasakinumbering and error reporting could get out  of sync in the
4306102550Siwasakipresence of multiple include files.
4307102550Siwasaki
4308102550Siwasaki ------------------------------------------
4309102550SiwasakiSummary of changes for this label: 01_15_01
4310102550Siwasaki
4311102550SiwasakiCore ACPI CA Subsystem:
4312102550Siwasaki
4313114237SnjlImplemented support for type conversions in the execution of the
4314114237SnjlASL  Concatenate operator (The second operand is converted to
4315114237Snjlmatch the type  of the first operand before concatenation.)
4316102550Siwasaki
4317102550SiwasakiSupport for implicit source operand conversion is partially
4318114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
4319114237SnjlString are freely  interchangeable for most ASL operators and are
4320114237Snjlconverted by the interpreter  on the fly as required.  Implicit
4321114237SnjlTarget operand conversion (where the  result is converted to the
4322114237Snjltarget type before storing) is not yet implemented.
4323102550Siwasaki
4324102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
4325102550Siwasaki
4326114237SnjlProblem fixed where a field read on an aligned field could cause
4327126372Snjla
4328126372Snjlread  past the end of the field.
4329102550Siwasaki
4330114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
4331114237Snjldoes not return a value, but the caller expects one.  (The ASL
4332114237Snjlcompiler flags this as a warning.)
4333102550Siwasaki
4334102550SiwasakiASL Compiler:
4335102550Siwasaki
4336102550SiwasakiVersion X2011:
4337102550Siwasaki1. Static typechecking of all operands is implemented. This
4338102550Siwasakiprevents the use of invalid objects (such as using a Package
4339126372Snjlwhere
4340126372Snjlan Integer is required) at compile time instead of at interpreter
4341126372Snjlrun-time.
4342114237Snjl2. The ASL source line is printed with ALL errors and warnings.
4343102550Siwasaki3. Bug fix for source EOF without final linefeed.
4344102550Siwasaki4. Debug option is split into a parse trace and a namespace
4345102550Siwasakitrace.
4346102550Siwasaki5. Namespace output option (-n) includes initial values for
4347102550Siwasakiintegers and strings.
4348102550Siwasaki6. Parse-only option added for quick syntax checking.
4349102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
4350102550Siwasaki
4351102550SiwasakiVersion X2012:
4352102550Siwasaki1. Relaxed typechecking to allow interchangeability between
4353114237Snjlstrings, integers, and buffers.  These types are now converted by
4354114237Snjlthe interpreter at runtime.
4355114237Snjl2. Compiler reports time taken by each internal subsystem in the
4356114237Snjldebug         output file.
4357102550Siwasaki
4358102550Siwasaki
4359102550Siwasaki ------------------------------------------
4360102550SiwasakiSummary of changes for this label: 12_14_00
4361102550Siwasaki
4362102550SiwasakiASL Compiler:
4363102550Siwasaki
4364104470SiwasakiThis is the first official release of the compiler. Since the
4365104470Siwasakicompiler requires elements of the Core Subsystem, this label
4366104470Siwasakisynchronizes everything.
4367102550Siwasaki
4368102550Siwasaki------------------------------------------
4369102550SiwasakiSummary of changes for this label: 12_08_00
4370102550Siwasaki
4371102550Siwasaki
4372114237SnjlFixed a problem where named references within the ASL definition
4373114237Snjlof both OperationRegions and CreateXXXFields did not work
4374114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4375114237Snjlinitialization of the region/field. This is similar (but not
4376114237Snjlrelated internally) to the problem that was fixed in the last
4377114237Snjllabel.
4378114237Snjl
4379102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
4380102550Siwasakifunctions ToBCD and FromBCD.
4381102550Siwasaki
4382102550SiwasakiUpdated all legal headers to include "2000" in the copyright
4383102550Siwasakiyears.
4384102550Siwasaki
4385102550Siwasaki ------------------------------------------
4386102550SiwasakiSummary of changes for this label: 12_01_00
4387102550Siwasaki
4388102550SiwasakiFixed a problem where method invocations within the ASL
4389126372Snjldefinition
4390126372Snjlof both OperationRegions and CreateXXXFields did not work
4391126372Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
4392114237Snjlinitialization of the region/field:
4393102550Siwasaki
4394114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
4395114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
4396114237Snjl(0x3005)
4397102550Siwasaki
4398102550SiwasakiFixed a problem where operators with more than one nested
4399104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
4400114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
4401114237Snjlproblem that has gone unnoticed until now.
4402102550Siwasaki
4403102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
4404102550Siwasaki
4405114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
4406114237Snjlprevious build (The prefix part of a relative path was handled
4407114237Snjlincorrectly).
4408102550Siwasaki
4409114237SnjlFixed a problem where Operation Region initialization failed if
4410114237Snjlthe operation region name was a "namepath" instead of a simple
4411114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
4412102550Siwasaki
4413114237SnjlFixed a problem where an assignment to a local variable via the
4414114237Snjlindirect RefOf mechanism only worked for the first such
4415102550Siwasakiassignment.  Subsequent assignments were ignored.
4416102550Siwasaki
4417102550Siwasaki ------------------------------------------
4418102550SiwasakiSummary of changes for this label: 11_15_00
4419102550Siwasaki
4420104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
4421126372Snjlthe
4422126372Snjl0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
4423126372Snjltables,
4424126372Snjlthe AML  interpreter does NOT have support for the new 2.0 ASL
4425126372Snjlgrammar terms at this time.
4426102550Siwasaki
4427104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
4428126372Snjl2.0
4429126372SnjlFADT.
4430102550Siwasaki
4431104470SiwasakiAll physical memory addresses across all platforms are now 64
4432126372Snjlbits
4433126372Snjlwide. Logical address width remains dependent on the platform
4434126372Snjl(i.e., "void *").
4435102550Siwasaki
4436114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
4437102550Siwasaki
4438114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
4439114237Snjl2.0 specification.
4440102550Siwasaki
4441104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
4442104470Siwasakirevision number less than 2 use 32-bit integers only.
4443102550Siwasaki
4444114237SnjlFixed a problem where the evaluation of OpRegion operands did not
4445114237Snjlalways resolve them to numbers properly.
4446102550Siwasaki
4447102550Siwasaki------------------------------------------
4448102550SiwasakiSummary of changes for this label: 10_20_00
4449102550Siwasaki
4450114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
4451114237SnjlCBN_ OpRegions when the _STA returns 0x8.
4452102550Siwasaki
4453104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
4454104470Siwasakivalues before a package object is returned
4455102550Siwasaki
4456104470SiwasakiFix for method call as predicate to if/while construct causing
4457104470Siwasakiincorrect if/while behavior
4458102550Siwasaki
4459114237SnjlFix for Else block package lengths sometimes calculated wrong (if
4460114237Snjlblock > 63 bytes)
4461102550Siwasaki
4462102550SiwasakiFix for Processor object length field, was always zero
4463102550Siwasaki
4464102550SiwasakiTable load abort if FACP sanity check fails
4465102550Siwasaki
4466102550SiwasakiFix for problem with Scope(name) if name already exists
4467102550Siwasaki
4468102550SiwasakiWarning emitted if a named object referenced cannot be found
4469102550Siwasaki(resolved) during method execution.
4470102550Siwasaki
4471102550Siwasaki
4472102550Siwasaki
4473102550Siwasaki
4474102550Siwasaki
4475102550Siwasaki------------------------------------------
4476102550SiwasakiSummary of changes for this label: 9_29_00
4477102550Siwasaki
4478114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
4479114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
4480114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
4481114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
4482114237SnjlAcpiLoadTables
4483102550Siwasaki
4484104470SiwasakiNote: These interface changes require changes to all existing
4485104470SiwasakiOSDs
4486102550Siwasaki
4487114237SnjlThe PCI_Config default address space handler is always installed
4488114237Snjlat the root namespace object.
4489102550Siwasaki
4490102550Siwasaki-------------------------------------------
4491102550SiwasakiSummary of changes for this label: 09_15_00
4492102550Siwasaki
4493102550SiwasakiThe new initialization architecture is implemented.  New
4494114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
4495114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
4496114237Snjl(Namespace is automatically loaded when a table is loaded)
4497102550Siwasaki
4498104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
4499126372Snjlfrom
4500126372Snjl52 bytes to 32 bytes.  There is usually one of these for every
4501126372Snjlnamespace object, so the memory savings is significant.
4502102550Siwasaki
4503114237SnjlImplemented just-in-time evaluation of the CreateField operators.
4504102550Siwasaki
4505102550SiwasakiBug fixes for IA-64 support have been integrated.
4506102550Siwasaki
4507102550SiwasakiAdditional code review comments have been implemented
4508102550Siwasaki
4509104470SiwasakiThe so-called "third pass parse" has been replaced by a final
4510126372Snjlwalk
4511126372Snjlthrough the namespace to initialize all operation regions
4512126372Snjl(address
4513126372Snjlspaces) and fields that have not yet been initialized during the
4514126372Snjlexecution of the various _INI and REG methods.
4515102550Siwasaki
4516102550SiwasakiNew file - namespace/nsinit.c
4517102550Siwasaki
4518102550Siwasaki-------------------------------------------
4519102550SiwasakiSummary of changes for this label: 09_01_00
4520102550Siwasaki
4521104470SiwasakiNamespace manager data structures have been reworked to change
4522126372Snjlthe
4523126372Snjlprimary  object from a table to a single object.  This has
4524104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
4525126372Snjland
4526126372Snjl2X overall in the ACPI CA subsystem.
4527102550Siwasaki
4528102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
4529102550Siwasakiinadvertently left  commented out.
4530102550Siwasaki
4531114237SnjlReduced the warning count when generating the source with the GCC
4532114237Snjlcompiler.
4533102550Siwasaki
4534102550SiwasakiRevision numbers added to each module header showing the
4535104470SiwasakiSourceSafe version of the file.  Please refer to this version
4536114237Snjlnumber when giving us feedback or comments on individual modules.
4537102550Siwasaki
4538114237SnjlThe main object types within the subsystem have been renamed to
4539114237Snjlclarify their  purpose:
4540102550Siwasaki
4541102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
4542102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
4543102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
4544102550Siwasaki
4545114237SnjlNOTE: no changes to the initialization sequence are included in
4546114237Snjlthis label.
4547102550Siwasaki
4548102550Siwasaki-------------------------------------------
4549102550SiwasakiSummary of changes for this label: 08_23_00
4550102550Siwasaki
4551102550SiwasakiFixed problem where TerminateControlMethod was being called
4552102550Siwasakimultiple times per  method
4553102550Siwasaki
4554114237SnjlFixed debugger problem where single stepping caused a semaphore
4555126372Snjlto
4556126372Snjlbe  oversignalled
4557102550Siwasaki
4558104470SiwasakiImproved performance through additional parse object caching -
4559104470Siwasakiadded  ACPI_EXTENDED_OP type
4560102550Siwasaki
4561102550Siwasaki-------------------------------------------
4562102550SiwasakiSummary of changes for this label: 08_10_00
4563102550Siwasaki
4564102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
4565102550Siwasakicomplete parse trees  for ACPI tables and control methods.
4566114237SnjlInstead, parse subtrees are created and  then deleted as soon as
4567114237Snjlthey are processed (Either entered into the namespace or
4568126372Snjlexecuted
4569126372Snjlby the interpreter).  This reduces the use of dynamic kernel
4570126372Snjlmemory  significantly. (about 10X)
4571102550Siwasaki
4572114237SnjlException codes broken into classes and renumbered.  Be sure to
4573114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
4574114237Snjlhave to renumber the codes  again now that they are split into
4575114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
4576114237Snjlinternal).
4577102550Siwasaki
4578104470SiwasakiFixed some additional alignment issues in the Resource Manager
4579104470Siwasakisubcomponent
4580102550Siwasaki
4581114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
4582114237Snjlseveral places  where mutexes/semaphores were being unlocked
4583114237Snjlwithout a corresponding lock  operation.  There are no known
4584114237Snjlsemaphore or mutex "leaks" at this time.
4585102550Siwasaki
4586114237SnjlFixed the case where an ASL Return operator is used to return an
4587114237Snjlunnamed  package.
4588102550Siwasaki
4589102550Siwasaki-------------------------------------------
4590102550SiwasakiSummary of changes for this label: 07_28_00
4591102550Siwasaki
4592102550SiwasakiFixed a problem with the way addresses were calculated in
4593114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
4594114237Snjlmanifested itself when a Field was  created with WordAccess or
4595114237SnjlDwordAccess, but the field unit defined within the  Field was
4596126372Snjlless
4597126372Snjlthan a Word or Dword.
4598102550Siwasaki
4599102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
4600104470Siwasakioperands off of the  operand stack to display information. The
4601114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
4602114237Snjlaccessing an operand stack with two or more  operands.
4603102550Siwasaki
4604114237SnjlFixed a problem with the PCI configuration space handlers where
4605114237Snjlcontext was  getting confused between accesses. This required a
4606114237Snjlchange to the generic address  space handler and address space
4607114237Snjlsetup definitions. Handlers now get both a  global handler
4608126372Snjlcontext
4609126372Snjl(this is the one passed in by the user when executing
4610114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
4611114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
4612114237Snjl_BBN values associated with a  specific region). The generic
4613114237Snjlfunction definitions have changed to the  following:
4614102550Siwasaki
4615114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
4616114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
4617104470Siwasaki*HandlerContext, // This used to be void *Context void
4618102550Siwasaki*RegionContext); // This is an additional parameter
4619102550Siwasaki
4620102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
4621102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
4622102550Siwasaki**RegionContext); // This used to be **ReturnContext
4623102550Siwasaki
4624102550Siwasaki-------------------------------------------
4625102550SiwasakiSummary of changes for this label: 07_21_00
4626102550Siwasaki
4627102550SiwasakiMajor file consolidation and rename.  All files within the
4628102550Siwasakiinterpreter have been  renamed as well as most header files.
4629126372SnjlThis
4630126372Snjlwas done to prevent collisions with  existing files in the host
4631126372SnjlOSs -- filenames such as "config.h" and "global.h"  seem to be
4632126372Snjlquite common.  The VC project files have been updated.  All
4633114237Snjlmakefiles  will require modification.
4634102550Siwasaki
4635114237SnjlThe parser/interpreter integration continues in Phase 5 with the
4636114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
4637114237Snjltwice) for each table;  This  avoids the construction of a huge
4638114237Snjlparse tree and therefore reduces the amount of  dynamic memory
4639114237Snjlrequired by the subsystem.  Greater use of the parse object cache
4640114237Snjlmeans that performance is unaffected.
4641102550Siwasaki
4642102550SiwasakiMany comments from the two code reviews have been rolled in.
4643102550Siwasaki
4644102550SiwasakiThe 64-bit alignment support is complete.
4645102550Siwasaki
4646102550Siwasaki-------------------------------------------
4647102550SiwasakiSummary of changes for this label: 06_30_00
4648102550Siwasaki
4649114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
4650114237Snjlwe've added  support in the source code for 80 column output
4651114237Snjldevices.  The code is now mostly  constrained to 80 columns or
4652114237Snjlless to support environments and editors that 1)  cannot display
4653114237Snjlor print more than 80 characters on a single line, and 2) cannot
4654114237Snjldisable line wrapping.
4655102550Siwasaki
4656104470SiwasakiA major restructuring of the namespace data structure has been
4657104470Siwasakicompleted.  The  result is 1) cleaner and more
4658114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
4659114237Snjlin the dynamic memory requirement for each named ACPI  object
4660114237Snjl(almost half).
4661102550Siwasaki
4662102550Siwasaki-------------------------------------------
4663102550SiwasakiSummary of changes for this label: 06_23_00
4664102550Siwasaki
4665114237SnjlLinux support has been added.  In order to obtain approval to get
4666114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
4667114237Snjlquite a few changes to the  base subsystem that will affect all
4668114237Snjlusers (all the changes are generic and OS- independent).  The
4669114237Snjleffects of these global changes have been somewhat far  reaching.
4670114237SnjlFiles have been merged and/or renamed and interfaces have been
4671114237Snjlrenamed.   The major changes are described below.
4672102550Siwasaki
4673102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
4674102550Siwasakipollution/confusion  within our target kernels.  All OSD
4675114237Snjlinterfaces must be modified to match the new  naming convention.
4676102550Siwasaki
4677102550SiwasakiFiles merged across the subsystem.  A number of the smaller
4678126372Snjlsource
4679126372Snjland header  files have been merged to reduce the file count and
4680126372Snjlincrease the density of the  existing files.  There are too many
4681126372Snjlto list here.  In general, makefiles that  call out individual
4682126372Snjlfiles will require rebuilding.
4683102550Siwasaki
4684104470SiwasakiInterpreter files renamed.  All interpreter files now have the
4685104470Siwasakiprefix am*  instead of ie* and is*.
4686102550Siwasaki
4687104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
4688114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
4689114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
4690114237Snjl"external interface" or xface or xf in the  filenames.j
4691102550Siwasaki
4692102550Siwasaki
4693114237SnjlAll manifest constants have been forced to upper case (some were
4694114237Snjlmixed case.)   Also, the string "ACPI_" has been prepended to
4695126372Snjlmany
4696126372Snjl(not all) of the constants,  typedefs, and structs.
4697102550Siwasaki
4698102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
4699102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
4700102550Siwasaki
4701102550SiwasakiAll other globals within the subsystem are now prefixed with
4702102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
4703114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
4704114237Snjltwo-letter abbreviation for the subcomponent  remains after
4705126372Snjl"Acpi"
4706126372Snjl- for example, CmCallocate became AcpiCmCallocate.
4707102550Siwasaki
4708102550SiwasakiAdded a source code translation/conversion utility.  Used to
4709114237Snjlgenerate the Linux  source code, it can be modified to generate
4710114237Snjlother types of source as well. Can  also be used to cleanup
4711114237Snjlexisting source by removing extraneous spaces and blank  lines.
4712114237SnjlFound in tools/acpisrc/*
4713102550Siwasaki
4714102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
4715102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
4716102550Siwasaki
4717114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
4718114237SnjlWhen set to  one, this indicates that the caller wants to use the
4719114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
4720114237Snjlboth types.  However, implementers of this  call may want to use
4721114237Snjldifferent OS primitives depending on the type of semaphore
4722114237Snjlrequested.  For example, some operating systems provide separate
4723114237Snjl"mutex" and  "semaphore" interfaces - where the mutex interface
4724126372Snjlis
4725126372Snjlmuch faster because it  doesn't have all the overhead of a full
4726126372Snjlsemaphore implementation.
4727102550Siwasaki
4728104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
4729114237Snjladdress space can  block forever if it is the first access to the
4730114237Snjlspace.
4731102550Siwasaki
4732102550Siwasaki-------------------------------------------
4733102550SiwasakiSummary of changes for this label: 06_02_00
4734102550Siwasaki
4735102550SiwasakiSupport for environments that cannot handle unaligned data
4736114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
4737114237Snjlhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
4738126372Snjlhas
4739126372Snjlbeen added (via configurable macros) in  these three areas: -
4740114237SnjlTransfer of data from the raw AML byte stream is done via byte
4741114237Snjlmoves instead of    word/dword/qword moves. - External objects
4742126372Snjlare
4743126372Snjlaligned within the user buffer, including package   elements (sub-
4744126372Snjlobjects). - Conversion of name strings to UINT32 Acpi Names is
4745126372Snjlnow
4746126372Snjldone byte-wise.
4747102550Siwasaki
4748102550SiwasakiThe Store operator was modified to mimic Microsoft's
4749102550Siwasakiimplementation when storing  to a Buffer Field.
4750102550Siwasaki
4751102550SiwasakiAdded a check of the BM_STS bit before entering C3.
4752102550Siwasaki
4753114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
4754114237Snjlfile, cmeval.c  subsumes the functionality.
4755102550Siwasaki
4756102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
4757102550Siwasakimakefile is under  the acpiexec directory.
4758