changes.txt revision 117521
1117521Snjl----------------------------------------
2117521Snjl19 June 2003.  Summary of changes for version 20030619:
3117521Snjl
4117521Snjl1) ACPI CA Core Subsystem:
5117521Snjl
6117521SnjlFix To/FromBCD, eliminating the need for an arch-specific
7117521Snjl#define.
8117521Snjl
9117521SnjlDo not acquire a semaphore in the S5 shutdown path.
10117521Snjl
11117521SnjlFix ex_digits_needed for 0. (Takayoshi Kochi)
12117521Snjl
13117521SnjlFix sleep/stall code reversal. (Andi Kleen)
14117521Snjl
15117521SnjlRevert a change having to do with control method calling
16117521Snjlsemantics.
17117521Snjl
18117521Snjl2) Linux:
19117521Snjl
20117521Snjlacpiphp update (Takayoshi Kochi)
21117521Snjl
22117521SnjlExport acpi_disabled for sonypi (Stelian Pop)
23117521Snjl
24117521SnjlMention acpismp=force in config help
25117521Snjl
26117521SnjlRe-add acpitable.c and acpismp=force. This improves backwards
27117521Snjlcompatibility and also cleans up the code to a significant
28117521Snjldegree.
29117521Snjl
30117521SnjlAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge)
31117521Snjl
32117521Snjl
33117521Snjl
34117521Snjl----------------------------------------
35117521Snjl22 May 2003.  Summary of changes for version 20030522:
36117521Snjl
37117521Snjl1) ACPI CA Core Subsystem:
38117521Snjl
39117521SnjlFound and fixed a reported problem where an AE_NOT_FOUND error
40117521Snjloccurred occasionally during _BST evaluation.  This turned out to
41117521Snjlbe an Owner ID allocation issue where a called method did not get
42117521Snjla new ID assigned to it.  Eventually, (after 64k calls), the
43117521SnjlOwner ID UINT16 would wraparound so that the ID would be the same
44117521Snjlas the caller's and the called method would delete the caller's
45117521Snjlnamespace.
46117521Snjl
47117521SnjlImplemented extended error reporting for control methods that are
48117521Snjlaborted due to a run-time exception.  Output includes the exact
49117521SnjlAML instruction that caused the method abort, a dump of the
50117521Snjlmethod locals and arguments at the time of the abort, and a trace
51117521Snjlof all nested control method calls.
52117521Snjl
53117521SnjlModified the interpreter to allow the creation of buffers of zero
54117521Snjllength from the AML code. Implemented new code to ensure that no
55117521Snjlattempt is made to actually allocate a memory buffer (of length
56117521Snjlzero) - instead, a simple buffer object with a NULL buffer
57117521Snjlpointer and length zero is created.  A warning is no longer
58117521Snjlissued when the AML attempts to create a zero-length buffer.
59117521Snjl
60117521SnjlImplemented a workaround for the "leading asterisk issue" in
61117521Snjl_HIDs, _UIDs, and _CIDs in the AML interpreter.  One leading
62117521Snjlasterisk is automatically removed if present in any HID, UID, or
63117521SnjlCID strings.  The iASL compiler will still flag this asterisk as
64117521Snjlan error, however.
65117521Snjl
66117521SnjlImplemented full support for _CID methods that return a package
67117521Snjlof multiple CIDs (Compatible IDs).  The AcpiGetObjectInfo()
68117521Snjlinterface now additionally returns a device _CID list if present.
69117521SnjlThis required a change to the external interface in order to pass
70117521Snjlan ACPI_BUFFER object as a parameter since the _CID list is of
71117521Snjlvariable length.
72117521Snjl
73117521SnjlFixed a problem with the new AE_SAME_HANDLER exception where
74117521Snjlhandler initialization code did not know about this exception.
75117521Snjl
76117521SnjlCode and Data Size: Current and previous core subsystem library
77117521Snjlsizes are shown below.  These are the code and data sizes for the
78117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
79117521Snjlthese values do not include any ACPI driver or OSPM code.  The
80117521Snjldebug version of the code includes the debug output trace
81117521Snjlmechanism and has a much larger code and data size.  Note that
82117521Snjlthese values will vary depending on the efficiency of the
83117521Snjlcompiler and the compiler options used during generation.
84117521Snjl
85117521Snjl  Previous Release (20030509):
86117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
87117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
88117521Snjl  Current Release:
89117521Snjl    Non-Debug Version:  73.7K Code,   9.7K Data,   83.4K Total
90117521Snjl    Debug Version:     156.9K Code,  64.2K Data,  221.1K Total
91117521Snjl
92117521Snjl
93117521Snjl2) Linux:
94117521Snjl
95117521SnjlFixed a bug in which we would reinitialize the ACPI interrupt
96117521Snjlafter it was already working, thus disabling all ACPI and the
97117521SnjlIRQs for any other device sharing the interrupt. (Thanks to Stian
98117521SnjlJordet)
99117521Snjl
100117521SnjlToshiba driver update (John Belmonte)
101117521Snjl
102117521SnjlReturn only 0 or 1 for our interrupt handler status (Andrew
103117521SnjlMorton)
104117521Snjl
105117521Snjl
106117521Snjl3) iASL Compiler:
107117521Snjl
108117521SnjlFixed a reported problem where multiple (nested) ElseIf()
109117521Snjlstatements were not handled correctly by the compiler, resulting
110117521Snjlin incorrect warnings and incorrect AML code.  This was a problem
111117521Snjlin both the ASL parser and the code generator.
112117521Snjl
113117521Snjl
114117521Snjl4) Documentation:
115117521Snjl
116117521SnjlAdded changes to existing interfaces, new exception codes, and
117117521Snjlnew text concerning reference count object management versus
118117521Snjlgarbage collection.
119117521Snjl
120117521Snjl----------------------------------------
121117521Snjl09 May 2003.  Summary of changes for version 20030509.
122117521Snjl
123117521Snjl
124117521Snjl1) ACPI CA Core Subsystem:
125117521Snjl
126117521SnjlChanged the subsystem initialization sequence to hold off
127117521Snjlinstallation of address space handlers until the hardware has
128117521Snjlbeen initialized and the system has entered ACPI mode.  This is
129117521Snjlbecause the installation of space handlers can cause _REG methods
130117521Snjlto be run.  Previously, the _REG methods could potentially be run
131117521Snjlbefore ACPI mode was enabled.
132117521Snjl
133117521SnjlFixed some memory leak issues related to address space handler
134117521Snjland notify handler installation.  There were some problems with
135117521Snjlthe reference count mechanism caused by the fact that the handler
136117521Snjlobjects are shared across several namespace objects.
137117521Snjl
138117521SnjlFixed a reported problem where reference counts within the
139117521Snjlnamespace were not properly updated when named objects created by
140117521Snjlmethod execution were deleted.
141117521Snjl
142117521SnjlFixed a reported problem where multiple SSDTs caused a deletion
143117521Snjlissue during subsystem termination.  Restructured the table data
144117521Snjlstructures to simplify the linked lists and the related code.
145117521Snjl
146117521SnjlFixed a problem where the table ID associated with secondary
147117521Snjltables (SSDTs) was not being propagated into the namespace
148117521Snjlobjects created by those tables.  This would only present a
149117521Snjlproblem for tables that are unloaded at run-time, however.
150117521Snjl
151117521SnjlUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE
152117521Snjltype as the length parameter (instead of UINT32).
153117521Snjl
154117521SnjlSolved a long-standing problem where an ALREADY_EXISTS error
155117521Snjlappears on various systems.  This problem could happen when there
156117521Snjlare multiple PCI_Config operation regions under a single PCI root
157117521Snjlbus.  This doesn't happen very frequently, but there are some
158117521Snjlsystems that do this in the ASL.
159117521Snjl
160117521SnjlFixed a reported problem where the internal DeleteNode function
161117521Snjlwas incorrectly handling the case where a namespace node was the
162117521Snjlfirst in the parent's child list, and had additional peers (not
163117521Snjlthe only child, but first in the list of children.)
164117521Snjl
165117521SnjlCode and Data Size: Current core subsystem library sizes are
166117521Snjlshown below.  These are the code and data sizes for the
167117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
168117521Snjlthese values do not include any ACPI driver or OSPM code.  The
169117521Snjldebug version of the code includes the debug output trace
170117521Snjlmechanism and has a much larger code and data size.  Note that
171117521Snjlthese values will vary depending on the efficiency of the
172117521Snjlcompiler and the compiler options used during generation.
173117521Snjl
174117521Snjl  Previous Release
175117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
176117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
177117521Snjl  Current Release:
178117521Snjl    Non-Debug Version:  73.4K Code,   9.7K Data,   83.1K Total
179117521Snjl    Debug Version:     156.1K Code,  63.9K Data,  220.0K Total
180117521Snjl
181117521Snjl
182117521Snjl2) Linux:
183117521Snjl
184117521SnjlAllow ":" in OS override string (Ducrot Bruno)
185117521Snjl
186117521SnjlKobject fix (Greg KH)
187117521Snjl
188117521Snjl
189117521Snjl3 iASL Compiler/Disassembler:
190117521Snjl
191117521SnjlFixed a problem in the generation of the C source code files (AML
192117521Snjlis emitted in C source statements for BIOS inclusion) where the
193117521SnjlAscii dump that appears within a C comment at the end of each
194117521Snjlline could cause a compile time error if the AML sequence happens
195117521Snjlto have an open comment or close comment sequence embedded.
196117521Snjl
197117521Snjl
198117521Snjl----------------------------------------
199117521Snjl24 April 2003.  Summary of changes for version 20030424.
200117521Snjl
201117521Snjl
202117521Snjl1) ACPI CA Core Subsystem:
203117521Snjl
204117521SnjlSupport for big-endian systems has been implemented.  Most of the
205117521Snjlsupport has been invisibly added behind big-endian versions of
206117521Snjlthe ACPI_MOVE_* macros.
207117521Snjl
208117521SnjlFixed a problem in AcpiHwDisableGpeBlock() and
209117521SnjlAcpiHwClearGpeBlock() where an incorrect offset was passed to the
210117521Snjllow level hardware write routine.  The offset parameter was
211117521Snjlactually eliminated from the low level read/write routines
212117521Snjlbecause they had become obsolete.
213117521Snjl
214117521SnjlFixed a problem where a handler object was deleted twice during
215117521Snjlthe removal of a fixed event handler.
216117521Snjl
217117521Snjl
218117521Snjl2) Linux:
219117521Snjl
220117521SnjlA fix for SMP systems with link devices was contributed by
221117521SnjlCompaq's Dan Zink.
222117521Snjl
223117521Snjl(2.5) Return whether we handled the interrupt in our IRQ handler.
224117521Snjl(Linux ISRs no longer return void, so we can propagate the
225117521Snjlhandler return value from the ACPI CA core back to the OS.)
226117521Snjl
227117521Snjl
228117521Snjl3) Documentation:
229117521Snjl
230117521SnjlThe ACPI CA Programmer Reference has been updated to reflect new
231117521Snjlinterfaces and changes to existing interfaces.
232117521Snjl
233117521Snjl----------------------------------------
234117521Snjl28 March 2003.  Summary of changes for version 20030328.
235117521Snjl
236117521Snjl1) ACPI CA Core Subsystem:
237117521Snjl
238117521SnjlThe GPE Block Device support has been completed.  New interfaces
239117521Snjlare AcpiInstallGpeBlock and AcpiRemoveGpeBlock.  The Event
240117521Snjlinterfaces (enable, disable, clear, getstatus) have been split
241117521Snjlinto separate interfaces for Fixed Events and General Purpose
242117521SnjlEvents (GPEs) in order to support GPE Block Devices properly.
243117521Snjl
244117521SnjlFixed a problem where the error message "Failed to acquire
245117521Snjlsemaphore" would appear during operations on the embedded
246117521Snjlcontroller (EC).
247117521Snjl
248117521SnjlCode and Data Size: Current core subsystem library sizes are
249117521Snjlshown below.  These are the code and data sizes for the
250117521Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
251117521Snjlthese values do not include any ACPI driver or OSPM code.  The
252117521Snjldebug version of the code includes the debug output trace
253117521Snjlmechanism and has a much larger code and data size.  Note that
254117521Snjlthese values will vary depending on the efficiency of the
255117521Snjlcompiler and the compiler options used during generation.
256117521Snjl
257117521Snjl  Previous Release
258117521Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
259117521Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
260117521Snjl  Current Release:
261117521Snjl    Non-Debug Version:  73.7K Code,   9.5K Data,   83.2K Total
262117521Snjl    Debug Version:     156.1K Code,  63.6K Data,  219.7K Total
263117521Snjl
264117521Snjl
265117521Snjl----------------------------------------
266114237Snjl28 February 2003.  Summary of changes for version 20030228.
267114237Snjl
268114237Snjl
269114237Snjl1) ACPI CA Core Subsystem:
270114237Snjl
271114237SnjlThe GPE handling and dispatch code has been completely overhauled
272114237Snjlin preparation for support of GPE Block Devices (ID ACPI0006).
273114237SnjlThis affects internal data structures and code only; there should
274114237Snjlbe no differences visible externally.  One new file has been
275114237Snjladded, evgpeblk.c
276114237Snjl
277114237SnjlThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only
278114237Snjlfields that are used to determine the GPE block lengths.  The
279114237SnjlREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address
280114237Snjlstructures are ignored.  This is per the ACPI specification but
281114237Snjlit isn't very clear.  The full 256 Block 0/1 GPEs are now
282114237Snjlsupported (the use of REGISTER_BIT_WIDTH limited the number of
283114237SnjlGPEs to 128).
284114237Snjl
285114237SnjlIn the SCI interrupt handler, removed the read of the PM1_CONTROL
286114237Snjlregister to look at the SCI_EN bit.  On some machines, this read
287114237Snjlcauses an SMI event and greatly slows down SCI events.  (This may
288114237Snjlin fact be the cause of slow battery status response on some
289114237Snjlsystems.)
290114237Snjl
291114237SnjlFixed a problem where a store of a NULL string to a package
292114237Snjlobject could cause the premature deletion of the object.  This
293114237Snjlwas seen during execution of the battery _BIF method on some
294114237Snjlsystems, resulting in no battery data being returned.
295114237Snjl
296114237SnjlAdded AcpiWalkResources interface to simplify parsing of resource
297114237Snjllists.
298114237Snjl
299114237SnjlCode and Data Size: Current core subsystem library sizes are
300114237Snjlshown below.  These are the code and data sizes for the
301114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
302114237Snjlthese values do not include any ACPI driver or OSPM code.  The
303114237Snjldebug version of the code includes the debug output trace
304114237Snjlmechanism and has a much larger code and data size.  Note that
305114237Snjlthese values will vary depending on the efficiency of the
306114237Snjlcompiler and the compiler options used during generation.
307114237Snjl
308114237Snjl  Previous Release
309114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
310114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
311114237Snjl  Current Release:
312114237Snjl    Non-Debug Version:  72.3K Code,   9.5K Data,   81.8K Total
313114237Snjl    Debug Version:     154.0K Code,  63.4K Data,  217.4K Total
314114237Snjl
315114237Snjl
316114237Snjl2) Linux
317114237Snjl
318114237SnjlS3 fixes (Ole Rohne)
319114237Snjl
320114237SnjlUpdate ACPI PHP driver with to use new acpi_walk_resource API
321114237Snjl(Bjorn Helgaas)
322114237Snjl
323114237SnjlAdd S4BIOS support (Pavel Machek)
324114237Snjl
325114237SnjlMap in entire table before performing checksum (John Stultz)
326114237Snjl
327114237SnjlExpand the mem= cmdline to allow the specification of reserved
328114237Snjland ACPI DATA blocks (Pavel Machek)
329114237Snjl
330114237SnjlNever use ACPI on VISWS
331114237Snjl
332114237SnjlFix derive_pci_id (Ducrot Bruno, Alvaro Lopez)
333114237Snjl
334114237SnjlRevert a change that allowed P_BLK lengths to be 4 or 5. This is
335114237Snjlcausing us to think that some systems support C2 when they really
336114237Snjldon't.
337114237Snjl
338114237SnjlDo not count processor objects for non-present CPUs (Thanks to
339114237SnjlDominik Brodowski)
340114237Snjl
341114237Snjl
342114237Snjl3) iASL Compiler:
343114237Snjl
344114237SnjlFixed a problem where ASL include files could not be found and
345114237Snjlopened.
346114237Snjl
347114237SnjlAdded support for the _PDC reserved name.
348114237Snjl
349114237Snjl
350117521Snjl----------------------------------------
351114237Snjl22 January 2003.  Summary of changes for version 20030122.
352114237Snjl
353114237Snjl
354114237Snjl1) ACPI CA Core Subsystem:
355114237Snjl
356114237SnjlAdded a check for constructs of the form:  Store (Local0, Local0)
357114237Snjlwhere Local0 is not initialized.  Apparently, some BIOS
358114237Snjlprogrammers believe that this is a NOOP.  Since this store
359114237Snjldoesn't do anything anyway, the new prototype behavior will
360114237Snjlignore this error.  This is a case where we can relax the strict
361114237Snjlchecking in the interpreter in the name of compatibility.
362114237Snjl
363114237Snjl
364114237Snjl2) Linux
365114237Snjl
366114237SnjlThe AcpiSrc Source Conversion Utility has been released with the
367114237SnjlLinux package for the first time.  This is the utility that is
368114237Snjlused to convert the ACPI CA base source code to the Linux
369114237Snjlversion.
370114237Snjl
371114237Snjl(Both) Handle P_BLK lengths shorter than 6 more gracefully
372114237Snjl
373114237Snjl(Both) Move more headers to include/acpi, and delete an unused
374114237Snjlheader.
375114237Snjl
376114237Snjl(Both) Move drivers/acpi/include directory to include/acpi
377114237Snjl
378114237Snjl(Both) Boot functions don't use cmdline, so don't pass it around
379114237Snjl
380114237Snjl(Both) Remove include of unused header (Adrian Bunk)
381114237Snjl
382114237Snjl(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since
383114237Snjlthe
384114237Snjlformer now also includes the latter, acpiphp.h only needs the
385114237Snjlone, now.
386114237Snjl
387114237Snjl(2.5) Make it possible to select method of bios restoring after
388114237SnjlS3
389114237Snjlresume. [=> no more ugly ifdefs] (Pavel Machek)
390114237Snjl
391114237Snjl(2.5) Make proc write interfaces work (Pavel Machek)
392114237Snjl
393114237Snjl(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski)
394114237Snjl
395114237Snjl(2.5) Break out ACPI Perf code into its own module, under cpufreq
396114237Snjl(Dominik Brodowski)
397114237Snjl
398114237Snjl(2.4) S4BIOS support (Ducrot Bruno)
399114237Snjl
400114237Snjl(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio
401114237SnjlVisinoni)
402114237Snjl
403114237Snjl
404114237Snjl3) iASL Compiler:
405114237Snjl
406114237SnjlAdded support to disassemble SSDT and PSDTs.
407114237Snjl
408114237SnjlImplemented support to obtain SSDTs from the Windows registry if
409114237Snjlavailable.
410114237Snjl
411114237Snjl
412102550Siwasaki----------------------------------------
413114237Snjl09 January 2003.  Summary of changes for version 20030109.
414114237Snjl
415114237Snjl1) ACPI CA Core Subsystem:
416114237Snjl
417114237SnjlChanged the behavior of the internal Buffer-to-String conversion
418114237Snjlfunction.  The current ACPI specification states that the
419114237Snjlcontents of the buffer are "converted to a string of two-
420114237Snjlcharacter hexadecimal numbers, each separated by a space".
421114237SnjlUnfortunately, this definition is not backwards compatible with
422114237Snjlexisting ACPI 1.0 implementations (although the behavior was not
423114237Snjldefined in the ACPI 1.0 specification).  The new behavior simply
424114237Snjlcopies data from the buffer to the string until a null character
425114237Snjlis found or the end of the buffer is reached.  The new String
426114237Snjlobject is always null terminated.  This problem was seen during
427114237Snjlthe generation of _BIF battery data where incorrect strings were
428114237Snjlreturned for battery type, etc.  This will also require an errata
429114237Snjlto the ACPI specification.
430114237Snjl
431114237SnjlRenamed all instances of NATIVE_UINT and NATIVE_INT to
432114237SnjlACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively.
433114237Snjl
434114237SnjlCopyright in all module headers (both Linux and non-Linux) has be
435114237Snjlupdated to 2003.
436114237Snjl
437114237SnjlCode and Data Size: Current core subsystem library sizes are
438114237Snjlshown below.  These are the code and data sizes for the
439114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
440114237Snjlthese values do not include any ACPI driver or OSPM code.  The
441114237Snjldebug version of the code includes the debug output trace
442114237Snjlmechanism and has a much larger code and data size.  Note that
443114237Snjlthese values will vary depending on the efficiency of the
444114237Snjlcompiler and the compiler options used during generation.
445114237Snjl
446114237Snjl  Previous Release
447114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
448114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
449114237Snjl  Current Release:
450114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
451114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
452114237Snjl
453114237Snjl
454114237Snjl2) Linux
455114237Snjl
456114237SnjlFixed an oops on module insertion/removal (Matthew Tippett)
457114237Snjl
458114237Snjl(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante)
459114237Snjl
460114237Snjl(2.5) Replace pr_debug (Randy Dunlap)
461114237Snjl
462114237Snjl(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski)
463114237Snjl
464114237Snjl(Both) Eliminate spawning of thread from timer callback, in favor
465114237Snjlof schedule_work()
466114237Snjl
467114237Snjl(Both) Show Lid status in /proc (Zdenek OGAR Skalak)
468114237Snjl
469114237Snjl(Both) Added define for Fixed Function HW region (Matthew Wilcox)
470114237Snjl
471114237Snjl(Both) Add missing statics to button.c (Pavel Machek)
472114237Snjl
473114237SnjlSeveral changes have been made to the source code translation
474114237Snjlutility that generates the Linux Code in order to make the code
475114237Snjlmore "Linux-like":
476114237Snjl
477114237SnjlAll typedefs on structs and unions have been removed in keeping
478114237Snjlwith the Linux coding style.
479114237Snjl
480114237SnjlRemoved the non-Linux SourceSafe module revision number from each
481114237Snjlmodule header.
482114237Snjl
483114237SnjlCompleted major overhaul of symbols to be lowercased for linux.
484114237SnjlDoubled the number of symbols that are lowercased.
485114237Snjl
486114237SnjlFixed a problem where identifiers within procedure headers and
487114237Snjlwithin quotes were not fully lower cased (they were left with a
488114237Snjlstarting capital.)
489114237Snjl
490114237SnjlSome C macros whose only purpose is to allow the generation of 16-
491114237Snjlbit code are now completely removed in the Linux code, increasing
492114237Snjlreadability and maintainability.
493114237Snjl
494114237Snjl----------------------------------------
495114237Snjl
496114237Snjl12 December 2002.  Summary of changes for version 20021212.
497114237Snjl
498114237Snjl
499114237Snjl1) ACPI CA Core Subsystem:
500114237Snjl
501114237SnjlFixed a problem where the creation of a zero-length AML Buffer
502114237Snjlwould cause a fault.
503114237Snjl
504114237SnjlFixed a problem where a Buffer object that pointed to a static
505114237SnjlAML buffer (in an ACPI table) could inadvertently be deleted,
506114237Snjlcausing memory corruption.
507114237Snjl
508114237SnjlFixed a problem where a user buffer (passed in to the external
509114237SnjlACPI CA interfaces) could be overwritten if the buffer was too
510114237Snjlsmall to complete the operation, causing memory corruption.
511114237Snjl
512114237SnjlFixed a problem in the Buffer-to-String conversion code where a
513114237Snjlstring of length one was always returned, regardless of the size
514114237Snjlof the input Buffer object.
515114237Snjl
516114237SnjlRemoved the NATIVE_CHAR data type across the entire source due to
517114237Snjllack of need and lack of consistent use.
518114237Snjl
519114237SnjlCode and Data Size: Current core subsystem library sizes are
520114237Snjlshown below.  These are the code and data sizes for the
521114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
522114237Snjlthese values do not include any ACPI driver or OSPM code.  The
523114237Snjldebug version of the code includes the debug output trace
524114237Snjlmechanism and has a much larger code and data size.  Note that
525114237Snjlthese values will vary depending on the efficiency of the
526114237Snjlcompiler and the compiler options used during generation.
527114237Snjl
528114237Snjl  Previous Release
529114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
530114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
531114237Snjl  Current Release:
532114237Snjl    Non-Debug Version:  72.0K Code,   9.5K Data,   81.5K Total
533114237Snjl    Debug Version:     153.0K Code,  62.9K Data,  215.9K Total
534114237Snjl
535114237Snjl
536114237Snjl----------------------------------------
537114237Snjl05 December 2002.  Summary of changes for version 20021205.
538114237Snjl
539114237Snjl1) ACPI CA Core Subsystem:
540114237Snjl
541114237SnjlFixed a problem where a store to a String or Buffer object could
542114237Snjlcause corruption of the DSDT if the object type being stored was
543114237Snjlthe same as the target object type and the length of the object
544114237Snjlbeing stored was equal to or smaller than the original (existing)
545114237Snjltarget object.  This was seen to cause corruption of battery _BIF
546114237Snjlbuffers if the _BIF method modified the buffer on the fly.
547114237Snjl
548114237SnjlFixed a problem where an internal error was generated if a
549114237Snjlcontrol method invocation was used in an OperationRegion, Buffer,
550114237Snjlor Package declaration.  This was caused by the deferred parsing
551114237Snjlof the control method and thus the deferred creation of the
552114237Snjlinternal method object.  The solution to this problem was to
553114237Snjlcreate the internal method object at the moment the method is
554114237Snjlencountered in the first pass - so that subsequent references to
555114237Snjlthe method will able to obtain the required parameter count and
556114237Snjlthus properly parse the method invocation.  This problem
557114237Snjlpresented itself as an AE_AML_INTERNAL during the pass 1 parse
558114237Snjlphase during table load.
559114237Snjl
560114237SnjlFixed a problem where the internal String object copy routine did
561114237Snjlnot always allocate sufficient memory for the target String
562114237Snjlobject and caused memory corruption.  This problem was seen to
563114237Snjlcause "Allocation already present in list!" errors as memory
564114237Snjlallocation became corrupted.
565114237Snjl
566114237SnjlImplemented a new function for the evaluation of namespace
567114237Snjlobjects that allows the specification of the allowable return
568114237Snjlobject types.  This simplifies a lot of code that checks for a
569114237Snjlreturn object of one or more specific objects returned from the
570114237Snjlevaluation (such as _STA, etc.)  This may become and external
571114237Snjlfunction if it would be useful to ACPI-related drivers.
572114237Snjl
573114237SnjlCompleted another round of prefixing #defines with "ACPI_" for
574114237Snjlclarity.
575114237Snjl
576114237SnjlCompleted additional code restructuring to allow more modular
577114237Snjllinking for iASL compiler and AcpiExec.  Several files were split
578114237Snjlcreating new files.  New files:  nsparse.c dsinit.c evgpe.c
579114237Snjl
580114237SnjlImplemented an abort mechanism to terminate an executing control
581114237Snjlmethod via the AML debugger.  This feature is useful for
582114237Snjldebugging control methods that depend (wait) for specific
583114237Snjlhardware responses.
584114237Snjl
585114237SnjlCode and Data Size: Current core subsystem library sizes are
586114237Snjlshown below.  These are the code and data sizes for the
587114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
588114237Snjlthese values do not include any ACPI driver or OSPM code.  The
589114237Snjldebug version of the code includes the debug output trace
590114237Snjlmechanism and has a much larger code and data size.  Note that
591114237Snjlthese values will vary depending on the efficiency of the
592114237Snjlcompiler and the compiler options used during generation.
593114237Snjl
594114237Snjl  Previous Release
595114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
596114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
597114237Snjl  Current Release:
598114237Snjl    Non-Debug Version:  72.1K Code,   9.5K Data,   81.6K Total
599114237Snjl    Debug Version:     152.7K Code,  62.7K Data,  215.4K Total
600114237Snjl
601114237Snjl
602114237Snjl2) iASL Compiler/Disassembler
603114237Snjl
604114237SnjlFixed a compiler code generation problem for "Interrupt" Resource
605114237SnjlDescriptors.  If specified in the ASL, the optional "Resource
606114237SnjlSource Index" and "Resource Source" fields were not inserted into
607114237Snjlthe correct location within the AML resource descriptor, creating
608114237Snjlan invalid descriptor.
609114237Snjl
610114237SnjlFixed a disassembler problem for "Interrupt" resource
611114237Snjldescriptors.  The optional "Resource Source Index" and "Resource
612114237SnjlSource" fields were ignored.
613114237Snjl
614114237Snjl
615114237Snjl----------------------------------------
616114237Snjl22 November 2002.  Summary of changes for version 20021122.
617114237Snjl
618114237Snjl
619114237Snjl1) ACPI CA Core Subsystem:
620114237Snjl
621114237SnjlFixed a reported problem where an object stored to a Method Local
622114237Snjlor Arg was not copied to a new object during the store - the
623114237Snjlobject pointer was simply copied to the Local/Arg.  This caused
624114237Snjlall subsequent operations on the Local/Arg to also affect the
625114237Snjloriginal source of the store operation.
626114237Snjl
627114237SnjlFixed a problem where a store operation to a Method Local or Arg
628114237Snjlwas not completed properly if the Local/Arg contained a reference
629114237Snjl(from RefOf) to a named field.  The general-purpose store-to-
630114237Snjlnamespace-node code is now used so that this case is handled
631114237Snjlautomatically.
632114237Snjl
633114237SnjlFixed a problem where the internal object copy routine would
634114237Snjlcause a protection fault if the object being copied was a Package
635114237Snjland contained either 1) a NULL package element or 2) a nested sub-
636114237Snjlpackage.
637114237Snjl
638114237SnjlFixed a problem with the GPE initialization that resulted from an
639114237Snjlambiguity in the ACPI specification.  One section of the
640114237Snjlspecification states that both the address and length of the GPE
641114237Snjlblock must be zero if the block is not supported.  Another
642114237Snjlsection implies that only the address need be zero if the block
643114237Snjlis not supported.  The code has been changed so that both the
644114237Snjladdress and the length must be non-zero to indicate a valid GPE
645114237Snjlblock (i.e., if either the address or the length is zero, the GPE
646114237Snjlblock is invalid.)
647114237Snjl
648114237SnjlCode and Data Size: Current core subsystem library sizes are
649114237Snjlshown below.  These are the code and data sizes for the
650114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
651114237Snjlthese values do not include any ACPI driver or OSPM code.  The
652114237Snjldebug version of the code includes the debug output trace
653114237Snjlmechanism and has a much larger code and data size.  Note that
654114237Snjlthese values will vary depending on the efficiency of the
655114237Snjlcompiler and the compiler options used during generation.
656114237Snjl
657114237Snjl  Previous Release
658114237Snjl    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
659114237Snjl    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
660114237Snjl  Current Release:
661114237Snjl    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
662114237Snjl    Debug Version:     152.9K Code,  63.3K Data,  216.2K Total
663114237Snjl
664114237Snjl
665114237Snjl2) Linux
666114237Snjl
667114237SnjlCleaned up EC driver. Exported an external EC read/write
668114237Snjlinterface. By going through this, other drivers (most notably
669114237Snjlsonypi) will be able to serialize access to the EC.
670114237Snjl
671114237Snjl
672114237Snjl3) iASL Compiler/Disassembler
673114237Snjl
674114237SnjlImplemented support to optionally generate include files for both
675114237SnjlASM and C (the -i switch).  This simplifies BIOS development by
676114237Snjlautomatically creating include files that contain external
677114237Snjldeclarations for the symbols that are created within the
678114237Snjl(optionally generated) ASM and C AML source files.
679114237Snjl
680114237Snjl
681114237Snjl----------------------------------------
682107325Siwasaki15 November 2002.  Summary of changes for version 20021115.
683104470Siwasaki
684107325Siwasaki1) ACPI CA Core Subsystem:
685107325Siwasaki
686114237SnjlFixed a memory leak problem where an error during resolution of
687114237Snjlmethod arguments during a method invocation from another method
688114237Snjlfailed to cleanup properly by deleting all successfully resolved
689114237Snjlargument objects.
690107325Siwasaki
691114237SnjlFixed a problem where the target of the Index() operator was not
692114237Snjlcorrectly constructed if the source object was a package.  This
693114237Snjlproblem has not been detected because the use of a target operand
694114237Snjlwith Index() is very rare.
695107325Siwasaki
696107325SiwasakiFixed a problem with the Index() operator where an attempt was
697107325Siwasakimade to delete the operand objects twice.
698107325Siwasaki
699107325SiwasakiFixed a problem where an attempt was made to delete an operand
700114237Snjltwice during execution of the CondRefOf() operator if the target
701114237Snjldid not exist.
702107325Siwasaki
703114237SnjlImplemented the first of perhaps several internal create object
704114237Snjlfunctions that create and initialize a specific object type.
705114237SnjlThis consolidates duplicated code wherever the object is created,
706114237Snjlthus shrinking the size of the subsystem.
707107325Siwasaki
708114237SnjlImplemented improved debug/error messages for errors that occur
709114237Snjlduring nested method invocations.  All executing method pathnames
710114237Snjlare displayed (with the error) as the call stack is unwound -
711114237Snjlthus simplifying debug.
712107325Siwasaki
713107325SiwasakiFixed a problem introduced in the 10/02 release that caused
714114237Snjlpremature deletion of a buffer object if a buffer was used as an
715114237SnjlASL operand where an integer operand is required (Thus causing an
716114237Snjlimplicit object conversion from Buffer to Integer.)  The change
717114237Snjlin the 10/02 release was attempting to fix a memory leak (albeit
718114237Snjlincorrectly.)
719107325Siwasaki
720107325SiwasakiCode and Data Size: Current core subsystem library sizes are
721107325Siwasakishown below.  These are the code and data sizes for the
722114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
723114237Snjlthese values do not include any ACPI driver or OSPM code.  The
724114237Snjldebug version of the code includes the debug output trace
725107325Siwasakimechanism and has a much larger code and data size.  Note that
726107325Siwasakithese values will vary depending on the efficiency of the
727107325Siwasakicompiler and the compiler options used during generation.
728107325Siwasaki
729107325Siwasaki  Previous Release
730107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
731107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
732107325Siwasaki  Current Release:
733107325Siwasaki    Non-Debug Version:  71.3K Code,   9.0K Data,   80.3K Total
734107325Siwasaki    Debug Version:     152.7K Code,  63.2K Data,  215.5K Total
735107325Siwasaki
736107325Siwasaki
737107325Siwasaki2) Linux
738107325Siwasaki
739114237SnjlChanged the implementation of the ACPI semaphores to use down()
740114237Snjlinstead of down_interruptable().  It is important that the
741114237Snjlexecution of ACPI control methods not be interrupted by signals.
742114237SnjlMethods must run to completion, or the system may be left in an
743114237Snjlunknown/unstable state.
744107325Siwasaki
745107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not
746107325Siwasakiset. (Shawn Starr)
747107325Siwasaki
748107325Siwasaki
749107325Siwasaki3) iASL Compiler/Disassembler
750107325Siwasaki
751107325Siwasaki
752114237SnjlChanged the default location of output files.  All output files
753114237Snjlare now placed in the current directory by default instead of in
754114237Snjlthe directory of the source file.  This change may affect some
755114237Snjlexisting makefiles, but it brings the behavior of the compiler in
756114237Snjlline with other similar tools.  The location of the output files
757114237Snjlcan be overridden with the -p command line switch.
758107325Siwasaki
759114237Snjl
760107325Siwasaki----------------------------------------
761107325Siwasaki11 November 2002.  Summary of changes for version 20021111.
762107325Siwasaki
763107325Siwasaki
764114237Snjl0) ACPI Specification 2.0B is released and is now available at:
765114237Snjlhttp://www.acpi.info/index.html
766107325Siwasaki
767107325Siwasaki
768107325Siwasaki1) ACPI CA Core Subsystem:
769107325Siwasaki
770107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions.
771114237SnjlThis includes the early detection and handoff of the request to
772114237Snjlthe SMBus region handler (avoiding all of the complex field
773107325Siwasakisupport code), and support for the bidirectional return packet
774107325Siwasakifrom an SMBus write operation.  This paves the way for the
775107325Siwasakidevelopment of SMBus drivers in each host operating system.
776107325Siwasaki
777107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was
778107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI
779107325Siwasakispecification.  This had the side effect of causing ASL
780107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait
781107325Siwasakiforever.  Changed all internal references to the ACPI timeout
782107325Siwasakiparameter to 16 bits to prevent future problems.  Changed the
783107325Siwasakiname of WAIT_FOREVER to ACPI_WAIT_FOREVER.
784107325Siwasaki
785107325SiwasakiCode and Data Size: Current core subsystem library sizes are
786107325Siwasakishown below.  These are the code and data sizes for the
787114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
788114237Snjlthese values do not include any ACPI driver or OSPM code.  The
789114237Snjldebug version of the code includes the debug output trace
790107325Siwasakimechanism and has a much larger code and data size.  Note that
791107325Siwasakithese values will vary depending on the efficiency of the
792107325Siwasakicompiler and the compiler options used during generation.
793107325Siwasaki
794107325Siwasaki  Previous Release
795107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
796107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
797107325Siwasaki  Current Release:
798107325Siwasaki    Non-Debug Version:  71.9K Code,   9.1K Data,   81.0K Total
799107325Siwasaki    Debug Version:     153.1K Code,  63.3K Data,  216.4K Total
800107325Siwasaki
801107325Siwasaki
802107325Siwasaki2) Linux
803107325Siwasaki
804107325SiwasakiModule loading/unloading fixes (John Cagle)
805107325Siwasaki
806107325Siwasaki
807107325Siwasaki3) iASL Compiler/Disassembler
808107325Siwasaki
809107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0)
810107325Siwasaki
811107325SiwasakiImplemented support for the disassembly of all SMBus protocol
812107325Siwasakikeywords (SMBQuick, SMBWord, etc.)
813107325Siwasaki
814107325Siwasaki----------------------------------------
815107325Siwasaki01 November 2002.  Summary of changes for version 20021101.
816107325Siwasaki
817107325Siwasaki
818107325Siwasaki1) ACPI CA Core Subsystem:
819107325Siwasaki
820107325SiwasakiFixed a problem where platforms that have a GPE1 block but no
821114237SnjlGPE0 block were not handled correctly.  This resulted in a "GPE
822114237Snjloverlap" error message.  GPE0 is no longer required.
823107325Siwasaki
824107325SiwasakiRemoved code added in the previous release that inserted nodes
825114237Snjlinto the namespace in alphabetical order.  This caused some side-
826114237Snjleffects on various machines.  The root cause of the problem is
827114237Snjlstill under investigation since in theory, the internal ordering
828114237Snjlof the namespace nodes should not matter.
829107325Siwasaki
830107325Siwasaki
831114237SnjlEnhanced error reporting for the case where a named object is not
832114237Snjlfound during control method execution.  The full ACPI namepath
833114237Snjl(name reference) of the object that was not found is displayed in
834114237Snjlthis case.
835107325Siwasaki
836114237SnjlNote: as a result of the overhaul of the namespace object types
837114237Snjlin the previous release, the namespace nodes for the predefined
838114237Snjlscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE
839114237Snjlinstead of ACPI_TYPE_ANY.  This simplifies the namespace
840114237Snjlmanagement code but may affect code that walks the namespace tree
841114237Snjllooking for specific object types.
842114237Snjl
843107325SiwasakiCode and Data Size: Current core subsystem library sizes are
844107325Siwasakishown below.  These are the code and data sizes for the
845114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
846114237Snjlthese values do not include any ACPI driver or OSPM code.  The
847114237Snjldebug version of the code includes the debug output trace
848107325Siwasakimechanism and has a much larger code and data size.  Note that
849107325Siwasakithese values will vary depending on the efficiency of the
850107325Siwasakicompiler and the compiler options used during generation.
851107325Siwasaki
852107325Siwasaki  Previous Release
853107325Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
854107325Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
855107325Siwasaki  Current Release:
856107325Siwasaki    Non-Debug Version:  71.4K Code,   9.0K Data,   80.4K Total
857107325Siwasaki    Debug Version:     152.3K Code,  63.0K Data,  215.3K Total
858107325Siwasaki
859107325Siwasaki
860107325Siwasaki2) Linux
861107325Siwasaki
862107325SiwasakiFixed a problem introduced in the previous release where the
863114237SnjlProcessor and Thermal objects were not recognized and installed
864114237Snjlin /proc.  This was related to the scope type change described
865114237Snjlabove.
866107325Siwasaki
867107325Siwasaki
868107325Siwasaki3) iASL Compiler/Disassembler
869107325Siwasaki
870114237SnjlImplemented the -g option to get all of the required ACPI tables
871114237Snjlfrom the registry and save them to files (Windows version of the
872114237Snjlcompiler only.)  The required tables are the FADT, FACS, and
873114237SnjlDSDT.
874107325Siwasaki
875114237SnjlAdded ACPI table checksum validation during table disassembly in
876114237Snjlorder to catch corrupted tables.
877107325Siwasaki
878107325Siwasaki
879107325Siwasaki----------------------------------------
880107325Siwasaki22 October 2002.  Summary of changes for version 20021022.
881107325Siwasaki
882107325Siwasaki1) ACPI CA Core Subsystem:
883107325Siwasaki
884114237SnjlImplemented a restriction on the Scope operator that the target
885114237Snjlmust already exist in the namespace at the time the operator is
886114237Snjlencountered (during table load or method execution).  In other
887114237Snjlwords, forward references are not allowed and Scope() cannot
888114237Snjlcreate a new object. This changes the previous behavior where the
889114237Snjlinterpreter would create the name if not found.  This new
890114237Snjlbehavior correctly enables the search-to-root algorithm during
891114237Snjlnamespace lookup of the target name.  Because of this upsearch,
892114237Snjlthis fixes the known Compaq _SB_.OKEC problem and makes both the
893114237SnjlAML interpreter and iASL compiler compatible with other ACPI
894114237Snjlimplementations.
895107325Siwasaki
896114237SnjlCompleted a major overhaul of the internal ACPI object types for
897114237Snjlthe ACPI Namespace and the associated operand objects.  Many of
898114237Snjlthese types had become obsolete with the introduction of the two-
899114237Snjlpass namespace load.  This cleanup simplifies the code and makes
900114237Snjlthe entire namespace load mechanism much clearer and easier to
901114237Snjlunderstand.
902107325Siwasaki
903114237SnjlImproved debug output for tracking scope opening/closing to help
904114237Snjldiagnose scoping issues.  The old scope name as well as the new
905114237Snjlscope name are displayed.  Also improved error messages for
906114237Snjlproblems with ASL Mutex objects and error messages for GPE
907114237Snjlproblems.
908107325Siwasaki
909107325SiwasakiCleaned up the namespace dump code, removed obsolete code.
910107325Siwasaki
911114237SnjlAll string output (for all namespace/object dumps) now uses the
912114237Snjlcommon ACPI string output procedure which handles escapes
913107325Siwasakiproperly and does not emit non-printable characters.
914107325Siwasaki
915107325SiwasakiFixed some issues with constants in the 64-bit version of the
916107325Siwasakilocal C library (utclib.c)
917107325Siwasaki
918107325Siwasaki
919107325Siwasaki2) Linux
920107325Siwasaki
921107325SiwasakiEC Driver:  No longer attempts to acquire the Global Lock at
922107325Siwasakiinterrupt level.
923107325Siwasaki
924107325Siwasaki
925107325Siwasaki3) iASL Compiler/Disassembler
926107325Siwasaki
927107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1
928114237Snjland 2 opcodes outside of a control method.  This means that the
929114237Snjl"executable" operators (versus the "namespace" operators) cannot
930114237Snjlbe used at the table level; they can only be used within a
931114237Snjlcontrol method.
932107325Siwasaki
933107325SiwasakiImplemented the restriction on the Scope() operator where the
934107325Siwasakitarget must already exist in the namespace at the time the
935114237Snjloperator is encountered (during ASL compilation). In other words,
936114237Snjlforward references are not allowed and Scope() cannot create a
937114237Snjlnew object.  This makes the iASL compiler compatible with other
938114237SnjlACPI implementations and makes the Scope() implementation adhere
939114237Snjlto the ACPI specification.
940107325Siwasaki
941107325SiwasakiFixed a problem where namepath optimization for the Alias
942107325Siwasakioperator was optimizing the wrong path (of the two namepaths.)
943107325SiwasakiThis caused a "Missing alias link" error message.
944107325Siwasaki
945114237SnjlFixed a problem where an "unknown reserved name" warning could be
946114237Snjlincorrectly generated for names like "_SB" when the trailing
947114237Snjlunderscore is not used in the original ASL.
948107325Siwasaki
949107325SiwasakiFixed a problem where the reserved name check did not handle
950114237SnjlNamePaths with multiple NameSegs correctly.  The first nameseg of
951114237Snjlthe NamePath was examined instead of the last NameSeg.
952107325Siwasaki
953107325Siwasaki
954107325Siwasaki----------------------------------------
955107325Siwasaki
956104470Siwasaki02 October 2002.  Summary of changes for this release.
957104470Siwasaki
958104470Siwasaki
959104470Siwasaki1) ACPI CA Core Subsystem version 20021002:
960104470Siwasaki
961104470SiwasakiFixed a problem where a store/copy of a string to an existing
962104470Siwasakistring did not always set the string length properly in the
963104470SiwasakiString object.
964104470Siwasaki
965104470SiwasakiFixed a reported problem with the ToString operator where the
966104470Siwasakibehavior was identical to the ToHexString operator instead of
967104470Siwasakijust simply converting a raw buffer to a string data type.
968104470Siwasaki
969104470SiwasakiFixed a problem where CopyObject and the other "explicit"
970104470Siwasakiconversion operators were not updating the internal namespace
971104470Siwasakinode type as part of the store operation.
972104470Siwasaki
973104470SiwasakiFixed a memory leak during implicit source operand conversion
974114237Snjlwhere the original object was not deleted if it was converted to
975114237Snjla new object of a different type.
976104470Siwasaki
977104470SiwasakiEnhanced error messages for all problems associated with
978104470Siwasakinamespace lookups.  Common procedure generates and prints the
979104470Siwasakilookup name as well as the formatted status.
980104470Siwasaki
981104470SiwasakiCompleted implementation of a new design for the Alias support
982104470Siwasakiwithin the namespace.  The existing design did not handle the
983114237Snjlcase where a new object was assigned to one of the two names due
984114237Snjlto the use of an explicit conversion operator, resulting in the
985114237Snjltwo names pointing to two different objects.  The new design
986114237Snjlsimply points the Alias name to the original name node - not to
987114237Snjlthe object.  This results in a level of indirection that must be
988114237Snjlhandled in the name resolution mechanism.
989104470Siwasaki
990104470SiwasakiCode and Data Size: Current core subsystem library sizes are
991104470Siwasakishown below.  These are the code and data sizes for the
992114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
993114237Snjlthese values do not include any ACPI driver or OSPM code.  The
994114237Snjldebug version of the code includes the debug output trace
995114237Snjlmechanism and has a larger code and data size.  Note that these
996114237Snjlvalues will vary depending on the efficiency of the compiler and
997114237Snjlthe compiler options used during generation.
998104470Siwasaki
999104470Siwasaki  Previous Release
1000104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1001104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1002104470Siwasaki  Current Release:
1003104470Siwasaki    Non-Debug Version:  70.7K Code,   8.6K Data,   79.3K Total
1004104470Siwasaki    Debug Version:     151.7K Code,  62.4K Data,  214.1K Total
1005104470Siwasaki
1006104470Siwasaki
1007104470Siwasaki2) Linux
1008104470Siwasaki
1009104470SiwasakiInitialize thermal driver's timer before it is used. (Knut
1010104470SiwasakiNeumann)
1011104470Siwasaki
1012104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi)
1013104470Siwasaki
1014114237SnjlFix thermal management and make trip points. R/W (Pavel Machek)
1015104470Siwasaki
1016104470SiwasakiFix /proc/acpi/sleep. (P. Christeas)
1017104470Siwasaki
1018104470SiwasakiIA64 fixes. (David Mosberger)
1019104470Siwasaki
1020104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto)
1021104470Siwasaki
1022104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik
1023104470SiwasakiBrodowski)
1024104470Siwasaki
1025104470Siwasaki
1026104470Siwasaki3) iASL Compiler/Disassembler
1027104470Siwasaki
1028104470SiwasakiClarified some warning/error messages.
1029104470Siwasaki
1030104470Siwasaki
1031104470Siwasaki----------------------------------------
1032104470Siwasaki18 September 2002.  Summary of changes for this release.
1033104470Siwasaki
1034104470Siwasaki
1035104470Siwasaki1) ACPI CA Core Subsystem version 20020918:
1036104470Siwasaki
1037114237SnjlFixed a reported problem with reference chaining (via the Index()
1038114237Snjland RefOf() operators) in the ObjectType() and SizeOf()
1039114237Snjloperators.  The definition of these operators includes the
1040114237Snjldereferencing of all chained references to return information on
1041114237Snjlthe base object.
1042104470Siwasaki
1043104470SiwasakiFixed a problem with stores to indexed package elements - the
1044104470Siwasakiexisting code would not complete the store if an "implicit
1045114237Snjlconversion" was not performed.  In other words, if the existing
1046114237Snjlobject (package element) was to be replaced completely, the code
1047114237Snjldidn't handle this case.
1048104470Siwasaki
1049104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the
1050104470Siwasakitarget name to refer to an object of type Integer, String, or
1051104470SiwasakiBuffer, in addition to the scoping object types (Device,
1052104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.)
1053114237SnjlThis allows existing AML code that has workarounds for a bug in
1054114237SnjlWindows to function properly.  A warning is issued, however.
1055114237SnjlThis affects both the AML interpreter and the iASL compiler.
1056114237SnjlBelow is an example of this type of ASL code:
1057104470Siwasaki
1058104470Siwasaki      Name(DEB,0x00)
1059104470Siwasaki      Scope(DEB)
1060104470Siwasaki      {
1061104470Siwasaki
1062114237SnjlFixed some reported problems with 64-bit integer support in the
1063114237Snjllocal implementation of C library functions (clib.c)
1064104470Siwasaki
1065104470Siwasaki
1066104470Siwasaki2) Linux
1067104470Siwasaki
1068104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is
1069104470Siwasakiundefined in non-SMP.
1070104470Siwasaki
1071114237SnjlEnsure that the SCI has the proper polarity and trigger, even on
1072114237Snjlsystems that do not have an interrupt override entry in the MADT.
1073104470Siwasaki
1074104470Siwasaki2.5 big driver reorganization (Pat Mochel)
1075104470Siwasaki
1076104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen)
1077104470Siwasaki
1078104470SiwasakiNew blacklist entries (Andi Kleen)
1079104470Siwasaki
1080114237SnjlBlacklist improvements. Split blacklist code out into a separate
1081114237Snjlfile. Move checking the blacklist to very early. Previously, we
1082114237Snjlwould use ACPI tables, and then halfway through init, check the
1083114237Snjlblacklist -- too late. Now, it's early enough to completely fall-
1084114237Snjlback to non-ACPI.
1085104470Siwasaki
1086104470Siwasaki
1087104470Siwasaki3) iASL Compiler/Disassembler version 20020918:
1088104470Siwasaki
1089114237SnjlFixed a problem where the typechecking code didn't know that an
1090114237Snjlalias could point to a method.  In other words, aliases were not
1091114237Snjlbeing dereferenced during typechecking.
1092104470Siwasaki
1093104470Siwasaki
1094104470Siwasaki----------------------------------------
1095104470Siwasaki29 August 2002.  Summary of changes for this release.
1096104470Siwasaki
1097104470Siwasaki1) ACPI CA Core Subsystem Version 20020829:
1098104470Siwasaki
1099114237SnjlIf the target of a Scope() operator already exists, it must be an
1100114237Snjlobject type that actually opens a scope -- such as a Device,
1101114237SnjlMethod, Scope, etc.  This is a fatal runtime error.  Similar
1102114237Snjlerror check has been added to the iASL compiler also.
1103104470Siwasaki
1104114237SnjlTightened up the namespace load to disallow multiple names in the
1105114237Snjlsame scope.  This previously was allowed if both objects were of
1106114237Snjlthe same type.  (i.e., a lookup was the same as entering a new
1107114237Snjlname).
1108104470Siwasaki
1109104470Siwasaki
1110104470Siwasaki2) Linux
1111104470Siwasaki
1112104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and
1113104470Siwasakipolarity.
1114104470Siwasaki
1115104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox)
1116104470Siwasaki
1117104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI
1118104470Siwasakiinterpreter *or* the tables.
1119104470Siwasaki
1120104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables
1121104470Siwasaki(Kochi Takayoshi)
1122104470Siwasaki
1123104470Siwasaki
1124104470Siwasaki3) iASL Compiler/Disassembler  Version 20020829:
1125104470Siwasaki
1126104470SiwasakiImplemented namepath optimization for name declarations.  For
1127104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get
1128104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the
1129104470Siwasaki\_SB_ scope.  This optimization is in addition to the named
1130104470Siwasakireference path optimization first released in the previous
1131114237Snjlversion. This would seem to complete all possible optimizations
1132114237Snjlfor namepaths within the ASL/AML.
1133104470Siwasaki
1134114237SnjlIf the target of a Scope() operator already exists, it must be an
1135114237Snjlobject type that actually opens a scope -- such as a Device,
1136114237SnjlMethod, Scope, etc.
1137104470Siwasaki
1138114237SnjlImplemented a check and warning for unreachable code in the same
1139114237Snjlblock below a Return() statement.
1140104470Siwasaki
1141114237SnjlFixed a problem where the listing file was not generated if the
1142114237Snjlcompiler aborted if the maximum error count was exceeded (200).
1143104470Siwasaki
1144104470SiwasakiFixed a problem where the typechecking of method return values
1145114237Snjlwas broken.  This includes the check for a return value when the
1146114237Snjlmethod is invoked as a TermArg (a return value is expected.)
1147104470Siwasaki
1148104470SiwasakiFixed a reported problem where EOF conditions during a quoted
1149104470Siwasakistring or comment caused a fault.
1150104470Siwasaki
1151104470Siwasaki
1152104470Siwasaki----------------------------------------
1153102550Siwasaki15 August 2002.  Summary of changes for this release.
1154102550Siwasaki
1155102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
1156102550Siwasaki
1157114237SnjlFixed a reported problem where a Store to a method argument that
1158114237Snjlcontains a reference did not perform the indirect store
1159114237Snjlcorrectly.  This problem was created during the conversion to the
1160114237Snjlnew reference object model - the indirect store to a method
1161114237Snjlargument code was not updated to reflect the new model.
1162102550Siwasaki
1163114237SnjlReworked the ACPI mode change code to better conform to ACPI 2.0,
1164114237Snjlhandle corner cases, and improve code legibility (Kochi
1165102550SiwasakiTakayoshi)
1166102550Siwasaki
1167102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
1168114237Snjlprefix.  The heavy use of the carat operator by the new namepath
1169114237Snjloptimization in the iASL compiler uncovered a problem with the
1170114237SnjlAML interpreter handling of this prefix.  In the case where one
1171114237Snjlor more carats precede a single nameseg, the nameseg was treated
1172114237Snjlas standalone and the search rule (to root) was inadvertently
1173114237Snjlapplied.  This could cause both the iASL compiler and the
1174114237Snjlinterpreter to find the wrong object or to miss the error that
1175114237Snjlshould occur if the object does not exist at that exact pathname.
1176102550Siwasaki
1177114237SnjlFound and fixed the problem where the HP Pavilion DSDT would not
1178114237Snjlload.  This was a relatively minor tweak to the table loading
1179114237Snjlcode (a problem caused by the unexpected encounter with a method
1180114237Snjlinvocation not within a control method), but it does not solve
1181114237Snjlthe overall issue of the execution of AML code at the table
1182114237Snjllevel.  This investigation is still ongoing.
1183102550Siwasaki
1184102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1185102550Siwasakishown below.  These are the code and data sizes for the
1186114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1187114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1188114237Snjldebug version of the code includes the debug output trace
1189114237Snjlmechanism and has a larger code and data size.  Note that these
1190114237Snjlvalues will vary depending on the efficiency of the compiler and
1191114237Snjlthe compiler options used during generation.
1192102550Siwasaki
1193102550Siwasaki  Previous Release
1194104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1195104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1196102550Siwasaki  Current Release:
1197104470Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K Total
1198104470Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K Total
1199102550Siwasaki
1200102550Siwasaki
1201102550Siwasaki2) Linux
1202102550Siwasaki
1203102550SiwasakiRemove redundant slab.h include (Brad Hards)
1204102550Siwasaki
1205102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
1206102550Siwasaki
1207102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
1208102550Siwasaki
1209104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel
1210104470SiwasakiMachek)
1211102550Siwasaki
1212102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
1213102550Siwasaki
1214102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
1215102550Siwasaki
1216102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
1217102550Siwasaki
1218102550Siwasaki
1219102550Siwasaki3) iASL Compiler/Disassembler
1220102550Siwasaki
1221114237SnjlReworked the compiler options to make them more consistent and to
1222114237Snjluse two-letter options where appropriate.  We were running out of
1223114237Snjlsensible letters.   This may break some makefiles, so check the
1224114237Snjlcurrent options list by invoking the compiler with no parameters.
1225102550Siwasaki
1226102550SiwasakiCompleted the design and implementation of the ASL namepath
1227114237Snjloptimization option for the compiler.  This option optimizes all
1228114237Snjlreferences to named objects to the shortest possible path.  The
1229114237Snjlfirst attempt tries to utilize a single nameseg (4 characters)
1230114237Snjland the "search-to-root" algorithm used by the interpreter.  If
1231114237Snjlthat cannot be used (because either the name is not in the search
1232114237Snjlpath or there is a conflict with another object with the same
1233114237Snjlname), the pathname is optimized using the carat prefix (usually
1234114237Snjla shorter string than specifying the entire path from the root.)
1235102550Siwasaki
1236114237SnjlImplemented support to obtain the DSDT from the Windows registry
1237114237Snjl(when the disassembly option is specified with no input file).
1238114237SnjlAdded this code as the implementation for AcpiOsTableOverride in
1239114237Snjlthe Windows OSL.  Migrated the 16-bit code (used in the AcpiDump
1240114237Snjlutility) to scan memory for the DSDT to the AcpiOsTableOverride
1241114237Snjlfunction in the DOS OSL to make the disassembler truly OS
1242114237Snjlindependent.
1243102550Siwasaki
1244114237SnjlImplemented a new option to disassemble and compile in one step.
1245114237SnjlWhen used without an input filename, this option will grab the
1246114237SnjlDSDT from the local machine, disassemble it, and compile it in
1247114237Snjlone step.
1248102550Siwasaki
1249114237SnjlAdded a warning message for invalid escapes (a backslash followed
1250114237Snjlby any character other than the allowable escapes).  This catches
1251114237Snjlthe quoted string error "\_SB_" (which should be "\\_SB_" ).
1252114237SnjlAlso, there are numerous instances in the ACPI specification
1253114237Snjlwhere this error occurs.
1254102550Siwasaki
1255104470SiwasakiAdded a compiler option to disable all optimizations.  This is
1256114237Snjlbasically the "compatibility mode" because by using this option,
1257114237Snjlthe AML code will come out exactly the same as other ASL
1258114237Snjlcompilers.
1259102550Siwasaki
1260114237SnjlAdded error messages for incorrectly ordered dependent resource
1261114237Snjlfunctions.  This includes: missing EndDependentFn macro at end of
1262114237Snjldependent resource list, nested dependent function macros (both
1263114237Snjlstart and end), and missing StartDependentFn macro.  These are
1264114237Snjlcommon errors that should be caught at compile time.
1265102550Siwasaki
1266114237SnjlImplemented _OSI support for the disassembler and compiler.  _OSI
1267114237Snjlmust be included in the namespace for proper disassembly (because
1268114237Snjlthe disassembler must know the number of arguments.)
1269102550Siwasaki
1270104470SiwasakiAdded an "optimization" message type that is optional (off by
1271114237Snjldefault).  This message is used for all optimizations - including
1272114237Snjlconstant folding, integer optimization, and namepath
1273104470Siwasakioptimization.
1274102550Siwasaki
1275102550Siwasaki----------------------------------------
1276102550Siwasaki25 July 2002.  Summary of changes for this release.
1277102550Siwasaki
1278102550Siwasaki
1279102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
1280102550Siwasaki
1281114237SnjlThe AML Disassembler has been enhanced to produce compilable ASL
1282114237Snjlcode and has been integrated into the iASL compiler (see below)
1283114237Snjlas well as the single-step disassembly for the AML debugger and
1284114237Snjlthe disassembler for the AcpiDump utility.  All ACPI 2.0A
1285114237Snjlopcodes, resource templates and macros are fully supported.  The
1286114237Snjldisassembler has been tested on over 30 different AML files,
1287114237Snjlproducing identical AML when the resulting disassembled ASL file
1288114237Snjlis recompiled with the same ASL compiler.
1289102550Siwasaki
1290114237SnjlModified the Resource Manager to allow zero interrupts and zero
1291114237Snjldma channels during the GetCurrentResources call.  This was
1292114237Snjlcausing problems on some platforms.
1293102550Siwasaki
1294114237SnjlAdded the AcpiOsRedirectOutput interface to the OSL to simplify
1295114237Snjloutput redirection for the AcpiOsPrintf and AcpiOsVprintf
1296114237Snjlinterfaces.
1297102550Siwasaki
1298102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1299102550Siwasakishown below.  These are the code and data sizes for the
1300114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1301114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1302114237Snjldebug version of the code includes the debug output trace
1303114237Snjlmechanism and has a larger code and data size.  Note that these
1304114237Snjlvalues will vary depending on the efficiency of the compiler and
1305114237Snjlthe compiler options used during generation.
1306102550Siwasaki
1307102550Siwasaki  Previous Release
1308104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1309104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1310102550Siwasaki  Current Release:
1311104470Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K Total
1312104470Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K Total
1313102550Siwasaki
1314102550Siwasaki
1315102550Siwasaki2) Linux
1316102550Siwasaki
1317102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
1318102550Siwasaki
1319114237SnjlImplemented checksum of the R/XSDT itself during Linux table scan
1320114237Snjl(Richard Schaal)
1321102550Siwasaki
1322102550Siwasaki
1323102550Siwasaki3) iASL compiler
1324102550Siwasaki
1325114237SnjlThe AML disassembler is integrated into the compiler.  The "-d"
1326114237Snjloption invokes the disassembler  to completely disassemble an
1327114237Snjlinput AML file, producing as output a text ASL file with the
1328114237Snjlextension ".dsl" (to avoid name collisions with existing .asl
1329114237Snjlsource files.)  A future enhancement will allow the disassembler
1330114237Snjlto obtain the BIOS DSDT from the registry under Windows.
1331102550Siwasaki
1332102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
1333102550Siwasakidescriptors where an invalid AML sequence was created.
1334102550Siwasaki
1335114237SnjlImplemented a fix for BufferData term in the ASL parser.  It was
1336114237Snjlinadvertently defined twice, allowing invalid syntax to pass and
1337114237Snjlcausing reduction conflicts.
1338102550Siwasaki
1339104470SiwasakiFixed a problem where the Ones opcode could get converted to a
1340104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword
1341104470Siwasakivalue was expected.  The 64-bit value is now truncated to the
1342104470Siwasakicorrect size with the correct value.
1343102550Siwasaki
1344102550Siwasaki
1345102550Siwasaki----------------------------------------
1346102550Siwasaki02 July 2002.  Summary of changes for this release.
1347102550Siwasaki
1348102550Siwasaki
1349102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
1350102550Siwasaki
1351114237SnjlThe Table Manager code has been restructured to add several new
1352114237Snjlfeatures.  Tables that are not required by the core subsystem
1353114237Snjl(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer
1354114237Snjlvalidated in any way and are returned from AcpiGetFirmwareTable
1355114237Snjlif requested.  The AcpiOsTableOverride interface is now called
1356114237Snjlfor each table that is loaded by the subsystem in order to allow
1357114237Snjlthe host to override any table it chooses.  Previously, only the
1358114237SnjlDSDT could be overridden.  Added one new files, tbrsdt.c and
1359114237Snjltbgetall.c.
1360102550Siwasaki
1361114237SnjlFixed a problem with the conversion of internal package objects
1362114237Snjlto external objects (when a package is returned from a control
1363114237Snjlmethod.)  The return buffer length was set to zero instead of the
1364114237Snjlproper length of the package object.
1365102550Siwasaki
1366104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf
1367114237Snjloperators when passing reference arguments to control methods.  A
1368114237Snjlnew type of Reference object is used internally for references
1369114237Snjlproduced by the RefOf operator.
1370102550Siwasaki
1371102550SiwasakiAdded additional error messages in the Resource Manager to
1372102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource
1373102550Siwasakiparsing.
1374102550Siwasaki
1375104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a
1376104470Siwasakifiner granularity initialization sequence.  These two calls
1377104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags),
1378114237SnjlAcpiInitializeObjects (flags).  The flags parameter remains the
1379114237Snjlsame.
1380102550Siwasaki
1381102550Siwasaki
1382102550Siwasaki2) Linux
1383102550Siwasaki
1384114237SnjlUpdated the ACPI utilities module to understand the new style of
1385114237Snjlfully resolved package objects that are now returned from the
1386114237Snjlcore subsystem.  This eliminates errors of the form:
1387102550Siwasaki
1388102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
1389102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
1390102550Siwasaki        Invalid element in package (not a device reference)
1391102550Siwasaki
1392102550SiwasakiThe method evaluation utility uses the new buffer allocation
1393102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
1394102550Siwasaki
1395102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
1396114237SnjlController before the namespace has been fully initialized, which
1397114237Snjlis necessary for ACPI 2.0 support, and for some laptops to
1398114237Snjlinitialize properly. (Laptops using ECDT are still rare, so only
1399114237Snjllimited testing was performed of the added functionality.)
1400102550Siwasaki
1401102550SiwasakiFixed memory leaks in the EC driver.
1402102550Siwasaki
1403102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
1404102550Siwasaki
1405114237SnjlEliminated the acpi_evaluate() helper function in utils.c. It is
1406114237Snjlno longer needed since acpi_evaluate_object can optionally
1407104470Siwasakiallocate memory for the return object.
1408102550Siwasaki
1409114237SnjlImplemented fix for keyboard hang when getting battery readings
1410114237Snjlon some systems (Stephen White)
1411102550Siwasaki
1412102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
1413102550Siwasaki
1414114237SnjlFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC
1415114237Snjlsupport
1416102550Siwasaki
1417102550Siwasaki----------------------------------------
1418102550Siwasaki11 June 2002.  Summary of changes for this release.
1419102550Siwasaki
1420102550Siwasaki
1421102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
1422102550Siwasaki
1423104470SiwasakiFixed a reported problem where constants such as Zero and One
1424114237Snjlappearing within _PRT packages were not handled correctly within
1425114237Snjlthe resource manager code.  Originally reported against the ASL
1426114237Snjlcompiler because the code generator now optimizes integers to
1427114237Snjltheir minimal AML representation (i.e. AML constants if
1428114237Snjlpossible.)  The _PRT code now handles all AML constant opcodes
1429114237Snjlcorrectly (Zero, One, Ones, Revision).
1430102550Siwasaki
1431102550SiwasakiFixed a problem with the Concatenate operator in the AML
1432114237Snjlinterpreter where a buffer result object was incorrectly marked
1433114237Snjlas not fully evaluated, causing a run-time error of
1434102550SiwasakiAE_AML_INTERNAL.
1435102550Siwasaki
1436104470SiwasakiAll package sub-objects are now fully resolved before they are
1437114237Snjlreturned from the external ACPI interfaces.  This means that name
1438114237Snjlstrings are resolved to object handles, and constant operators
1439114237Snjl(Zero, One, Ones, Revision) are resolved to Integers.
1440102550Siwasaki
1441102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
1442104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection
1443104470Siwasakiwithin the AML stream. This has simplified and reduced the
1444104470Siwasakigenerated code size of the subsystem by eliminating about 10
1445104470Siwasakiswitch statements for these constants (which previously were
1446104470Siwasakicontained in Reference objects.)  The complicating issues are
1447114237Snjlthat the Zero opcode is used as a "placeholder" for unspecified
1448114237Snjloptional target operands and stores to constants are defined to
1449114237Snjlbe no-ops.
1450102550Siwasaki
1451102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1452114237Snjlshown below. These are the code and data sizes for the acpica.lib
1453114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
1454114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
1455114237Snjlversion of the code includes the debug output trace mechanism and
1456114237Snjlhas a larger code and data size.  Note that these values will
1457114237Snjlvary depending on the efficiency of the compiler and the compiler
1458114237Snjloptions used during generation.
1459102550Siwasaki
1460102550Siwasaki  Previous Release
1461104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1462104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1463102550Siwasaki  Current Release:
1464104470Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K Total
1465104470Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K Total
1466102550Siwasaki
1467102550Siwasaki
1468102550Siwasaki2) Linux
1469102550Siwasaki
1470104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root
1471104470Siwasakibridges (Bjorn Helgaas).
1472102550Siwasaki
1473102550Siwasaki
1474102550Siwasaki3) iASL Compiler Version X2046:
1475102550Siwasaki
1476114237SnjlFixed a problem where the "_DDN" reserved name was defined to be
1477114237Snjla control method with one argument.  There are no arguments, and
1478114237Snjl_DDN does not have to be a control method.
1479102550Siwasaki
1480114237SnjlFixed a problem with the Linux version of the compiler where the
1481114237Snjlsource lines printed with error messages were the wrong lines.
1482114237SnjlThis turned out to be the "LF versus CR/LF" difference between
1483114237SnjlWindows and Unix.  This appears to be the longstanding issue
1484114237Snjlconcerning listing output and error messages.
1485102550Siwasaki
1486114237SnjlFixed a problem with the Linux version of compiler where opcode
1487114237Snjlnames within error messages were wrong.  This was caused by a
1488114237Snjlslight difference in the output of the Flex tool on Linux versus
1489114237SnjlWindows.
1490102550Siwasaki
1491102550SiwasakiFixed a problem with the Linux compiler where the hex output
1492104470Siwasakifiles contained some garbage data caused by an internal buffer
1493104470Siwasakioverrun.
1494102550Siwasaki
1495102550Siwasaki
1496102550Siwasaki----------------------------------------
1497102550Siwasaki17 May 2002.  Summary of changes for this release.
1498102550Siwasaki
1499102550Siwasaki
1500102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
1501102550Siwasaki
1502102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
1503104470SiwasakiOmniBook where the FADT revision number and the table size are
1504104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size).  The
1505114237Snjlnew behavior is to fallback to using only the ACPI 1.0 fields of
1506114237Snjlthe FADT if the table is too small to be a ACPI 2.0 table as
1507114237Snjlclaimed by the revision number.  Although this is a BIOS bug,
1508114237Snjlthis is a case where the workaround is simple enough and with no
1509114237Snjlside effects, so it seemed prudent to add it.  A warning message
1510114237Snjlis issued, however.
1511102550Siwasaki
1512114237SnjlImplemented minimum size checks for the fixed-length ACPI tables
1513114237Snjl-- the FADT and FACS, as well as consistency checks between the
1514114237Snjlrevision number and the table size.
1515102550Siwasaki
1516114237SnjlFixed a reported problem in the table override support where the
1517114237Snjlnew table pointer was incorrectly treated as a physical address
1518114237Snjlinstead of a logical address.
1519102550Siwasaki
1520114237SnjlEliminated the use of the AE_AML_ERROR exception and replaced it
1521114237Snjlwith more descriptive codes.
1522102550Siwasaki
1523104470SiwasakiFixed a problem where an exception would occur if an ASL Field
1524114237Snjlwas defined with no named Field Units underneath it (used by some
1525114237Snjlindex fields).
1526102550Siwasaki
1527102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1528102550Siwasakishown below.  These are the code and data sizes for the
1529114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1530114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1531114237Snjldebug version of the code includes the debug output trace
1532114237Snjlmechanism and has a larger code and data size.  Note that these
1533114237Snjlvalues will vary depending on the efficiency of the compiler and
1534114237Snjlthe compiler options used during generation.
1535102550Siwasaki
1536102550Siwasaki  Previous Release
1537104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
1538104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
1539102550Siwasaki  Current Release:
1540104470Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K Total
1541104470Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K Total
1542102550Siwasaki
1543102550Siwasaki
1544102550Siwasaki
1545102550Siwasaki2) Linux
1546102550Siwasaki
1547114237SnjlMuch work done on ACPI init (MADT and PCI IRQ routing support).
1548114237Snjl(Paul D. and Dominik Brodowski)
1549102550Siwasaki
1550102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
1551102550Siwasaki
1552102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
1553102550Siwasaki
1554102550SiwasakiFix "MHz" typo (Dominik Brodowski)
1555102550Siwasaki
1556102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
1557102550Siwasaki
1558102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
1559102550Siwasaki
1560102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
1561102550Siwasaki
1562102550Siwasaki3) iASL Compiler Version X2044:
1563102550Siwasaki
1564102550SiwasakiImplemented error checking for the string used in the EISAID
1565114237Snjlmacro (Usually used in the definition of the _HID object.)  The
1566114237Snjlcode now strictly enforces the PnP format - exactly 7 characters,
1567114237Snjl3 uppercase letters and 4 hex digits.
1568102550Siwasaki
1569102550SiwasakiIf a raw string is used in the definition of the _HID object
1570102550Siwasaki(instead of the EISAID macro), the string must contain all
1571114237Snjlalphanumeric characters (e.g., "*PNP0011" is not allowed because
1572114237Snjlof the asterisk.)
1573102550Siwasaki
1574114237SnjlImplemented checking for invalid use of ACPI reserved names for
1575114237Snjlmost of the name creation operators (Name, Device, Event, Mutex,
1576114237SnjlOperationRegion, PowerResource, Processor, and ThermalZone.)
1577114237SnjlPreviously, this check was only performed for control methods.
1578102550Siwasaki
1579114237SnjlImplemented an additional check on the Name operator to emit an
1580114237Snjlerror if a reserved name that must be implemented in ASL as a
1581114237Snjlcontrol method is used.  We know that a reserved name must be a
1582114237Snjlmethod if it is defined with input arguments.
1583102550Siwasaki
1584102550SiwasakiThe warning emitted when a namespace object reference is not
1585114237Snjlfound during the cross reference phase has been changed into an
1586114237Snjlerror.  The "External" directive should be used for names defined
1587114237Snjlin other modules.
1588102550Siwasaki
1589102550Siwasaki
1590102550Siwasaki4) Tools and Utilities
1591102550Siwasaki
1592114237SnjlThe 16-bit tools (adump16 and aexec16) have been regenerated and
1593114237Snjltested.
1594102550Siwasaki
1595102550SiwasakiFixed a problem with the output of both acpidump and adump16
1596114237Snjlwhere the indentation of closing parentheses and brackets was not
1597114237Snjlaligned properly with the parent block.
1598102550Siwasaki
1599102550Siwasaki
1600102550Siwasaki----------------------------------------
1601102550Siwasaki03 May 2002.  Summary of changes for this release.
1602102550Siwasaki
1603102550Siwasaki
1604102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
1605102550Siwasaki
1606114237SnjlAdded support a new OSL interface that allows the host operating
1607114237Snjlsystem software to override the DSDT found in the firmware -
1608114237SnjlAcpiOsTableOverride.  With this interface, the OSL can examine
1609114237Snjlthe version of the firmware DSDT and replace it with a different
1610114237Snjlone if desired.
1611102550Siwasaki
1612114237SnjlAdded new external interfaces for accessing ACPI registers from
1613114237Snjldevice drivers and other system software - AcpiGetRegister and
1614114237SnjlAcpiSetRegister.  This was simply an externalization of the
1615114237Snjlexisting AcpiHwBitRegister interfaces.
1616102550Siwasaki
1617104470SiwasakiFixed a regression introduced in the previous build where the
1618104470SiwasakiASL/AML CreateField operator always returned an error,
1619102550Siwasaki"destination must be a NS Node".
1620102550Siwasaki
1621114237SnjlExtended the maximum time (before failure) to successfully enable
1622114237SnjlACPI mode to 3 seconds.
1623102550Siwasaki
1624102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1625102550Siwasakishown below.  These are the code and data sizes for the
1626114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1627114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1628114237Snjldebug version of the code includes the debug output trace
1629114237Snjlmechanism and has a larger code and data size.  Note that these
1630114237Snjlvalues will vary depending on the efficiency of the compiler and
1631114237Snjlthe compiler options used during generation.
1632102550Siwasaki
1633102550Siwasaki  Previous Release
1634104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
1635104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
1636102550Siwasaki  Current Release:
1637104470Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K Total
1638104470Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K Total
1639102550Siwasaki
1640102550Siwasaki
1641102550Siwasaki2) Linux
1642102550Siwasaki
1643104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR-
1644104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the
1645104470Siwasakilast one still hangs when testing the LAPIC timer.
1646102550Siwasaki
1647114237SnjlRenamed many files in 2.5 kernel release to omit "acpi_" from the
1648114237Snjlname.
1649102550Siwasaki
1650102550SiwasakiAdded warning on boot for Presario 711FR.
1651102550Siwasaki
1652102550SiwasakiSleep improvements (Pavel Machek)
1653102550Siwasaki
1654102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
1655102550Siwasaki
1656102550SiwasakiIA64: Fixed memory map functions (JI Lee)
1657102550Siwasaki
1658102550Siwasaki
1659102550Siwasaki3) iASL Compiler Version X2043:
1660102550Siwasaki
1661114237SnjlAdded support to allow the compiler to be integrated into the MS
1662114237SnjlVC++ development environment for one-button compilation of single
1663114237Snjlfiles or entire projects -- with error-to-source-line mapping.
1664102550Siwasaki
1665104470SiwasakiImplemented support for compile-time constant folding for the
1666104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0
1667104470Siwasakispecification.  This allows the ASL writer to use expressions
1668104470Siwasakiinstead of Integer/Buffer/String constants in terms that must
1669114237Snjlevaluate to constants at compile time and will also simplify the
1670114237Snjlemitted AML in any such sub-expressions that can be folded
1671104470Siwasaki(evaluated at compile-time.)  This increases the size of the
1672104470Siwasakicompiler significantly because a portion of the ACPI CA AML
1673104470Siwasakiinterpreter is included within the compiler in order to pre-
1674104470Siwasakievaluate constant expressions.
1675102550Siwasaki
1676114237Snjl
1677102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
1678114237Snjlcompiler to fault.  (This macro is used in conjunction with the
1679114237Snjl_STR reserved name.)
1680102550Siwasaki
1681114237SnjlImplemented an AML opcode optimization to use the Zero, One, and
1682114237SnjlOnes opcodes where possible to further reduce the size of integer
1683114237Snjlconstants and thus reduce the overall size of the generated AML
1684114237Snjlcode.
1685102550Siwasaki
1686102550SiwasakiImplemented error checking for new reserved terms for ACPI
1687102550Siwasakiversion 2.0A.
1688102550Siwasaki
1689104470SiwasakiImplemented the -qr option to display the current list of ACPI
1690104470Siwasakireserved names known to the compiler.
1691102550Siwasaki
1692104470SiwasakiImplemented the -qc option to display the current list of ASL
1693104470Siwasakioperators that are allowed within constant expressions and can
1694104470Siwasakitherefore be folded at compile time if the operands are
1695104470Siwasakiconstants.
1696102550Siwasaki
1697102550Siwasaki
1698102550Siwasaki4) Documentation
1699102550Siwasaki
1700102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
1701102550Siwasakitypes, and memory allocation model options.
1702102550Siwasaki
1703114237SnjlUpdated the iASL Compiler User Reference to apply new format and
1704114237Snjladd information about new features and options.
1705102550Siwasaki
1706102550Siwasaki----------------------------------------
1707102550Siwasaki19 April 2002.  Summary of changes for this release.
1708102550Siwasaki
1709102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
1710102550Siwasaki
1711114237SnjlThe source code base for the Core Subsystem has been completely
1712114237Snjlcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit
1713114237Snjlversions.  The Lint option files used are included in the
1714114237Snjl/acpi/generate/lint directory.
1715102550Siwasaki
1716102550SiwasakiImplemented enhanced status/error checking across the entire
1717114237SnjlHardware manager subsystem.  Any hardware errors (reported from
1718114237Snjlthe OSL) are now bubbled up and will abort a running control
1719114237Snjlmethod.
1720102550Siwasaki
1721114237SnjlFixed a problem where the per-ACPI-table integer width (32 or 64)
1722114237Snjlwas stored only with control method nodes, causing a fault when
1723114237Snjlnon-control method code was executed during table loading.  The
1724114237Snjlsolution implemented uses a global variable to indicate table
1725114237Snjlwidth across the entire ACPI subsystem.  Therefore, ACPI CA does
1726114237Snjlnot support mixed integer widths across different ACPI tables
1727114237Snjl(DSDT, SSDT).
1728102550Siwasaki
1729114237SnjlFixed a problem where NULL extended fields (X fields) in an ACPI
1730114237Snjl2.0 ACPI FADT caused the table load to fail.  Although the
1731114237Snjlexisting ACPI specification is a bit fuzzy on this topic, the new
1732114237Snjlbehavior is to fall back on a ACPI 1.0 field if the corresponding
1733114237SnjlACPI 2.0 X field is zero (even though the table revision
1734114237Snjlindicates a full ACPI 2.0 table.)  The ACPI specification will be
1735114237Snjlupdated to clarify this issue.
1736102550Siwasaki
1737104470SiwasakiFixed a problem with the SystemMemory operation region handler
1738104470Siwasakiwhere memory was always accessed byte-wise even if the AML-
1739104470Siwasakispecified access width was larger than a byte.  This caused
1740104470Siwasakiproblems on systems with memory-mapped I/O.  Memory is now
1741104470Siwasakiaccessed with the width specified.  On systems that do not
1742104470Siwasakisupport non-aligned transfers, a check is made to guarantee
1743114237Snjlproper address alignment before proceeding in order to avoid an
1744114237SnjlAML-caused alignment fault within the kernel.
1745102550Siwasaki
1746102550Siwasaki
1747114237SnjlFixed a problem with the ExtendedIrq resource where only one byte
1748114237Snjlof the 4-byte Irq field was extracted.
1749102550Siwasaki
1750114237SnjlFixed the AcpiExDigitsNeeded() procedure to support _UID.  This
1751114237Snjlfunction was out of date and required a rewrite.
1752114237Snjl
1753102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1754102550Siwasakishown below.  These are the code and data sizes for the
1755114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1756114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1757114237Snjldebug version of the code includes the debug output trace
1758114237Snjlmechanism and has a larger code and data size.  Note that these
1759114237Snjlvalues will vary depending on the efficiency of the compiler and
1760114237Snjlthe compiler options used during generation.
1761102550Siwasaki
1762102550Siwasaki  Previous Release
1763104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1764104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1765102550Siwasaki  Current Release:
1766104470Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K Total
1767104470Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K Total
1768102550Siwasaki
1769102550Siwasaki
1770102550Siwasaki2) Linux
1771102550Siwasaki
1772102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
1773102550Siwasaki
1774102550Siwasaki
1775102550Siwasaki3) iASL Compiler Version X2042:
1776102550Siwasaki
1777104470SiwasakiImplemented an additional compile-time error check for a field
1778104470Siwasakiunit whose size + minimum access width would cause a run-time
1779114237Snjlaccess beyond the end-of-region.  Previously, only the field size
1780114237Snjlitself was checked.
1781102550Siwasaki
1782104470SiwasakiThe Core subsystem and iASL compiler now share a common parse
1783104470Siwasakiobject in preparation for compile-time evaluation of the type
1784104470Siwasaki3/4/5 ASL operators.
1785102550Siwasaki
1786102550Siwasaki
1787102550Siwasaki----------------------------------------
1788102550SiwasakiSummary of changes for this release: 03_29_02
1789102550Siwasaki
1790102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
1791102550Siwasaki
1792104470SiwasakiImplemented support for late evaluation of TermArg operands to
1793114237SnjlBuffer and Package objects.  This allows complex expressions to
1794114237Snjlbe used in the declarations of these object types.
1795102550Siwasaki
1796104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In
1797114237SnjlACPI 1.0, if the field was larger than 32 bits, it was returned
1798114237Snjlas a buffer - otherwise it was returned as an integer.  In ACPI
1799114237Snjl2.0, the field is returned as a buffer only if the field is
1800114237Snjllarger than 64 bits.  The TableRevision is now considered when
1801114237Snjlmaking this conversion to avoid incompatibility with existing ASL
1802114237Snjlcode.
1803102550Siwasaki
1804104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.  This
1805114237Snjlallows an RSDP with either a logical or physical address.  With
1806114237Snjlthis support, the host OS can now override all ACPI tables with
1807114237Snjlone logical RSDP.  Includes implementation of  "typed" pointer
1808114237Snjlsupport to allow a common data type for both physical and logical
1809114237Snjlpointers internally.  This required a change to the
1810114237SnjlAcpiOsGetRootPointer interface.
1811102550Siwasaki
1812104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for
1813114237Snjlall GPE, Fixed Event, and PM Timer I/O.  This allows the use of
1814114237Snjlmemory mapped I/O for these ACPI features.
1815102550Siwasaki
1816102550SiwasakiInitialization now ignores not only non-required tables (All
1817114237Snjltables other than the FADT, FACS, DSDT, and SSDTs), but also does
1818114237Snjlnot validate the table headers of unrecognized tables.
1819102550Siwasaki
1820102550SiwasakiFixed a problem where a notify handler could only be
1821102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
1822102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
1823102550SiwasakiThermal.
1824102550Siwasaki
1825114237SnjlRemoved most verbosity from the ACPI_DB_INFO debug level.  Only
1826114237Snjlcritical information is returned when this debug level is
1827104470Siwasakienabled.
1828102550Siwasaki
1829102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1830102550Siwasakishown below.  These are the code and data sizes for the
1831114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
1832114237Snjlthese values do not include any ACPI driver or OSPM code.  The
1833114237Snjldebug version of the code includes the debug output trace
1834114237Snjlmechanism and has a larger code and data size.  Note that these
1835114237Snjlvalues will vary depending on the efficiency of the compiler and
1836114237Snjlthe compiler options used during generation.
1837102550Siwasaki
1838102550Siwasaki  Previous Release
1839104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
1840104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
1841102550Siwasaki  Current Release:
1842104470Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K Total
1843104470Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K Total
1844102550Siwasaki
1845102550Siwasaki
1846102550Siwasaki2) Linux:
1847102550Siwasaki
1848114237SnjlThe processor driver (acpi_processor.c) now fully supports ACPI
1849114237Snjl2.0-based processor performance control (e.g. Intel(R)
1850114237SnjlSpeedStep(TM) technology) Note that older laptops that only have
1851114237Snjlthe Intel "applet" interface are not supported through this.  The
1852114237Snjl'limit' and 'performance' interface (/proc) are fully functional.
1853114237Snjl[Note that basic policy for controlling performance state
1854114237Snjltransitions will be included in the next version of ospmd.]  The
1855114237Snjlidle handler was modified to more aggressively use C2, and PIIX4
1856114237Snjlerrata handling underwent a complete overhaul (big thanks to
1857114237SnjlDominik Brodowski).
1858102550Siwasaki
1859114237SnjlAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR-
1860114237Snjlbased devices in the ACPI namespace are now dynamically bound
1861114237Snjl(associated) with their PCI counterparts (e.g. PCI1->01:00.0).
1862114237SnjlThis allows, among other things, ACPI to resolve bus numbers for
1863114237Snjlsubordinate PCI bridges.
1864102550Siwasaki
1865104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT
1866104470Siwasakientries defined underneath PCI bridges.
1867102550Siwasaki
1868104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for
1869104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing.
1870102550Siwasaki
1871114237SnjlIn the process of adding full MADT support (e.g. IOAPIC) for IA32
1872114237Snjl(acpi.c, mpparse.c) -- stay tuned.
1873102550Siwasaki
1874102550SiwasakiAdded back visual differentiation between fixed-feature and
1875114237Snjlcontrol-method buttons in dmesg.  Buttons are also subtyped (e.g.
1876114237Snjlbutton/power/PWRF) to simplify button identification.
1877102550Siwasaki
1878114237SnjlWe no longer use -Wno-unused when compiling debug. Please ignore
1879114237Snjlany "_THIS_MODULE defined but not used" messages.
1880102550Siwasaki
1881102550SiwasakiCan now shut down the system using "magic sysrq" key.
1882102550Siwasaki
1883102550Siwasaki
1884102550Siwasaki3) iASL Compiler version 2041:
1885102550Siwasaki
1886104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal
1887104470Siwasakiconstants were not reported.
1888102550Siwasaki
1889102550SiwasakiImplemented a fix for the General Register template Address
1890102550Siwasakifield.  This field was 8 bits when it should be 64.
1891102550Siwasaki
1892102550SiwasakiFixed a problem where errors/warnings were no longer being
1893102550Siwasakiemitted within the listing output file.
1894102550Siwasaki
1895114237SnjlImplemented the ACPI 2.0A restriction on ACPI Table Signatures to
1896114237Snjlexactly 4 characters, alphanumeric only.
1897102550Siwasaki
1898102550Siwasaki
1899102550Siwasaki
1900102550Siwasaki
1901102550Siwasaki----------------------------------------
1902102550SiwasakiSummary of changes for this release: 03_08_02
1903102550Siwasaki
1904102550Siwasaki
1905102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
1906102550Siwasaki
1907114237SnjlFixed a problem with AML Fields where the use of the "AccessAny"
1908114237Snjlkeyword could cause an interpreter error due to attempting to
1909114237Snjlread or write beyond the end of the parent Operation Region.
1910102550Siwasaki
1911102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
1912104470Siwasakiwhere an attempt was made to map memory beyond the end of the
1913104470Siwasakiregion.  This was the root cause of the "AE_ERROR" and
1914102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems.
1915102550Siwasaki
1916114237SnjlFixed a problem where the interpreter/namespace "search to root"
1917114237Snjlalgorithm was not functioning for some object types.  Relaxed the
1918114237Snjlinternal restriction on the search to allow upsearches for all
1919114237Snjlexternal object types as well as most internal types.
1920102550Siwasaki
1921102550Siwasaki
1922102550Siwasaki2) Linux:
1923102550Siwasaki
1924104470SiwasakiWe now use safe_halt() macro versus individual calls to sti |
1925104470Siwasakihlt.
1926102550Siwasaki
1927114237SnjlWriting to the processor limit interface should now work. "echo
1928114237Snjl1" will increase the limit, 2 will decrease, and 0 will reset to
1929114237Snjlthe default.
1930102550Siwasaki
1931102550Siwasaki
1932102550Siwasaki3) ASL compiler:
1933102550Siwasaki
1934102550SiwasakiFixed segfault on Linux version.
1935102550Siwasaki
1936102550Siwasaki
1937102550Siwasaki----------------------------------------
1938102550SiwasakiSummary of changes for this release: 02_25_02
1939102550Siwasaki
1940102550Siwasaki1) ACPI CA Core Subsystem:
1941102550Siwasaki
1942102550Siwasaki
1943102550SiwasakiFixed a problem where the GPE bit masks were not initialized
1944102550Siwasakiproperly, causing erratic GPE behavior.
1945102550Siwasaki
1946104470SiwasakiImplemented limited support for multiple calling conventions.
1947114237SnjlThe code can be generated with either the VPL (variable parameter
1948114237Snjllist, or "C") convention, or the FPL (fixed parameter list, or
1949114237Snjl"Pascal") convention.  The core subsystem is about 3.4% smaller
1950114237Snjlwhen generated with FPL.
1951102550Siwasaki
1952102550Siwasaki
1953102550Siwasaki2) Linux
1954102550Siwasaki
1955114237SnjlRe-add some /proc/acpi/event functionality that was lost during
1956114237Snjlthe rewrite
1957102550Siwasaki
1958102550SiwasakiResolved issue with /proc events for fixed-feature buttons
1959102550Siwasakishowing up as the system device.
1960102550Siwasaki
1961102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
1962102550Siwasakivalues.
1963102550Siwasaki
1964114237SnjlReplaced AE_ERRORs in acpi_osl.c with more specific error codes.
1965102550Siwasaki
1966114237SnjlChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi"
1967102550Siwasaki
1968104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling
1969104470Siwasakihysterisis.
1970102550Siwasaki
1971102550SiwasakiRestructured PRT support.
1972102550Siwasaki
1973102550Siwasaki
1974102550Siwasaki----------------------------------------
1975102550SiwasakiSummary of changes for this label: 02_14_02
1976102550Siwasaki
1977102550Siwasaki
1978102550Siwasaki1) ACPI CA Core Subsystem:
1979102550Siwasaki
1980114237SnjlImplemented support in AcpiLoadTable to allow loading of FACS and
1981114237SnjlFADT tables.
1982102550Siwasaki
1983114237SnjlSuport for the now-obsolete interim 0.71 64-bit ACPI tables has
1984114237Snjlbeen removed.  All 64-bit platforms should be migrated to the
1985114237SnjlACPI 2.0 tables.  The actbl71.h header has been removed from the
1986114237Snjlsource tree.
1987102550Siwasaki
1988114237SnjlAll C macros defined within the subsystem have been prefixed with
1989114237Snjl"ACPI_" to avoid collision with other system include files.
1990102550Siwasaki
1991102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
1992114237Snjlsince it is never used and causes lint warnings for ignoring the
1993114237Snjlreturn value.
1994102550Siwasaki
1995104470SiwasakiAdded error checking to all internal mutex acquire and release
1996104470Siwasakicalls.  Although a failure from one of these interfaces is
1997104470Siwasakiprobably a fatal system error, these checks will cause the
1998114237Snjlimmediate abort of the currently executing method or interface.
1999102550Siwasaki
2000114237SnjlFixed a problem where the AcpiSetCurrentResources interface could
2001114237Snjlfault.  This was a side effect of the deployment of the new
2002114237Snjlmemory allocation model.
2003102550Siwasaki
2004102550SiwasakiFixed a couple of problems with the Global Lock support
2005102550Siwasakiintroduced in the last major build.  The "common" (1.0/2.0)
2006114237Snjlinternal FACS was being overwritten with the FACS signature and
2007114237Snjlclobbering the Global Lock pointer.  Also, the actual firmware
2008114237SnjlFACS was being unmapped after construction of the "common" FACS,
2009114237Snjlpreventing access to the actual Global Lock field within it.  The
2010114237Snjl"common" internal FACS is no longer installed as an actual ACPI
2011114237Snjltable; it is used simply as a global.
2012102550Siwasaki
2013102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2014102550Siwasakishown below.  These are the code and data sizes for the
2015114237Snjlacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and
2016114237Snjlthese values do not include any ACPI driver or OSPM code.  The
2017114237Snjldebug version of the code includes the debug output trace
2018114237Snjlmechanism and has a larger code and data size.  Note that these
2019114237Snjlvalues will vary depending on the efficiency of the compiler and
2020114237Snjlthe compiler options used during generation.
2021102550Siwasaki
2022102550Siwasaki  Previous Release (02_07_01)
2023104470Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2024104470Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2025102550Siwasaki  Current Release:
2026104470Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K Total
2027104470Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K Total
2028102550Siwasaki
2029102550Siwasaki
2030102550Siwasaki2) Linux
2031102550Siwasaki
2032102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
2033102550Siwasakichanges described above.
2034102550Siwasaki
2035114237SnjlImproved /proc/acpi/event. It now can be opened only once and has
2036114237Snjlproper poll functionality.
2037102550Siwasaki
2038102550SiwasakiFixed and restructured power management (acpi_bus).
2039102550Siwasaki
2040102550SiwasakiOnly create /proc "view by type" when devices of that class
2041102550Siwasakiexist.
2042102550Siwasaki
2043104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery.
2044102550Siwasaki
2045102550SiwasakiImproved thermal zone code.
2046102550Siwasaki
2047102550Siwasaki
2048102550Siwasaki3) ASL Compiler, version X2039:
2049102550Siwasaki
2050114237Snjl
2051114237SnjlImplemented the new compiler restriction on ASL String hex/octal
2052114237Snjlescapes to non-null, ASCII values.  An error results if an
2053114237Snjlinvalid value is used.  (This will require an ACPI 2.0
2054104470Siwasakispecification change.)
2055102550Siwasaki
2056102550SiwasakiAML object labels that are output to the optional C and ASM
2057104470Siwasakisource are now prefixed with both the ACPI table signature and
2058104470Siwasakitable ID to help guarantee uniqueness within a large BIOS
2059104470Siwasakiproject.
2060102550Siwasaki
2061102550Siwasaki
2062102550Siwasaki----------------------------------------
2063102550SiwasakiSummary of changes for this label: 02_01_02
2064102550Siwasaki
2065102550Siwasaki1) ACPI CA Core Subsystem:
2066102550Siwasaki
2067114237SnjlACPI 2.0 support is complete in the entire Core Subsystem and the
2068114237SnjlASL compiler. All new ACPI 2.0 operators are implemented and all
2069114237Snjlother changes for ACPI 2.0 support are complete.  With
2070104470Siwasakisimultaneous code and data optimizations throughout the
2071114237Snjlsubsystem, ACPI 2.0 support has been implemented with almost no
2072114237Snjladditional cost in terms of code and data size.
2073102550Siwasaki
2074114237SnjlImplemented a new mechanism for allocation of return buffers.  If
2075114237Snjlthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will
2076114237Snjlbe allocated on behalf of the caller.  Consolidated all return
2077114237Snjlbuffer validation and allocation to a common procedure.  Return
2078114237Snjlbuffers will be allocated via the primary OSL allocation
2079114237Snjlinterface since it appears that a separate pool is not needed by
2080114237Snjlmost users.  If a separate pool is required for these buffers,
2081114237Snjlthe caller can still use the original mechanism and pre-allocate
2082114237Snjlthe buffer(s).
2083102550Siwasaki
2084102550SiwasakiImplemented support for string operands within the DerefOf
2085102550Siwasakioperator.
2086102550Siwasaki
2087114237SnjlRestructured the Hardware and Event managers to be table driven,
2088114237Snjlsimplifying the source code and reducing the amount of generated
2089114237Snjlcode.
2090102550Siwasaki
2091102550SiwasakiSplit the common read/write low-level ACPI register bitfield
2092104470Siwasakiprocedure into a separate read and write, simplifying the code
2093104470Siwasakiconsiderably.
2094102550Siwasaki
2095114237SnjlObsoleted the AcpiOsCallocate OSL interface.  This interface was
2096114237Snjlused only a handful of times and didn't have enough critical mass
2097114237Snjlfor a separate interface.  Replaced with a common calloc
2098114237Snjlprocedure in the core.
2099102550Siwasaki
2100104470SiwasakiFixed a reported problem with the GPE number mapping mechanism
2101104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0.
2102114237SnjlReorganized the GPE information and shrunk a large array that was
2103114237Snjloriginally large enough to hold info for all possible GPEs (256)
2104114237Snjlto simply large enough to hold all GPEs up to the largest GPE
2105114237Snjlnumber on the machine.
2106102550Siwasaki
2107114237SnjlFixed a reported problem with resource structure alignment on 64-
2108114237Snjlbit platforms.
2109102550Siwasaki
2110102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
2111102550Siwasakiinterfaces to not require any flags for the common case of
2112102550Siwasakienabling/disabling a GPE.
2113102550Siwasaki
2114104470SiwasakiImplemented support to allow a "Notify" on a Processor object.
2115102550Siwasaki
2116114237SnjlMost TBDs in comments within the source code have been resolved
2117114237Snjland eliminated.
2118102550Siwasaki
2119102550SiwasakiFixed a problem in the interpreter where a standalone parent
2120102550Siwasakiprefix (^) was not handled correctly in the interpreter and
2121102550Siwasakidebugger.
2122102550Siwasaki
2123102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
2124102550Siwasaki
2125114237SnjlImplemented Field support in the ASL Load operator.  This allows
2126114237Snjla table to be loaded from a named field, in addition to loading a
2127114237Snjltable directly from an Operation Region.
2128102550Siwasaki
2129104470SiwasakiImplemented timeout and handle support in the external Global
2130104470SiwasakiLock interfaces.
2131102550Siwasaki
2132114237SnjlFixed a problem in the AcpiDump utility where pathnames were no
2133114237Snjllonger being generated correctly during the dump of named
2134102550Siwasakiobjects.
2135102550Siwasaki
2136102550SiwasakiModified the AML debugger to give a full display of if/while
2137102550Siwasakipredicates instead of just one AML opcode at a time.  (The
2138102550Siwasakipredicate can have several nested ASL statements.)  The old
2139102550Siwasakimethod was confusing during single stepping.
2140102550Siwasaki
2141102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2142114237Snjlshown below. These are the code and data sizes for the acpica.lib
2143114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2144114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2145114237Snjlversion of the code includes the debug output trace mechanism and
2146114237Snjlhas a larger code and data size.  Note that these values will
2147114237Snjlvary depending on the efficiency of the compiler and the compiler
2148114237Snjloptions used during generation.
2149102550Siwasaki
2150102550Siwasaki  Previous Release (12_18_01)
2151114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2152114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2153102550Siwasaki   Current Release:
2154114237Snjl     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K Total
2155114237Snjl     Debug Version:     136.9K Code,  56.4K Data,  193.3K Total
2156102550Siwasaki
2157102550Siwasaki2) Linux
2158102550Siwasaki
2159104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor
2160104470Siwasakidriver)
2161102550Siwasaki
2162102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
2163102550Siwasaki
2164102550SiwasakiNew thermal policy (Thermal driver)
2165102550Siwasaki
2166102550SiwasakiMany updates to /proc
2167102550Siwasaki
2168102550SiwasakiBattery "low" event support (Battery driver)
2169102550Siwasaki
2170104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers)
2171102550Siwasaki
2172104470SiwasakiIA32 - IA64 initialization unification, no longer experimental
2173102550Siwasaki
2174102550SiwasakiMenuconfig options redesigned
2175102550Siwasaki
2176102550Siwasaki3) ASL Compiler, version X2037:
2177102550Siwasaki
2178114237SnjlImplemented several new output features to simplify integration
2179114237Snjlof AML code into  firmware: 1) Output the AML in C source code
2180114237Snjlwith labels for each named ASL object.  The    original ASL
2181114237Snjlsource code is interleaved as C comments. 2) Output the AML in
2182114237SnjlASM source code with labels and interleaved ASL    source. 3)
2183114237SnjlOutput the AML in raw hex table form, in either C or ASM.
2184102550Siwasaki
2185102550SiwasakiImplemented support for optional string parameters to the
2186102550SiwasakiLoadTable operator.
2187102550Siwasaki
2188104470SiwasakiCompleted support for embedded escape sequences within string
2189114237Snjlliterals.  The compiler now supports all single character escapes
2190114237Snjlas well as the Octal and Hex escapes.  Note: the insertion of a
2191114237Snjlnull byte into a string literal (via the hex/octal escape) causes
2192114237Snjlthe string to be immediately terminated.  A warning is issued.
2193102550Siwasaki
2194104470SiwasakiFixed a problem where incorrect AML was generated for the case
2195104470Siwasakiwhere an ASL namepath consists of a single parent prefix (
2196102550Siwasaki
2197102550Siwasaki) with no trailing name segments.
2198102550Siwasaki
2199102550SiwasakiThe compiler has been successfully generated with a 64-bit C
2200102550Siwasakicompiler.
2201102550Siwasaki
2202102550Siwasaki
2203102550Siwasaki
2204102550Siwasaki
2205102550Siwasaki----------------------------------------
2206102550SiwasakiSummary of changes for this label: 12_18_01
2207102550Siwasaki
2208102550Siwasaki1) Linux
2209102550Siwasaki
2210114237SnjlEnhanced blacklist with reason and severity fields. Any table's
2211114237Snjlsignature may now be used to identify a blacklisted system.
2212102550Siwasaki
2213114237SnjlCall _PIC control method to inform the firmware which interrupt
2214114237Snjlmodel the OS is using. Turn on any disabled link devices.
2215102550Siwasaki
2216102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
2217102550Siwasaki
2218102550Siwasaki 2) ACPI CA Core Subsystem:
2219102550Siwasaki
2220104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit
2221104470Siwasakifrom while loop)
2222102550Siwasaki
2223102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
2224102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
2225104470Siwasakioperators.  All new ACPI 2.0 operators are now implemented in
2226104470Siwasakiboth the ASL compiler and the AML interpreter.  The only
2227104470Siwasakiremaining ACPI 2.0 task is support for the String data type in
2228104470Siwasakithe DerefOf operator.  Fixed a problem with AcquireMutex where
2229114237Snjlthe status code was lost if the caller had to actually wait for
2230114237Snjlthe mutex.
2231102550Siwasaki
2232104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits.
2233102550Siwasaki
2234114237SnjlCompleted implementation of the external Global Lock interfaces -
2235114237Snjl- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock.  The Timeout
2236114237Snjland Handler parameters were added.
2237102550Siwasaki
2238102550SiwasakiCompleted another pass at removing warnings and issues when
2239114237Snjlcompiling with 64-bit compilers.  The code now compiles cleanly
2240114237Snjlwith the Intel 64-bit C/C++ compiler.  Most notably, the pointer
2241114237Snjladd and subtract (diff) macros have changed considerably.
2242102550Siwasaki
2243114237SnjlCreated and deployed a new ACPI_SIZE type that is 64-bits wide on
2244114237Snjl64-bit platforms, 32-bits on all others.  This type is used
2245104470Siwasakiwherever memory allocation and/or the C sizeof() operator is
2246104470Siwasakiused, and affects the OSL memory allocation interfaces
2247104470SiwasakiAcpiOsAllocate and AcpiOsCallocate.
2248102550Siwasaki
2249102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
2250102550Siwasaki
2251102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2252114237Snjlshown below. These are the code and data sizes for the acpica.lib
2253114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2254114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2255114237Snjlversion of the code includes the debug output trace mechanism and
2256114237Snjlhas a larger code and data size. Note that these values will vary
2257114237Snjldepending on the efficiency of the compiler and the compiler
2258114237Snjloptions used during generation.
2259102550Siwasaki
2260102550Siwasaki  Previous Release (12_05_01)
2261114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2262114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2263102550Siwasaki   Current Release:
2264114237Snjl     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K Total
2265114237Snjl     Debug Version:     138.3K Code,  55.9K Data,  194.2K Total
2266102550Siwasaki
2267102550Siwasaki 3) ASL Compiler, version X2034:
2268102550Siwasaki
2269114237SnjlNow checks for (and generates an error if detected) the use of a
2270114237SnjlBreak or Continue statement without an enclosing While statement.
2271102550Siwasaki
2272102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
2273102550Siwasakicompiler.
2274102550Siwasaki
2275102550Siwasaki ----------------------------------------
2276102550SiwasakiSummary of changes for this label: 12_05_01
2277102550Siwasaki
2278102550Siwasaki 1) ACPI CA Core Subsystem:
2279102550Siwasaki
2280102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
2281104470Siwasakioperator creates a new copy of an object (and is also used to
2282104470Siwasakibypass the "implicit conversion" mechanism of the Store
2283102550Siwasakioperator.)
2284102550Siwasaki
2285102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
2286102550Siwasakiimplemented.  The change is that performing a SizeOf on a
2287114237Snjlreference object causes an automatic dereference of the object to
2288114237Snjltha actual value before the size is evaluated. This behavior was
2289114237Snjlundefined in ACPI 1.0.
2290102550Siwasaki
2291114237SnjlThe ACPI 2.0 semantics for the Extended IRQ resource descriptor
2292114237Snjlhave been implemented.  The interrupt polarity and mode are now
2293114237Snjlindependently set.
2294102550Siwasaki
2295114237SnjlFixed a problem where ASL Constants (Zero, One, Ones, Revision)
2296114237Snjlappearing in Package objects were not properly converted to
2297114237Snjlintegers when the internal Package was converted to an external
2298114237Snjlobject (via the AcpiEvaluateObject interface.)
2299102550Siwasaki
2300114237SnjlFixed a problem with the namespace object deletion mechanism for
2301114237Snjlobjects created by control methods.  There were two parts to this
2302114237Snjlproblem: 1) Objects created during the initialization phase
2303114237Snjlmethod parse were not being deleted, and 2) The object owner ID
2304114237Snjlmechanism to track objects was broken.
2305102550Siwasaki
2306114237SnjlFixed a problem where the use of the ASL Scope operator within a
2307114237Snjlcontrol method would result in an invalid opcode exception.
2308102550Siwasaki
2309114237SnjlFixed a problem introduced in the previous label where the buffer
2310114237Snjllength required for the _PRT structure was not being returned
2311114237Snjlcorrectly.
2312102550Siwasaki
2313102550SiwasakiCode and Data Size: Current core subsystem library sizes are
2314114237Snjlshown below. These are the code and data sizes for the acpica.lib
2315114237Snjlproduced by the Microsoft Visual C++ 6.0 compiler, and these
2316114237Snjlvalues do not include any ACPI driver or OSPM code.  The debug
2317114237Snjlversion of the code includes the debug output trace mechanism and
2318114237Snjlhas a larger code and data size.  Note that these values will
2319114237Snjlvary depending on the efficiency of the compiler and the compiler
2320114237Snjloptions used during generation.
2321102550Siwasaki
2322102550Siwasaki  Previous Release (11_20_01)
2323114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2324114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2325102550Siwasaki
2326102550Siwasaki  Current Release:
2327114237Snjl     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K Total
2328114237Snjl     Debug Version:     136.2K Code,  55.6K Data,  191.8K Total
2329102550Siwasaki
2330102550Siwasaki 2) Linux:
2331102550Siwasaki
2332102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
2333102550Siwasaki
2334104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32
2335114237Snjl(acpi_pci.c), and unified the PRT code for IA32 and IA64.  This
2336114237Snjlversion supports both static and dyanmic PRT entries, but dynamic
2337114237Snjlentries are treated as if they were static (not yet
2338114237Snjlreconfigurable).  Architecture- specific code to use this data is
2339114237Snjlabsent on IA32 but should be available shortly.
2340102550Siwasaki
2341114237SnjlChanged the initialization sequence to start the ACPI interpreter
2342114237Snjl(acpi_init) prior to initialization of the PCI driver (pci_init)
2343114237Snjlin init/main.c.  This ordering is required to support PRT and
2344114237Snjlfacilitate other (future) enhancement.  A side effect is that the
2345114237SnjlACPI bus driver and certain device drivers can no longer be
2346114237Snjlloaded as modules.
2347102550Siwasaki
2348104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt
2349104470SiwasakiRouting support to be included without the ACPI Bus and other
2350104470Siwasakidevice drivers.
2351102550Siwasaki
2352102550Siwasaki 3) ASL Compiler, version X2033:
2353102550Siwasaki
2354102550SiwasakiFixed some issues with the use of the new CopyObject and
2355102550SiwasakiDataTableRegion operators.  Both are fully functional.
2356102550Siwasaki
2357102550Siwasaki ----------------------------------------
2358102550SiwasakiSummary of changes for this label: 11_20_01
2359102550Siwasaki
2360102550Siwasaki 20 November 2001.  Summary of changes for this release.
2361102550Siwasaki
2362102550Siwasaki 1) ACPI CA Core Subsystem:
2363102550Siwasaki
2364104470SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing a
2365104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store
2366104470Siwasakionly the least-significant byte of the source to the Indexed
2367104470Siwasakibuffer byte.  Multiple writes are not performed.
2368102550Siwasaki
2369104470SiwasakiFixed a problem where the access type used in an AccessAs ASL
2370104470Siwasakioperator was not recorded correctly into the field object.
2371102550Siwasaki
2372102550SiwasakiFixed a problem where ASL Event objects were created in a
2373114237Snjlsignalled state. Events are now created in an unsignalled state.
2374102550Siwasaki
2375114237SnjlThe internal object cache is now purged after table loading and
2376114237Snjlinitialization to reduce the use of dynamic kernel memory -- on
2377114237Snjlthe assumption that object use is greatest during the parse phase
2378114237Snjlof the entire table (versus the run-time use of individual
2379114237Snjlcontrol methods.)
2380102550Siwasaki
2381102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
2382102550Siwasaki
2383104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
2384114237Snjlnew feature development with an actual reduction in the library
2385114237Snjlsize.  Current core subsystem library sizes are shown below.
2386114237SnjlThese are the code and data sizes for the acpica.lib produced by
2387114237Snjlthe Microsoft Visual C++ 6.0 compiler, and these values do not
2388114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2389114237Snjlcode includes the debug output trace mechanism and has a larger
2390114237Snjlcode and data size.  Note that these values will vary depending
2391114237Snjlon the efficiency of the compiler and the compiler options used
2392114237Snjlduring generation.
2393102550Siwasaki
2394102550Siwasaki  Previous Release (11_09_01):
2395114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
2396114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
2397102550Siwasaki
2398102550Siwasaki  Current Release:
2399114237Snjl     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K Total
2400114237Snjl     Debug Version:     135.1K Code,  55.4K Data,  190.5K Total
2401102550Siwasaki
2402102550Siwasaki 2) Linux:
2403102550Siwasaki
2404114237SnjlEnhanced the ACPI boot-time initialization code to allow the use
2405114237Snjlof Local APIC tables for processor enumeration on IA-32, and to
2406114237Snjlpave the way for a fully MPS-free boot (on SMP systems) in the
2407114237Snjlnear future.  This functionality replaces
2408114237Snjlarch/i386/kernel/acpitables.c, which was introduced in an earlier
2409114237Snjl2.4.15-preX release.  To enable this feature you must add
2410114237Snjl"acpi_boot=on" to the kernel command line -- see the help entry
2411114237Snjlfor CONFIG_ACPI_BOOT for more information.  An IA-64 release is
2412114237Snjlin the works...
2413102550Siwasaki
2414114237SnjlRestructured the configuration options to allow boot-time table
2415114237Snjlparsing support without inclusion of the ACPI Interpreter (and
2416114237Snjlother) code.
2417102550Siwasaki
2418102550SiwasakiNOTE: This release does not include fixes for the reported
2419104470Siwasakievents, power-down, and thermal passive cooling issues (coming
2420104470Siwasakisoon).
2421102550Siwasaki
2422102550Siwasaki 3) ASL Compiler:
2423102550Siwasaki
2424114237SnjlAdded additional typechecking for Fields within restricted access
2425114237SnjlOperation Regions.  All fields within EC and CMOS regions must be
2426114237Snjldeclared with ByteAcc. All fields withing SMBus regions must be
2427114237Snjldeclared with the BufferAcc access type.
2428102550Siwasaki
2429114237SnjlFixed a problem where the listing file output of control methods
2430114237Snjlno longer interleaved the actual AML code with the ASL source
2431114237Snjlcode.
2432102550Siwasaki
2433102550Siwasaki
2434102550Siwasaki
2435102550Siwasaki----------------------------------------
2436102550SiwasakiSummary of changes for this label: 11_09_01
2437102550Siwasaki
2438102550Siwasaki1) ACPI CA Core Subsystem:
2439102550Siwasaki
2440114237SnjlImplemented ACPI 2.0-defined support for writes to fields with a
2441114237SnjlBuffer, String, or Integer source operand that is smaller than
2442114237Snjlthe target field. In these cases, the source operand is zero-
2443114237Snjlextended to fill the target field.
2444102550Siwasaki
2445104470SiwasakiFixed a problem where a Field starting bit offset (within the
2446104470Siwasakiparent operation region) was calculated incorrectly if the
2447104470Siwasakialignment of the field differed from the access width.  This
2448114237Snjlaffected CreateWordField, CreateDwordField, CreateQwordField, and
2449114237Snjlpossibly other fields that use the "AccessAny" keyword.
2450102550Siwasaki
2451114237SnjlFixed a problem introduced in the 11_02_01 release where indirect
2452114237Snjlstores through method arguments did not operate correctly.
2453102550Siwasaki
2454102550Siwasaki2) Linux:
2455102550Siwasaki
2456102550SiwasakiImplemented boot-time ACPI table parsing support
2457114237Snjl(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This code
2458114237Snjlfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than
2459114237Snjllegacy BIOS interfaces (e.g. MPS) for the configuration of system
2460114237Snjlprocessors, memory, and interrupts during setup_arch().  Note
2461114237Snjlthat this patch does not include the required architecture-
2462114237Snjlspecific changes required to apply this information -- subsequent
2463114237Snjlpatches will be posted for both IA32 and IA64 to achieve this.
2464102550Siwasaki
2465114237SnjlAdded low-level sleep support for IA32 platforms, courtesy of Pat
2466114237SnjlMochel. This allows IA32 systems to transition to/from various
2467114237Snjlsleeping states (e.g. S1, S3), although the lack of a centralized
2468114237Snjldriver model and power-manageable drivers will prevent its
2469114237Snjl(successful) use on most systems.
2470102550Siwasaki
2471114237SnjlRevamped the ACPI 'menuconfig' layout: created new "ACPI Support"
2472114237Snjlsubmenu, unified IA32 and IA64 options, added new "Boot using
2473114237SnjlACPI tables" option, etc.
2474102550Siwasaki
2475114237SnjlIncreased the default timeout for the EC driver from 1ms to 10ms
2476114237Snjl(1000 cycles of 10us) to try to address AE_TIME errors during EC
2477114237Snjltransactions.
2478102550Siwasaki
2479102550Siwasaki ----------------------------------------
2480102550SiwasakiSummary of changes for this label: 11_02_01
2481102550Siwasaki
2482102550Siwasaki1) ACPI CA Core Subsystem:
2483102550Siwasaki
2484102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
2485102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
2486102550Siwasakiimplemented.
2487102550Siwasaki
2488114237SnjlOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required
2489114237Snjlchanges to support ACPI 2.0 Qword field access.  Read/Write
2490114237SnjlPciConfiguration(), Read/Write Memory(), and Read/Write Port()
2491114237Snjlnow accept an ACPI_INTEGER (64 bits) as the value parameter.
2492114237SnjlAlso, the value parameter for the address space handler interface
2493114237Snjlis now an ACPI_INTEGER.  OSL implementations of these interfaces
2494114237Snjlmust now handle the case where the Width parameter is 64.
2495102550Siwasaki
2496104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and
2497104470Siwasakidisassembly for IndexFields was not supported correctly.
2498102550Siwasaki
2499102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
2500104470Siwasakisupported. During field access, a check is performed to ensure
2501114237Snjlthat the value written to an Index or Bank register is not out of
2502114237Snjlthe range of the register.  The Index (or Bank) register is
2503114237Snjlwritten before each access to the field data. Future support will
2504114237Snjlinclude allowing individual IndexFields to be wider than the
2505114237SnjlDataRegister width.
2506102550Siwasaki
2507114237SnjlFields: Fixed a problem where the AML interpreter was incorrectly
2508114237Snjlattempting to write beyond the end of a Field/OpRegion.  This was
2509114237Snjla boundary case that occurred when a DWORD field was written to a
2510114237SnjlBYTE access OpRegion, forcing multiple writes and causing the
2511114237Snjlinterpreter to write one datum too many.
2512102550Siwasaki
2513102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
2514114237Snjlstarting bit address of a field was incorrectly calculated if the
2515114237Snjlcurrent access type was wider than a byte (WordAcc, DwordAcc, or
2516114237SnjlQwordAcc).
2517102550Siwasaki
2518104470SiwasakiFields: Fixed a problem where forward references to individual
2519104470SiwasakiFieldUnits (individual Field names within a Field definition)
2520102550Siwasakiwere not resolved during the AML table load.
2521102550Siwasaki
2522104470SiwasakiFields: Fixed a problem where forward references from a Field
2523104470Siwasakidefinition to the parent Operation Region definition were not
2524104470Siwasakiresolved during the AML table load.
2525104470Siwasaki
2526114237SnjlFields: Duplicate FieldUnit names within a scope are now detected
2527114237Snjlduring AML table load.
2528102550Siwasaki
2529102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
2530102550Siwasakiinterface returned an incorrect name for the root node.
2531102550Siwasaki
2532104470SiwasakiCode and Data Size: Code and Data optimizations have permitted
2533114237Snjlnew feature development with an actual reduction in the library
2534114237Snjlsize.  Current core subsystem library sizes are shown below.
2535114237SnjlThese are the code and data sizes for the acpica.lib produced by
2536114237Snjlthe Microsoft Visual C++ 6.0 compiler, and these values do not
2537114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2538114237Snjlcode includes the debug output trace mechanism and has a larger
2539114237Snjlcode and data size.  Note that these values will vary depending
2540114237Snjlon the efficiency of the compiler and the compiler options used
2541114237Snjlduring generation.
2542102550Siwasaki
2543102550Siwasaki  Previous Release (10_18_01):
2544114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
2545114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
2546102550Siwasaki
2547102550Siwasaki  Current Release:
2548114237Snjl     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K Total
2549114237Snjl     Debug Version:     134.5K Code,  55.4K Data,  189.9K Total
2550102550Siwasaki
2551102550Siwasaki 2) Linux:
2552102550Siwasaki
2553102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
2554102550SiwasakiMODULE_LICENSE("GPL") to all modules.
2555102550Siwasaki
2556102550Siwasaki 3) ASL Compiler version X2030:
2557102550Siwasaki
2558104470SiwasakiDuplicate FieldUnit names within a scope are now detected and
2559104470Siwasakiflagged as errors.
2560102550Siwasaki
2561102550Siwasaki 4) Documentation:
2562102550Siwasaki
2563104470SiwasakiProgrammer Reference updated to reflect OSL and address space
2564104470Siwasakihandler interface changes described above.
2565102550Siwasaki
2566102550Siwasaki----------------------------------------
2567102550SiwasakiSummary of changes for this label: 10_18_01
2568102550Siwasaki
2569102550SiwasakiACPI CA Core Subsystem:
2570102550Siwasaki
2571102550SiwasakiFixed a problem with the internal object reference count
2572104470Siwasakimechanism that occasionally caused premature object deletion.
2573104470SiwasakiThis resolves all of the outstanding problem reports where an
2574104470Siwasakiobject is deleted in the middle of an interpreter evaluation.
2575114237SnjlAlthough this problem only showed up in rather obscure cases, the
2576114237Snjlsolution to the problem involved an adjustment of all reference
2577114237Snjlcounts involving objects attached to namespace nodes.
2578102550Siwasaki
2579102550SiwasakiFixed a problem with Field support in the interpreter where
2580114237Snjlwriting to an aligned field whose length is an exact multiple (2
2581114237Snjlor greater) of the field access granularity would cause an
2582104470Siwasakiattempt to write beyond the end of the field.
2583102550Siwasaki
2584102550SiwasakiThe top level AML opcode execution functions within the
2585102550Siwasakiinterpreter have been renamed with a more meaningful and
2586102550Siwasakiconsistent naming convention.  The modules exmonad.c and
2587102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
2588102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
2589102550Siwasaki
2590114237SnjlSupport for the ACPI 2.0 "Mid" ASL operator has been implemented.
2591102550Siwasaki
2592114237SnjlFixed a problem where the AML debugger was causing some internal
2593114237Snjlobjects to not be deleted during subsystem termination.
2594102550Siwasaki
2595104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface
2596104470Siwasakiwhere the subsystem would fault if the named object to be
2597104470Siwasakievaluated refered to a constant such as Zero, Ones, etc.
2598102550Siwasaki
2599102550SiwasakiFixed a problem with IndexFields and BankFields where the
2600114237Snjlsubsystem would fault if the index, data, or bank registers were
2601114237Snjlnot defined in the same scope as the field itself.
2602102550Siwasaki
2603104470SiwasakiAdded printf format string checking for compilers that support
2604104470Siwasakithis feature.  Corrected more than 50 instances of issues with
2605104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT
2606104470Siwasakithroughout the core subsystem code.
2607102550Siwasaki
2608104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level
2609104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0
2610104470Siwasakisupport is more than 50% implemented.
2611102550Siwasaki
2612114237SnjlEnhanced the output of the AML debugger "dump namespace" command
2613114237Snjlto output in a more human-readable form.
2614102550Siwasaki
2615114237SnjlCurrent core subsystem library code sizes are shown below.  These
2616114237Snjlare the code and data sizes for the acpica.lib produced by the
2617114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2618114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2619114237Snjlcode includes the full debug trace mechanism -- leading to a much
2620114237Snjllarger code and data size.  Note that these values will vary
2621114237Snjldepending on the efficiency of the compiler and the compiler
2622114237Snjloptions used during generation.
2623102550Siwasaki
2624102550Siwasaki     Previous Label (09_20_01):
2625114237Snjl     Non-Debug Version:    65K Code,     5K Data,     70K Total
2626114237Snjl     Debug Version:       138K Code,    58K Data,    196K Total
2627102550Siwasaki
2628102550Siwasaki     This Label:
2629102550Siwasaki
2630114237Snjl     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K Total
2631114237Snjl     Debug Version:     136.7K Code,  57.4K Data,  194.2K Total
2632114237Snjl
2633102550SiwasakiLinux:
2634102550Siwasaki
2635104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have
2636104470Siwasakiknown ASL/AML problems.
2637102550Siwasaki
2638102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
2639104470Siwasakiadded support for _HOT (the critical suspend trip point).  The
2640114237Snjl'info' file now includes threshold/policy information, and allows
2641114237Snjlsetting of _SCP (cooling preference) and _TZP (polling frequency)
2642114237Snjlvalues to the 'info' file. Examples: "echo tzp=5 > info" sets the
2643114237Snjlpolling frequency to 5 seconds, and "echo scp=1 > info" sets the
2644114237Snjlcooling preference to the passive/quiet mode (if supported by the
2645114237SnjlASL).
2646102550Siwasaki
2647104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs
2648104470Siwasakiwhen loading the control method battery driver.
2649102550Siwasaki
2650102550Siwasaki ----------------------------------------
2651102550SiwasakiSummary of changes for this label: 09_20_01
2652102550Siwasaki
2653102550Siwasaki ACPI CA Core Subsystem:
2654102550Siwasaki
2655104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been
2656104470Siwasakimodified to allow individual GPE levels to be flagged as wake-
2657114237Snjlenabled (i.e., these GPEs are to remain enabled when the platform
2658114237Snjlsleeps.)
2659102550Siwasaki
2660104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now
2661104470Siwasakisupport wake-enabled GPEs.  This means that upon entering the
2662104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled.
2663104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled.
2664102550Siwasaki
2665114237SnjlA local double-precision divide/modulo module has been added to
2666114237Snjlenhance portability to OS kernels where a 64-bit math library is
2667114237Snjlnot available.  The new module is "utmath.c".
2668102550Siwasaki
2669104470SiwasakiSeveral optimizations have been made to reduce the use of CPU
2670114237Snjlstack.  Originally over 2K, the maximum stack usage is now below
2671114237Snjl2K at 1860  bytes (1.82k)
2672102550Siwasaki
2673114237SnjlFixed a problem with the AcpiGetFirmwareTable interface where the
2674114237Snjlroot table pointer was not mapped into a logical address
2675104470Siwasakiproperly.
2676102550Siwasaki
2677104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in
2678104470Siwasakithe interpreter code for the ASL Notify operator.
2679102550Siwasaki
2680102550SiwasakiFixed a problem where the use of the ASL Revision operator
2681114237Snjlreturned an error. This operator now returns the current version
2682114237Snjlof the ACPI CA core subsystem.
2683102550Siwasaki
2684114237SnjlFixed a problem where objects passed as control method parameters
2685114237Snjlto AcpiEvaluateObject were always deleted at method termination.
2686114237SnjlHowever, these objects may end up being stored into the namespace
2687114237Snjlby the called method.  The object reference count mechanism was
2688114237Snjlapplied to these objects instead of a force delete.
2689102550Siwasaki
2690114237SnjlFixed a problem where static strings or buffers (contained in the
2691114237SnjlAML code) that are declared as package elements within the ASL
2692114237Snjlcode could cause a fault because the interpreter would attempt to
2693114237Snjldelete them.  These objects are now marked with the "static
2694114237Snjlobject" flag to prevent any attempt to delete them.
2695102550Siwasaki
2696114237SnjlImplemented an interpreter optimization to use operands directly
2697114237Snjlfrom the state object instead of extracting the operands to local
2698114237Snjlvariables.  This reduces stack use and code size, and improves
2699114237Snjlperformance.
2700102550Siwasaki
2701102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
2702102550Siwasakiextra layer of code.
2703102550Siwasaki
2704114237SnjlCurrent core subsystem library code sizes are shown below.  These
2705114237Snjlare the code and data sizes for the acpica.lib produced by the
2706114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2707114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2708114237Snjlcode includes the full debug trace mechanism -- leading to a much
2709114237Snjllarger code and data size.  Note that these values will vary
2710114237Snjldepending on the efficiency of the compiler and the compiler
2711114237Snjloptions used during generation.
2712102550Siwasaki
2713102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
2714114237Snjl(Previously 69K)   Debug Version:     138K Code,  58K Data,  196K
2715114237SnjlTotal  (Previously 195K)
2716102550Siwasaki
2717102550SiwasakiLinux:
2718102550Siwasaki
2719114237SnjlSupport for ACPI 2.0 64-bit integers has been added.   All ACPI
2720114237SnjlInteger objects are now 64 bits wide
2721102550Siwasaki
2722114237SnjlAll Acpi data types and structures are now in lower case.  Only
2723114237SnjlAcpi macros are upper case for differentiation.
2724102550Siwasaki
2725102550Siwasaki Documentation:
2726102550Siwasaki
2727102550SiwasakiChanges to the external interfaces as described above.
2728102550Siwasaki
2729102550Siwasaki ----------------------------------------
2730102550SiwasakiSummary of changes for this label: 08_31_01
2731102550Siwasaki
2732102550Siwasaki ACPI CA Core Subsystem:
2733102550Siwasaki
2734114237SnjlA bug with interpreter implementation of the ASL Divide operator
2735114237Snjlwas found and fixed.  The implicit function return value (not the
2736114237Snjlexplicit store operands) was returning the remainder instead of
2737114237Snjlthe quotient.  This was a longstanding bug and it fixes several
2738114237Snjlknown outstanding issues on various platforms.
2739102550Siwasaki
2740104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have
2741104470Siwasakibeen further optimized for size.  There are 700 invocations of
2742104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the
2743104470Siwasakisize of the debug version of the subsystem significantly.
2744102550Siwasaki
2745114237SnjlA stack trace mechanism has been implemented.  The maximum stack
2746114237Snjlusage is about 2K on 32-bit platforms.  The debugger command
2747114237Snjl"stat stack" will display the current maximum stack usage.
2748102550Siwasaki
2749114237SnjlAll public symbols and global variables within the subsystem are
2750114237Snjlnow prefixed with the string "Acpi".  This keeps all of the
2751114237Snjlsymbols grouped together in a kernel map, and avoids conflicts
2752114237Snjlwith other kernel subsystems.
2753102550Siwasaki
2754114237SnjlMost of the internal fixed lookup tables have been moved into the
2755114237Snjlcode segment via the const operator.
2756102550Siwasaki
2757104470SiwasakiSeveral enhancements have been made to the interpreter to both
2758104470Siwasakireduce the code size and improve performance.
2759102550Siwasaki
2760114237SnjlCurrent core subsystem library code sizes are shown below.  These
2761114237Snjlare the code and data sizes for the acpica.lib produced by the
2762114237SnjlMicrosoft Visual C++ 6.0 compiler, and these values do not
2763114237Snjlinclude any ACPI driver or OSPM code.  The debug version of the
2764114237Snjlcode includes the full debug trace mechanism which contains over
2765114237Snjl700 invocations of the DEBUG_PRINT macro, 500 function entry
2766114237Snjlmacro invocations, and over 900 function exit macro invocations -
2767114237Snjl- leading to a much larger code and data size.  Note that these
2768114237Snjlvalues will vary depending on the efficiency of the compiler and
2769114237Snjlthe compiler options used during generation.
2770102550Siwasaki
2771102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
2772102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
2773102550Siwasaki
2774102550Siwasaki Linux:
2775102550Siwasaki
2776104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition.
2777102550Siwasaki
2778102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
2779102550Siwasaki
2780102550Siwasaki ASL Compiler, version X2026:
2781102550Siwasaki
2782104470SiwasakiFixed a problem introduced in the previous label where the AML
2783104470Siwasakicode emitted for package objects produced packages with zero
2784104470Siwasakilength.
2785102550Siwasaki
2786102550Siwasaki ----------------------------------------
2787102550SiwasakiSummary of changes for this label: 08_16_01
2788102550Siwasaki
2789102550SiwasakiACPI CA Core Subsystem:
2790102550Siwasaki
2791114237SnjlThe following ACPI 2.0 ASL operators have been implemented in the
2792114237SnjlAML interpreter (These are already supported by the Intel ASL
2793114237Snjlcompiler):  ToDecimalString, ToHexString, ToString, ToInteger,
2794114237Snjland ToBuffer.  Support for 64-bit AML constants is implemented in
2795114237Snjlthe AML parser, debugger, and disassembler.
2796102550Siwasaki
2797114237SnjlThe internal memory tracking mechanism (leak detection code) has
2798114237Snjlbeen upgraded to reduce the memory overhead (a separate tracking
2799114237Snjlblock is no longer allocated for each memory allocation), and now
2800114237Snjlsupports all of the internal object caches.
2801102550Siwasaki
2802114237SnjlThe data structures and code for the internal object caches have
2803114237Snjlbeen coelesced and optimized so that there is a single cache and
2804114237Snjlmemory list data structure and a single group of functions that
2805114237Snjlimplement generic cache management.  This has reduced the code
2806114237Snjlsize in both the debug and release versions of the subsystem.
2807102550Siwasaki
2808102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
2809102550Siwasakireplaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
2810102550Siwasakislightly different, because it generates a single call to an
2811114237Snjlinternal function.  This results in a savings of about 90 bytes
2812114237Snjlper invocation, resulting in an overall code and data savings of
2813114237Snjlabout 16% in the debug version of the subsystem.
2814102550Siwasaki
2815102550Siwasaki Linux:
2816102550Siwasaki
2817114237SnjlFixed C3 disk corruption problems and re-enabled C3 on supporting
2818114237Snjlmachines.
2819102550Siwasaki
2820102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
2821102550Siwasaki
2822102550SiwasakiFurther tweaked source code Linuxization.
2823102550Siwasaki
2824102550SiwasakiOther minor fixes.
2825102550Siwasaki
2826102550Siwasaki ASL Compiler:
2827102550Siwasaki
2828114237SnjlSupport for ACPI 2.0 variable length packages is fixed/completed.
2829102550Siwasaki
2830114237SnjlFixed a problem where the optional length parameter for the ACPI
2831114237Snjl2.0 ToString operator.
2832102550Siwasaki
2833114237SnjlFixed multiple extraneous error messages when a syntax error is
2834114237Snjldetected within the declaration line of a control method.
2835102550Siwasaki
2836102550Siwasaki ----------------------------------------
2837102550SiwasakiSummary of changes for this label: 07_17_01
2838102550Siwasaki
2839102550SiwasakiACPI CA Core Subsystem:
2840102550Siwasaki
2841104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any
2842114237SnjlACPI table via the ACPI signature.  The interface can be called
2843114237Snjlat any time during kernel initialization, even before the kernel
2844114237Snjlvirtual memory manager is initialized and paging is enabled.
2845114237SnjlThis allows kernel subsystems to obtain ACPI tables very early,
2846114237Snjleven before the ACPI CA subsystem is initialized.
2847102550Siwasaki
2848104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute
2849104470Siwasakicould be resolved to the incorrect address under the following
2850114237Snjlconditions: 1) the field width is larger than 8 bits and 2) the
2851114237Snjlparent operation region is not defined on a DWORD boundary.
2852102550Siwasaki
2853114237SnjlFixed a problem where the interpreter is not being locked during
2854114237Snjlnamespace initialization (during execution of the _INI control
2855114237Snjlmethods), causing an error when an attempt is made to release it
2856114237Snjllater.
2857102550Siwasaki
2858104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be
2859114237Snjlongoing throughout the rest of this year.  In this label, The Mod
2860114237Snjloperator is implemented.
2861102550Siwasaki
2862102550SiwasakiAdded a new data type to contain full PCI addresses named
2863102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
2864102550SiwasakiDevice, and Function values.
2865102550Siwasaki
2866102550Siwasaki Linux:
2867102550Siwasaki
2868102550SiwasakiEnhanced the Linux version of the source code to change most
2869102550Siwasakicapitalized ACPI type names to lowercase. For example, all
2870114237Snjlinstances of ACPI_STATUS are changed to acpi_status.  This will
2871114237Snjlresult in a large diff, but the change is strictly cosmetic and
2872114237Snjlaligns the CA code closer to the Linux coding standard.
2873102550Siwasaki
2874102550SiwasakiOSL Interfaces:
2875102550Siwasaki
2876114237SnjlThe interfaces to the PCI configuration space have been changed
2877114237Snjlto add the PCI Segment number and to split the single 32-bit
2878114237Snjlcombined DeviceFunction field into two 16-bit fields.  This was
2879114237Snjlaccomplished by moving the four values that define an address in
2880114237SnjlPCI configuration space (segment, bus, device, and function) to
2881114237Snjlthe new ACPI_PCI_ID structure.
2882102550Siwasaki
2883104470SiwasakiThe changes to the PCI configuration space interfaces led to a
2884104470Siwasakireexamination of the complete set of address space access
2885114237Snjlinterfaces for PCI, I/O, and Memory.  The previously existing 18
2886114237Snjlinterfaces have proven difficult to maintain (any small change
2887114237Snjlmust be propagated across at least 6 interfaces) and do not
2888114237Snjleasily allow for future expansion to 64 bits if necessary.  Also,
2889114237Snjlon some systems, it would not be appropriate to demultiplex the
2890114237Snjlaccess width (8, 16, 32,or 64) before calling the OSL if the
2891114237Snjlcorresponding native OS interfaces contain a similar access width
2892114237Snjlparameter.  For these reasons, the 18 address space interfaces
2893114237Snjlhave been replaced by these 6 new ones:
2894102550Siwasaki
2895102550SiwasakiAcpiOsReadPciConfiguration
2896102550SiwasakiAcpiOsWritePciConfiguration
2897102550SiwasakiAcpiOsReadMemory
2898102550SiwasakiAcpiOsWriteMemory
2899102550SiwasakiAcpiOsReadPort
2900102550SiwasakiAcpiOsWritePort
2901102550Siwasaki
2902114237SnjlAdded a new interface named AcpiOsGetRootPointer to allow the OSL
2903114237Snjlto perform the platform and/or OS-specific actions necessary to
2904114237Snjlobtain the ACPI RSDP table pointer.  On IA-32 platforms, this
2905114237Snjlinterface will simply call down to the CA core to perform the low-
2906114237Snjlmemory search for the table.  On IA-64, the RSDP is obtained from
2907114237SnjlEFI.  Migrating this interface to the OSL allows the CA core to
2908114237Snjlremain OS and platform independent.
2909102550Siwasaki
2910104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic
2911114237Snjl"function code and pointer" interface for various miscellaneous
2912114237Snjlsignals and notifications that must be made to the host OS.   The
2913114237Snjlfirst such signals are intended to support the ASL Fatal and
2914114237SnjlBreakpoint operators.  In the latter case, the AcpiOsBreakpoint
2915114237Snjlinterface has been obsoleted.
2916102550Siwasaki
2917102550SiwasakiThe definition of the AcpiFormatException interface has been
2918114237Snjlchanged to simplify its use.  The caller no longer must supply a
2919114237Snjlbuffer to the call; A pointer to a const string is now returned
2920114237Snjldirectly.  This allows the call to be easily used in printf
2921114237Snjlstatements, etc. since the caller does not have to manage a local
2922114237Snjlbuffer.
2923102550Siwasaki
2924114237Snjl
2925102550Siwasaki ASL Compiler, Version X2025:
2926102550Siwasaki
2927114237SnjlThe ACPI 2.0 Switch/Case/Default operators have been implemented
2928114237Snjland are fully functional.  They will work with all ACPI 1.0
2929114237Snjlinterpreters, since the operators are simply translated to
2930114237SnjlIf/Else pairs.
2931102550Siwasaki
2932104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work
2933104470Siwasakiwith 1.0 interpreters, for the same reason.
2934102550Siwasaki
2935114237SnjlImplemented support for ACPI 2.0 variable-length packages.  These
2936114237Snjlpackages have a separate opcode, and their size is determined by
2937114237Snjlthe interpreter at run-time.
2938102550Siwasaki
2939114237SnjlDocumentation The ACPI CA Programmer Reference has been updated
2940114237Snjlto reflect the new interfaces and changes to existing interfaces.
2941102550Siwasaki
2942102550Siwasaki ------------------------------------------
2943102550SiwasakiSummary of changes for this label: 06_15_01
2944102550Siwasaki
2945102550Siwasaki ACPI CA Core Subsystem:
2946102550Siwasaki
2947102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
2948114237Snjlobject would get its byte address inadvertently rounded down to
2949114237Snjlthe nearest DWORD.  Buffers are always Byte-accessible.
2950102550Siwasaki
2951102550Siwasaki ASL Compiler, version X2024:
2952102550Siwasaki
2953114237SnjlFixed a problem where the Switch() operator would either fault or
2954114237Snjlhang the compiler.  Note however, that the AML code for this ACPI
2955114237Snjl2.0 operator is not yet implemented.
2956102550Siwasaki
2957114237SnjlCompiler uses the new AcpiOsGetTimer interface to obtain compile
2958114237Snjltimings.
2959102550Siwasaki
2960114237SnjlImplementation of the CreateField operator automatically converts
2961114237Snjla reference to a named field within a resource descriptor from a
2962114237Snjlbyte offset to a bit offset if required.
2963102550Siwasaki
2964102550SiwasakiAdded some missing named fields from the resource descriptor
2965104470Siwasakisupport. These are the names that are automatically created by
2966114237Snjlthe compiler to reference fields within a descriptor.  They are
2967114237Snjlonly valid at compile time and are not passed through to the AML
2968114237Snjlinterpreter.
2969102550Siwasaki
2970104470SiwasakiResource descriptor named fields are now typed as Integers and
2971104470Siwasakisubject to compile-time typechecking when used in expressions.
2972102550Siwasaki
2973102550Siwasaki ------------------------------------------
2974102550SiwasakiSummary of changes for this label: 05_18_01
2975102550Siwasaki
2976102550Siwasaki ACPI CA Core Subsystem:
2977102550Siwasaki
2978114237SnjlFixed a couple of problems in the Field support code where bits
2979114237Snjlfrom adjacent fields could be returned along with the proper
2980114237Snjlfield bits. Restructured the field support code to improve
2981114237Snjlperformance, readability and maintainability.
2982102550Siwasaki
2983114237SnjlNew DEBUG_PRINTP macro automatically inserts the procedure name
2984114237Snjlinto the output, saving hundreds of copies of procedure name
2985114237Snjlstrings within the source, shrinking the memory footprint of the
2986114237Snjldebug version of the core subsystem.
2987102550Siwasaki
2988102550Siwasaki Source Code Structure:
2989102550Siwasaki
2990104470SiwasakiThe source code directory tree was restructured to reflect the
2991114237Snjlcurrent organization of the component architecture.  Some files
2992114237Snjland directories have been moved and/or renamed.
2993102550Siwasaki
2994102550Siwasaki Linux:
2995102550Siwasaki
2996102550SiwasakiFixed leaking kacpidpc processes.
2997102550Siwasaki
2998102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
2999102550Siwasakiopened.
3000102550Siwasaki
3001102550Siwasaki ASL Compiler, version X2020:
3002102550Siwasaki
3003114237SnjlMemory allocation performance enhancement - over 24X compile time
3004114237Snjlimprovement on large ASL files.  Parse nodes and namestring
3005114237Snjlbuffers are now allocated from a large internal compiler buffer.
3006102550Siwasaki
3007102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
3008102550Siwasakispecified
3009102550Siwasaki
3010104470SiwasakiThe "-d" debug output option now sends all output to the .DBG
3011104470Siwasakifile instead of the console.
3012102550Siwasaki
3013102550Siwasaki"External" second parameter is now optional
3014102550Siwasaki
3015102550Siwasaki"ElseIf" syntax now properly allows the predicate
3016102550Siwasaki
3017102550SiwasakiLast operand to "Load" now recognized as a Target operand
3018102550Siwasaki
3019102550SiwasakiDebug object can now be used anywhere as a normal object.
3020102550Siwasaki
3021102550SiwasakiResourceTemplate now returns an object of type BUFFER
3022102550Siwasaki
3023102550SiwasakiEISAID now returns an object of type INTEGER
3024102550Siwasaki
3025102550Siwasaki"Index" now works with a STRING operand
3026102550Siwasaki
3027102550Siwasaki"LoadTable" now accepts optional parameters
3028102550Siwasaki
3029102550Siwasaki"ToString" length parameter is now optional
3030102550Siwasaki
3031102550Siwasaki"Interrupt (ResourceType," parse error fixed.
3032102550Siwasaki
3033104470Siwasaki"Register" with a user-defined region space parse error fixed
3034102550Siwasaki
3035114237SnjlEscaped backslash at the end of a string ("\\") scan/parse error
3036114237Snjlfixed
3037102550Siwasaki
3038102550Siwasaki"Revision" is now an object of type INTEGER.
3039102550Siwasaki
3040102550Siwasaki
3041102550Siwasaki
3042102550Siwasaki------------------------------------------
3043102550SiwasakiSummary of changes for this label: 05_02_01
3044102550Siwasaki
3045102550SiwasakiLinux:
3046102550Siwasaki
3047102550Siwasaki/proc/acpi/event now blocks properly.
3048102550Siwasaki
3049102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
3050102550Siwasaki/proc/acpi/dsdt.
3051102550Siwasaki
3052102550Siwasaki ACPI CA Core Subsystem:
3053102550Siwasaki
3054104470SiwasakiFixed a problem introduced in the previous label where some of
3055104470Siwasakithe "small" resource descriptor types were not recognized.
3056102550Siwasaki
3057102550SiwasakiImproved error messages for the case where an ASL Field is
3058102550Siwasakioutside the range of the parent operation region.
3059102550Siwasaki
3060102550Siwasaki ASL Compiler, version X2018:
3061102550Siwasaki
3062102550SiwasakiAdded error detection for ASL Fields that extend beyond the
3063114237Snjllength of the parent operation region (only if the length of the
3064114237Snjlregion is known at compile time.)  This includes fields that have
3065114237Snjla minimum access width that is smaller than the parent region,
3066114237Snjland individual field units that are partially or entirely beyond
3067114237Snjlthe extent of the parent.
3068102550Siwasaki
3069102550Siwasaki
3070102550Siwasaki
3071102550Siwasaki------------------------------------------
3072102550SiwasakiSummary of changes for this label: 04_27_01
3073102550Siwasaki
3074102550Siwasaki ACPI CA Core Subsystem:
3075102550Siwasaki
3076104470SiwasakiFixed a problem where the namespace mutex could be released at
3077114237Snjlthe wrong time during execution of AcpiRemoveAddressSpaceHandler.
3078102550Siwasaki
3079104470SiwasakiAdded optional thread ID output for debug traces, to simplify
3080114237Snjldebugging of multiple threads.  Added context switch notification
3081114237Snjlwhen the debug code realizes that a different thread is now
3082114237Snjlexecuting ACPI code.
3083102550Siwasaki
3084114237SnjlSome additional external data types have been prefixed with the
3085114237Snjlstring "ACPI_" for consistency.  This may effect existing code.
3086114237SnjlThe data types affected are the external callback typedefs -
3087114237Snjle.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK.
3088102550Siwasaki
3089102550Siwasaki Linux:
3090102550Siwasaki
3091102550SiwasakiFixed an issue with the OSL semaphore implementation where a
3092102550Siwasakithread was waking up with an error from receiving a SIGCHLD
3093102550Siwasakisignal.
3094102550Siwasaki
3095114237SnjlLinux version of ACPI CA now uses the system C library for string
3096114237Snjlmanipulation routines instead of a local implementation.
3097102550Siwasaki
3098102550SiwasakiCleaned up comments and removed TBDs.
3099102550Siwasaki
3100102550Siwasaki ASL Compiler, version X2017:
3101102550Siwasaki
3102102550SiwasakiEnhanced error detection and reporting for all file I/O
3103102550Siwasakioperations.
3104102550Siwasaki
3105102550Siwasaki Documentation:
3106102550Siwasaki
3107102550SiwasakiProgrammer Reference updated to version 1.06.
3108102550Siwasaki
3109102550Siwasaki
3110102550Siwasaki
3111102550Siwasaki------------------------------------------
3112102550SiwasakiSummary of changes for this label: 04_13_01
3113102550Siwasaki
3114102550Siwasaki ACPI CA Core Subsystem:
3115102550Siwasaki
3116102550SiwasakiRestructured support for BufferFields and RegionFields.
3117104470SiwasakiBankFields support is now fully operational.  All known 32-bit
3118114237Snjllimitations on field sizes have been removed.  Both BufferFields
3119114237Snjland (Operation) RegionFields are now supported by the same field
3120114237Snjlmanagement code.
3121102550Siwasaki
3122114237SnjlResource support now supports QWORD address and IO resources. The
3123114237Snjl16/32/64 bit address structures and the Extended IRQ structure
3124114237Snjlhave been changed to properly handle Source Resource strings.
3125102550Siwasaki
3126114237SnjlA ThreadId of -1 is now used to indicate a "mutex not acquired"
3127114237Snjlcondition internally and must never be returned by
3128114237SnjlAcpiOsThreadId. This reserved value was changed from 0 since Unix
3129114237Snjlsystems allow a thread ID of 0.
3130102550Siwasaki
3131102550SiwasakiLinux:
3132102550Siwasaki
3133102550SiwasakiDriver code reorganized to enhance portability
3134102550Siwasaki
3135102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
3136102550Siwasaki
3137102550SiwasakiFixed the EC driver to honor _GLK.
3138102550Siwasaki
3139102550SiwasakiASL Compiler, version X2016:
3140102550Siwasaki
3141114237SnjlFixed support for the "FixedHw" keyword.  Previously, the FixedHw
3142114237Snjladdress space was set to 0, not 0x7f as it should be.
3143102550Siwasaki
3144102550Siwasaki ------------------------------------------
3145102550SiwasakiSummary of changes for this label: 03_13_01
3146102550Siwasaki
3147102550Siwasaki ACPI CA Core Subsystem:
3148102550Siwasaki
3149104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if
3150104470Siwasakipresent.
3151102550Siwasaki
3152102550SiwasakiNotify handler fix - notifies are deferred until the parent
3153102550Siwasakimethod completes execution.  This fixes the "mutex already
3154102550Siwasakiacquired" issue seen occasionally.
3155102550Siwasaki
3156104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been
3157114237Snjlfound to cause compatibility problems with existing ASL/AML.  The
3158114237Snjlconvert "result-to-target-type" implementation has been removed
3159114237Snjlfor stores to method Args and Locals.  Source operand conversion
3160114237Snjlis still fully implemented.  Possible changes to ACPI 2.0
3161114237Snjlspecification pending.
3162102550Siwasaki
3163104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct
3164104470Siwasakilength.
3165102550Siwasaki
3166102550SiwasakiFix for compiler warnings for 64-bit compiles.
3167102550Siwasaki
3168102550Siwasaki Linux:
3169102550Siwasaki
3170102550Siwasaki/proc output aligned for easier parsing.
3171102550Siwasaki
3172102550SiwasakiRelease-version compile problem fixed.
3173102550Siwasaki
3174104470SiwasakiNew kernel configuration options documented in Configure.help.
3175102550Siwasaki
3176102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
3177102550Siwasakicontext" message.
3178102550Siwasaki
3179102550Siwasaki OSPM:
3180102550Siwasaki
3181102550SiwasakiPower resource driver integrated with bus manager.
3182102550Siwasaki
3183102550SiwasakiFixed kernel fault during active cooling for thermal zones.
3184102550Siwasaki
3185102550SiwasakiSource Code:
3186102550Siwasaki
3187102550SiwasakiThe source code tree has been restructured.
3188102550Siwasaki
3189102550Siwasaki
3190102550Siwasaki
3191102550Siwasaki------------------------------------------
3192102550SiwasakiSummary of changes for this label: 03_02_01
3193102550Siwasaki
3194102550Siwasaki Linux OS Services Layer (OSL):
3195102550Siwasaki
3196102550SiwasakiMajor revision of all Linux-specific code.
3197102550Siwasaki
3198102550SiwasakiModularized all ACPI-specific drivers.
3199102550Siwasaki
3200102550SiwasakiAdded new thermal zone and power resource drivers.
3201102550Siwasaki
3202114237SnjlRevamped /proc interface (new functionality is under /proc/acpi).
3203102550Siwasaki
3204102550SiwasakiNew kernel configuration options.
3205102550Siwasaki
3206102550Siwasaki Linux known issues:
3207102550Siwasaki
3208114237SnjlNew kernel configuration options not documented in Configure.help
3209114237Snjlyet.
3210102550Siwasaki
3211114237Snjl
3212102550SiwasakiModule dependencies not currently implemented. If used, they
3213102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
3214102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
3215102550Siwasaki
3216102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
3217102550Siwasaki
3218102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
3219102550Siwasaki
3220104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context"
3221104470Siwasakimessage.
3222102550Siwasaki
3223104470SiwasakiSome systems may fail with "execution mutex already acquired"
3224104470Siwasakimessage.
3225102550Siwasaki
3226102550Siwasaki ACPI CA Core Subsystem:
3227102550Siwasaki
3228114237SnjlAdded a new OSL Interface, AcpiOsGetThreadId.  This was required
3229114237Snjlfor the  deadlock detection code. Defined to return a non-zero,
3230114237Snjl32-bit thread ID for the currently executing thread.  May be a
3231114237Snjlnon-zero constant integer on single-thread systems.
3232102550Siwasaki
3233104470SiwasakiImplemented deadlock detection for internal subsystem mutexes.
3234104470SiwasakiWe may add conditional compilation for this code (debug only)
3235104470Siwasakilater.
3236102550Siwasaki
3237104470SiwasakiASL/AML Mutex object semantics are now fully supported.  This
3238114237Snjlincludes multiple acquires/releases by owner and support for the
3239114237SnjlMutex SyncLevel parameter.
3240102550Siwasaki
3241102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
3242104470SiwasakiMutexes that have been acquired but not released when a thread
3243114237Snjlexits the interpreter.  This forces conformance to the ACPI spec
3244114237Snjl("All mutexes must be released when an invocation exits") and
3245114237Snjlprevents deadlocked ASL threads.  This mechanism can be expanded
3246114237Snjl(later) to monitor other resource acquisitions if OEM ASL code
3247114237Snjlcontinues to misbehave (which it will).
3248102550Siwasaki
3249104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex
3250104470Siwasakisupport.
3251102550Siwasaki
3252104470SiwasakiRecursive method calls are now allowed and supported (the ACPI
3253114237Snjlspec does in fact allow recursive method calls.)  The number of
3254114237Snjlrecursive calls is subject to the restrictions imposed by the
3255114237SnjlSERIALIZED method keyword and SyncLevel (ACPI 2.0) method
3256104470Siwasakiparameter.
3257102550Siwasaki
3258102550SiwasakiImplemented support for the SyncLevel parameter for control
3259102550Siwasakimethods (ACPI 2.0 feature)
3260102550Siwasaki
3261114237SnjlFixed a deadlock problem when multiple threads attempted to use
3262114237Snjlthe interpreter.
3263102550Siwasaki
3264102550SiwasakiFixed a problem where the string length of a String package
3265102550Siwasakielement was not always set in a package returned from
3266102550SiwasakiAcpiEvaluateObject.
3267102550Siwasaki
3268114237SnjlFixed a problem where the length of a String package element was
3269114237Snjlnot always included in the length of the overall package returned
3270114237Snjlfrom AcpiEvaluateObject.
3271102550Siwasaki
3272102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
3273102550Siwasakimanager.  This manager keeps a list of all outstanding
3274114237Snjlallocations, and can therefore detect memory leaks and attempts
3275114237Snjlto free memory blocks more than once. Useful for code such as the
3276114237Snjlpower manager, etc.  May not be appropriate for device drivers.
3277114237SnjlPerformance with the debug code enabled is slow.
3278102550Siwasaki
3279102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
3280102550Siwasaki
3281102550Siwasaki ASL Compiler Version X2015:
3282102550Siwasaki
3283102550SiwasakiIntegrated changes to allow the compiler to be generated on
3284102550Siwasakimultiple platforms.
3285102550Siwasaki
3286102550SiwasakiLinux makefile added to generate the compiler on Linux
3287102550Siwasaki
3288102550Siwasaki Source Code:
3289102550Siwasaki
3290102550SiwasakiAll platform-specific headers have been moved to their own
3291102550Siwasakisubdirectory, Include/Platform.
3292102550Siwasaki
3293102550SiwasakiNew source file added, Interpreter/ammutex.c
3294102550Siwasaki
3295102550SiwasakiNew header file, Include/acstruct.h
3296102550Siwasaki
3297102550Siwasaki Documentation:
3298102550Siwasaki
3299114237SnjlThe programmer reference has been updated for the following new
3300114237Snjlinterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree
3301102550Siwasaki
3302102550Siwasaki ------------------------------------------
3303102550SiwasakiSummary of changes for this label: 02_08_01
3304102550Siwasaki
3305102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
3306104470Siwasakiincorrectly returned if the return resource buffer was larger
3307104470Siwasakithan the actual data (in the resource interfaces).
3308102550Siwasaki
3309114237SnjlReferences to named objects within packages are resolved to the
3310114237Snjlfull pathname string before packages are returned directly (via
3311114237Snjlthe AcpiEvaluateObject interface) or indirectly via the resource
3312114237Snjlinterfaces.
3313102550Siwasaki
3314102550SiwasakiLinux OS Services Layer (OSL):
3315102550Siwasaki
3316102550SiwasakiImproved /proc battery interface.
3317102550Siwasaki
3318102550Siwasaki
3319104470SiwasakiAdded C-state debugging output and other miscellaneous fixes.
3320102550Siwasaki
3321102550SiwasakiASL Compiler Version X2014:
3322102550Siwasaki
3323114237SnjlAll defined method arguments can now be used as local variables,
3324114237Snjlincluding the ones that are not actually passed in as parameters.
3325114237SnjlThe compiler tracks initialization of the arguments and issues an
3326114237Snjlexception if they are used without prior assignment (just like
3327114237Snjllocals).
3328102550Siwasaki
3329104470SiwasakiThe -o option now specifies a filename prefix that is used for
3330114237Snjlall output files, including the AML output file.  Otherwise, the
3331114237Snjldefault behavior is as follows:  1) the AML goes to the file
3332114237Snjlspecified in the DSDT.  2) all other output files use the input
3333114237Snjlsource filename as the base.
3334102550Siwasaki
3335102550Siwasaki ------------------------------------------
3336102550SiwasakiSummary of changes for this label: 01_25_01
3337102550Siwasaki
3338114237SnjlCore ACPI CA Subsystem: Restructured the implementation of object
3339114237Snjlstore support within the  interpreter.  This includes support for
3340114237Snjlthe Store operator as well  as any ASL operators that include a
3341114237Snjltarget operand.
3342102550Siwasaki
3343102550SiwasakiPartially implemented support for Implicit Result-to-Target
3344114237Snjlconversion. This is when a result object is converted on the fly
3345114237Snjlto the type of  an existing target object.  Completion of this
3346114237Snjlsupport is pending  further analysis of the ACPI specification
3347114237Snjlconcerning this matter.
3348102550Siwasaki
3349114237SnjlCPU-specific code has been removed from the subsystem (hardware
3350114237Snjldirectory).
3351102550Siwasaki
3352102550SiwasakiNew Power Management Timer functions added
3353102550Siwasaki
3354114237SnjlLinux OS Services Layer (OSL): Moved system state transition code
3355114237Snjlto the core, fixed it, and modified  Linux OSL accordingly.
3356102550Siwasaki
3357102550SiwasakiFixed C2 and C3 latency calculations.
3358102550Siwasaki
3359102550Siwasaki
3360114237SnjlWe no longer use the compilation date for the version message on
3361114237Snjlinitialization, but retrieve the version from
3362102550SiwasakiAcpiGetSystemInfo().
3363102550Siwasaki
3364102550SiwasakiIncorporated for fix Sony VAIO machines.
3365102550Siwasaki
3366104470SiwasakiDocumentation:  The Programmer Reference has been updated and
3367104470Siwasakireformatted.
3368102550Siwasaki
3369102550Siwasaki
3370102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
3371102550Siwasakinumbering and error reporting could get out  of sync in the
3372102550Siwasakipresence of multiple include files.
3373102550Siwasaki
3374102550Siwasaki ------------------------------------------
3375102550SiwasakiSummary of changes for this label: 01_15_01
3376102550Siwasaki
3377102550SiwasakiCore ACPI CA Subsystem:
3378102550Siwasaki
3379114237SnjlImplemented support for type conversions in the execution of the
3380114237SnjlASL  Concatenate operator (The second operand is converted to
3381114237Snjlmatch the type  of the first operand before concatenation.)
3382102550Siwasaki
3383102550SiwasakiSupport for implicit source operand conversion is partially
3384114237Snjlimplemented.   The ASL source operand types Integer, Buffer, and
3385114237SnjlString are freely  interchangeable for most ASL operators and are
3386114237Snjlconverted by the interpreter  on the fly as required.  Implicit
3387114237SnjlTarget operand conversion (where the  result is converted to the
3388114237Snjltarget type before storing) is not yet implemented.
3389102550Siwasaki
3390102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
3391102550Siwasaki
3392114237SnjlProblem fixed where a field read on an aligned field could cause
3393114237Snjla read  past the end of the field.
3394102550Siwasaki
3395114237SnjlNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method
3396114237Snjldoes not return a value, but the caller expects one.  (The ASL
3397114237Snjlcompiler flags this as a warning.)
3398102550Siwasaki
3399102550SiwasakiASL Compiler:
3400102550Siwasaki
3401102550SiwasakiVersion X2011:
3402102550Siwasaki1. Static typechecking of all operands is implemented. This
3403102550Siwasakiprevents the use of invalid objects (such as using a Package
3404102550Siwasakiwhere an Integer is required) at compile time instead of at
3405102550Siwasakiinterpreter run-time.
3406114237Snjl2. The ASL source line is printed with ALL errors and warnings.
3407102550Siwasaki3. Bug fix for source EOF without final linefeed.
3408102550Siwasaki4. Debug option is split into a parse trace and a namespace
3409102550Siwasakitrace.
3410102550Siwasaki5. Namespace output option (-n) includes initial values for
3411102550Siwasakiintegers and strings.
3412102550Siwasaki6. Parse-only option added for quick syntax checking.
3413102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
3414102550Siwasaki
3415102550SiwasakiVersion X2012:
3416102550Siwasaki1. Relaxed typechecking to allow interchangeability between
3417114237Snjlstrings, integers, and buffers.  These types are now converted by
3418114237Snjlthe interpreter at runtime.
3419114237Snjl2. Compiler reports time taken by each internal subsystem in the
3420114237Snjldebug         output file.
3421102550Siwasaki
3422102550Siwasaki
3423102550Siwasaki ------------------------------------------
3424102550SiwasakiSummary of changes for this label: 12_14_00
3425102550Siwasaki
3426102550SiwasakiASL Compiler:
3427102550Siwasaki
3428104470SiwasakiThis is the first official release of the compiler. Since the
3429104470Siwasakicompiler requires elements of the Core Subsystem, this label
3430104470Siwasakisynchronizes everything.
3431102550Siwasaki
3432102550Siwasaki------------------------------------------
3433102550SiwasakiSummary of changes for this label: 12_08_00
3434102550Siwasaki
3435102550Siwasaki
3436114237SnjlFixed a problem where named references within the ASL definition
3437114237Snjlof both OperationRegions and CreateXXXFields did not work
3438114237Snjlproperly.  The symptom was an AE_AML_OPERAND_TYPE during
3439114237Snjlinitialization of the region/field. This is similar (but not
3440114237Snjlrelated internally) to the problem that was fixed in the last
3441114237Snjllabel.
3442114237Snjl
3443102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
3444102550Siwasakifunctions ToBCD and FromBCD.
3445102550Siwasaki
3446102550SiwasakiUpdated all legal headers to include "2000" in the copyright
3447102550Siwasakiyears.
3448102550Siwasaki
3449102550Siwasaki ------------------------------------------
3450102550SiwasakiSummary of changes for this label: 12_01_00
3451102550Siwasaki
3452102550SiwasakiFixed a problem where method invocations within the ASL
3453114237Snjldefinition of both OperationRegions and CreateXXXFields did not
3454114237Snjlwork properly.  The symptom was an AE_AML_OPERAND_TYPE during
3455114237Snjlinitialization of the region/field:
3456102550Siwasaki
3457114237Snjl  nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments
3458114237Snjl[DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad operand(s)
3459114237Snjl(0x3005)
3460102550Siwasaki
3461102550SiwasakiFixed a problem where operators with more than one nested
3462104470Siwasakisubexpression would fail.  The symptoms were varied, by mostly
3463114237SnjlAE_AML_OPERAND_TYPE errors.  This was actually a rather serious
3464114237Snjlproblem that has gone unnoticed until now.
3465102550Siwasaki
3466102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
3467102550Siwasaki
3468114237SnjlFixed a problem where AcpiGetHandle didn't quite get fixed in the
3469114237Snjlprevious build (The prefix part of a relative path was handled
3470114237Snjlincorrectly).
3471102550Siwasaki
3472114237SnjlFixed a problem where Operation Region initialization failed if
3473114237Snjlthe operation region name was a "namepath" instead of a simple
3474114237Snjl"nameseg". Symptom was an AE_NO_OPERAND error.
3475102550Siwasaki
3476114237SnjlFixed a problem where an assignment to a local variable via the
3477114237Snjlindirect RefOf mechanism only worked for the first such
3478102550Siwasakiassignment.  Subsequent assignments were ignored.
3479102550Siwasaki
3480102550Siwasaki ------------------------------------------
3481102550SiwasakiSummary of changes for this label: 11_15_00
3482102550Siwasaki
3483104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and
3484104470Siwasakithe 0.71 extensions.  Note: although we can read ACPI 2.0 BIOS
3485104470Siwasakitables, the AML  interpreter does NOT have support for the new
3486104470Siwasaki2.0 ASL grammar terms at this time.
3487102550Siwasaki
3488104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI
3489104470Siwasaki2.0 FADT.
3490102550Siwasaki
3491104470SiwasakiAll physical memory addresses across all platforms are now 64
3492104470Siwasakibits wide. Logical address width remains dependent on the
3493102550Siwasakiplatform (i.e., "void *").
3494102550Siwasaki
3495114237SnjlAcpiOsMapMemory interface changed to a 64-bit physical address.
3496102550Siwasaki
3497114237SnjlThe AML interpreter integer size is now 64 bits, as per the ACPI
3498114237Snjl2.0 specification.
3499102550Siwasaki
3500104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a
3501104470Siwasakirevision number less than 2 use 32-bit integers only.
3502102550Siwasaki
3503114237SnjlFixed a problem where the evaluation of OpRegion operands did not
3504114237Snjlalways resolve them to numbers properly.
3505102550Siwasaki
3506102550Siwasaki------------------------------------------
3507102550SiwasakiSummary of changes for this label: 10_20_00
3508102550Siwasaki
3509114237SnjlFix for CBN_._STA issue.  This fix will allow correct access to
3510114237SnjlCBN_ OpRegions when the _STA returns 0x8.
3511102550Siwasaki
3512104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual
3513104470Siwasakivalues before a package object is returned
3514102550Siwasaki
3515104470SiwasakiFix for method call as predicate to if/while construct causing
3516104470Siwasakiincorrect if/while behavior
3517102550Siwasaki
3518114237SnjlFix for Else block package lengths sometimes calculated wrong (if
3519114237Snjlblock > 63 bytes)
3520102550Siwasaki
3521102550SiwasakiFix for Processor object length field, was always zero
3522102550Siwasaki
3523102550SiwasakiTable load abort if FACP sanity check fails
3524102550Siwasaki
3525102550SiwasakiFix for problem with Scope(name) if name already exists
3526102550Siwasaki
3527102550SiwasakiWarning emitted if a named object referenced cannot be found
3528102550Siwasaki(resolved) during method execution.
3529102550Siwasaki
3530102550Siwasaki
3531102550Siwasaki
3532102550Siwasaki
3533102550Siwasaki
3534102550Siwasaki------------------------------------------
3535102550SiwasakiSummary of changes for this label: 9_29_00
3536102550Siwasaki
3537114237SnjlNew table initialization interfaces: AcpiInitializeSubsystem no
3538114237Snjllonger has any parameters AcpiFindRootPointer - Find the RSDP (if
3539114237Snjlnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP-
3540114237Snjl>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by
3541114237SnjlAcpiLoadTables
3542102550Siwasaki
3543104470SiwasakiNote: These interface changes require changes to all existing
3544104470SiwasakiOSDs
3545102550Siwasaki
3546114237SnjlThe PCI_Config default address space handler is always installed
3547114237Snjlat the root namespace object.
3548102550Siwasaki
3549102550Siwasaki-------------------------------------------
3550102550SiwasakiSummary of changes for this label: 09_15_00
3551102550Siwasaki
3552102550SiwasakiThe new initialization architecture is implemented.  New
3553114237Snjlinterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize)
3554114237SnjlAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace
3555114237Snjl(Namespace is automatically loaded when a table is loaded)
3556102550Siwasaki
3557104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size
3558104470Siwasakifrom 52 bytes to 32 bytes.  There is usually one of these for
3559104470Siwasakievery namespace object, so the memory savings is significant.
3560102550Siwasaki
3561114237SnjlImplemented just-in-time evaluation of the CreateField operators.
3562102550Siwasaki
3563102550SiwasakiBug fixes for IA-64 support have been integrated.
3564102550Siwasaki
3565102550SiwasakiAdditional code review comments have been implemented
3566102550Siwasaki
3567104470SiwasakiThe so-called "third pass parse" has been replaced by a final
3568104470Siwasakiwalk through the namespace to initialize all operation regions
3569104470Siwasaki(address spaces) and fields that have not yet been initialized
3570104470Siwasakiduring the execution of the various _INI and REG methods.
3571102550Siwasaki
3572102550SiwasakiNew file - namespace/nsinit.c
3573102550Siwasaki
3574102550Siwasaki-------------------------------------------
3575102550SiwasakiSummary of changes for this label: 09_01_00
3576102550Siwasaki
3577104470SiwasakiNamespace manager data structures have been reworked to change
3578104470Siwasakithe primary  object from a table to a single object.  This has
3579104470Siwasakiresulted in dynamic memory  savings of 3X within the namespace
3580104470Siwasakiand 2X overall in the ACPI CA subsystem.
3581102550Siwasaki
3582102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
3583102550Siwasakiinadvertently left  commented out.
3584102550Siwasaki
3585114237SnjlReduced the warning count when generating the source with the GCC
3586114237Snjlcompiler.
3587102550Siwasaki
3588102550SiwasakiRevision numbers added to each module header showing the
3589104470SiwasakiSourceSafe version of the file.  Please refer to this version
3590114237Snjlnumber when giving us feedback or comments on individual modules.
3591102550Siwasaki
3592114237SnjlThe main object types within the subsystem have been renamed to
3593114237Snjlclarify their  purpose:
3594102550Siwasaki
3595102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
3596102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
3597102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
3598102550Siwasaki
3599114237SnjlNOTE: no changes to the initialization sequence are included in
3600114237Snjlthis label.
3601102550Siwasaki
3602102550Siwasaki-------------------------------------------
3603102550SiwasakiSummary of changes for this label: 08_23_00
3604102550Siwasaki
3605102550SiwasakiFixed problem where TerminateControlMethod was being called
3606102550Siwasakimultiple times per  method
3607102550Siwasaki
3608114237SnjlFixed debugger problem where single stepping caused a semaphore
3609114237Snjlto be  oversignalled
3610102550Siwasaki
3611104470SiwasakiImproved performance through additional parse object caching -
3612104470Siwasakiadded  ACPI_EXTENDED_OP type
3613102550Siwasaki
3614102550Siwasaki-------------------------------------------
3615102550SiwasakiSummary of changes for this label: 08_10_00
3616102550Siwasaki
3617102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
3618102550Siwasakicomplete parse trees  for ACPI tables and control methods.
3619114237SnjlInstead, parse subtrees are created and  then deleted as soon as
3620114237Snjlthey are processed (Either entered into the namespace or
3621104470Siwasakiexecuted by the interpreter).  This reduces the use of dynamic
3622104470Siwasakikernel memory  significantly. (about 10X)
3623102550Siwasaki
3624114237SnjlException codes broken into classes and renumbered.  Be sure to
3625114237Snjlrecompile all  code that includes acexcep.h.  Hopefully we won't
3626114237Snjlhave to renumber the codes  again now that they are split into
3627114237Snjlclasses (environment, programmer, AML code,  ACPI table, and
3628114237Snjlinternal).
3629102550Siwasaki
3630104470SiwasakiFixed some additional alignment issues in the Resource Manager
3631104470Siwasakisubcomponent
3632102550Siwasaki
3633114237SnjlImplemented semaphore tracking in the AcpiExec utility, and fixed
3634114237Snjlseveral places  where mutexes/semaphores were being unlocked
3635114237Snjlwithout a corresponding lock  operation.  There are no known
3636114237Snjlsemaphore or mutex "leaks" at this time.
3637102550Siwasaki
3638114237SnjlFixed the case where an ASL Return operator is used to return an
3639114237Snjlunnamed  package.
3640102550Siwasaki
3641102550Siwasaki-------------------------------------------
3642102550SiwasakiSummary of changes for this label: 07_28_00
3643102550Siwasaki
3644102550SiwasakiFixed a problem with the way addresses were calculated in
3645114237SnjlAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This problem
3646114237Snjlmanifested itself when a Field was  created with WordAccess or
3647114237SnjlDwordAccess, but the field unit defined within the  Field was
3648114237Snjlless than a Word or Dword.
3649102550Siwasaki
3650102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
3651104470Siwasakioperands off of the  operand stack to display information. The
3652114237Snjlproblem manifested itself as a TLB  error on 64-bit systems when
3653114237Snjlaccessing an operand stack with two or more  operands.
3654102550Siwasaki
3655114237SnjlFixed a problem with the PCI configuration space handlers where
3656114237Snjlcontext was  getting confused between accesses. This required a
3657114237Snjlchange to the generic address  space handler and address space
3658114237Snjlsetup definitions. Handlers now get both a  global handler
3659114237Snjlcontext (this is the one passed in by the user when executing
3660114237SnjlAcpiInstallAddressSpaceHandler() and a specific region context
3661114237Snjlthat is unique to  each region (For example, the _ADR, _SEG and
3662114237Snjl_BBN values associated with a  specific region). The generic
3663114237Snjlfunction definitions have changed to the  following:
3664102550Siwasaki
3665114237Snjltypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function,
3666114237SnjlUINT32 Address, UINT32 BitWidth, UINT32 *Value, void
3667104470Siwasaki*HandlerContext, // This used to be void *Context void
3668102550Siwasaki*RegionContext); // This is an additional parameter
3669102550Siwasaki
3670102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
3671102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
3672102550Siwasaki**RegionContext); // This used to be **ReturnContext
3673102550Siwasaki
3674102550Siwasaki-------------------------------------------
3675102550SiwasakiSummary of changes for this label: 07_21_00
3676102550Siwasaki
3677102550SiwasakiMajor file consolidation and rename.  All files within the
3678102550Siwasakiinterpreter have been  renamed as well as most header files.
3679114237SnjlThis was done to prevent collisions with  existing files in the
3680114237Snjlhost OSs -- filenames such as "config.h" and "global.h"  seem to
3681114237Snjlbe quite common.  The VC project files have been updated.  All
3682114237Snjlmakefiles  will require modification.
3683102550Siwasaki
3684114237SnjlThe parser/interpreter integration continues in Phase 5 with the
3685114237Snjlimplementation  of a complete 2-pass parse (the AML is parsed
3686114237Snjltwice) for each table;  This  avoids the construction of a huge
3687114237Snjlparse tree and therefore reduces the amount of  dynamic memory
3688114237Snjlrequired by the subsystem.  Greater use of the parse object cache
3689114237Snjlmeans that performance is unaffected.
3690102550Siwasaki
3691102550SiwasakiMany comments from the two code reviews have been rolled in.
3692102550Siwasaki
3693102550SiwasakiThe 64-bit alignment support is complete.
3694102550Siwasaki
3695102550Siwasaki-------------------------------------------
3696102550SiwasakiSummary of changes for this label: 06_30_00
3697102550Siwasaki
3698114237SnjlWith a nod and a tip of the hat to the technology of yesteryear,
3699114237Snjlwe've added  support in the source code for 80 column output
3700114237Snjldevices.  The code is now mostly  constrained to 80 columns or
3701114237Snjlless to support environments and editors that 1)  cannot display
3702114237Snjlor print more than 80 characters on a single line, and 2) cannot
3703114237Snjldisable line wrapping.
3704102550Siwasaki
3705104470SiwasakiA major restructuring of the namespace data structure has been
3706104470Siwasakicompleted.  The  result is 1) cleaner and more
3707114237Snjlunderstandable/maintainable code, and 2) a  significant reduction
3708114237Snjlin the dynamic memory requirement for each named ACPI  object
3709114237Snjl(almost half).
3710102550Siwasaki
3711102550Siwasaki-------------------------------------------
3712102550SiwasakiSummary of changes for this label: 06_23_00
3713102550Siwasaki
3714114237SnjlLinux support has been added.  In order to obtain approval to get
3715114237Snjlthe ACPI CA  subsystem into the Linux kernel, we've had to make
3716114237Snjlquite a few changes to the  base subsystem that will affect all
3717114237Snjlusers (all the changes are generic and OS- independent).  The
3718114237Snjleffects of these global changes have been somewhat far  reaching.
3719114237SnjlFiles have been merged and/or renamed and interfaces have been
3720114237Snjlrenamed.   The major changes are described below.
3721102550Siwasaki
3722102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
3723102550Siwasakipollution/confusion  within our target kernels.  All OSD
3724114237Snjlinterfaces must be modified to match the new  naming convention.
3725102550Siwasaki
3726102550SiwasakiFiles merged across the subsystem.  A number of the smaller
3727102550Siwasakisource and header  files have been merged to reduce the file
3728114237Snjlcount and increase the density of the  existing files.  There are
3729114237Snjltoo many to list here.  In general, makefiles that  call out
3730114237Snjlindividual files will require rebuilding.
3731102550Siwasaki
3732104470SiwasakiInterpreter files renamed.  All interpreter files now have the
3733104470Siwasakiprefix am*  instead of ie* and is*.
3734102550Siwasaki
3735104470SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.  The
3736114237Snjlacpiosd.h file is  now acpiosxf.h.  We are removing references to
3737114237Snjlthe acronym "API" since it is  somewhat windowsy. The new name is
3738114237Snjl"external interface" or xface or xf in the  filenames.j
3739102550Siwasaki
3740102550Siwasaki
3741114237SnjlAll manifest constants have been forced to upper case (some were
3742114237Snjlmixed case.)   Also, the string "ACPI_" has been prepended to
3743114237Snjlmany (not all) of the constants,  typedefs, and structs.
3744102550Siwasaki
3745102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
3746102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
3747102550Siwasaki
3748102550SiwasakiAll other globals within the subsystem are now prefixed with
3749102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
3750114237Snjlprefixed with "Acpi" (with only  a few exceptions).  The original
3751114237Snjltwo-letter abbreviation for the subcomponent  remains after
3752114237Snjl"Acpi" - for example, CmCallocate became AcpiCmCallocate.
3753102550Siwasaki
3754102550SiwasakiAdded a source code translation/conversion utility.  Used to
3755114237Snjlgenerate the Linux  source code, it can be modified to generate
3756114237Snjlother types of source as well. Can  also be used to cleanup
3757114237Snjlexisting source by removing extraneous spaces and blank  lines.
3758114237SnjlFound in tools/acpisrc/*
3759102550Siwasaki
3760102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
3761102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
3762102550Siwasaki
3763114237SnjlA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore.
3764114237SnjlWhen set to  one, this indicates that the caller wants to use the
3765114237Snjlsemaphore as a mutex, not a  counting semaphore.  ACPI CA uses
3766114237Snjlboth types.  However, implementers of this  call may want to use
3767114237Snjldifferent OS primitives depending on the type of semaphore
3768114237Snjlrequested.  For example, some operating systems provide separate
3769114237Snjl"mutex" and  "semaphore" interfaces - where the mutex interface
3770114237Snjlis much faster because it  doesn't have all the overhead of a
3771114237Snjlfull semaphore implementation.
3772102550Siwasaki
3773104470SiwasakiFixed a deadlock problem where a method that accesses the PCI
3774114237Snjladdress space can  block forever if it is the first access to the
3775114237Snjlspace.
3776102550Siwasaki
3777102550Siwasaki-------------------------------------------
3778102550SiwasakiSummary of changes for this label: 06_02_00
3779102550Siwasaki
3780102550SiwasakiSupport for environments that cannot handle unaligned data
3781114237Snjlaccesses (e.g.  firmware and OS environments devoid of alignment
3782114237Snjlhandler technology namely  SAL/EFI and the IA-64 Linux kernel)
3783114237Snjlhas been added (via configurable macros) in  these three areas: -
3784114237SnjlTransfer of data from the raw AML byte stream is done via byte
3785114237Snjlmoves instead of    word/dword/qword moves. - External objects
3786114237Snjlare aligned within the user buffer, including package   elements
3787114237Snjl(sub-objects). - Conversion of name strings to UINT32 Acpi Names
3788114237Snjlis now done byte-wise.
3789102550Siwasaki
3790102550SiwasakiThe Store operator was modified to mimic Microsoft's
3791102550Siwasakiimplementation when storing  to a Buffer Field.
3792102550Siwasaki
3793102550SiwasakiAdded a check of the BM_STS bit before entering C3.
3794102550Siwasaki
3795114237SnjlThe methods subdirectory has been obsoleted and removed.  A new
3796114237Snjlfile, cmeval.c  subsumes the functionality.
3797102550Siwasaki
3798102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
3799102550Siwasakimakefile is under  the acpiexec directory.
3800