changes.txt revision 102550
1102550Siwasaki----------------------------------------
2102550Siwasaki15 August 2002.  Summary of changes for this release.
3102550Siwasaki
4102550Siwasaki1) ACPI CA Core Subsystem Version 20020815:
5102550Siwasaki
6102550SiwasakiFixed a reported problem where a Store to a method argument
7102550Siwasakithat contains a reference did not perform the indirect store
8102550Siwasakicorrectly.  This problem was created during the conversion
9102550Siwasakito the new reference object model � the indirect store to a
10102550Siwasakimethod argument code was not updated to reflect the new
11102550Siwasakimodel.
12102550Siwasaki
13102550SiwasakiReworked the ACPI mode change code to better conform to ACPI
14102550Siwasaki2.0, handle corner cases, and improve code legibility (Kochi
15102550SiwasakiTakayoshi)
16102550Siwasaki
17102550SiwasakiFixed a problem with the pathname parsing for the carat (^)
18102550Siwasakiprefix.  The heavy use of the carat operator by the new
19102550Siwasakinamepath optimization in the iASL compiler uncovered a
20102550Siwasakiproblem with the AML interpreter handling of this prefix.
21102550SiwasakiIn the case where one or more carats precede a single
22102550Siwasakinameseg, the nameseg was treated as standalone and the
23102550Siwasakisearch rule (to root) was inadvertently applied.  This could
24102550Siwasakicause both the iASL compiler and the interpreter to find the
25102550Siwasakiwrong object or to miss the error that should occur if the
26102550Siwasakiobject does not exist at that exact pathname.
27102550Siwasaki
28102550SiwasakiFound and fixed the problem where the HP Pavilion DSDT would
29102550Siwasakinot load.  This was a relatively minor tweak to the table
30102550Siwasakiloading code (a problem caused by the unexpected encounter
31102550Siwasakiwith a method invocation not within a control method), but
32102550Siwasakiit does not solve the overall issue of the execution of AML
33102550Siwasakicode at the table level.  This investigation is still
34102550Siwasakiongoing.
35102550Siwasaki
36102550SiwasakiCode and Data Size: Current core subsystem library sizes are
37102550Siwasakishown below.  These are the code and data sizes for the
38102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
39102550Siwasakicompiler, and these values do not include any ACPI driver or
40102550SiwasakiOSPM code.  The debug version of the code includes the debug
41102550Siwasakioutput trace mechanism and has a larger code and data size.
42102550SiwasakiNote that these values will vary depending on the efficiency
43102550Siwasakiof the compiler and the compiler options used during
44102550Siwasakigeneration.
45102550Siwasaki
46102550Siwasaki  Previous Release
47102550Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K
48102550SiwasakiTotal
49102550Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K
50102550SiwasakiTotal
51102550Siwasaki  Current Release:
52102550Siwasaki    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K
53102550SiwasakiTotal
54102550Siwasaki    Debug Version:     150.0K Code,  61.7K Data,  211.7K
55102550SiwasakiTotal
56102550Siwasaki
57102550Siwasaki
58102550Siwasaki2) Linux
59102550Siwasaki
60102550SiwasakiRemove redundant slab.h include (Brad Hards)
61102550Siwasaki
62102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel)
63102550Siwasaki
64102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek)
65102550Siwasaki
66102550SiwasakiChange acpi_system_suspend to use updated irq functions
67102550Siwasaki(Pavel Machek)
68102550Siwasaki
69102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox)
70102550Siwasaki
71102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi)
72102550Siwasaki
73102550SiwasakiFix early-boot table parsing (Bjorn Helgaas)
74102550Siwasaki
75102550Siwasaki
76102550Siwasaki3) iASL Compiler/Disassembler
77102550Siwasaki
78102550SiwasakiReworked the compiler options to make them more consistent
79102550Siwasakiand to use two-letter options where appropriate.  We were
80102550Siwasakirunning out of sensible letters.   This may break some
81102550Siwasakimakefiles, so check the current options list by invoking the
82102550Siwasakicompiler with no parameters.
83102550Siwasaki
84102550SiwasakiCompleted the design and implementation of the ASL namepath
85102550Siwasakioptimization option for the compiler.  This option optimizes
86102550Siwasakiall references to named objects to the shortest possible
87102550Siwasakipath.  The first attempt tries to utilize a single nameseg
88102550Siwasaki(4 characters) and the �search-to-root� algorithm used by
89102550Siwasakithe interpreter.  If that cannot be used (because either the
90102550Siwasakiname is not in the search path or there is a conflict with
91102550Siwasakianother object with the same name), the pathname is
92102550Siwasakioptimized using the carat prefix (usually a shorter string
93102550Siwasakithan specifying the entire path from the root.)
94102550Siwasaki
95102550SiwasakiImplemented support to obtain the DSDT from the Windows
96102550Siwasakiregistry (when the disassembly option is specified with no
97102550Siwasakiinput file).  Added this code as the implementation for
98102550SiwasakiAcpiOsTableOverride in the Windows OSL.  Migrated the 16-bit
99102550Siwasakicode (used in the AcpiDump utility) to scan memory for the
100102550SiwasakiDSDT to the AcpiOsTableOverride function in the DOS OSL to
101102550Siwasakimake the disassembler truly OS independent.
102102550Siwasaki
103102550SiwasakiImplemented a new option to disassemble and compile in one
104102550Siwasakistep.  When used without an input filename, this option will
105102550Siwasakigrab the DSDT from the local machine, disassemble it, and
106102550Siwasakicompile it in one step.
107102550Siwasaki
108102550SiwasakiAdded a warning message for invalid escapes (a backslash
109102550Siwasakifollowed by any character other than the allowable escapes).
110102550SiwasakiThis catches the quoted string error �\_SB_� (which should
111102550Siwasakibe �\\_SB_� ).  Also, there are numerous instances in the
112102550SiwasakiACPI specification where this error occurs.
113102550Siwasaki
114102550SiwasakiAdded a compiler option to disable all optimizations.  This
115102550Siwasakiis basically the �compatibility mode� because by using this
116102550Siwasakioption, the AML code will come out exactly the same as other
117102550SiwasakiASL compilers.
118102550Siwasaki
119102550SiwasakiAdded error messages for incorrectly ordered dependent
120102550Siwasakiresource functions.  This includes: missing EndDependentFn
121102550Siwasakimacro at end of dependent resource list, nested dependent
122102550Siwasakifunction macros (both start and end), and missing
123102550SiwasakiStartDependentFn macro.  These are common errors that should
124102550Siwasakibe caught at compile time.
125102550Siwasaki
126102550SiwasakiImplemented _OSI support for the disassembler and compiler.
127102550Siwasaki_OSI must be included in the namespace for proper
128102550Siwasakidisassembly (because the disassembler must know the number
129102550Siwasakiof arguments.)
130102550Siwasaki
131102550SiwasakiAdded an �optimization� message type that is optional (off
132102550Siwasakiby default).  This message is used for all optimizations �
133102550Siwasakiincluding constant folding, integer optimization, and
134102550Siwasakinamepath optimization.
135102550Siwasaki
136102550Siwasaki----------------------------------------
137102550Siwasaki25 July 2002.  Summary of changes for this release.
138102550Siwasaki
139102550Siwasaki
140102550Siwasaki1) ACPI CA Core Subsystem Version 20020725:
141102550Siwasaki
142102550SiwasakiThe AML Disassembler has been enhanced to produce compilable
143102550SiwasakiASL code and has been integrated into the iASL compiler (see
144102550Siwasakibelow) as well as the single-step disassembly for the AML
145102550Siwasakidebugger and the disassembler for the AcpiDump utility.  All
146102550SiwasakiACPI 2.0A opcodes, resource templates and macros are fully
147102550Siwasakisupported.  The disassembler has been tested on over 30
148102550Siwasakidifferent AML files, producing identical AML when the
149102550Siwasakiresulting disassembled ASL file is recompiled with the same
150102550SiwasakiASL compiler.
151102550Siwasaki
152102550SiwasakiModified the Resource Manager to allow zero interrupts and
153102550Siwasakizero dma channels during the GetCurrentResources call.  This
154102550Siwasakiwas causing problems on some platforms.
155102550Siwasaki
156102550SiwasakiAdded the AcpiOsRedirectOutput interface to the OSL to
157102550Siwasakisimplify output redirection for the AcpiOsPrintf and
158102550SiwasakiAcpiOsVprintf interfaces.
159102550Siwasaki
160102550SiwasakiCode and Data Size: Current core subsystem library sizes are
161102550Siwasakishown below.  These are the code and data sizes for the
162102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
163102550Siwasakicompiler, and these values do not include any ACPI driver or
164102550SiwasakiOSPM code.  The debug version of the code includes the debug
165102550Siwasakioutput trace mechanism and has a larger code and data size.
166102550SiwasakiNote that these values will vary depending on the efficiency
167102550Siwasakiof the compiler and the compiler options used during
168102550Siwasakigeneration.
169102550Siwasaki
170102550Siwasaki  Previous Release
171102550Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K
172102550SiwasakiTotal
173102550Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K
174102550SiwasakiTotal
175102550Siwasaki  Current Release:
176102550Siwasaki    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K
177102550SiwasakiTotal
178102550Siwasaki    Debug Version:     149.4K Code,  61.6K Data,  211.0K
179102550SiwasakiTotal
180102550Siwasaki
181102550Siwasaki
182102550Siwasaki2) Linux
183102550Siwasaki
184102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski)
185102550Siwasaki
186102550SiwasakiImplemented checksum of the R/XSDT itself during Linux table
187102550Siwasakiscan (Richard Schaal)
188102550Siwasaki
189102550Siwasaki
190102550Siwasaki3) iASL compiler
191102550Siwasaki
192102550SiwasakiThe AML disassembler is integrated into the compiler.  The "-
193102550Siwasakid" option invokes the disassembler  to completely
194102550Siwasakidisassemble an input AML file, producing as output a text
195102550SiwasakiASL file with the extension ".dsl" (to avoid name collisions
196102550Siwasakiwith existing .asl source files.)  A future enhancement will
197102550Siwasakiallow the disassembler to obtain the BIOS DSDT from the
198102550Siwasakiregistry under Windows.
199102550Siwasaki
200102550SiwasakiFixed a problem with the VendorShort and VendorLong resource
201102550Siwasakidescriptors where an invalid AML sequence was created.
202102550Siwasaki
203102550SiwasakiImplemented a fix for BufferData term in the ASL parser.  It
204102550Siwasakiwas inadvertently defined twice, allowing invalid syntax to
205102550Siwasakipass and causing reduction conflicts.
206102550Siwasaki
207102550SiwasakiFixed a problem where the Ones opcode could get converted to
208102550Siwasakia value of zero if "Ones" was used where a byte, word or
209102550Siwasakidword value was expected.  The 64-bit value is now truncated
210102550Siwasakito the correct size with the correct value.
211102550Siwasaki
212102550Siwasaki
213102550Siwasaki----------------------------------------
214102550Siwasaki02 July 2002.  Summary of changes for this release.
215102550Siwasaki
216102550Siwasaki
217102550Siwasaki1) ACPI CA Core Subsystem Version 20020702:
218102550Siwasaki
219102550SiwasakiThe Table Manager code has been restructured to add several
220102550Siwasakinew features.  Tables that are not required by the core
221102550Siwasakisubsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
222102550Siwasakino longer validated in any way and are returned from
223102550SiwasakiAcpiGetFirmwareTable if requested.  The AcpiOsTableOverride
224102550Siwasakiinterface is now called for each table that is loaded by the
225102550Siwasakisubsystem in order to allow the host to override any table
226102550Siwasakiit chooses.  Previously, only the DSDT could be overridden.
227102550SiwasakiAdded one new files, tbrsdt.c and tbgetall.c.
228102550Siwasaki
229102550SiwasakiFixed a problem with the conversion of internal package
230102550Siwasakiobjects to external objects (when a package is returned from
231102550Siwasakia control method.)  The return buffer length was set to zero
232102550Siwasakiinstead of the proper length of the package object.
233102550Siwasaki
234102550SiwasakiFixed a reported problem with the use of the RefOf and
235102550SiwasakiDeRefOf operators when passing reference arguments to
236102550Siwasakicontrol methods.  A new type of Reference object is used
237102550Siwasakiinternally for references produced by the RefOf operator.
238102550Siwasaki
239102550SiwasakiAdded additional error messages in the Resource Manager to
240102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource
241102550Siwasakiparsing.
242102550Siwasaki
243102550SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable
244102550Siwasakia finer granularity initialization sequence.  These two
245102550Siwasakicalls should be called in this order: AcpiEnableSubsystem
246102550Siwasaki(flags), AcpiInitializeObjects (flags).  The flags parameter
247102550Siwasakiremains the same.
248102550Siwasaki
249102550Siwasaki
250102550Siwasaki2) Linux
251102550Siwasaki
252102550SiwasakiUpdated the ACPI utilities module to understand the new
253102550Siwasakistyle of fully resolved package objects that are now
254102550Siwasakireturned from the core subsystem.  This eliminates errors of
255102550Siwasakithe form:
256102550Siwasaki
257102550Siwasaki    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
258102550Siwasaki    acpi_utils-0430 [145] acpi_evaluate_reference:
259102550Siwasaki        Invalid element in package (not a device reference)
260102550Siwasaki
261102550SiwasakiThe method evaluation utility uses the new buffer allocation
262102550Siwasakischeme instead of calling AcpiEvaluate Object twice.
263102550Siwasaki
264102550SiwasakiAdded support for ECDT. This allows the use of the Embedded
265102550SiwasakiController before the namespace has been fully initialized,
266102550Siwasakiwhich is necessary for ACPI 2.0 support, and for some
267102550Siwasakilaptops to initialize properly. (Laptops using ECDT are
268102550Siwasakistill rare, so only limited testing was performed of the
269102550Siwasakiadded functionality.)
270102550Siwasaki
271102550SiwasakiFixed memory leaks in the EC driver.
272102550Siwasaki
273102550SiwasakiEliminated a brittle code structure in acpi_bus_init().
274102550Siwasaki
275102550SiwasakiEliminated the acpi_evaluate() helper function in utils.c.
276102550SiwasakiIt is no longer needed since acpi_evaluate_object can
277102550Siwasakioptionally allocate memory for the return object.
278102550Siwasaki
279102550SiwasakiImplemented fix for keyboard hang when getting battery
280102550Siwasakireadings on some systems (Stephen White)
281102550Siwasaki
282102550SiwasakiPCI IRQ routing update (Dominik Brodowski)
283102550Siwasaki
284102550SiwasakiFix an ifdef to allow compilation on UP with LAPIC but no
285102550SiwasakiIOAPIC support
286102550Siwasaki
287102550Siwasaki----------------------------------------
288102550Siwasaki11 June 2002.  Summary of changes for this release.
289102550Siwasaki
290102550Siwasaki
291102550Siwasaki1) ACPI CA Core Subsystem Version 20020611:
292102550Siwasaki
293102550SiwasakiFixed a reported problem where constants such as Zero and
294102550SiwasakiOne appearing within _PRT packages were not handled
295102550Siwasakicorrectly within the resource manager code.  Originally
296102550Siwasakireported against the ASL compiler because the code generator
297102550Siwasakinow optimizes integers to their minimal AML representation
298102550Siwasaki(i.e. AML constants if possible.)  The _PRT code now handles
299102550Siwasakiall AML constant opcodes correctly (Zero, One, Ones,
300102550SiwasakiRevision).
301102550Siwasaki
302102550SiwasakiFixed a problem with the Concatenate operator in the AML
303102550Siwasakiinterpreter where a buffer result object was incorrectly
304102550Siwasakimarked as not fully evaluated, causing a run-time error of
305102550SiwasakiAE_AML_INTERNAL.
306102550Siwasaki
307102550SiwasakiAll package sub-objects are now fully resolved before they
308102550Siwasakiare returned from the external ACPI interfaces.  This means
309102550Siwasakithat name strings are resolved to object handles, and
310102550Siwasakiconstant operators (Zero, One, Ones, Revision) are resolved
311102550Siwasakito Integers.
312102550Siwasaki
313102550SiwasakiImplemented immediate resolution of the AML Constant opcodes
314102550Siwasaki(Zero, One, Ones, Revision) to Integer objects upon
315102550Siwasakidetection within the AML stream. This has simplified and
316102550Siwasakireduced the generated code size of the subsystem by
317102550Siwasakieliminating about 10 switch statements for these constants
318102550Siwasaki(which previously were contained in Reference objects.)  The
319102550Siwasakicomplicating issues are that the Zero opcode is used as a
320102550Siwasaki"placeholder" for unspecified optional target operands and
321102550Siwasakistores to constants are defined to be no-ops.
322102550Siwasaki
323102550SiwasakiCode and Data Size: Current core subsystem library sizes are
324102550Siwasakishown below. These are the code and data sizes for the
325102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
326102550Siwasakicompiler, and these values do not include any ACPI driver or
327102550SiwasakiOSPM code.  The debug version of the code includes the debug
328102550Siwasakioutput trace mechanism and has a larger code and data size.
329102550SiwasakiNote that these values will vary depending on the efficiency
330102550Siwasakiof the compiler and the compiler options used during
331102550Siwasakigeneration.
332102550Siwasaki
333102550Siwasaki  Previous Release
334102550Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K
335102550SiwasakiTotal
336102550Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K
337102550SiwasakiTotal
338102550Siwasaki  Current Release:
339102550Siwasaki    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K
340102550SiwasakiTotal
341102550Siwasaki    Debug Version:     142.9K Code,  58.7K Data,  201.6K
342102550SiwasakiTotal
343102550Siwasaki
344102550Siwasaki
345102550Siwasaki2) Linux
346102550Siwasaki
347102550SiwasakiAdded preliminary support for obtaining _TRA data for PCI
348102550Siwasakiroot bridges (Bjorn Helgaas).
349102550Siwasaki
350102550Siwasaki
351102550Siwasaki3) iASL Compiler Version X2046:
352102550Siwasaki
353102550SiwasakiFixed a problem where the "_DDN" reserved name was defined
354102550Siwasakito be a control method with one argument.  There are no
355102550Siwasakiarguments, and _DDN does not have to be a control method.
356102550Siwasaki
357102550SiwasakiFixed a problem with the Linux version of the compiler where
358102550Siwasakithe source lines printed with error messages were the wrong
359102550Siwasakilines.  This turned out to be the "LF versus CR/LF"
360102550Siwasakidifference between Windows and Unix.  This appears to be the
361102550Siwasakilongstanding issue concerning listing output and error
362102550Siwasakimessages.
363102550Siwasaki
364102550SiwasakiFixed a problem with the Linux version of compiler where
365102550Siwasakiopcode names within error messages were wrong.  This was
366102550Siwasakicaused by a slight difference in the output of the Flex tool
367102550Siwasakion Linux versus Windows.
368102550Siwasaki
369102550SiwasakiFixed a problem with the Linux compiler where the hex output
370102550Siwasakifiles contained some garbage data caused by an internal
371102550Siwasakibuffer overrun.
372102550Siwasaki
373102550Siwasaki
374102550Siwasaki----------------------------------------
375102550Siwasaki17 May 2002.  Summary of changes for this release.
376102550Siwasaki
377102550Siwasaki
378102550Siwasaki1) ACPI CA Core Subsystem Version 20020517:
379102550Siwasaki
380102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP
381102550SiwasakiOmniBook where the FADT revision number and the table size
382102550Siwasakiare inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table
383102550Siwasakisize).  The new behavior is to fallback to using only the
384102550SiwasakiACPI 1.0 fields of the FADT if the table is too small to be
385102550Siwasakia ACPI 2.0 table as claimed by the revision number.
386102550SiwasakiAlthough this is a BIOS bug, this is a case where the
387102550Siwasakiworkaround is simple enough and with no side effects, so it
388102550Siwasakiseemed prudent to add it.  A warning message is issued,
389102550Siwasakihowever.
390102550Siwasaki
391102550SiwasakiImplemented minimum size checks for the fixed-length ACPI
392102550Siwasakitables -- the FADT and FACS, as well as consistency checks
393102550Siwasakibetween the revision number and the table size.
394102550Siwasaki
395102550SiwasakiFixed a reported problem in the table override support where
396102550Siwasakithe new table pointer was incorrectly treated as a physical
397102550Siwasakiaddress instead of a logical address.
398102550Siwasaki
399102550SiwasakiEliminated the use of the AE_AML_ERROR exception and
400102550Siwasakireplaced it with more descriptive codes.
401102550Siwasaki
402102550SiwasakiFixed a problem where an exception would occur if an ASL
403102550SiwasakiField was defined with no named Field Units underneath it
404102550Siwasaki(used by some index fields).
405102550Siwasaki
406102550SiwasakiCode and Data Size: Current core subsystem library sizes are
407102550Siwasakishown below.  These are the code and data sizes for the
408102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
409102550Siwasakicompiler, and these values do not include any ACPI driver or
410102550SiwasakiOSPM code.  The debug version of the code includes the debug
411102550Siwasakioutput trace mechanism and has a larger code and data size.
412102550SiwasakiNote that these values will vary depending on the efficiency
413102550Siwasakiof the compiler and the compiler options used during
414102550Siwasakigeneration.
415102550Siwasaki
416102550Siwasaki  Previous Release
417102550Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K
418102550SiwasakiTotal
419102550Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K
420102550SiwasakiTotal
421102550Siwasaki  Current Release:
422102550Siwasaki    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K
423102550SiwasakiTotal
424102550Siwasaki    Debug Version:     143.8K Code,  58.8K Data,  202.6K
425102550SiwasakiTotal
426102550Siwasaki
427102550Siwasaki
428102550Siwasaki
429102550Siwasaki2) Linux
430102550Siwasaki
431102550SiwasakiMuch work done on ACPI init (MADT and PCI IRQ routing
432102550Siwasakisupport). (Paul D. and Dominik Brodowski)
433102550Siwasaki
434102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch)
435102550Siwasaki
436102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
437102550Siwasaki
438102550SiwasakiFix "MHz" typo (Dominik Brodowski)
439102550Siwasaki
440102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski)
441102550Siwasaki
442102550SiwasakiPreclude multiple button proc entries (Eric Brunet)
443102550Siwasaki
444102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h
445102550Siwasaki
446102550Siwasaki3) iASL Compiler Version X2044:
447102550Siwasaki
448102550SiwasakiImplemented error checking for the string used in the EISAID
449102550Siwasakimacro (Usually used in the definition of the _HID object.)
450102550SiwasakiThe code now strictly enforces the PnP format - exactly 7
451102550Siwasakicharacters, 3 uppercase letters and 4 hex digits.
452102550Siwasaki
453102550SiwasakiIf a raw string is used in the definition of the _HID object
454102550Siwasaki(instead of the EISAID macro), the string must contain all
455102550Siwasakialphanumeric characters (e.g., "*PNP0011" is not allowed
456102550Siwasakibecause of the asterisk.)
457102550Siwasaki
458102550SiwasakiImplemented checking for invalid use of ACPI reserved names
459102550Siwasakifor most of the name creation operators (Name, Device,
460102550SiwasakiEvent, Mutex, OperationRegion, PowerResource, Processor, and
461102550SiwasakiThermalZone.)  Previously, this check was only performed for
462102550Siwasakicontrol methods.
463102550Siwasaki
464102550SiwasakiImplemented an additional check on the Name operator to emit
465102550Siwasakian error if a reserved name that must be implemented in ASL
466102550Siwasakias a control method is used.  We know that a reserved name
467102550Siwasakimust be a method if it is defined with input arguments.
468102550Siwasaki
469102550SiwasakiThe warning emitted when a namespace object reference is not
470102550Siwasakifound during the cross reference phase has been changed into
471102550Siwasakian error.  The "External" directive should be used for names
472102550Siwasakidefined in other modules.
473102550Siwasaki
474102550Siwasaki
475102550Siwasaki4) Tools and Utilities
476102550Siwasaki
477102550SiwasakiThe 16-bit tools (adump16 and aexec16) have been regenerated
478102550Siwasakiand tested.
479102550Siwasaki
480102550SiwasakiFixed a problem with the output of both acpidump and adump16
481102550Siwasakiwhere the indentation of closing parentheses and brackets
482102550Siwasakiwas not aligned properly with the parent block.
483102550Siwasaki
484102550Siwasaki
485102550Siwasaki----------------------------------------
486102550Siwasaki03 May 2002.  Summary of changes for this release.
487102550Siwasaki
488102550Siwasaki
489102550Siwasaki1) ACPI CA Core Subsystem Version 20020503:
490102550Siwasaki
491102550SiwasakiAdded support a new OSL interface that allows the host
492102550Siwasakioperating system software to override the DSDT found in the
493102550Siwasakifirmware - AcpiOsTableOverride.  With this interface, the
494102550SiwasakiOSL can examine the version of the firmware DSDT and replace
495102550Siwasakiit with a different one if desired.
496102550Siwasaki
497102550SiwasakiAdded new external interfaces for accessing ACPI registers
498102550Siwasakifrom device drivers and other system software -
499102550SiwasakiAcpiGetRegister and AcpiSetRegister.  This was simply an
500102550Siwasakiexternalization of the existing AcpiHwBitRegister
501102550Siwasakiinterfaces.
502102550Siwasaki
503102550SiwasakiFixed a regression introduced in the previous build where
504102550Siwasakithe ASL/AML CreateField operator always returned an error,
505102550Siwasaki"destination must be a NS Node".
506102550Siwasaki
507102550SiwasakiExtended the maximum time (before failure) to successfully
508102550Siwasakienable ACPI mode to 3 seconds.
509102550Siwasaki
510102550SiwasakiCode and Data Size: Current core subsystem library sizes are
511102550Siwasakishown below.  These are the code and data sizes for the
512102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
513102550Siwasakicompiler, and these values do not include any ACPI driver or
514102550SiwasakiOSPM code.  The debug version of the code includes the debug
515102550Siwasakioutput trace mechanism and has a larger code and data size.
516102550SiwasakiNote that these values will vary depending on the efficiency
517102550Siwasakiof the compiler and the compiler options used during
518102550Siwasakigeneration.
519102550Siwasaki
520102550Siwasaki  Previous Release
521102550Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K
522102550SiwasakiTotal
523102550Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K
524102550SiwasakiTotal
525102550Siwasaki  Current Release:
526102550Siwasaki    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K
527102550SiwasakiTotal
528102550Siwasaki    Debug Version:     142.9K Code,  58.4K Data,  201.3K
529102550SiwasakiTotal
530102550Siwasaki
531102550Siwasaki
532102550Siwasaki2) Linux
533102550Siwasaki
534102550SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and
535102550Siwasaki$PIR-free. While 3 out of 4 of our in-house systems work
536102550Siwasakifine, the last one still hangs when testing the LAPIC timer.
537102550Siwasaki
538102550SiwasakiRenamed many files in 2.5 kernel release to omit "acpi_"
539102550Siwasakifrom the name.
540102550Siwasaki
541102550SiwasakiAdded warning on boot for Presario 711FR.
542102550Siwasaki
543102550SiwasakiSleep improvements (Pavel Machek)
544102550Siwasaki
545102550SiwasakiACPI can now be built without CONFIG_PCI enabled.
546102550Siwasaki
547102550SiwasakiIA64: Fixed memory map functions (JI Lee)
548102550Siwasaki
549102550Siwasaki
550102550Siwasaki3) iASL Compiler Version X2043:
551102550Siwasaki
552102550SiwasakiAdded support to allow the compiler to be integrated into
553102550Siwasakithe MS VC++ development environment for one-button
554102550Siwasakicompilation of single files or entire projects -- with error-
555102550Siwasakito-source-line mapping.
556102550Siwasaki
557102550SiwasakiImplemented support for compile-time constant folding for
558102550Siwasakithe Type3, Type4, and Type5 opcodes first defined in the
559102550SiwasakiACPI 2.0 specification.  This allows the ASL writer to use
560102550Siwasakiexpressions instead of Integer/Buffer/String constants in
561102550Siwasakiterms that must evaluate to constants at compile time and
562102550Siwasakiwill also simplify the emitted AML in any such sub-
563102550Siwasakiexpressions that can be folded (evaluated at compile-time.)
564102550SiwasakiThis increases the size of the compiler significantly
565102550Siwasakibecause a portion of the ACPI CA AML interpreter is included
566102550Siwasakiwithin the compiler in order to pre-evaluate constant
567102550Siwasakiexpressions.
568102550Siwasaki
569102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the
570102550Siwasakicompiler to fault.  (This macro is used in conjunction with
571102550Siwasakithe _STR reserved name.)
572102550Siwasaki
573102550SiwasakiImplemented an AML opcode optimization to use the Zero, One,
574102550Siwasakiand Ones opcodes where possible to further reduce the size
575102550Siwasakiof integer constants and thus reduce the overall size of the
576102550Siwasakigenerated AML code.
577102550Siwasaki
578102550SiwasakiImplemented error checking for new reserved terms for ACPI
579102550Siwasakiversion 2.0A.
580102550Siwasaki
581102550SiwasakiImplemented the -qr option to display the current list of
582102550SiwasakiACPI reserved names known to the compiler.
583102550Siwasaki
584102550SiwasakiImplemented the -qc option to display the current list of
585102550SiwasakiASL operators that are allowed within constant expressions
586102550Siwasakiand can therefore be folded at compile time if the operands
587102550Siwasakiare constants.
588102550Siwasaki
589102550Siwasaki
590102550Siwasaki4) Documentation
591102550Siwasaki
592102550SiwasakiUpdated the Programmer's Reference for new interfaces, data
593102550Siwasakitypes, and memory allocation model options.
594102550Siwasaki
595102550SiwasakiUpdated the iASL Compiler User Reference to apply new format
596102550Siwasakiand add information about new features and options.
597102550Siwasaki
598102550Siwasaki----------------------------------------
599102550Siwasaki19 April 2002.  Summary of changes for this release.
600102550Siwasaki
601102550Siwasaki1) ACPI CA Core Subsystem Version 20020419:
602102550Siwasaki
603102550SiwasakiThe source code base for the Core Subsystem has been
604102550Siwasakicompletely cleaned with PC-lint (FlexLint) for both 32-bit
605102550Siwasakiand 64-bit versions.  The Lint option files used are
606102550Siwasakiincluded in the /acpi/generate/lint directory.
607102550Siwasaki
608102550SiwasakiImplemented enhanced status/error checking across the entire
609102550SiwasakiHardware manager subsystem.  Any hardware errors (reported
610102550Siwasakifrom the OSL) are now bubbled up and will abort a running
611102550Siwasakicontrol method.
612102550Siwasaki
613102550SiwasakiFixed a problem where the per-ACPI-table integer width (32
614102550Siwasakior 64) was stored only with control method nodes, causing a
615102550Siwasakifault when non-control method code was executed during table
616102550Siwasakiloading.  The solution implemented uses a global variable to
617102550Siwasakiindicate table width across the entire ACPI subsystem.
618102550SiwasakiTherefore, ACPI CA does not support mixed integer widths
619102550Siwasakiacross different ACPI tables (DSDT, SSDT).
620102550Siwasaki
621102550SiwasakiFixed a problem where NULL extended fields (X fields) in an
622102550SiwasakiACPI 2.0 ACPI FADT caused the table load to fail.  Although
623102550Siwasakithe existing ACPI specification is a bit fuzzy on this
624102550Siwasakitopic, the new behavior is to fall back on a ACPI 1.0 field
625102550Siwasakiif the corresponding ACPI 2.0 X field is zero (even though
626102550Siwasakithe table revision indicates a full ACPI 2.0 table.)  The
627102550SiwasakiACPI specification will be updated to clarify this issue.
628102550Siwasaki
629102550SiwasakiFixed a problem with the SystemMemory operation region
630102550Siwasakihandler where memory was always accessed byte-wise even if
631102550Siwasakithe AML-specified access width was larger than a byte.  This
632102550Siwasakicaused problems on systems with memory-mapped I/O.  Memory
633102550Siwasakiis now accessed with the width specified.  On systems that
634102550Siwasakido not support non-aligned transfers, a check is made to
635102550Siwasakiguarantee proper address alignment before proceeding in
636102550Siwasakiorder to avoid an AML-caused alignment fault within the
637102550Siwasakikernel.
638102550Siwasaki
639102550SiwasakiFixed a problem with the ExtendedIrq resource where only one
640102550Siwasakibyte of the 4-byte Irq field was extracted.
641102550Siwasaki
642102550SiwasakiFixed the AcpiExDigitsNeeded() procedure to support _UID.
643102550SiwasakiThis function was out of date and required a rewrite.
644102550Siwasaki
645102550SiwasakiCode and Data Size: Current core subsystem library sizes are
646102550Siwasakishown below.  These are the code and data sizes for the
647102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
648102550Siwasakicompiler, and these values do not include any ACPI driver or
649102550SiwasakiOSPM code.  The debug version of the code includes the debug
650102550Siwasakioutput trace mechanism and has a larger code and data size.
651102550SiwasakiNote that these values will vary depending on the efficiency
652102550Siwasakiof the compiler and the compiler options used during
653102550Siwasakigeneration.
654102550Siwasaki
655102550Siwasaki  Previous Release
656102550Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K
657102550SiwasakiTotal
658102550Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K
659102550SiwasakiTotal
660102550Siwasaki  Current Release:
661102550Siwasaki    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K
662102550SiwasakiTotal
663102550Siwasaki    Debug Version:     142.4K Code,  58.3K Data,  200.7K
664102550SiwasakiTotal
665102550Siwasaki
666102550Siwasaki
667102550Siwasaki2) Linux
668102550Siwasaki
669102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski)
670102550Siwasaki
671102550Siwasaki
672102550Siwasaki3) iASL Compiler Version X2042:
673102550Siwasaki
674102550SiwasakiImplemented an additional compile-time error check for a
675102550Siwasakifield unit whose size + minimum access width would cause a
676102550Siwasakirun-time access beyond the end-of-region.  Previously, only
677102550Siwasakithe field size itself was checked.
678102550Siwasaki
679102550SiwasakiThe Core subsystem and iASL compiler now share a common
680102550Siwasakiparse object in preparation for compile-time evaluation of
681102550Siwasakithe type 3/4/5 ASL operators.
682102550Siwasaki
683102550Siwasaki
684102550Siwasaki----------------------------------------
685102550SiwasakiSummary of changes for this release: 03_29_02
686102550Siwasaki
687102550Siwasaki1) ACPI CA Core Subsystem Version 20020329:
688102550Siwasaki
689102550SiwasakiImplemented support for late evaluation of TermArg operands
690102550Siwasakito Buffer and Package objects.  This allows complex
691102550Siwasakiexpressions to be used in the declarations of these object
692102550Siwasakitypes.
693102550Siwasaki
694102550SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields.
695102550SiwasakiIn ACPI 1.0, if the field was larger than 32 bits, it was
696102550Siwasakireturned as a buffer � otherwise it was returned as an
697102550Siwasakiinteger.  In ACPI 2.0, the field is returned as a buffer
698102550Siwasakionly if the field is larger than 64 bits.  The TableRevision
699102550Siwasakiis now considered when making this conversion to avoid
700102550Siwasakiincompatibility with existing ASL code.
701102550Siwasaki
702102550SiwasakiImplemented logical addressing for AcpiOsGetRootPointer.
703102550SiwasakiThis allows an RSDP with either a logical or physical
704102550Siwasakiaddress.  With this support, the host OS can now override
705102550Siwasakiall ACPI tables with one logical RSDP.  Includes
706102550Siwasakiimplementation of  �typed� pointer support to allow a common
707102550Siwasakidata type for both physical and logical pointers internally.
708102550SiwasakiThis required a change to the AcpiOsGetRootPointer
709102550Siwasakiinterface.
710102550Siwasaki
711102550SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures
712102550Siwasakifor all GPE, Fixed Event, and PM Timer I/O.  This allows the
713102550Siwasakiuse of memory mapped I/O for these ACPI features.
714102550Siwasaki
715102550SiwasakiInitialization now ignores not only non-required tables (All
716102550Siwasakitables other than the FADT, FACS, DSDT, and SSDTs), but also
717102550Siwasakidoes not validate the table headers of unrecognized tables.
718102550Siwasaki
719102550SiwasakiFixed a problem where a notify handler could only be
720102550Siwasakiinstalled/removed on an object of type Device.  All "notify"
721102550Siwasakiobjects are now supported -- Devices, Processor, Power, and
722102550SiwasakiThermal.
723102550Siwasaki
724102550SiwasakiRemoved most verbosity from the ACPI_DB_INFO debug level.
725102550SiwasakiOnly critical information is returned when this debug level
726102550Siwasakiis enabled.
727102550Siwasaki
728102550SiwasakiCode and Data Size: Current core subsystem library sizes are
729102550Siwasakishown below.  These are the code and data sizes for the
730102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
731102550Siwasakicompiler, and these values do not include any ACPI driver or
732102550SiwasakiOSPM code.  The debug version of the code includes the debug
733102550Siwasakioutput trace mechanism and has a larger code and data size.
734102550SiwasakiNote that these values will vary depending on the efficiency
735102550Siwasakiof the compiler and the compiler options used during
736102550Siwasakigeneration.
737102550Siwasaki
738102550Siwasaki  Previous Release
739102550Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K
740102550SiwasakiTotal
741102550Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K
742102550SiwasakiTotal
743102550Siwasaki  Current Release:
744102550Siwasaki    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K
745102550SiwasakiTotal
746102550Siwasaki    Debug Version:     139.8K Code,  57.4K Data,  197.2K
747102550SiwasakiTotal
748102550Siwasaki
749102550Siwasaki
750102550Siwasaki2) Linux:
751102550Siwasaki
752102550SiwasakiThe processor driver (acpi_processor.c) now fully supports
753102550SiwasakiACPI 2.0-based processor performance control (e.g. Intel(R)
754102550SiwasakiSpeedStep(TM) technology) Note that older laptops that only
755102550Siwasakihave the Intel "applet" interface are not supported through
756102550Siwasakithis.  The 'limit' and 'performance' interface (/proc) are
757102550Siwasakifully functional.  [Note that basic policy for controlling
758102550Siwasakiperformance state transitions will be included in the next
759102550Siwasakiversion of ospmd.]  The idle handler was modified to more
760102550Siwasakiaggressively use C2, and PIIX4 errata handling underwent a
761102550Siwasakicomplete overhaul (big thanks to Dominik Brodowski).
762102550Siwasaki
763102550SiwasakiAdded support for ACPI-PCI device binding (acpi_pci_root.c).
764102550Siwasaki_ADR-based devices in the ACPI namespace are now dynamically
765102550Siwasakibound (associated) with their PCI counterparts (e.g. PCI1-
766102550Siwasaki>01:00.0).  This allows, among other things, ACPI to resolve
767102550Siwasakibus numbers for subordinate PCI bridges.
768102550Siwasaki
769102550SiwasakiEnhanced PCI IRQ routing to get the proper bus number for
770102550Siwasaki_PRT entries defined underneath PCI bridges.
771102550Siwasaki
772102550SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value
773102550Siwasakifor PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ
774102550Siwasakirouting.
775102550Siwasaki
776102550SiwasakiIn the process of adding full MADT support (e.g. IOAPIC) for
777102550SiwasakiIA32 (acpi.c, mpparse.c) -- stay tuned.
778102550Siwasaki
779102550SiwasakiAdded back visual differentiation between fixed-feature and
780102550Siwasakicontrol-method buttons in dmesg.  Buttons are also subtyped
781102550Siwasaki(e.g. button/power/PWRF) to simplify button identification.
782102550Siwasaki
783102550SiwasakiWe no longer use -Wno-unused when compiling debug. Please
784102550Siwasakiignore any "_THIS_MODULE defined but not used" messages.
785102550Siwasaki
786102550SiwasakiCan now shut down the system using "magic sysrq" key.
787102550Siwasaki
788102550Siwasaki
789102550Siwasaki3) iASL Compiler version 2041:
790102550Siwasaki
791102550SiwasakiFixed a problem where conversion errors for
792102550Siwasakihex/octal/decimal constants were not reported.
793102550Siwasaki
794102550SiwasakiImplemented a fix for the General Register template Address
795102550Siwasakifield.  This field was 8 bits when it should be 64.
796102550Siwasaki
797102550SiwasakiFixed a problem where errors/warnings were no longer being
798102550Siwasakiemitted within the listing output file.
799102550Siwasaki
800102550SiwasakiImplemented the ACPI 2.0A restriction on ACPI Table
801102550SiwasakiSignatures to exactly 4 characters, alphanumeric only.
802102550Siwasaki
803102550Siwasaki
804102550Siwasaki
805102550Siwasaki
806102550Siwasaki----------------------------------------
807102550SiwasakiSummary of changes for this release: 03_08_02
808102550Siwasaki
809102550Siwasaki
810102550Siwasaki1) ACPI CA Core Subsystem Version 20020308:
811102550Siwasaki
812102550SiwasakiFixed a problem with AML Fields where the use of the
813102550Siwasaki"AccessAny" keyword could cause an interpreter error due to
814102550Siwasakiattempting to read or write beyond the end of the parent
815102550SiwasakiOperation Region.
816102550Siwasaki
817102550SiwasakiFixed a problem in the SystemMemory Operation Region handler
818102550Siwasakiwhere an attempt was made to map memory beyond the end of
819102550Siwasakithe region.  This was the root cause of the "AE_ERROR" and
820102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems.
821102550Siwasaki
822102550SiwasakiFixed a problem where the interpreter/namespace "search to
823102550Siwasakiroot" algorithm was not functioning for some object types.
824102550SiwasakiRelaxed the internal restriction on the search to allow
825102550Siwasakiupsearches for all external object types as well as most
826102550Siwasakiinternal types.
827102550Siwasaki
828102550Siwasaki
829102550Siwasaki2) Linux:
830102550Siwasaki
831102550SiwasakiWe now use safe_halt() macro versus individual calls to sti
832102550Siwasaki| hlt.
833102550Siwasaki
834102550SiwasakiWriting to the processor limit interface should now work.
835102550Siwasaki"echo 1" will increase the limit, 2 will decrease, and 0
836102550Siwasakiwill reset to the default.
837102550Siwasaki
838102550Siwasaki
839102550Siwasaki3) ASL compiler:
840102550Siwasaki
841102550SiwasakiFixed segfault on Linux version.
842102550Siwasaki
843102550Siwasaki
844102550Siwasaki----------------------------------------
845102550SiwasakiSummary of changes for this release: 02_25_02
846102550Siwasaki
847102550Siwasaki1) ACPI CA Core Subsystem:
848102550Siwasaki
849102550Siwasaki
850102550SiwasakiFixed a problem where the GPE bit masks were not initialized
851102550Siwasakiproperly, causing erratic GPE behavior.
852102550Siwasaki
853102550SiwasakiImplemented limited support for multiple calling
854102550Siwasakiconventions.  The code can be generated with either the VPL
855102550Siwasaki(variable parameter list, or "C") convention, or the FPL
856102550Siwasaki(fixed parameter list, or "Pascal") convention.  The core
857102550Siwasakisubsystem is about 3.4% smaller when generated with FPL.
858102550Siwasaki
859102550Siwasaki
860102550Siwasaki2) Linux
861102550Siwasaki
862102550SiwasakiRe-add some /proc/acpi/event functionality that was lost
863102550Siwasakiduring the rewrite
864102550Siwasaki
865102550SiwasakiResolved issue with /proc events for fixed-feature buttons
866102550Siwasakishowing up as the system device.
867102550Siwasaki
868102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum
869102550Siwasakivalues.
870102550Siwasaki
871102550SiwasakiReplaced AE_ERRORs in acpi_osl.c with more specific error
872102550Siwasakicodes.
873102550Siwasaki
874102550SiwasakiChanged ACPI PRT option from "pci=noacpi-routing" to
875102550Siwasaki"pci=noacpi"
876102550Siwasaki
877102550SiwasakiFixed limit interface & usage to fix bugs with passive
878102550Siwasakicooling hysterisis.
879102550Siwasaki
880102550SiwasakiRestructured PRT support.
881102550Siwasaki
882102550Siwasaki
883102550Siwasaki----------------------------------------
884102550SiwasakiSummary of changes for this label: 02_14_02
885102550Siwasaki
886102550Siwasaki
887102550Siwasaki1) ACPI CA Core Subsystem:
888102550Siwasaki
889102550SiwasakiImplemented support in AcpiLoadTable to allow loading of
890102550SiwasakiFACS and FADT tables.
891102550Siwasaki
892102550SiwasakiSuport for the now-obsolete interim 0.71 64-bit ACPI tables
893102550Siwasakihas been removed.  All 64-bit platforms should be migrated
894102550Siwasakito the ACPI 2.0 tables.  The actbl71.h header has been
895102550Siwasakiremoved from the source tree.
896102550Siwasaki
897102550SiwasakiAll C macros defined within the subsystem have been prefixed
898102550Siwasakiwith "ACPI_" to avoid collision with other system include
899102550Siwasakifiles.
900102550Siwasaki
901102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces,
902102550Siwasakisince it is never used and causes lint warnings for ignoring
903102550Siwasakithe return value.
904102550Siwasaki
905102550SiwasakiAdded error checking to all internal mutex acquire and
906102550Siwasakirelease calls.  Although a failure from one of these
907102550Siwasakiinterfaces is probably a fatal system error, these checks
908102550Siwasakiwill cause the immediate abort of the currently executing
909102550Siwasakimethod or interface.
910102550Siwasaki
911102550SiwasakiFixed a problem where the AcpiSetCurrentResources interface
912102550Siwasakicould fault.  This was a side effect of the deployment of
913102550Siwasakithe new memory allocation model.
914102550Siwasaki
915102550SiwasakiFixed a couple of problems with the Global Lock support
916102550Siwasakiintroduced in the last major build.  The "common" (1.0/2.0)
917102550Siwasakiinternal FACS was being overwritten with the FACS signature
918102550Siwasakiand clobbering the Global Lock pointer.  Also, the actual
919102550Siwasakifirmware FACS was being unmapped after construction of the
920102550Siwasaki"common" FACS, preventing access to the actual Global Lock
921102550Siwasakifield within it.  The "common" internal FACS is no longer
922102550Siwasakiinstalled as an actual ACPI table; it is used simply as a
923102550Siwasakiglobal.
924102550Siwasaki
925102550SiwasakiCode and Data Size: Current core subsystem library sizes are
926102550Siwasakishown below.  These are the code and data sizes for the
927102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
928102550Siwasakicompiler, and these values do not include any ACPI driver or
929102550SiwasakiOSPM code.  The debug version of the code includes the debug
930102550Siwasakioutput trace mechanism and has a larger code and data size.
931102550SiwasakiNote that these values will vary depending on the efficiency
932102550Siwasakiof the compiler and the compiler options used during
933102550Siwasakigeneration.
934102550Siwasaki
935102550Siwasaki  Previous Release (02_07_01)
936102550Siwasaki    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
937102550SiwasakiTotal
938102550Siwasaki    Debug Version:     136.9K Code,  56.4K Data,  193.3K
939102550SiwasakiTotal
940102550Siwasaki  Current Release:
941102550Siwasaki    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K
942102550SiwasakiTotal
943102550Siwasaki    Debug Version:     138.0K Code,  56.6K Data,  194.6K
944102550SiwasakiTotal
945102550Siwasaki
946102550Siwasaki
947102550Siwasaki2) Linux
948102550Siwasaki
949102550SiwasakiUpdated Linux-specific code for core macro and OSL interface
950102550Siwasakichanges described above.
951102550Siwasaki
952102550SiwasakiImproved /proc/acpi/event. It now can be opened only once
953102550Siwasakiand has proper poll functionality.
954102550Siwasaki
955102550SiwasakiFixed and restructured power management (acpi_bus).
956102550Siwasaki
957102550SiwasakiOnly create /proc "view by type" when devices of that class
958102550Siwasakiexist.
959102550Siwasaki
960102550SiwasakiFixed "charging/discharging" bug (and others) in
961102550Siwasakiacpi_battery.
962102550Siwasaki
963102550SiwasakiImproved thermal zone code.
964102550Siwasaki
965102550Siwasaki
966102550Siwasaki3) ASL Compiler, version X2039:
967102550Siwasaki
968102550SiwasakiImplemented the new compiler restriction on ASL String
969102550Siwasakihex/octal escapes to non-null, ASCII values.  An error
970102550Siwasakiresults if an invalid value is used.  (This will require an
971102550SiwasakiACPI 2.0 specification change.)
972102550Siwasaki
973102550SiwasakiAML object labels that are output to the optional C and ASM
974102550Siwasakisource are now prefixed with both the ACPI table signature
975102550Siwasakiand table ID to help guarantee uniqueness within a large
976102550SiwasakiBIOS project.
977102550Siwasaki
978102550Siwasaki
979102550Siwasaki----------------------------------------
980102550SiwasakiSummary of changes for this label: 02_01_02
981102550Siwasaki
982102550Siwasaki1) ACPI CA Core Subsystem:
983102550Siwasaki
984102550SiwasakiACPI 2.0 support is complete in the entire Core Subsystem
985102550Siwasakiand the ASL compiler. All new ACPI 2.0 operators are
986102550Siwasakiimplemented and all other changes for ACPI 2.0 support are
987102550Siwasakicomplete.  With simultaneous code and data optimizations
988102550Siwasakithroughout the subsystem, ACPI 2.0 support has been
989102550Siwasakiimplemented with almost no additional cost in terms of code
990102550Siwasakiand data size.
991102550Siwasaki
992102550SiwasakiImplemented a new mechanism for allocation of return
993102550Siwasakibuffers.  If the buffer length is set to
994102550SiwasakiACPI_ALLOCATE_BUFFER, the buffer will be allocated on behalf
995102550Siwasakiof the caller.  Consolidated all return buffer validation
996102550Siwasakiand allocation to a common procedure.  Return buffers will
997102550Siwasakibe allocated via the primary OSL allocation interface since
998102550Siwasakiit appears that a separate pool is not needed by most users.
999102550SiwasakiIf a separate pool is required for these buffers, the caller
1000102550Siwasakican still use the original mechanism and pre-allocate the
1001102550Siwasakibuffer(s).
1002102550Siwasaki
1003102550SiwasakiImplemented support for string operands within the DerefOf
1004102550Siwasakioperator.
1005102550Siwasaki
1006102550SiwasakiRestructured the Hardware and Event managers to be table
1007102550Siwasakidriven, simplifying the source code and reducing the amount
1008102550Siwasakiof generated code.
1009102550Siwasaki
1010102550SiwasakiSplit the common read/write low-level ACPI register bitfield
1011102550Siwasakiprocedure into a separate read and write, simplifying the
1012102550Siwasakicode considerably.
1013102550Siwasaki
1014102550SiwasakiObsoleted the AcpiOsCallocate OSL interface.  This interface
1015102550Siwasakiwas used only a handful of times and didn't have enough
1016102550Siwasakicritical mass for a separate interface.  Replaced with a
1017102550Siwasakicommon calloc procedure in the core.
1018102550Siwasaki
1019102550SiwasakiFixed a reported problem with the GPE number mapping
1020102550Siwasakimechanism that allows GPE1 numbers to be non-contiguous with
1021102550SiwasakiGPE0.  Reorganized the GPE information and shrunk a large
1022102550Siwasakiarray that was originally large enough to hold info for all
1023102550Siwasakipossible GPEs (256) to simply large enough to hold all GPEs
1024102550Siwasakiup to the largest GPE number on the machine.
1025102550Siwasaki
1026102550SiwasakiFixed a reported problem with resource structure alignment
1027102550Siwasakion 64-bit platforms.
1028102550Siwasaki
1029102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external
1030102550Siwasakiinterfaces to not require any flags for the common case of
1031102550Siwasakienabling/disabling a GPE.
1032102550Siwasaki
1033102550SiwasakiImplemented support to allow a "Notify" on a Processor
1034102550Siwasakiobject.
1035102550Siwasaki
1036102550SiwasakiMost TBDs in comments within the source code have been
1037102550Siwasakiresolved and eliminated.
1038102550Siwasaki
1039102550SiwasakiFixed a problem in the interpreter where a standalone parent
1040102550Siwasakiprefix (^) was not handled correctly in the interpreter and
1041102550Siwasakidebugger.
1042102550Siwasaki
1043102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code.
1044102550Siwasaki
1045102550SiwasakiImplemented Field support in the ASL Load operator.  This
1046102550Siwasakiallows a table to be loaded from a named field, in addition
1047102550Siwasakito loading a table directly from an Operation Region.
1048102550Siwasaki
1049102550SiwasakiImplemented timeout and handle support in the external
1050102550SiwasakiGlobal Lock interfaces.
1051102550Siwasaki
1052102550SiwasakiFixed a problem in the AcpiDump utility where pathnames were
1053102550Siwasakino longer being generated correctly during the dump of named
1054102550Siwasakiobjects.
1055102550Siwasaki
1056102550SiwasakiModified the AML debugger to give a full display of if/while
1057102550Siwasakipredicates instead of just one AML opcode at a time.  (The
1058102550Siwasakipredicate can have several nested ASL statements.)  The old
1059102550Siwasakimethod was confusing during single stepping.
1060102550Siwasaki
1061102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1062102550Siwasakishown below. These are the code and data sizes for the
1063102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
1064102550Siwasakicompiler, and these values do not include any ACPI driver or
1065102550SiwasakiOSPM code.  The debug version of the code includes the debug
1066102550Siwasakioutput trace mechanism and has a larger code and data size.
1067102550SiwasakiNote that these values will vary depending on the efficiency
1068102550Siwasakiof the compiler and the compiler options used during
1069102550Siwasakigeneration.
1070102550Siwasaki
1071102550Siwasaki  Previous Release (12_18_01)
1072102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1073102550SiwasakiTotal
1074102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1075102550SiwasakiTotal
1076102550Siwasaki   Current Release:
1077102550Siwasaki     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
1078102550SiwasakiTotal
1079102550Siwasaki     Debug Version:     136.9K Code,  56.4K Data,  193.3K
1080102550SiwasakiTotal
1081102550Siwasaki
1082102550Siwasaki2) Linux
1083102550Siwasaki
1084102550Siwasaki Implemented fix for PIIX reverse throttling errata
1085102550Siwasaki(Processor driver)
1086102550Siwasaki
1087102550SiwasakiAdded new Limit interface (Processor and Thermal drivers)
1088102550Siwasaki
1089102550SiwasakiNew thermal policy (Thermal driver)
1090102550Siwasaki
1091102550SiwasakiMany updates to /proc
1092102550Siwasaki
1093102550SiwasakiBattery "low" event support (Battery driver)
1094102550Siwasaki
1095102550SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root
1096102550Siwasakidrivers)
1097102550Siwasaki
1098102550SiwasakiIA32 - IA64 initialization unification, no longer
1099102550Siwasakiexperimental
1100102550Siwasaki
1101102550SiwasakiMenuconfig options redesigned
1102102550Siwasaki
1103102550Siwasaki3) ASL Compiler, version X2037:
1104102550Siwasaki
1105102550SiwasakiImplemented several new output features to simplify
1106102550Siwasakiintegration of AML code into  firmware: 1) Output the AML in
1107102550SiwasakiC source code with labels for each named ASL object.  The
1108102550Siwasakioriginal ASL source code is interleaved as C comments. 2)
1109102550SiwasakiOutput the AML in ASM source code with labels and
1110102550Siwasakiinterleaved ASL    source. 3) Output the AML in raw hex
1111102550Siwasakitable form, in either C or ASM.
1112102550Siwasaki
1113102550SiwasakiImplemented support for optional string parameters to the
1114102550SiwasakiLoadTable operator.
1115102550Siwasaki
1116102550SiwasakiCompleted support for embedded escape sequences within
1117102550Siwasakistring literals.  The compiler now supports all single
1118102550Siwasakicharacter escapes as well as the Octal and Hex escapes.
1119102550SiwasakiNote: the insertion of a null byte into a string literal
1120102550Siwasaki(via the hex/octal escape) causes the string to be
1121102550Siwasakiimmediately terminated.  A warning is issued.
1122102550Siwasaki
1123102550SiwasakiFixed a problem where incorrect AML was generated for the
1124102550Siwasakicase where an ASL namepath consists of a single parent
1125102550Siwasakiprefix (
1126102550Siwasaki
1127102550Siwasaki) with no trailing name segments.
1128102550Siwasaki
1129102550SiwasakiThe compiler has been successfully generated with a 64-bit C
1130102550Siwasakicompiler.
1131102550Siwasaki
1132102550Siwasaki
1133102550Siwasaki
1134102550Siwasaki
1135102550Siwasaki----------------------------------------
1136102550SiwasakiSummary of changes for this label: 12_18_01
1137102550Siwasaki
1138102550Siwasaki1) Linux
1139102550Siwasaki
1140102550SiwasakiEnhanced blacklist with reason and severity fields. Any
1141102550Siwasakitable's signature may now be used to identify a blacklisted
1142102550Siwasakisystem.
1143102550Siwasaki
1144102550SiwasakiCall _PIC control method to inform the firmware which
1145102550Siwasakiinterrupt model the OS is using. Turn on any disabled link
1146102550Siwasakidevices.
1147102550Siwasaki
1148102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger)
1149102550Siwasaki
1150102550Siwasaki 2) ACPI CA Core Subsystem:
1151102550Siwasaki
1152102550SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator
1153102550Siwasaki(Exit from while loop)
1154102550Siwasaki
1155102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue",
1156102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
1157102550Siwasakioperators.  All new ACPI 2.0 operators are now implemented
1158102550Siwasakiin both the ASL compiler and the AML interpreter.  The only
1159102550Siwasakiremaining ACPI 2.0 task is support for the String data type
1160102550Siwasakiin the DerefOf operator.  Fixed a problem with AcquireMutex
1161102550Siwasakiwhere the status code was lost if the caller had to actually
1162102550Siwasakiwait for the mutex.
1163102550Siwasaki
1164102550SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G
1165102550Siwasakibits.
1166102550Siwasaki
1167102550SiwasakiCompleted implementation of the external Global Lock
1168102550Siwasakiinterfaces -- AcpiAcquireGlobalLock and
1169102550SiwasakiAcpiReleaseGlobalLock.  The Timeout and Handler parameters
1170102550Siwasakiwere added.
1171102550Siwasaki
1172102550SiwasakiCompleted another pass at removing warnings and issues when
1173102550Siwasakicompiling with 64-bit compilers.  The code now compiles
1174102550Siwasakicleanly with the Intel 64-bit C/C++ compiler.  Most notably,
1175102550Siwasakithe pointer add and subtract (diff) macros have changed
1176102550Siwasakiconsiderably.
1177102550Siwasaki
1178102550SiwasakiCreated and deployed a new ACPI_SIZE type that is 64-bits
1179102550Siwasakiwide on 64-bit platforms, 32-bits on all others.  This type
1180102550Siwasakiis used wherever memory allocation and/or the C sizeof()
1181102550Siwasakioperator is used, and affects the OSL memory allocation
1182102550Siwasakiinterfaces AcpiOsAllocate and AcpiOsCallocate.
1183102550Siwasaki
1184102550SiwasakiImplemented sticky user breakpoints in the AML debugger.
1185102550Siwasaki
1186102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1187102550Siwasakishown below. These are the code and data sizes for the
1188102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
1189102550Siwasakicompiler, and these values do not include any ACPI driver or
1190102550SiwasakiOSPM code.  The debug version of the code includes the debug
1191102550Siwasakioutput trace mechanism and has a larger code and data size.
1192102550SiwasakiNote that these values will vary depending on the efficiency
1193102550Siwasakiof the compiler and the compiler options used during
1194102550Siwasakigeneration.
1195102550Siwasaki
1196102550Siwasaki  Previous Release (12_05_01)
1197102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1198102550SiwasakiTotal
1199102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1200102550SiwasakiTotal
1201102550Siwasaki   Current Release:
1202102550Siwasaki     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1203102550SiwasakiTotal
1204102550Siwasaki     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1205102550SiwasakiTotal
1206102550Siwasaki
1207102550Siwasaki 3) ASL Compiler, version X2034:
1208102550Siwasaki
1209102550SiwasakiNow checks for (and generates an error if detected) the use
1210102550Siwasakiof a Break or Continue statement without an enclosing While
1211102550Siwasakistatement.
1212102550Siwasaki
1213102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C
1214102550Siwasakicompiler.
1215102550Siwasaki
1216102550Siwasaki ----------------------------------------
1217102550SiwasakiSummary of changes for this label: 12_05_01
1218102550Siwasaki
1219102550Siwasaki 1) ACPI CA Core Subsystem:
1220102550Siwasaki
1221102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented.  This
1222102550Siwasakioperator creates a new copy of an object (and is also used
1223102550Siwasakito bypass the "implicit conversion" mechanism of the Store
1224102550Siwasakioperator.)
1225102550Siwasaki
1226102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully
1227102550Siwasakiimplemented.  The change is that performing a SizeOf on a
1228102550Siwasakireference object causes an automatic dereference of the
1229102550Siwasakiobject to tha actual value before the size is evaluated.
1230102550SiwasakiThis behavior was undefined in ACPI 1.0.
1231102550Siwasaki
1232102550SiwasakiThe ACPI 2.0 semantics for the Extended IRQ resource
1233102550Siwasakidescriptor have been implemented.  The interrupt polarity
1234102550Siwasakiand mode are now independently set.
1235102550Siwasaki
1236102550SiwasakiFixed a problem where ASL Constants (Zero, One, Ones,
1237102550SiwasakiRevision) appearing in Package objects were not properly
1238102550Siwasakiconverted to integers when the internal Package was
1239102550Siwasakiconverted to an external object (via the AcpiEvaluateObject
1240102550Siwasakiinterface.)
1241102550Siwasaki
1242102550SiwasakiFixed a problem with the namespace object deletion mechanism
1243102550Siwasakifor objects created by control methods.  There were two
1244102550Siwasakiparts to this problem: 1) Objects created during the
1245102550Siwasakiinitialization phase method parse were not being deleted,
1246102550Siwasakiand 2) The object owner ID mechanism to track objects was
1247102550Siwasakibroken.
1248102550Siwasaki
1249102550SiwasakiFixed a problem where the use of the ASL Scope operator
1250102550Siwasakiwithin a control method would result in an invalid opcode
1251102550Siwasakiexception.
1252102550Siwasaki
1253102550SiwasakiFixed a problem introduced in the previous label where the
1254102550Siwasakibuffer length required for the _PRT structure was not being
1255102550Siwasakireturned correctly.
1256102550Siwasaki
1257102550SiwasakiCode and Data Size: Current core subsystem library sizes are
1258102550Siwasakishown below. These are the code and data sizes for the
1259102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
1260102550Siwasakicompiler, and these values do not include any ACPI driver or
1261102550SiwasakiOSPM code.  The debug version of the code includes the debug
1262102550Siwasakioutput trace mechanism and has a larger code and data size.
1263102550SiwasakiNote that these values will vary depending on the efficiency
1264102550Siwasakiof the compiler and the compiler options used during
1265102550Siwasakigeneration.
1266102550Siwasaki
1267102550Siwasaki  Previous Release (11_20_01)
1268102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1269102550SiwasakiTotal
1270102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1271102550SiwasakiTotal
1272102550Siwasaki
1273102550Siwasaki  Current Release:
1274102550Siwasaki     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1275102550SiwasakiTotal
1276102550Siwasaki     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1277102550SiwasakiTotal
1278102550Siwasaki
1279102550Siwasaki 2) Linux:
1280102550Siwasaki
1281102550SiwasakiUpdated all files to apply cleanly against 2.4.16.
1282102550Siwasaki
1283102550SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for
1284102550SiwasakiIA32 (acpi_pci.c), and unified the PRT code for IA32 and
1285102550SiwasakiIA64.  This version supports both static and dyanmic PRT
1286102550Siwasakientries, but dynamic entries are treated as if they were
1287102550Siwasakistatic (not yet reconfigurable).  Architecture- specific
1288102550Siwasakicode to use this data is absent on IA32 but should be
1289102550Siwasakiavailable shortly.
1290102550Siwasaki
1291102550SiwasakiChanged the initialization sequence to start the ACPI
1292102550Siwasakiinterpreter (acpi_init) prior to initialization of the PCI
1293102550Siwasakidriver (pci_init) in init/main.c.  This ordering is required
1294102550Siwasakito support PRT and facilitate other (future) enhancement.  A
1295102550Siwasakiside effect is that the ACPI bus driver and certain device
1296102550Siwasakidrivers can no longer be loaded as modules.
1297102550Siwasaki
1298102550SiwasakiModified the 'make menuconfig' options to allow PCI
1299102550SiwasakiInterrupt Routing support to be included without the ACPI
1300102550SiwasakiBus and other device drivers.
1301102550Siwasaki
1302102550Siwasaki 3) ASL Compiler, version X2033:
1303102550Siwasaki
1304102550SiwasakiFixed some issues with the use of the new CopyObject and
1305102550SiwasakiDataTableRegion operators.  Both are fully functional.
1306102550Siwasaki
1307102550Siwasaki ----------------------------------------
1308102550SiwasakiSummary of changes for this label: 11_20_01
1309102550Siwasaki
1310102550Siwasaki 20 November 2001.  Summary of changes for this release.
1311102550Siwasaki
1312102550Siwasaki 1) ACPI CA Core Subsystem:
1313102550Siwasaki
1314102550SiwasakiUpdated Index support to match ACPI 2.0 semantics.  Storing
1315102550Siwasakia Integer, String, or Buffer to an Index of a Buffer will
1316102550Siwasakistore only the least-significant byte of the source to the
1317102550SiwasakiIndexed buffer byte.  Multiple writes are not performed.
1318102550Siwasaki
1319102550SiwasakiFixed a problem where the access type used in an AccessAs
1320102550SiwasakiASL operator was not recorded correctly into the field
1321102550Siwasakiobject.
1322102550Siwasaki
1323102550SiwasakiFixed a problem where ASL Event objects were created in a
1324102550Siwasakisignalled state. Events are now created in an unsignalled
1325102550Siwasakistate.
1326102550Siwasaki
1327102550SiwasakiThe internal object cache is now purged after table loading
1328102550Siwasakiand initialization to reduce the use of dynamic kernel
1329102550Siwasakimemory -- on the assumption that object use is greatest
1330102550Siwasakiduring the parse phase of the entire table (versus the run-
1331102550Siwasakitime use of individual control methods.)
1332102550Siwasaki
1333102550SiwasakiACPI 2.0 variable-length packages are now fully operational.
1334102550Siwasaki
1335102550SiwasakiCode and Data Size: Code and Data optimizations have
1336102550Siwasakipermitted new feature development with an actual reduction
1337102550Siwasakiin the library size.  Current core subsystem library sizes
1338102550Siwasakiare shown below.  These are the code and data sizes for the
1339102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
1340102550Siwasakicompiler, and these values do not include any ACPI driver or
1341102550SiwasakiOSPM code.  The debug version of the code includes the debug
1342102550Siwasakioutput trace mechanism and has a larger code and data size.
1343102550SiwasakiNote that these values will vary depending on the efficiency
1344102550Siwasakiof the compiler and the compiler options used during
1345102550Siwasakigeneration.
1346102550Siwasaki
1347102550Siwasaki  Previous Release (11_09_01):
1348102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1349102550SiwasakiTotal
1350102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1351102550SiwasakiTotal
1352102550Siwasaki
1353102550Siwasaki  Current Release:
1354102550Siwasaki     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1355102550SiwasakiTotal
1356102550Siwasaki     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1357102550SiwasakiTotal
1358102550Siwasaki
1359102550Siwasaki 2) Linux:
1360102550Siwasaki
1361102550SiwasakiEnhanced the ACPI boot-time initialization code to allow the
1362102550Siwasakiuse of Local APIC tables for processor enumeration on IA-32,
1363102550Siwasakiand to pave the way for a fully MPS-free boot (on SMP
1364102550Siwasakisystems) in the near future.  This functionality replaces
1365102550Siwasakiarch/i386/kernel/acpitables.c, which was introduced in an
1366102550Siwasakiearlier 2.4.15-preX release.  To enable this feature you
1367102550Siwasakimust add "acpi_boot=on" to the kernel command line -- see
1368102550Siwasakithe help entry for CONFIG_ACPI_BOOT for more information.
1369102550SiwasakiAn IA-64 release is in the works...
1370102550Siwasaki
1371102550SiwasakiRestructured the configuration options to allow boot-time
1372102550Siwasakitable parsing support without inclusion of the ACPI
1373102550SiwasakiInterpreter (and other) code.
1374102550Siwasaki
1375102550SiwasakiNOTE: This release does not include fixes for the reported
1376102550Siwasakievents, power-down, and thermal passive cooling issues
1377102550Siwasaki(coming soon).
1378102550Siwasaki
1379102550Siwasaki 3) ASL Compiler:
1380102550Siwasaki
1381102550SiwasakiAdded additional typechecking for Fields within restricted
1382102550Siwasakiaccess Operation Regions.  All fields within EC and CMOS
1383102550Siwasakiregions must be declared with ByteAcc. All fields withing
1384102550SiwasakiSMBus regions must be declared with the BufferAcc access
1385102550Siwasakitype.
1386102550Siwasaki
1387102550SiwasakiFixed a problem where the listing file output of control
1388102550Siwasakimethods no longer interleaved the actual AML code with the
1389102550SiwasakiASL source code.
1390102550Siwasaki
1391102550Siwasaki
1392102550Siwasaki
1393102550Siwasaki----------------------------------------
1394102550SiwasakiSummary of changes for this label: 11_09_01
1395102550Siwasaki
1396102550Siwasaki1) ACPI CA Core Subsystem:
1397102550Siwasaki
1398102550SiwasakiImplemented ACPI 2.0-defined support for writes to fields
1399102550Siwasakiwith a Buffer, String, or Integer source operand that is
1400102550Siwasakismaller than the target field. In these cases, the source
1401102550Siwasakioperand is zero-extended to fill the target field.
1402102550Siwasaki
1403102550SiwasakiFixed a problem where a Field starting bit offset (within
1404102550Siwasakithe parent operation region) was calculated incorrectly if
1405102550Siwasakithe alignment of the field differed from the access width.
1406102550SiwasakiThis affected CreateWordField, CreateDwordField,
1407102550SiwasakiCreateQwordField, and possibly other fields that use the
1408102550Siwasaki"AccessAny" keyword.
1409102550Siwasaki
1410102550SiwasakiFixed a problem introduced in the 11_02_01 release where
1411102550Siwasakiindirect stores through method arguments did not operate
1412102550Siwasakicorrectly.
1413102550Siwasaki
1414102550Siwasaki2) Linux:
1415102550Siwasaki
1416102550SiwasakiImplemented boot-time ACPI table parsing support
1417102550Siwasaki(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This
1418102550Siwasakicode facilitates the use of ACPI tables (e.g. MADT, SRAT)
1419102550Siwasakirather than legacy BIOS interfaces (e.g. MPS) for the
1420102550Siwasakiconfiguration of system processors, memory, and interrupts
1421102550Siwasakiduring setup_arch().  Note that this patch does not include
1422102550Siwasakithe required architecture-specific changes required to apply
1423102550Siwasakithis information -- subsequent patches will be posted for
1424102550Siwasakiboth IA32 and IA64 to achieve this.
1425102550Siwasaki
1426102550SiwasakiAdded low-level sleep support for IA32 platforms, courtesy
1427102550Siwasakiof Pat Mochel. This allows IA32 systems to transition
1428102550Siwasakito/from various sleeping states (e.g. S1, S3), although the
1429102550Siwasakilack of a centralized driver model and power-manageable
1430102550Siwasakidrivers will prevent its (successful) use on most systems.
1431102550Siwasaki
1432102550SiwasakiRevamped the ACPI 'menuconfig' layout: created new "ACPI
1433102550SiwasakiSupport" submenu, unified IA32 and IA64 options, added new
1434102550Siwasaki"Boot using ACPI tables" option, etc.
1435102550Siwasaki
1436102550SiwasakiIncreased the default timeout for the EC driver from 1ms to
1437102550Siwasaki10ms (1000 cycles of 10us) to try to address AE_TIME errors
1438102550Siwasakiduring EC transactions.
1439102550Siwasaki
1440102550Siwasaki ----------------------------------------
1441102550SiwasakiSummary of changes for this label: 11_02_01
1442102550Siwasaki
1443102550Siwasaki1) ACPI CA Core Subsystem:
1444102550Siwasaki
1445102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
1446102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now
1447102550Siwasakiimplemented.
1448102550Siwasaki
1449102550SiwasakiOSL Interfaces: Several of the OSL (AcpiOs*) interfaces
1450102550Siwasakirequired changes to support ACPI 2.0 Qword field access.
1451102550SiwasakiRead/Write PciConfiguration(), Read/Write Memory(), and
1452102550SiwasakiRead/Write Port() now accept an ACPI_INTEGER (64 bits) as
1453102550Siwasakithe value parameter.  Also, the value parameter for the
1454102550Siwasakiaddress space handler interface is now an ACPI_INTEGER.  OSL
1455102550Siwasakiimplementations of these interfaces must now handle the case
1456102550Siwasakiwhere the Width parameter is 64.
1457102550Siwasaki
1458102550SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly
1459102550Siwasakiand disassembly for IndexFields was not supported correctly.
1460102550Siwasaki
1461102550SiwasakiIndex and Bank Fields:  Nested Index and Bank Fields are now
1462102550Siwasakisupported. During field access, a check is performed to
1463102550Siwasakiensure that the value written to an Index or Bank register
1464102550Siwasakiis not out of the range of the register.  The Index (or
1465102550SiwasakiBank) register is written before each access to the field
1466102550Siwasakidata. Future support will include allowing individual
1467102550SiwasakiIndexFields to be wider than the DataRegister width.
1468102550Siwasaki
1469102550SiwasakiFields: Fixed a problem where the AML interpreter was
1470102550Siwasakiincorrectly attempting to write beyond the end of a
1471102550SiwasakiField/OpRegion.  This was a boundary case that occurred when
1472102550Siwasakia DWORD field was written to a BYTE access OpRegion, forcing
1473102550Siwasakimultiple writes and causing the interpreter to write one
1474102550Siwasakidatum too many.
1475102550Siwasaki
1476102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the
1477102550Siwasakistarting bit address of a field was incorrectly calculated
1478102550Siwasakiif the current access type was wider than a byte (WordAcc,
1479102550SiwasakiDwordAcc, or QwordAcc).
1480102550Siwasaki
1481102550SiwasakiFields: Fixed a problem where forward references to
1482102550Siwasakiindividual FieldUnits (individual Field names within a Field
1483102550Siwasakidefinition) were not resolved during the AML table load.
1484102550Siwasaki
1485102550SiwasakiFields: Fixed a problem where forward references from a
1486102550SiwasakiField definition to the parent Operation Region definition
1487102550Siwasakiwere not resolved during the AML table load.
1488102550Siwasaki
1489102550SiwasakiFields: Duplicate FieldUnit names within a scope are now
1490102550Siwasakidetected during AML table load.
1491102550Siwasaki
1492102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName()
1493102550Siwasakiinterface returned an incorrect name for the root node.
1494102550Siwasaki
1495102550SiwasakiCode and Data Size: Code and Data optimizations have
1496102550Siwasakipermitted new feature development with an actual reduction
1497102550Siwasakiin the library size.  Current core subsystem library sizes
1498102550Siwasakiare shown below.  These are the code and data sizes for the
1499102550Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0
1500102550Siwasakicompiler, and these values do not include any ACPI driver or
1501102550SiwasakiOSPM code.  The debug version of the code includes the debug
1502102550Siwasakioutput trace mechanism and has a larger code and data size.
1503102550SiwasakiNote that these values will vary depending on the efficiency
1504102550Siwasakiof the compiler and the compiler options used during
1505102550Siwasakigeneration.
1506102550Siwasaki
1507102550Siwasaki  Previous Release (10_18_01):
1508102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1509102550SiwasakiTotal
1510102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1511102550SiwasakiTotal
1512102550Siwasaki
1513102550Siwasaki  Current Release:
1514102550Siwasaki     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1515102550SiwasakiTotal
1516102550Siwasaki     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1517102550SiwasakiTotal
1518102550Siwasaki
1519102550Siwasaki 2) Linux:
1520102550Siwasaki
1521102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added
1522102550SiwasakiMODULE_LICENSE("GPL") to all modules.
1523102550Siwasaki
1524102550Siwasaki 3) ASL Compiler version X2030:
1525102550Siwasaki
1526102550SiwasakiDuplicate FieldUnit names within a scope are now detected
1527102550Siwasakiand flagged as errors.
1528102550Siwasaki
1529102550Siwasaki 4) Documentation:
1530102550Siwasaki
1531102550SiwasakiProgrammer Reference updated to reflect OSL and address
1532102550Siwasakispace handler interface changes described above.
1533102550Siwasaki
1534102550Siwasaki----------------------------------------
1535102550SiwasakiSummary of changes for this label: 10_18_01
1536102550Siwasaki
1537102550SiwasakiACPI CA Core Subsystem:
1538102550Siwasaki
1539102550SiwasakiFixed a problem with the internal object reference count
1540102550Siwasakimechanism that occasionally caused premature object
1541102550Siwasakideletion. This resolves all of the outstanding problem
1542102550Siwasakireports where an object is deleted in the middle of an
1543102550Siwasakiinterpreter evaluation.  Although this problem only showed
1544102550Siwasakiup in rather obscure cases, the solution to the problem
1545102550Siwasakiinvolved an adjustment of all reference counts involving
1546102550Siwasakiobjects attached to namespace nodes.
1547102550Siwasaki
1548102550SiwasakiFixed a problem with Field support in the interpreter where
1549102550Siwasakiwriting to an aligned field whose length is an exact
1550102550Siwasakimultiple (2 or greater) of the field access granularity
1551102550Siwasakiwould cause an attempt to write beyond the end of the field.
1552102550Siwasaki
1553102550SiwasakiThe top level AML opcode execution functions within the
1554102550Siwasakiinterpreter have been renamed with a more meaningful and
1555102550Siwasakiconsistent naming convention.  The modules exmonad.c and
1556102550Siwasakiexdyadic.c were eliminated.  New modules are exoparg1.c,
1557102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c.
1558102550Siwasaki
1559102550SiwasakiSupport for the ACPI 2.0 "Mid" ASL operator has been
1560102550Siwasakiimplemented.
1561102550Siwasaki
1562102550SiwasakiFixed a problem where the AML debugger was causing some
1563102550Siwasakiinternal objects to not be deleted during subsystem
1564102550Siwasakitermination.
1565102550Siwasaki
1566102550SiwasakiFixed a problem with the external AcpiEvaluateObject
1567102550Siwasakiinterface where the subsystem would fault if the named
1568102550Siwasakiobject to be evaluated refered to a constant such as Zero,
1569102550SiwasakiOnes, etc.
1570102550Siwasaki
1571102550SiwasakiFixed a problem with IndexFields and BankFields where the
1572102550Siwasakisubsystem would fault if the index, data, or bank registers
1573102550Siwasakiwere not defined in the same scope as the field itself.
1574102550Siwasaki
1575102550SiwasakiAdded printf format string checking for compilers that
1576102550Siwasakisupport this feature.  Corrected more than 50 instances of
1577102550Siwasakiissues with format specifiers within invocations of
1578102550SiwasakiACPI_DEBUG_PRINT throughout the core subsystem code.
1579102550Siwasaki
1580102550SiwasakiThe ASL "Revision" operator now returns the ACPI support
1581102550Siwasakilevel implemented in the core - the value "2" since the ACPI
1582102550Siwasaki2.0 support is more than 50% implemented.
1583102550Siwasaki
1584102550SiwasakiEnhanced the output of the AML debugger "dump namespace"
1585102550Siwasakicommand to output in a more human-readable form.
1586102550Siwasaki
1587102550SiwasakiCurrent core subsystem library code sizes are shown below.
1588102550SiwasakiThese are the code and data sizes for the acpica.lib
1589102550Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1590102550Siwasakivalues do not include any ACPI driver or OSPM code.  The
1591102550Siwasakidebug version of the code includes the full debug trace
1592102550Siwasakimechanism -- leading to a much larger code and data size.
1593102550SiwasakiNote that these values will vary depending on the efficiency
1594102550Siwasakiof the compiler and the compiler options used during
1595102550Siwasakigeneration.
1596102550Siwasaki
1597102550Siwasaki     Previous Label (09_20_01):
1598102550Siwasaki     Non-Debug Version:    65K Code,     5K Data,     70K
1599102550SiwasakiTotal
1600102550Siwasaki     Debug Version:       138K Code,    58K Data,    196K
1601102550SiwasakiTotal
1602102550Siwasaki
1603102550Siwasaki     This Label:
1604102550Siwasaki     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1605102550SiwasakiTotal
1606102550Siwasaki     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1607102550SiwasakiTotal
1608102550Siwasaki
1609102550SiwasakiLinux:
1610102550Siwasaki
1611102550SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that
1612102550Siwasakihave known ASL/AML problems.
1613102550Siwasaki
1614102550SiwasakiEnhanced the /proc interface for the thermal zone driver and
1615102550Siwasakiadded support for _HOT (the critical suspend trip point).
1616102550SiwasakiThe 'info' file now includes threshold/policy information,
1617102550Siwasakiand allows setting of _SCP (cooling preference) and _TZP
1618102550Siwasaki(polling frequency) values to the 'info' file. Examples:
1619102550Siwasaki"echo tzp=5 > info" sets the polling frequency to 5 seconds,
1620102550Siwasakiand "echo scp=1 > info" sets the cooling preference to the
1621102550Siwasakipassive/quiet mode (if supported by the ASL).
1622102550Siwasaki
1623102550SiwasakiImplemented a workaround for a gcc bug that resuted in an
1624102550SiwasakiOOPs when loading the control method battery driver.
1625102550Siwasaki
1626102550Siwasaki ----------------------------------------
1627102550SiwasakiSummary of changes for this label: 09_20_01
1628102550Siwasaki
1629102550Siwasaki ACPI CA Core Subsystem:
1630102550Siwasaki
1631102550SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have
1632102550Siwasakibeen modified to allow individual GPE levels to be flagged
1633102550Siwasakias wake-enabled (i.e., these GPEs are to remain enabled when
1634102550Siwasakithe platform sleeps.)
1635102550Siwasaki
1636102550SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces
1637102550Siwasakinow support wake-enabled GPEs.  This means that upon
1638102550Siwasakientering the sleep state, all GPEs that are not wake-enabled
1639102550Siwasakiare disabled.  When leaving the sleep state, these GPEs are
1640102550Siwasakireenabled.
1641102550Siwasaki
1642102550SiwasakiA local double-precision divide/modulo module has been added
1643102550Siwasakito enhance portability to OS kernels where a 64-bit math
1644102550Siwasakilibrary is not available.  The new module is "utmath.c".
1645102550Siwasaki
1646102550SiwasakiSeveral optimizations have been made to reduce the use of
1647102550SiwasakiCPU stack.  Originally over 2K, the maximum stack usage is
1648102550Siwasakinow below 2K at 1860  bytes (1.82k)
1649102550Siwasaki
1650102550SiwasakiFixed a problem with the AcpiGetFirmwareTable interface
1651102550Siwasakiwhere the root table pointer was not mapped into a logical
1652102550Siwasakiaddress properly.
1653102550Siwasaki
1654102550SiwasakiFixed a problem where a NULL pointer was being dereferenced
1655102550Siwasakiin the interpreter code for the ASL Notify operator.
1656102550Siwasaki
1657102550SiwasakiFixed a problem where the use of the ASL Revision operator
1658102550Siwasakireturned an error. This operator now returns the current
1659102550Siwasakiversion of the ACPI CA core subsystem.
1660102550Siwasaki
1661102550SiwasakiFixed a problem where objects passed as control method
1662102550Siwasakiparameters to AcpiEvaluateObject were always deleted at
1663102550Siwasakimethod termination.  However, these objects may end up being
1664102550Siwasakistored into the namespace by the called method.  The object
1665102550Siwasakireference count mechanism was applied to these objects
1666102550Siwasakiinstead of a force delete.
1667102550Siwasaki
1668102550SiwasakiFixed a problem where static strings or buffers (contained
1669102550Siwasakiin the AML code) that are declared as package elements
1670102550Siwasakiwithin the ASL code could cause a fault because the
1671102550Siwasakiinterpreter would attempt to delete them.  These objects are
1672102550Siwasakinow marked with the "static object" flag to prevent any
1673102550Siwasakiattempt to delete them.
1674102550Siwasaki
1675102550SiwasakiImplemented an interpreter optimization to use operands
1676102550Siwasakidirectly from the state object instead of extracting the
1677102550Siwasakioperands to local variables.  This reduces stack use and
1678102550Siwasakicode size, and improves performance.
1679102550Siwasaki
1680102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary
1681102550Siwasakiextra layer of code.
1682102550Siwasaki
1683102550SiwasakiCurrent core subsystem library code sizes are shown below.
1684102550SiwasakiThese are the code and data sizes for the acpica.lib
1685102550Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1686102550Siwasakivalues do not include any ACPI driver or OSPM code.  The
1687102550Siwasakidebug version of the code includes the full debug trace
1688102550Siwasakimechanism -- leading to a much larger code and data size.
1689102550SiwasakiNote that these values will vary depending on the efficiency
1690102550Siwasakiof the compiler and the compiler options used during
1691102550Siwasakigeneration.
1692102550Siwasaki
1693102550Siwasaki  Non-Debug Version:  65K Code,   5K Data,   70K Total
1694102550Siwasaki(Previously 69K)   Debug Version:     138K Code,  58K Data,
1695102550Siwasaki196K Total  (Previously 195K)
1696102550Siwasaki
1697102550SiwasakiLinux:
1698102550Siwasaki
1699102550SiwasakiSupport for ACPI 2.0 64-bit integers has been added.   All
1700102550SiwasakiACPI Integer objects are now 64 bits wide
1701102550Siwasaki
1702102550SiwasakiAll Acpi data types and structures are now in lower case.
1703102550SiwasakiOnly Acpi macros are upper case for differentiation.
1704102550Siwasaki
1705102550Siwasaki Documentation:
1706102550Siwasaki
1707102550SiwasakiChanges to the external interfaces as described above.
1708102550Siwasaki
1709102550Siwasaki ----------------------------------------
1710102550SiwasakiSummary of changes for this label: 08_31_01
1711102550Siwasaki
1712102550Siwasaki ACPI CA Core Subsystem:
1713102550Siwasaki
1714102550SiwasakiA bug with interpreter implementation of the ASL Divide
1715102550Siwasakioperator was found and fixed.  The implicit function return
1716102550Siwasakivalue (not the explicit store operands) was returning the
1717102550Siwasakiremainder instead of the quotient.  This was a longstanding
1718102550Siwasakibug and it fixes several known outstanding issues on various
1719102550Siwasakiplatforms.
1720102550Siwasaki
1721102550SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros
1722102550Siwasakihave been further optimized for size.  There are 700
1723102550Siwasakiinvocations of the DEBUG_PRINT macro alone, so each
1724102550Siwasakioptimization reduces the size of the debug version of the
1725102550Siwasakisubsystem significantly.
1726102550Siwasaki
1727102550SiwasakiA stack trace mechanism has been implemented.  The maximum
1728102550Siwasakistack usage is about 2K on 32-bit platforms.  The debugger
1729102550Siwasakicommand "stat stack" will display the current maximum stack
1730102550Siwasakiusage.
1731102550Siwasaki
1732102550SiwasakiAll public symbols and global variables within the subsystem
1733102550Siwasakiare now prefixed with the string "Acpi".  This keeps all of
1734102550Siwasakithe symbols grouped together in a kernel map, and avoids
1735102550Siwasakiconflicts with other kernel subsystems.
1736102550Siwasaki
1737102550SiwasakiMost of the internal fixed lookup tables have been moved
1738102550Siwasakiinto the code segment via the const operator.
1739102550Siwasaki
1740102550SiwasakiSeveral enhancements have been made to the interpreter to
1741102550Siwasakiboth reduce the code size and improve performance.
1742102550Siwasaki
1743102550SiwasakiCurrent core subsystem library code sizes are shown below.
1744102550SiwasakiThese are the code and data sizes for the acpica.lib
1745102550Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these
1746102550Siwasakivalues do not include any ACPI driver or OSPM code.  The
1747102550Siwasakidebug version of the code includes the full debug trace
1748102550Siwasakimechanism which contains over 700 invocations of the
1749102550SiwasakiDEBUG_PRINT macro, 500 function entry macro invocations, and
1750102550Siwasakiover 900 function exit macro invocations -- leading to a
1751102550Siwasakimuch larger code and data size.  Note that these values will
1752102550Siwasakivary depending on the efficiency of the compiler and the
1753102550Siwasakicompiler options used during generation.
1754102550Siwasaki
1755102550Siwasaki        Non-Debug Version:  64K Code,   5K Data,   69K Total
1756102550SiwasakiDebug Version:     137K Code,  58K Data,  195K Total
1757102550Siwasaki
1758102550Siwasaki Linux:
1759102550Siwasaki
1760102550SiwasakiImplemented wbinvd() macro, pending a kernel-wide
1761102550Siwasakidefinition.
1762102550Siwasaki
1763102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads.
1764102550Siwasaki
1765102550Siwasaki ASL Compiler, version X2026:
1766102550Siwasaki
1767102550SiwasakiFixed a problem introduced in the previous label where the
1768102550SiwasakiAML code emitted for package objects produced packages with
1769102550Siwasakizero length.
1770102550Siwasaki
1771102550Siwasaki ----------------------------------------
1772102550SiwasakiSummary of changes for this label: 08_16_01
1773102550Siwasaki
1774102550SiwasakiACPI CA Core Subsystem:
1775102550Siwasaki
1776102550SiwasakiThe following ACPI 2.0 ASL operators have been implemented
1777102550Siwasakiin the AML interpreter (These are already supported by the
1778102550SiwasakiIntel ASL compiler):  ToDecimalString, ToHexString,
1779102550SiwasakiToString, ToInteger, and ToBuffer.  Support for 64-bit AML
1780102550Siwasakiconstants is implemented in the AML parser, debugger, and
1781102550Siwasakidisassembler.
1782102550Siwasaki
1783102550SiwasakiThe internal memory tracking mechanism (leak detection code)
1784102550Siwasakihas been upgraded to reduce the memory overhead (a separate
1785102550Siwasakitracking block is no longer allocated for each memory
1786102550Siwasakiallocation), and now supports all of the internal object
1787102550Siwasakicaches.
1788102550Siwasaki
1789102550SiwasakiThe data structures and code for the internal object caches
1790102550Siwasakihave been coelesced and optimized so that there is a single
1791102550Siwasakicache and memory list data structure and a single group of
1792102550Siwasakifunctions that implement generic cache management.  This has
1793102550Siwasakireduced the code size in both the debug and release versions
1794102550Siwasakiof the subsystem.
1795102550Siwasaki
1796102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and
1797102550Siwasakireplaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
1798102550Siwasakislightly different, because it generates a single call to an
1799102550Siwasakiinternal function.  This results in a savings of about 90
1800102550Siwasakibytes per invocation, resulting in an overall code and data
1801102550Siwasakisavings of about 16% in the debug version of the subsystem.
1802102550Siwasaki
1803102550Siwasaki Linux:
1804102550Siwasaki
1805102550SiwasakiFixed C3 disk corruption problems and re-enabled C3 on
1806102550Siwasakisupporting machines.
1807102550Siwasaki
1808102550SiwasakiIntegrated low-level sleep code by Patrick Mochel.
1809102550Siwasaki
1810102550SiwasakiFurther tweaked source code Linuxization.
1811102550Siwasaki
1812102550SiwasakiOther minor fixes.
1813102550Siwasaki
1814102550Siwasaki ASL Compiler:
1815102550Siwasaki
1816102550SiwasakiSupport for ACPI 2.0 variable length packages is
1817102550Siwasakifixed/completed.
1818102550Siwasaki
1819102550SiwasakiFixed a problem where the optional length parameter for the
1820102550SiwasakiACPI 2.0 ToString operator.
1821102550Siwasaki
1822102550SiwasakiFixed multiple extraneous error messages when a syntax error
1823102550Siwasakiis detected within the declaration line of a control method.
1824102550Siwasaki
1825102550Siwasaki ----------------------------------------
1826102550SiwasakiSummary of changes for this label: 07_17_01
1827102550Siwasaki
1828102550SiwasakiACPI CA Core Subsystem:
1829102550Siwasaki
1830102550SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain
1831102550Siwasakiany ACPI table via the ACPI signature.  The interface can be
1832102550Siwasakicalled at any time during kernel initialization, even before
1833102550Siwasakithe kernel virtual memory manager is initialized and paging
1834102550Siwasakiis enabled.  This allows kernel subsystems to obtain ACPI
1835102550Siwasakitables very early, even before the ACPI CA subsystem is
1836102550Siwasakiinitialized.
1837102550Siwasaki
1838102550SiwasakiFixed a problem where Fields defined with the AnyAcc
1839102550Siwasakiattribute could be resolved to the incorrect address under
1840102550Siwasakithe following conditions: 1) the field width is larger than
1841102550Siwasaki8 bits and 2) the parent operation region is not defined on
1842102550Siwasakia DWORD boundary.
1843102550Siwasaki
1844102550SiwasakiFixed a problem where the interpreter is not being locked
1845102550Siwasakiduring namespace initialization (during execution of the
1846102550Siwasaki_INI control methods), causing an error when an attempt is
1847102550Siwasakimade to release it later.
1848102550Siwasaki
1849102550SiwasakiACPI 2.0 support in the AML Interpreter has begun and will
1850102550Siwasakibe ongoing throughout the rest of this year.  In this label,
1851102550SiwasakiThe Mod operator is implemented.
1852102550Siwasaki
1853102550SiwasakiAdded a new data type to contain full PCI addresses named
1854102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus,
1855102550SiwasakiDevice, and Function values.
1856102550Siwasaki
1857102550Siwasaki Linux:
1858102550Siwasaki
1859102550SiwasakiEnhanced the Linux version of the source code to change most
1860102550Siwasakicapitalized ACPI type names to lowercase. For example, all
1861102550Siwasakiinstances of ACPI_STATUS are changed to acpi_status.  This
1862102550Siwasakiwill result in a large diff, but the change is strictly
1863102550Siwasakicosmetic and aligns the CA code closer to the Linux coding
1864102550Siwasakistandard.
1865102550Siwasaki
1866102550SiwasakiOSL Interfaces:
1867102550Siwasaki
1868102550SiwasakiThe interfaces to the PCI configuration space have been
1869102550Siwasakichanged to add the PCI Segment number and to split the
1870102550Siwasakisingle 32-bit combined DeviceFunction field into two 16-bit
1871102550Siwasakifields.  This was accomplished by moving the four values
1872102550Siwasakithat define an address in PCI configuration space (segment,
1873102550Siwasakibus, device, and function) to the new ACPI_PCI_ID structure.
1874102550Siwasaki
1875102550SiwasakiThe changes to the PCI configuration space interfaces led to
1876102550Siwasakia reexamination of the complete set of address space access
1877102550Siwasakiinterfaces for PCI, I/O, and Memory.  The previously
1878102550Siwasakiexisting 18 interfaces have proven difficult to maintain
1879102550Siwasaki(any small change must be propagated across at least 6
1880102550Siwasakiinterfaces) and do not easily allow for future expansion to
1881102550Siwasaki64 bits if necessary.  Also, on some systems, it would not
1882102550Siwasakibe appropriate to demultiplex the access width (8, 16, 32,or
1883102550Siwasaki64) before calling the OSL if the corresponding native OS
1884102550Siwasakiinterfaces contain a similar access width parameter.  For
1885102550Siwasakithese reasons, the 18 address space interfaces have been
1886102550Siwasakireplaced by these 6 new ones:
1887102550Siwasaki
1888102550SiwasakiAcpiOsReadPciConfiguration
1889102550SiwasakiAcpiOsWritePciConfiguration
1890102550SiwasakiAcpiOsReadMemory
1891102550SiwasakiAcpiOsWriteMemory
1892102550SiwasakiAcpiOsReadPort
1893102550SiwasakiAcpiOsWritePort
1894102550Siwasaki
1895102550SiwasakiAdded a new interface named AcpiOsGetRootPointer to allow
1896102550Siwasakithe OSL to perform the platform and/or OS-specific actions
1897102550Siwasakinecessary to obtain the ACPI RSDP table pointer.  On IA-32
1898102550Siwasakiplatforms, this interface will simply call down to the CA
1899102550Siwasakicore to perform the low-memory search for the table.  On IA-
1900102550Siwasaki64, the RSDP is obtained from EFI.  Migrating this interface
1901102550Siwasakito the OSL allows the CA core to remain OS and platform
1902102550Siwasakiindependent.
1903102550Siwasaki
1904102550SiwasakiAdded a new interface named AcpiOsSignal to provide a
1905102550Siwasakigeneric "function code and pointer" interface for various
1906102550Siwasakimiscellaneous signals and notifications that must be made to
1907102550Siwasakithe host OS.   The first such signals are intended to
1908102550Siwasakisupport the ASL Fatal and Breakpoint operators.  In the
1909102550Siwasakilatter case, the AcpiOsBreakpoint interface has been
1910102550Siwasakiobsoleted.
1911102550Siwasaki
1912102550SiwasakiThe definition of the AcpiFormatException interface has been
1913102550Siwasakichanged to simplify its use.  The caller no longer must
1914102550Siwasakisupply a buffer to the call; A pointer to a const string is
1915102550Siwasakinow returned directly.  This allows the call to be easily
1916102550Siwasakiused in printf statements, etc. since the caller does not
1917102550Siwasakihave to manage a local buffer.
1918102550Siwasaki
1919102550Siwasaki ASL Compiler, Version X2025:
1920102550Siwasaki
1921102550SiwasakiThe ACPI 2.0 Switch/Case/Default operators have been
1922102550Siwasakiimplemented and are fully functional.  They will work with
1923102550Siwasakiall ACPI 1.0 interpreters, since the operators are simply
1924102550Siwasakitranslated to If/Else pairs.
1925102550Siwasaki
1926102550SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also
1927102550Siwasakiwork with 1.0 interpreters, for the same reason.
1928102550Siwasaki
1929102550SiwasakiImplemented support for ACPI 2.0 variable-length packages.
1930102550SiwasakiThese packages have a separate opcode, and their size is
1931102550Siwasakidetermined by the interpreter at run-time.
1932102550Siwasaki
1933102550SiwasakiDocumentation The ACPI CA Programmer Reference has been
1934102550Siwasakiupdated to reflect the new interfaces and changes to
1935102550Siwasakiexisting interfaces.
1936102550Siwasaki
1937102550Siwasaki ------------------------------------------
1938102550SiwasakiSummary of changes for this label: 06_15_01
1939102550Siwasaki
1940102550Siwasaki ACPI CA Core Subsystem:
1941102550Siwasaki
1942102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer
1943102550Siwasakiobject would get its byte address inadvertently rounded down
1944102550Siwasakito the nearest DWORD.  Buffers are always Byte-accessible.
1945102550Siwasaki
1946102550Siwasaki ASL Compiler, version X2024:
1947102550Siwasaki
1948102550SiwasakiFixed a problem where the Switch() operator would either
1949102550Siwasakifault or hang the compiler.  Note however, that the AML code
1950102550Siwasakifor this ACPI 2.0 operator is not yet implemented.
1951102550Siwasaki
1952102550SiwasakiCompiler uses the new AcpiOsGetTimer interface to obtain
1953102550Siwasakicompile timings.
1954102550Siwasaki
1955102550SiwasakiImplementation of the CreateField operator automatically
1956102550Siwasakiconverts a reference to a named field within a resource
1957102550Siwasakidescriptor from a byte offset to a bit offset if required.
1958102550Siwasaki
1959102550SiwasakiAdded some missing named fields from the resource descriptor
1960102550Siwasakisupport. These are the names that are automatically created
1961102550Siwasakiby the compiler to reference fields within a descriptor.
1962102550SiwasakiThey are only valid at compile time and are not passed
1963102550Siwasakithrough to the AML interpreter.
1964102550Siwasaki
1965102550SiwasakiResource descriptor named fields are now typed as Integers
1966102550Siwasakiand subject to compile-time typechecking when used in
1967102550Siwasakiexpressions.
1968102550Siwasaki
1969102550Siwasaki ------------------------------------------
1970102550SiwasakiSummary of changes for this label: 05_18_01
1971102550Siwasaki
1972102550Siwasaki ACPI CA Core Subsystem:
1973102550Siwasaki
1974102550SiwasakiFixed a couple of problems in the Field support code where
1975102550Siwasakibits from adjacent fields could be returned along with the
1976102550Siwasakiproper field bits. Restructured the field support code to
1977102550Siwasakiimprove performance, readability and maintainability.
1978102550Siwasaki
1979102550SiwasakiNew DEBUG_PRINTP macro automatically inserts the procedure
1980102550Siwasakiname into the output, saving hundreds of copies of procedure
1981102550Siwasakiname strings within the source, shrinking the memory
1982102550Siwasakifootprint of the debug version of the core subsystem.
1983102550Siwasaki
1984102550Siwasaki Source Code Structure:
1985102550Siwasaki
1986102550SiwasakiThe source code directory tree was restructured to reflect
1987102550Siwasakithe current organization of the component architecture.
1988102550SiwasakiSome files and directories have been moved and/or renamed.
1989102550Siwasaki
1990102550Siwasaki Linux:
1991102550Siwasaki
1992102550SiwasakiFixed leaking kacpidpc processes.
1993102550Siwasaki
1994102550SiwasakiFixed queueing event data even when /proc/acpi/event is not
1995102550Siwasakiopened.
1996102550Siwasaki
1997102550Siwasaki ASL Compiler, version X2020:
1998102550Siwasaki
1999102550SiwasakiMemory allocation performance enhancement - over 24X compile
2000102550Siwasakitime improvement on large ASL files.  Parse nodes and
2001102550Siwasakinamestring buffers are now allocated from a large internal
2002102550Siwasakicompiler buffer.
2003102550Siwasaki
2004102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is
2005102550Siwasakispecified
2006102550Siwasaki
2007102550SiwasakiThe "-d" debug output option now sends all output to the
2008102550Siwasaki.DBG file instead of the console.
2009102550Siwasaki
2010102550Siwasaki"External" second parameter is now optional
2011102550Siwasaki
2012102550Siwasaki"ElseIf" syntax now properly allows the predicate
2013102550Siwasaki
2014102550SiwasakiLast operand to "Load" now recognized as a Target operand
2015102550Siwasaki
2016102550SiwasakiDebug object can now be used anywhere as a normal object.
2017102550Siwasaki
2018102550SiwasakiResourceTemplate now returns an object of type BUFFER
2019102550Siwasaki
2020102550SiwasakiEISAID now returns an object of type INTEGER
2021102550Siwasaki
2022102550Siwasaki"Index" now works with a STRING operand
2023102550Siwasaki
2024102550Siwasaki"LoadTable" now accepts optional parameters
2025102550Siwasaki
2026102550Siwasaki"ToString" length parameter is now optional
2027102550Siwasaki
2028102550Siwasaki"Interrupt (ResourceType," parse error fixed.
2029102550Siwasaki
2030102550Siwasaki"Register" with a user-defined region space parse error
2031102550Siwasakifixed
2032102550Siwasaki
2033102550SiwasakiEscaped backslash at the end of a string ("\\") scan/parse
2034102550Siwasakierror fixed
2035102550Siwasaki
2036102550Siwasaki"Revision" is now an object of type INTEGER.
2037102550Siwasaki
2038102550Siwasaki
2039102550Siwasaki
2040102550Siwasaki------------------------------------------
2041102550SiwasakiSummary of changes for this label: 05_02_01
2042102550Siwasaki
2043102550SiwasakiLinux:
2044102550Siwasaki
2045102550Siwasaki/proc/acpi/event now blocks properly.
2046102550Siwasaki
2047102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from
2048102550Siwasaki/proc/acpi/dsdt.
2049102550Siwasaki
2050102550Siwasaki ACPI CA Core Subsystem:
2051102550Siwasaki
2052102550SiwasakiFixed a problem introduced in the previous label where some
2053102550Siwasakiof the "small" resource descriptor types were not
2054102550Siwasakirecognized.
2055102550Siwasaki
2056102550SiwasakiImproved error messages for the case where an ASL Field is
2057102550Siwasakioutside the range of the parent operation region.
2058102550Siwasaki
2059102550Siwasaki ASL Compiler, version X2018:
2060102550Siwasaki
2061102550SiwasakiAdded error detection for ASL Fields that extend beyond the
2062102550Siwasakilength of the parent operation region (only if the length of
2063102550Siwasakithe region is known at compile time.)  This includes fields
2064102550Siwasakithat have a minimum access width that is smaller than the
2065102550Siwasakiparent region, and individual field units that are partially
2066102550Siwasakior entirely beyond the extent of the parent.
2067102550Siwasaki
2068102550Siwasaki
2069102550Siwasaki
2070102550Siwasaki------------------------------------------
2071102550SiwasakiSummary of changes for this label: 04_27_01
2072102550Siwasaki
2073102550Siwasaki ACPI CA Core Subsystem:
2074102550Siwasaki
2075102550SiwasakiFixed a problem where the namespace mutex could be released
2076102550Siwasakiat the wrong time during execution of
2077102550SiwasakiAcpiRemoveAddressSpaceHandler.
2078102550Siwasaki
2079102550SiwasakiAdded optional thread ID output for debug traces, to
2080102550Siwasakisimplify debugging of multiple threads.  Added context
2081102550Siwasakiswitch notification when the debug code realizes that a
2082102550Siwasakidifferent thread is now executing ACPI code.
2083102550Siwasaki
2084102550SiwasakiSome additional external data types have been prefixed with
2085102550Siwasakithe string "ACPI_" for consistency.  This may effect
2086102550Siwasakiexisting code.  The data types affected are the external
2087102550Siwasakicallback typedefs - e.g., WALK_CALLBACK becomes
2088102550SiwasakiACPI_WALK_CALLBACK.
2089102550Siwasaki
2090102550Siwasaki Linux:
2091102550Siwasaki
2092102550SiwasakiFixed an issue with the OSL semaphore implementation where a
2093102550Siwasakithread was waking up with an error from receiving a SIGCHLD
2094102550Siwasakisignal.
2095102550Siwasaki
2096102550SiwasakiLinux version of ACPI CA now uses the system C library for
2097102550Siwasakistring manipulation routines instead of a local
2098102550Siwasakiimplementation.
2099102550Siwasaki
2100102550SiwasakiCleaned up comments and removed TBDs.
2101102550Siwasaki
2102102550Siwasaki ASL Compiler, version X2017:
2103102550Siwasaki
2104102550SiwasakiEnhanced error detection and reporting for all file I/O
2105102550Siwasakioperations.
2106102550Siwasaki
2107102550Siwasaki Documentation:
2108102550Siwasaki
2109102550SiwasakiProgrammer Reference updated to version 1.06.
2110102550Siwasaki
2111102550Siwasaki
2112102550Siwasaki
2113102550Siwasaki------------------------------------------
2114102550SiwasakiSummary of changes for this label: 04_13_01
2115102550Siwasaki
2116102550Siwasaki ACPI CA Core Subsystem:
2117102550Siwasaki
2118102550SiwasakiRestructured support for BufferFields and RegionFields.
2119102550SiwasakiBankFields support is now fully operational.  All known 32-
2120102550Siwasakibit limitations on field sizes have been removed.  Both
2121102550SiwasakiBufferFields and (Operation) RegionFields are now supported
2122102550Siwasakiby the same field management code.
2123102550Siwasaki
2124102550SiwasakiResource support now supports QWORD address and IO
2125102550Siwasakiresources. The 16/32/64 bit address structures and the
2126102550SiwasakiExtended IRQ structure have been changed to properly handle
2127102550SiwasakiSource Resource strings.
2128102550Siwasaki
2129102550SiwasakiA ThreadId of -1 is now used to indicate a "mutex not
2130102550Siwasakiacquired" condition internally and must never be returned by
2131102550SiwasakiAcpiOsThreadId. This reserved value was changed from 0 since
2132102550SiwasakiUnix systems allow a thread ID of 0.
2133102550Siwasaki
2134102550SiwasakiLinux:
2135102550Siwasaki
2136102550SiwasakiDriver code reorganized to enhance portability
2137102550Siwasaki
2138102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG
2139102550Siwasaki
2140102550SiwasakiFixed the EC driver to honor _GLK.
2141102550Siwasaki
2142102550SiwasakiASL Compiler, version X2016:
2143102550Siwasaki
2144102550SiwasakiFixed support for the "FixedHw" keyword.  Previously, the
2145102550SiwasakiFixedHw address space was set to 0, not 0x7f as it should
2146102550Siwasakibe.
2147102550Siwasaki
2148102550Siwasaki ------------------------------------------
2149102550SiwasakiSummary of changes for this label: 03_13_01
2150102550Siwasaki
2151102550Siwasaki ACPI CA Core Subsystem:
2152102550Siwasaki
2153102550SiwasakiDuring ACPI initialization, the _SB_._INI method is now run
2154102550Siwasakiif present.
2155102550Siwasaki
2156102550SiwasakiNotify handler fix - notifies are deferred until the parent
2157102550Siwasakimethod completes execution.  This fixes the "mutex already
2158102550Siwasakiacquired" issue seen occasionally.
2159102550Siwasaki
2160102550SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have
2161102550Siwasakibeen found to cause compatibility problems with existing
2162102550SiwasakiASL/AML.  The convert "result-to-target-type" implementation
2163102550Siwasakihas been removed for stores to method Args and Locals.
2164102550SiwasakiSource operand conversion is still fully implemented.
2165102550SiwasakiPossible changes to ACPI 2.0 specification pending.
2166102550Siwasaki
2167102550SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return
2168102550Siwasakicorrect length.
2169102550Siwasaki
2170102550SiwasakiFix for compiler warnings for 64-bit compiles.
2171102550Siwasaki
2172102550Siwasaki Linux:
2173102550Siwasaki
2174102550Siwasaki/proc output aligned for easier parsing.
2175102550Siwasaki
2176102550SiwasakiRelease-version compile problem fixed.
2177102550Siwasaki
2178102550SiwasakiNew kernel configuration options documented in
2179102550SiwasakiConfigure.help.
2180102550Siwasaki
2181102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL>
2182102550Siwasakicontext" message.
2183102550Siwasaki
2184102550Siwasaki OSPM:
2185102550Siwasaki
2186102550SiwasakiPower resource driver integrated with bus manager.
2187102550Siwasaki
2188102550SiwasakiFixed kernel fault during active cooling for thermal zones.
2189102550Siwasaki
2190102550SiwasakiSource Code:
2191102550Siwasaki
2192102550SiwasakiThe source code tree has been restructured.
2193102550Siwasaki
2194102550Siwasaki
2195102550Siwasaki
2196102550Siwasaki------------------------------------------
2197102550SiwasakiSummary of changes for this label: 03_02_01
2198102550Siwasaki
2199102550Siwasaki Linux OS Services Layer (OSL):
2200102550Siwasaki
2201102550SiwasakiMajor revision of all Linux-specific code.
2202102550Siwasaki
2203102550SiwasakiModularized all ACPI-specific drivers.
2204102550Siwasaki
2205102550SiwasakiAdded new thermal zone and power resource drivers.
2206102550Siwasaki
2207102550SiwasakiRevamped /proc interface (new functionality is under
2208102550Siwasaki/proc/acpi).
2209102550Siwasaki
2210102550SiwasakiNew kernel configuration options.
2211102550Siwasaki
2212102550Siwasaki Linux known issues:
2213102550Siwasaki
2214102550SiwasakiNew kernel configuration options not documented in
2215102550SiwasakiConfigure.help yet.
2216102550Siwasaki
2217102550SiwasakiModule dependencies not currently implemented. If used, they
2218102550Siwasakishould be loaded in this order: busmgr, power, ec, system,
2219102550Siwasakiprocessor, battery, ac_adapter, button, thermal.
2220102550Siwasaki
2221102550SiwasakiModules will not load if CONFIG_MODVERSION is set.
2222102550Siwasaki
2223102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down.
2224102550Siwasaki
2225102550SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL>
2226102550Siwasakicontext" message.
2227102550Siwasaki
2228102550SiwasakiSome systems may fail with "execution mutex already
2229102550Siwasakiacquired" message.
2230102550Siwasaki
2231102550Siwasaki ACPI CA Core Subsystem:
2232102550Siwasaki
2233102550SiwasakiAdded a new OSL Interface, AcpiOsGetThreadId.  This was
2234102550Siwasakirequired for the  deadlock detection code. Defined to return
2235102550Siwasakia non-zero, 32-bit thread ID for the currently executing
2236102550Siwasakithread.  May be a non-zero constant integer on single-thread
2237102550Siwasakisystems.
2238102550Siwasaki
2239102550SiwasakiImplemented deadlock detection for internal subsystem
2240102550Siwasakimutexes.  We may add conditional compilation for this code
2241102550Siwasaki(debug only) later.
2242102550Siwasaki
2243102550SiwasakiASL/AML Mutex object semantics are now fully supported.
2244102550SiwasakiThis includes multiple acquires/releases by owner and
2245102550Siwasakisupport for the Mutex SyncLevel parameter.
2246102550Siwasaki
2247102550SiwasakiA new "Force Release" mechanism automatically frees all ASL
2248102550SiwasakiMutexes that have been acquired but not released when a
2249102550Siwasakithread exits the interpreter.  This forces conformance to
2250102550Siwasakithe ACPI spec ("All mutexes must be released when an
2251102550Siwasakiinvocation exits") and prevents deadlocked ASL threads.
2252102550SiwasakiThis mechanism can be expanded (later) to monitor other
2253102550Siwasakiresource acquisitions if OEM ASL code continues to misbehave
2254102550Siwasaki(which it will).
2255102550Siwasaki
2256102550SiwasakiSeveral new ACPI exception codes have been added for the
2257102550SiwasakiMutex support.
2258102550Siwasaki
2259102550SiwasakiRecursive method calls are now allowed and supported (the
2260102550SiwasakiACPI spec does in fact allow recursive method calls.)  The
2261102550Siwasakinumber of recursive calls is subject to the restrictions
2262102550Siwasakiimposed by the SERIALIZED method keyword and SyncLevel (ACPI
2263102550Siwasaki2.0) method parameter.
2264102550Siwasaki
2265102550SiwasakiImplemented support for the SyncLevel parameter for control
2266102550Siwasakimethods (ACPI 2.0 feature)
2267102550Siwasaki
2268102550SiwasakiFixed a deadlock problem when multiple threads attempted to
2269102550Siwasakiuse the interpreter.
2270102550Siwasaki
2271102550SiwasakiFixed a problem where the string length of a String package
2272102550Siwasakielement was not always set in a package returned from
2273102550SiwasakiAcpiEvaluateObject.
2274102550Siwasaki
2275102550SiwasakiFixed a problem where the length of a String package element
2276102550Siwasakiwas not always included in the length of the overall package
2277102550Siwasakireturned from AcpiEvaluateObject.
2278102550Siwasaki
2279102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory
2280102550Siwasakimanager.  This manager keeps a list of all outstanding
2281102550Siwasakiallocations, and can therefore detect memory leaks and
2282102550Siwasakiattempts to free memory blocks more than once. Useful for
2283102550Siwasakicode such as the power manager, etc.  May not be appropriate
2284102550Siwasakifor device drivers.  Performance with the debug code enabled
2285102550Siwasakiis slow.
2286102550Siwasaki
2287102550SiwasakiThe ACPI Global Lock is now an optional hardware element.
2288102550Siwasaki
2289102550Siwasaki ASL Compiler Version X2015:
2290102550Siwasaki
2291102550SiwasakiIntegrated changes to allow the compiler to be generated on
2292102550Siwasakimultiple platforms.
2293102550Siwasaki
2294102550SiwasakiLinux makefile added to generate the compiler on Linux
2295102550Siwasaki
2296102550Siwasaki Source Code:
2297102550Siwasaki
2298102550SiwasakiAll platform-specific headers have been moved to their own
2299102550Siwasakisubdirectory, Include/Platform.
2300102550Siwasaki
2301102550SiwasakiNew source file added, Interpreter/ammutex.c
2302102550Siwasaki
2303102550SiwasakiNew header file, Include/acstruct.h
2304102550Siwasaki
2305102550Siwasaki Documentation:
2306102550Siwasaki
2307102550SiwasakiThe programmer reference has been updated for the following
2308102550Siwasakinew interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
2309102550SiwasakiAcpiFree
2310102550Siwasaki
2311102550Siwasaki ------------------------------------------
2312102550SiwasakiSummary of changes for this label: 02_08_01
2313102550Siwasaki
2314102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was
2315102550Siwasakiincorrectly returned if the return resource buffer was
2316102550Siwasakilarger than the actual data (in the resource interfaces).
2317102550Siwasaki
2318102550SiwasakiReferences to named objects within packages are resolved to
2319102550Siwasakithe full pathname string before packages are returned
2320102550Siwasakidirectly (via the AcpiEvaluateObject interface) or
2321102550Siwasakiindirectly via the resource interfaces.
2322102550Siwasaki
2323102550SiwasakiLinux OS Services Layer (OSL):
2324102550Siwasaki
2325102550SiwasakiImproved /proc battery interface.
2326102550Siwasaki
2327102550Siwasaki
2328102550SiwasakiAdded C-state debugging output and other miscellaneous
2329102550Siwasakifixes.
2330102550Siwasaki
2331102550SiwasakiASL Compiler Version X2014:
2332102550Siwasaki
2333102550SiwasakiAll defined method arguments can now be used as local
2334102550Siwasakivariables, including the ones that are not actually passed
2335102550Siwasakiin as parameters.  The compiler tracks initialization of the
2336102550Siwasakiarguments and issues an exception if they are used without
2337102550Siwasakiprior assignment (just like locals).
2338102550Siwasaki
2339102550SiwasakiThe -o option now specifies a filename prefix that is used
2340102550Siwasakifor all output files, including the AML output file.
2341102550SiwasakiOtherwise, the default behavior is as follows:  1) the AML
2342102550Siwasakigoes to the file specified in the DSDT.  2) all other output
2343102550Siwasakifiles use the input source filename as the base.
2344102550Siwasaki
2345102550Siwasaki ------------------------------------------
2346102550SiwasakiSummary of changes for this label: 01_25_01
2347102550Siwasaki
2348102550SiwasakiCore ACPI CA Subsystem: Restructured the implementation of
2349102550Siwasakiobject store support within the  interpreter.  This includes
2350102550Siwasakisupport for the Store operator as well  as any ASL operators
2351102550Siwasakithat include a target operand.
2352102550Siwasaki
2353102550SiwasakiPartially implemented support for Implicit Result-to-Target
2354102550Siwasakiconversion. This is when a result object is converted on the
2355102550Siwasakifly to the type of  an existing target object.  Completion
2356102550Siwasakiof this support is pending  further analysis of the ACPI
2357102550Siwasakispecification concerning this matter.
2358102550Siwasaki
2359102550SiwasakiCPU-specific code has been removed from the subsystem
2360102550Siwasaki(hardware directory).
2361102550Siwasaki
2362102550SiwasakiNew Power Management Timer functions added
2363102550Siwasaki
2364102550SiwasakiLinux OS Services Layer (OSL): Moved system state transition
2365102550Siwasakicode to the core, fixed it, and modified  Linux OSL
2366102550Siwasakiaccordingly.
2367102550Siwasaki
2368102550SiwasakiFixed C2 and C3 latency calculations.
2369102550Siwasaki
2370102550Siwasaki
2371102550SiwasakiWe no longer use the compilation date for the version
2372102550Siwasakimessage on  initialization, but retrieve the version from
2373102550SiwasakiAcpiGetSystemInfo().
2374102550Siwasaki
2375102550SiwasakiIncorporated for fix Sony VAIO machines.
2376102550Siwasaki
2377102550SiwasakiDocumentation:  The Programmer Reference has been updated
2378102550Siwasakiand reformatted.
2379102550Siwasaki
2380102550Siwasaki
2381102550SiwasakiASL Compiler:  Version X2013: Fixed a problem where the line
2382102550Siwasakinumbering and error reporting could get out  of sync in the
2383102550Siwasakipresence of multiple include files.
2384102550Siwasaki
2385102550Siwasaki ------------------------------------------
2386102550SiwasakiSummary of changes for this label: 01_15_01
2387102550Siwasaki
2388102550SiwasakiCore ACPI CA Subsystem:
2389102550Siwasaki
2390102550SiwasakiImplemented support for type conversions in the execution of
2391102550Siwasakithe ASL  Concatenate operator (The second operand is
2392102550Siwasakiconverted to match the type  of the first operand before
2393102550Siwasakiconcatenation.)
2394102550Siwasaki
2395102550SiwasakiSupport for implicit source operand conversion is partially
2396102550Siwasakiimplemented.   The ASL source operand types Integer, Buffer,
2397102550Siwasakiand String are freely  interchangeable for most ASL
2398102550Siwasakioperators and are converted by the interpreter  on the fly
2399102550Siwasakias required.  Implicit Target operand conversion (where the
2400102550Siwasakiresult is converted to the target type before storing) is
2401102550Siwasakinot yet implemented.
2402102550Siwasaki
2403102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented.
2404102550Siwasaki
2405102550SiwasakiProblem fixed where a field read on an aligned field could
2406102550Siwasakicause a read  past the end of the field.
2407102550Siwasaki
2408102550SiwasakiNew exception, AE_AML_NO_RETURN_VALUE, is returned when a
2409102550Siwasakimethod does not return a value, but the caller expects one.
2410102550Siwasaki(The ASL compiler flags this as a warning.)
2411102550Siwasaki
2412102550SiwasakiASL Compiler:
2413102550Siwasaki
2414102550SiwasakiVersion X2011:
2415102550Siwasaki1. Static typechecking of all operands is implemented. This
2416102550Siwasakiprevents the use of invalid objects (such as using a Package
2417102550Siwasakiwhere an Integer is required) at compile time instead of at
2418102550Siwasakiinterpreter run-time.
2419102550Siwasaki2. The ASL source line is printed with ALL errors and
2420102550Siwasakiwarnings.
2421102550Siwasaki3. Bug fix for source EOF without final linefeed.
2422102550Siwasaki4. Debug option is split into a parse trace and a namespace
2423102550Siwasakitrace.
2424102550Siwasaki5. Namespace output option (-n) includes initial values for
2425102550Siwasakiintegers and strings.
2426102550Siwasaki6. Parse-only option added for quick syntax checking.
2427102550Siwasaki7. Compiler checks for duplicate ACPI name declarations
2428102550Siwasaki
2429102550SiwasakiVersion X2012:
2430102550Siwasaki1. Relaxed typechecking to allow interchangeability between
2431102550Siwasakistrings, integers, and buffers.  These types are now
2432102550Siwasakiconverted by the interpreter at runtime.
2433102550Siwasaki2. Compiler reports time taken by each internal subsystem in
2434102550Siwasakithe debug         output file.
2435102550Siwasaki
2436102550Siwasaki
2437102550Siwasaki ------------------------------------------
2438102550SiwasakiSummary of changes for this label: 12_14_00
2439102550Siwasaki
2440102550SiwasakiASL Compiler:
2441102550Siwasaki
2442102550SiwasakiThis is the first official release of the compiler. Since
2443102550Siwasakithe compiler requires elements of the Core Subsystem, this
2444102550Siwasakilabel synchronizes everything.
2445102550Siwasaki
2446102550Siwasaki------------------------------------------
2447102550SiwasakiSummary of changes for this label: 12_08_00
2448102550Siwasaki
2449102550SiwasakiFixed a problem where named references within the ASL
2450102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2451102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2452102550Siwasakiduring initialization of the region/field. This is similar
2453102550Siwasaki(but not related internally) to the problem that was fixed
2454102550Siwasakiin the last label.
2455102550Siwasaki
2456102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL
2457102550Siwasakifunctions ToBCD and FromBCD.
2458102550Siwasaki
2459102550SiwasakiUpdated all legal headers to include "2000" in the copyright
2460102550Siwasakiyears.
2461102550Siwasaki
2462102550Siwasaki ------------------------------------------
2463102550SiwasakiSummary of changes for this label: 12_01_00
2464102550Siwasaki
2465102550SiwasakiFixed a problem where method invocations within the ASL
2466102550Siwasakidefinition of both OperationRegions and CreateXXXFields did
2467102550Siwasakinot work properly.  The symptom was an AE_AML_OPERAND_TYPE
2468102550Siwasakiduring initialization of the region/field:
2469102550Siwasaki
2470102550Siwasaki  nsinit-0209: AE_AML_OPERAND_TYPE while getting region
2471102550Siwasakiarguments [DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad
2472102550Siwasakioperand(s) (0x3005)
2473102550Siwasaki
2474102550SiwasakiFixed a problem where operators with more than one nested
2475102550Siwasakisubexpression would fail.  The symptoms were varied, by
2476102550Siwasakimostly AE_AML_OPERAND_TYPE errors.  This was actually a
2477102550Siwasakirather serious problem that has gone unnoticed until now.
2478102550Siwasaki
2479102550Siwasaki  Subtract (Add (1,2), Multiply (3,4))
2480102550Siwasaki
2481102550SiwasakiFixed a problem where AcpiGetHandle didn't quite get fixed
2482102550Siwasakiin the previous build (The prefix part of a relative path
2483102550Siwasakiwas handled incorrectly).
2484102550Siwasaki
2485102550SiwasakiFixed a problem where Operation Region initialization failed
2486102550Siwasakiif the operation region name was a "namepath" instead of a
2487102550Siwasakisimple "nameseg". Symptom was an AE_NO_OPERAND error.
2488102550Siwasaki
2489102550SiwasakiFixed a problem where an assignment to a local variable via
2490102550Siwasakithe indirect RefOf mechanism only worked for the first such
2491102550Siwasakiassignment.  Subsequent assignments were ignored.
2492102550Siwasaki
2493102550Siwasaki ------------------------------------------
2494102550SiwasakiSummary of changes for this label: 11_15_00
2495102550Siwasaki
2496102550SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0
2497102550Siwasakiand the 0.71 extensions.  Note: although we can read ACPI
2498102550Siwasaki2.0 BIOS tables, the AML  interpreter does NOT have support
2499102550Siwasakifor the new 2.0 ASL grammar terms at this time.
2500102550Siwasaki
2501102550SiwasakiAll ACPI hardware access is via the GAS structures in the
2502102550SiwasakiACPI 2.0 FADT.
2503102550Siwasaki
2504102550SiwasakiAll physical memory addresses across all platforms are now
2505102550Siwasaki64 bits wide. Logical address width remains dependent on the
2506102550Siwasakiplatform (i.e., "void *").
2507102550Siwasaki
2508102550SiwasakiAcpiOsMapMemory interface changed to a 64-bit physical
2509102550Siwasakiaddress.
2510102550Siwasaki
2511102550SiwasakiThe AML interpreter integer size is now 64 bits, as per the
2512102550SiwasakiACPI 2.0 specification.
2513102550Siwasaki
2514102550SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with
2515102550Siwasakia revision number less than 2 use 32-bit integers only.
2516102550Siwasaki
2517102550SiwasakiFixed a problem where the evaluation of OpRegion operands
2518102550Siwasakidid not always resolve them to numbers properly.
2519102550Siwasaki
2520102550Siwasaki------------------------------------------
2521102550SiwasakiSummary of changes for this label: 10_20_00
2522102550Siwasaki
2523102550SiwasakiFix for CBN_._STA issue.  This fix will allow correct access
2524102550Siwasakito CBN_ OpRegions when the _STA returns 0x8.
2525102550Siwasaki
2526102550SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to
2527102550Siwasakiactual values before a package object is returned
2528102550Siwasaki
2529102550SiwasakiFix for method call as predicate to if/while construct
2530102550Siwasakicausing incorrect if/while behavior
2531102550Siwasaki
2532102550SiwasakiFix for Else block package lengths sometimes calculated
2533102550Siwasakiwrong (if block > 63 bytes)
2534102550Siwasaki
2535102550SiwasakiFix for Processor object length field, was always zero
2536102550Siwasaki
2537102550SiwasakiTable load abort if FACP sanity check fails
2538102550Siwasaki
2539102550SiwasakiFix for problem with Scope(name) if name already exists
2540102550Siwasaki
2541102550SiwasakiWarning emitted if a named object referenced cannot be found
2542102550Siwasaki(resolved) during method execution.
2543102550Siwasaki
2544102550Siwasaki
2545102550Siwasaki
2546102550Siwasaki
2547102550Siwasaki
2548102550Siwasaki------------------------------------------
2549102550SiwasakiSummary of changes for this label: 9_29_00
2550102550Siwasaki
2551102550SiwasakiNew table initialization interfaces: AcpiInitializeSubsystem
2552102550Siwasakino longer has any parameters AcpiFindRootPointer - Find the
2553102550SiwasakiRSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
2554102550Siwasakifound at RSDP->RSDT Obsolete Interfaces
2555102550SiwasakiAcpiLoadFirmwareTables - replaced by AcpiLoadTables
2556102550Siwasaki
2557102550SiwasakiNote: These interface changes require changes to all
2558102550Siwasakiexisting OSDs
2559102550Siwasaki
2560102550SiwasakiThe PCI_Config default address space handler is always
2561102550Siwasakiinstalled at the root namespace object.
2562102550Siwasaki
2563102550Siwasaki-------------------------------------------
2564102550SiwasakiSummary of changes for this label: 09_15_00
2565102550Siwasaki
2566102550SiwasakiThe new initialization architecture is implemented.  New
2567102550Siwasakiinterfaces are: AcpiInitializeSubsystem (replaces
2568102550SiwasakiAcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
2569102550SiwasakiAcpiLoadNamespace (Namespace is automatically loaded when a
2570102550Siwasakitable is loaded)
2571102550Siwasaki
2572102550SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its
2573102550Siwasakisize from 52 bytes to 32 bytes.  There is usually one of
2574102550Siwasakithese for every namespace object, so the memory savings is
2575102550Siwasakisignificant.
2576102550Siwasaki
2577102550SiwasakiImplemented just-in-time evaluation of the CreateField
2578102550Siwasakioperators.
2579102550Siwasaki
2580102550SiwasakiBug fixes for IA-64 support have been integrated.
2581102550Siwasaki
2582102550SiwasakiAdditional code review comments have been implemented
2583102550Siwasaki
2584102550SiwasakiThe so-called "third pass parse" has been replaced by a
2585102550Siwasakifinal walk through the namespace to initialize all operation
2586102550Siwasakiregions (address spaces) and fields that have not yet been
2587102550Siwasakiinitialized during the execution of the various _INI and REG
2588102550Siwasakimethods.
2589102550Siwasaki
2590102550SiwasakiNew file - namespace/nsinit.c
2591102550Siwasaki
2592102550Siwasaki-------------------------------------------
2593102550SiwasakiSummary of changes for this label: 09_01_00
2594102550Siwasaki
2595102550SiwasakiNamespace manager data structures have been reworked to
2596102550Siwasakichange the primary  object from a table to a single object.
2597102550SiwasakiThis has resulted in dynamic memory  savings of 3X within
2598102550Siwasakithe namespace and 2X overall in the ACPI CA subsystem.
2599102550Siwasaki
2600102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was
2601102550Siwasakiinadvertently left  commented out.
2602102550Siwasaki
2603102550SiwasakiReduced the warning count when generating the source with
2604102550Siwasakithe GCC compiler.
2605102550Siwasaki
2606102550SiwasakiRevision numbers added to each module header showing the
2607102550SiwasakiSourceSafe version of the file.  Please refer to this
2608102550Siwasakiversion number when giving us feedback or comments on
2609102550Siwasakiindividual modules.
2610102550Siwasaki
2611102550SiwasakiThe main object types within the subsystem have been renamed
2612102550Siwasakito clarify their  purpose:
2613102550Siwasaki
2614102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
2615102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
2616102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
2617102550Siwasaki
2618102550SiwasakiNOTE: no changes to the initialization sequence are included
2619102550Siwasakiin this label.
2620102550Siwasaki
2621102550Siwasaki-------------------------------------------
2622102550SiwasakiSummary of changes for this label: 08_23_00
2623102550Siwasaki
2624102550SiwasakiFixed problem where TerminateControlMethod was being called
2625102550Siwasakimultiple times per  method
2626102550Siwasaki
2627102550SiwasakiFixed debugger problem where single stepping caused a
2628102550Siwasakisemaphore to be  oversignalled
2629102550Siwasaki
2630102550SiwasakiImproved performance through additional parse object caching
2631102550Siwasaki- added  ACPI_EXTENDED_OP type
2632102550Siwasaki
2633102550Siwasaki-------------------------------------------
2634102550SiwasakiSummary of changes for this label: 08_10_00
2635102550Siwasaki
2636102550SiwasakiParser/Interpreter integration:  Eliminated the creation of
2637102550Siwasakicomplete parse trees  for ACPI tables and control methods.
2638102550SiwasakiInstead, parse subtrees are created and  then deleted as
2639102550Siwasakisoon as they are processed (Either entered into the
2640102550Siwasakinamespace or  executed by the interpreter).  This reduces
2641102550Siwasakithe use of dynamic kernel memory  significantly. (about 10X)
2642102550Siwasaki
2643102550SiwasakiException codes broken into classes and renumbered.  Be sure
2644102550Siwasakito recompile all  code that includes acexcep.h.  Hopefully
2645102550Siwasakiwe won't have to renumber the codes  again now that they are
2646102550Siwasakisplit into classes (environment, programmer, AML code,  ACPI
2647102550Siwasakitable, and internal).
2648102550Siwasaki
2649102550SiwasakiFixed some additional alignment issues in the Resource
2650102550SiwasakiManager subcomponent
2651102550Siwasaki
2652102550SiwasakiImplemented semaphore tracking in the AcpiExec utility, and
2653102550Siwasakifixed several places  where mutexes/semaphores were being
2654102550Siwasakiunlocked without a corresponding lock  operation.  There are
2655102550Siwasakino known semaphore or mutex "leaks" at this time.
2656102550Siwasaki
2657102550SiwasakiFixed the case where an ASL Return operator is used to
2658102550Siwasakireturn an unnamed  package.
2659102550Siwasaki
2660102550Siwasaki-------------------------------------------
2661102550SiwasakiSummary of changes for this label: 07_28_00
2662102550Siwasaki
2663102550SiwasakiFixed a problem with the way addresses were calculated in
2664102550SiwasakiAcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This
2665102550Siwasakiproblem manifested itself when a Field was  created with
2666102550SiwasakiWordAccess or DwordAccess, but the field unit defined within
2667102550Siwasakithe  Field was less than a Word or Dword.
2668102550Siwasaki
2669102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull
2670102550Siwasakioperands off of the  operand stack to display information.
2671102550SiwasakiThe problem manifested itself as a TLB  error on 64-bit
2672102550Siwasakisystems when accessing an operand stack with two or more
2673102550Siwasakioperands.
2674102550Siwasaki
2675102550SiwasakiFixed a problem with the PCI configuration space handlers
2676102550Siwasakiwhere context was  getting confused between accesses. This
2677102550Siwasakirequired a change to the generic address  space handler and
2678102550Siwasakiaddress space setup definitions. Handlers now get both a
2679102550Siwasakiglobal handler context (this is the one passed in by the
2680102550Siwasakiuser when executing  AcpiInstallAddressSpaceHandler() and a
2681102550Siwasakispecific region context that is unique to  each region (For
2682102550Siwasakiexample, the _ADR, _SEG and _BBN values associated with a
2683102550Siwasakispecific region). The generic function definitions have
2684102550Siwasakichanged to the  following:
2685102550Siwasaki
2686102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
2687102550SiwasakiFunction, UINT32 Address, UINT32 BitWidth, UINT32 *Value,
2688102550Siwasakivoid *HandlerContext, // This used to be void *Context void
2689102550Siwasaki*RegionContext); // This is an additional parameter
2690102550Siwasaki
2691102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
2692102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext,  void
2693102550Siwasaki**RegionContext); // This used to be **ReturnContext
2694102550Siwasaki
2695102550Siwasaki-------------------------------------------
2696102550SiwasakiSummary of changes for this label: 07_21_00
2697102550Siwasaki
2698102550SiwasakiMajor file consolidation and rename.  All files within the
2699102550Siwasakiinterpreter have been  renamed as well as most header files.
2700102550SiwasakiThis was done to prevent collisions with  existing files in
2701102550Siwasakithe host OSs -- filenames such as "config.h" and "global.h"
2702102550Siwasakiseem to be quite common.  The VC project files have been
2703102550Siwasakiupdated.  All makefiles  will require modification.
2704102550Siwasaki
2705102550SiwasakiThe parser/interpreter integration continues in Phase 5 with
2706102550Siwasakithe implementation  of a complete 2-pass parse (the AML is
2707102550Siwasakiparsed twice) for each table;  This  avoids the construction
2708102550Siwasakiof a huge parse tree and therefore reduces the amount of
2709102550Siwasakidynamic memory required by the subsystem.  Greater use of
2710102550Siwasakithe parse object cache  means that performance is
2711102550Siwasakiunaffected.
2712102550Siwasaki
2713102550SiwasakiMany comments from the two code reviews have been rolled in.
2714102550Siwasaki
2715102550SiwasakiThe 64-bit alignment support is complete.
2716102550Siwasaki
2717102550Siwasaki-------------------------------------------
2718102550SiwasakiSummary of changes for this label: 06_30_00
2719102550Siwasaki
2720102550SiwasakiWith a nod and a tip of the hat to the technology of
2721102550Siwasakiyesteryear, we've added  support in the source code for 80
2722102550Siwasakicolumn output devices.  The code is now mostly  constrained
2723102550Siwasakito 80 columns or less to support environments and editors
2724102550Siwasakithat 1)  cannot display or print more than 80 characters on
2725102550Siwasakia single line, and 2) cannot  disable line wrapping.
2726102550Siwasaki
2727102550SiwasakiA major restructuring of the namespace data structure has
2728102550Siwasakibeen completed.  The  result is 1) cleaner and more
2729102550Siwasakiunderstandable/maintainable code, and 2) a  significant
2730102550Siwasakireduction in the dynamic memory requirement for each named
2731102550SiwasakiACPI  object (almost half).
2732102550Siwasaki
2733102550Siwasaki-------------------------------------------
2734102550SiwasakiSummary of changes for this label: 06_23_00
2735102550Siwasaki
2736102550SiwasakiLinux support has been added.  In order to obtain approval
2737102550Siwasakito get the ACPI CA  subsystem into the Linux kernel, we've
2738102550Siwasakihad to make quite a few changes to the  base subsystem that
2739102550Siwasakiwill affect all users (all the changes are generic and OS-
2740102550Siwasakiindependent).  The effects of these global changes have been
2741102550Siwasakisomewhat far  reaching.  Files have been merged and/or
2742102550Siwasakirenamed and interfaces have been  renamed.   The major
2743102550Siwasakichanges are described below.
2744102550Siwasaki
2745102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace
2746102550Siwasakipollution/confusion  within our target kernels.  All OSD
2747102550Siwasakiinterfaces must be modified to match the new  naming
2748102550Siwasakiconvention.
2749102550Siwasaki
2750102550SiwasakiFiles merged across the subsystem.  A number of the smaller
2751102550Siwasakisource and header  files have been merged to reduce the file
2752102550Siwasakicount and increase the density of the  existing files.
2753102550SiwasakiThere are too many to list here.  In general, makefiles that
2754102550Siwasakicall out individual files will require rebuilding.
2755102550Siwasaki
2756102550SiwasakiInterpreter files renamed.  All interpreter files now have
2757102550Siwasakithe prefix am*  instead of ie* and is*.
2758102550Siwasaki
2759102550SiwasakiHeader files renamed:  The acapi.h file is now acpixf.h.
2760102550SiwasakiThe acpiosd.h file is  now acpiosxf.h.  We are removing
2761102550Siwasakireferences to the acronym "API" since it is  somewhat
2762102550Siwasakiwindowsy. The new name is "external interface" or xface or
2763102550Siwasakixf in the  filenames.j
2764102550Siwasaki
2765102550Siwasaki
2766102550SiwasakiAll manifest constants have been forced to upper case (some
2767102550Siwasakiwere mixed case.)   Also, the string "ACPI_" has been
2768102550Siwasakiprepended to many (not all) of the constants,  typedefs, and
2769102550Siwasakistructs.
2770102550Siwasaki
2771102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed
2772102550Siwasaki"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
2773102550Siwasaki
2774102550SiwasakiAll other globals within the subsystem are now prefixed with
2775102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now
2776102550Siwasakiprefixed with "Acpi" (with only  a few exceptions).  The
2777102550Siwasakioriginal two-letter abbreviation for the subcomponent
2778102550Siwasakiremains after "Acpi" - for example, CmCallocate became
2779102550SiwasakiAcpiCmCallocate.
2780102550Siwasaki
2781102550SiwasakiAdded a source code translation/conversion utility.  Used to
2782102550Siwasakigenerate the Linux  source code, it can be modified to
2783102550Siwasakigenerate other types of source as well. Can  also be used to
2784102550Siwasakicleanup existing source by removing extraneous spaces and
2785102550Siwasakiblank  lines.  Found in tools/acpisrc/*
2786102550Siwasaki
2787102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then
2788102550SiwasakiAcpiOsUnmapMemory.  (UnMap  became Unmap).
2789102550Siwasaki
2790102550SiwasakiA "MaxUnits" parameter has been added to
2791102550SiwasakiAcpiOsCreateSemaphore.  When set to  one, this indicates
2792102550Siwasakithat the caller wants to use the semaphore as a mutex, not a
2793102550Siwasakicounting semaphore.  ACPI CA uses both types.  However,
2794102550Siwasakiimplementers of this  call may want to use different OS
2795102550Siwasakiprimitives depending on the type of semaphore  requested.
2796102550SiwasakiFor example, some operating systems provide separate "mutex"
2797102550Siwasakiand  "semaphore" interfaces - where the mutex interface is
2798102550Siwasakimuch faster because it  doesn't have all the overhead of a
2799102550Siwasakifull semaphore implementation.
2800102550Siwasaki
2801102550SiwasakiFixed a deadlock problem where a method that accesses the
2802102550SiwasakiPCI address space can  block forever if it is the first
2803102550Siwasakiaccess to the space.
2804102550Siwasaki
2805102550Siwasaki-------------------------------------------
2806102550SiwasakiSummary of changes for this label: 06_02_00
2807102550Siwasaki
2808102550SiwasakiSupport for environments that cannot handle unaligned data
2809102550Siwasakiaccesses (e.g.  firmware and OS environments devoid of
2810102550Siwasakialignment handler technology namely  SAL/EFI and the IA-64
2811102550SiwasakiLinux kernel) has been added (via configurable macros) in
2812102550Siwasakithese three areas: - Transfer of data from the raw AML byte
2813102550Siwasakistream is done via byte moves instead of    word/dword/qword
2814102550Siwasakimoves. - External objects are aligned within the user
2815102550Siwasakibuffer, including package   elements (sub-objects). -
2816102550SiwasakiConversion of name strings to UINT32 Acpi Names is now done
2817102550Siwasakibyte-wise.
2818102550Siwasaki
2819102550SiwasakiThe Store operator was modified to mimic Microsoft's
2820102550Siwasakiimplementation when storing  to a Buffer Field.
2821102550Siwasaki
2822102550SiwasakiAdded a check of the BM_STS bit before entering C3.
2823102550Siwasaki
2824102550SiwasakiThe methods subdirectory has been obsoleted and removed.  A
2825102550Siwasakinew file, cmeval.c  subsumes the functionality.
2826102550Siwasaki
2827102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed.  The
2828102550Siwasakimakefile is under  the acpiexec directory.
2829