changes.txt revision 102550
1----------------------------------------
215 August 2002.  Summary of changes for this release.
3
41) ACPI CA Core Subsystem Version 20020815:
5
6Fixed a reported problem where a Store to a method argument
7that contains a reference did not perform the indirect store
8correctly.  This problem was created during the conversion
9to the new reference object model � the indirect store to a
10method argument code was not updated to reflect the new
11model.
12
13Reworked the ACPI mode change code to better conform to ACPI
142.0, handle corner cases, and improve code legibility (Kochi
15Takayoshi)
16
17Fixed a problem with the pathname parsing for the carat (^)
18prefix.  The heavy use of the carat operator by the new
19namepath optimization in the iASL compiler uncovered a
20problem with the AML interpreter handling of this prefix.
21In the case where one or more carats precede a single
22nameseg, the nameseg was treated as standalone and the
23search rule (to root) was inadvertently applied.  This could
24cause both the iASL compiler and the interpreter to find the
25wrong object or to miss the error that should occur if the
26object does not exist at that exact pathname.
27
28Found and fixed the problem where the HP Pavilion DSDT would
29not load.  This was a relatively minor tweak to the table
30loading code (a problem caused by the unexpected encounter
31with a method invocation not within a control method), but
32it does not solve the overall issue of the execution of AML
33code at the table level.  This investigation is still
34ongoing.
35
36Code and Data Size: Current core subsystem library sizes are
37shown below.  These are the code and data sizes for the
38acpica.lib produced by the Microsoft Visual C++ 6.0
39compiler, and these values do not include any ACPI driver or
40OSPM code.  The debug version of the code includes the debug
41output trace mechanism and has a larger code and data size.
42Note that these values will vary depending on the efficiency
43of the compiler and the compiler options used during
44generation.
45
46  Previous Release
47    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K
48Total
49    Debug Version:     149.4K Code,  61.6K Data,  211.0K
50Total
51  Current Release:
52    Non-Debug Version:  69.6K Code,   8.3K Data,   77.9K
53Total
54    Debug Version:     150.0K Code,  61.7K Data,  211.7K
55Total
56
57
582) Linux
59
60Remove redundant slab.h include (Brad Hards)
61
62Fix several bugs in thermal.c (Herbert Nachtnebel)
63
64Make CONFIG_ACPI_BOOT work properly (Pavel Machek)
65
66Change acpi_system_suspend to use updated irq functions
67(Pavel Machek)
68
69Export acpi_get_firmware_table (Matthew Wilcox)
70
71Use proper root proc entry for ACPI (Kochi Takayoshi)
72
73Fix early-boot table parsing (Bjorn Helgaas)
74
75
763) iASL Compiler/Disassembler
77
78Reworked the compiler options to make them more consistent
79and to use two-letter options where appropriate.  We were
80running out of sensible letters.   This may break some
81makefiles, so check the current options list by invoking the
82compiler with no parameters.
83
84Completed the design and implementation of the ASL namepath
85optimization option for the compiler.  This option optimizes
86all references to named objects to the shortest possible
87path.  The first attempt tries to utilize a single nameseg
88(4 characters) and the �search-to-root� algorithm used by
89the interpreter.  If that cannot be used (because either the
90name is not in the search path or there is a conflict with
91another object with the same name), the pathname is
92optimized using the carat prefix (usually a shorter string
93than specifying the entire path from the root.)
94
95Implemented support to obtain the DSDT from the Windows
96registry (when the disassembly option is specified with no
97input file).  Added this code as the implementation for
98AcpiOsTableOverride in the Windows OSL.  Migrated the 16-bit
99code (used in the AcpiDump utility) to scan memory for the
100DSDT to the AcpiOsTableOverride function in the DOS OSL to
101make the disassembler truly OS independent.
102
103Implemented a new option to disassemble and compile in one
104step.  When used without an input filename, this option will
105grab the DSDT from the local machine, disassemble it, and
106compile it in one step.
107
108Added a warning message for invalid escapes (a backslash
109followed by any character other than the allowable escapes).
110This catches the quoted string error �\_SB_� (which should
111be �\\_SB_� ).  Also, there are numerous instances in the
112ACPI specification where this error occurs.
113
114Added a compiler option to disable all optimizations.  This
115is basically the �compatibility mode� because by using this
116option, the AML code will come out exactly the same as other
117ASL compilers.
118
119Added error messages for incorrectly ordered dependent
120resource functions.  This includes: missing EndDependentFn
121macro at end of dependent resource list, nested dependent
122function macros (both start and end), and missing
123StartDependentFn macro.  These are common errors that should
124be caught at compile time.
125
126Implemented _OSI support for the disassembler and compiler.
127_OSI must be included in the namespace for proper
128disassembly (because the disassembler must know the number
129of arguments.)
130
131Added an �optimization� message type that is optional (off
132by default).  This message is used for all optimizations �
133including constant folding, integer optimization, and
134namepath optimization.
135
136----------------------------------------
13725 July 2002.  Summary of changes for this release.
138
139
1401) ACPI CA Core Subsystem Version 20020725:
141
142The AML Disassembler has been enhanced to produce compilable
143ASL code and has been integrated into the iASL compiler (see
144below) as well as the single-step disassembly for the AML
145debugger and the disassembler for the AcpiDump utility.  All
146ACPI 2.0A opcodes, resource templates and macros are fully
147supported.  The disassembler has been tested on over 30
148different AML files, producing identical AML when the
149resulting disassembled ASL file is recompiled with the same
150ASL compiler.
151
152Modified the Resource Manager to allow zero interrupts and
153zero dma channels during the GetCurrentResources call.  This
154was causing problems on some platforms.
155
156Added the AcpiOsRedirectOutput interface to the OSL to
157simplify output redirection for the AcpiOsPrintf and
158AcpiOsVprintf interfaces.
159
160Code and Data Size: Current core subsystem library sizes are
161shown below.  These are the code and data sizes for the
162acpica.lib produced by the Microsoft Visual C++ 6.0
163compiler, and these values do not include any ACPI driver or
164OSPM code.  The debug version of the code includes the debug
165output trace mechanism and has a larger code and data size.
166Note that these values will vary depending on the efficiency
167of the compiler and the compiler options used during
168generation.
169
170  Previous Release
171    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K
172Total
173    Debug Version:     142.9K Code,  58.7K Data,  201.6K
174Total
175  Current Release:
176    Non-Debug Version:  69.1K Code,   8.2K Data,   77.3K
177Total
178    Debug Version:     149.4K Code,  61.6K Data,  211.0K
179Total
180
181
1822) Linux
183
184Fixed a panic in the EC driver (Dominik Brodowski)
185
186Implemented checksum of the R/XSDT itself during Linux table
187scan (Richard Schaal)
188
189
1903) iASL compiler
191
192The AML disassembler is integrated into the compiler.  The "-
193d" option invokes the disassembler  to completely
194disassemble an input AML file, producing as output a text
195ASL file with the extension ".dsl" (to avoid name collisions
196with existing .asl source files.)  A future enhancement will
197allow the disassembler to obtain the BIOS DSDT from the
198registry under Windows.
199
200Fixed a problem with the VendorShort and VendorLong resource
201descriptors where an invalid AML sequence was created.
202
203Implemented a fix for BufferData term in the ASL parser.  It
204was inadvertently defined twice, allowing invalid syntax to
205pass and causing reduction conflicts.
206
207Fixed a problem where the Ones opcode could get converted to
208a value of zero if "Ones" was used where a byte, word or
209dword value was expected.  The 64-bit value is now truncated
210to the correct size with the correct value.
211
212
213----------------------------------------
21402 July 2002.  Summary of changes for this release.
215
216
2171) ACPI CA Core Subsystem Version 20020702:
218
219The Table Manager code has been restructured to add several
220new features.  Tables that are not required by the core
221subsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are
222no longer validated in any way and are returned from
223AcpiGetFirmwareTable if requested.  The AcpiOsTableOverride
224interface is now called for each table that is loaded by the
225subsystem in order to allow the host to override any table
226it chooses.  Previously, only the DSDT could be overridden.
227Added one new files, tbrsdt.c and tbgetall.c.
228
229Fixed a problem with the conversion of internal package
230objects to external objects (when a package is returned from
231a control method.)  The return buffer length was set to zero
232instead of the proper length of the package object.
233
234Fixed a reported problem with the use of the RefOf and
235DeRefOf operators when passing reference arguments to
236control methods.  A new type of Reference object is used
237internally for references produced by the RefOf operator.
238
239Added additional error messages in the Resource Manager to
240explain AE_BAD_DATA errors when they occur during resource
241parsing.
242
243Split the AcpiEnableSubsystem into two primitives to enable
244a finer granularity initialization sequence.  These two
245calls should be called in this order: AcpiEnableSubsystem
246(flags), AcpiInitializeObjects (flags).  The flags parameter
247remains the same.
248
249
2502) Linux
251
252Updated the ACPI utilities module to understand the new
253style of fully resolved package objects that are now
254returned from the core subsystem.  This eliminates errors of
255the form:
256
257    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT]
258    acpi_utils-0430 [145] acpi_evaluate_reference:
259        Invalid element in package (not a device reference)
260
261The method evaluation utility uses the new buffer allocation
262scheme instead of calling AcpiEvaluate Object twice.
263
264Added support for ECDT. This allows the use of the Embedded
265Controller before the namespace has been fully initialized,
266which is necessary for ACPI 2.0 support, and for some
267laptops to initialize properly. (Laptops using ECDT are
268still rare, so only limited testing was performed of the
269added functionality.)
270
271Fixed memory leaks in the EC driver.
272
273Eliminated a brittle code structure in acpi_bus_init().
274
275Eliminated the acpi_evaluate() helper function in utils.c.
276It is no longer needed since acpi_evaluate_object can
277optionally allocate memory for the return object.
278
279Implemented fix for keyboard hang when getting battery
280readings on some systems (Stephen White)
281
282PCI IRQ routing update (Dominik Brodowski)
283
284Fix an ifdef to allow compilation on UP with LAPIC but no
285IOAPIC support
286
287----------------------------------------
28811 June 2002.  Summary of changes for this release.
289
290
2911) ACPI CA Core Subsystem Version 20020611:
292
293Fixed a reported problem where constants such as Zero and
294One appearing within _PRT packages were not handled
295correctly within the resource manager code.  Originally
296reported against the ASL compiler because the code generator
297now optimizes integers to their minimal AML representation
298(i.e. AML constants if possible.)  The _PRT code now handles
299all AML constant opcodes correctly (Zero, One, Ones,
300Revision).
301
302Fixed a problem with the Concatenate operator in the AML
303interpreter where a buffer result object was incorrectly
304marked as not fully evaluated, causing a run-time error of
305AE_AML_INTERNAL.
306
307All package sub-objects are now fully resolved before they
308are returned from the external ACPI interfaces.  This means
309that name strings are resolved to object handles, and
310constant operators (Zero, One, Ones, Revision) are resolved
311to Integers.
312
313Implemented immediate resolution of the AML Constant opcodes
314(Zero, One, Ones, Revision) to Integer objects upon
315detection within the AML stream. This has simplified and
316reduced the generated code size of the subsystem by
317eliminating about 10 switch statements for these constants
318(which previously were contained in Reference objects.)  The
319complicating issues are that the Zero opcode is used as a
320"placeholder" for unspecified optional target operands and
321stores to constants are defined to be no-ops.
322
323Code and Data Size: Current core subsystem library sizes are
324shown below. These are the code and data sizes for the
325acpica.lib produced by the Microsoft Visual C++ 6.0
326compiler, and these values do not include any ACPI driver or
327OSPM code.  The debug version of the code includes the debug
328output trace mechanism and has a larger code and data size.
329Note that these values will vary depending on the efficiency
330of the compiler and the compiler options used during
331generation.
332
333  Previous Release
334    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K
335Total
336    Debug Version:     143.8K Code,  58.8K Data,  202.6K
337Total
338  Current Release:
339    Non-Debug Version:  68.7K Code,   7.4K Data,   76.1K
340Total
341    Debug Version:     142.9K Code,  58.7K Data,  201.6K
342Total
343
344
3452) Linux
346
347Added preliminary support for obtaining _TRA data for PCI
348root bridges (Bjorn Helgaas).
349
350
3513) iASL Compiler Version X2046:
352
353Fixed a problem where the "_DDN" reserved name was defined
354to be a control method with one argument.  There are no
355arguments, and _DDN does not have to be a control method.
356
357Fixed a problem with the Linux version of the compiler where
358the source lines printed with error messages were the wrong
359lines.  This turned out to be the "LF versus CR/LF"
360difference between Windows and Unix.  This appears to be the
361longstanding issue concerning listing output and error
362messages.
363
364Fixed a problem with the Linux version of compiler where
365opcode names within error messages were wrong.  This was
366caused by a slight difference in the output of the Flex tool
367on Linux versus Windows.
368
369Fixed a problem with the Linux compiler where the hex output
370files contained some garbage data caused by an internal
371buffer overrun.
372
373
374----------------------------------------
37517 May 2002.  Summary of changes for this release.
376
377
3781) ACPI CA Core Subsystem Version 20020517:
379
380Implemented a workaround to an BIOS bug discovered on the HP
381OmniBook where the FADT revision number and the table size
382are inconsistent (ACPI 2.0 revision vs. ACPI 1.0 table
383size).  The new behavior is to fallback to using only the
384ACPI 1.0 fields of the FADT if the table is too small to be
385a ACPI 2.0 table as claimed by the revision number.
386Although this is a BIOS bug, this is a case where the
387workaround is simple enough and with no side effects, so it
388seemed prudent to add it.  A warning message is issued,
389however.
390
391Implemented minimum size checks for the fixed-length ACPI
392tables -- the FADT and FACS, as well as consistency checks
393between the revision number and the table size.
394
395Fixed a reported problem in the table override support where
396the new table pointer was incorrectly treated as a physical
397address instead of a logical address.
398
399Eliminated the use of the AE_AML_ERROR exception and
400replaced it with more descriptive codes.
401
402Fixed a problem where an exception would occur if an ASL
403Field was defined with no named Field Units underneath it
404(used by some index fields).
405
406Code and Data Size: Current core subsystem library sizes are
407shown below.  These are the code and data sizes for the
408acpica.lib produced by the Microsoft Visual C++ 6.0
409compiler, and these values do not include any ACPI driver or
410OSPM code.  The debug version of the code includes the debug
411output trace mechanism and has a larger code and data size.
412Note that these values will vary depending on the efficiency
413of the compiler and the compiler options used during
414generation.
415
416  Previous Release
417    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K
418Total
419    Debug Version:     142.9K Code,  58.4K Data,  201.3K
420Total
421  Current Release:
422    Non-Debug Version:  69.3K Code,   7.4K Data,   76.7K
423Total
424    Debug Version:     143.8K Code,  58.8K Data,  202.6K
425Total
426
427
428
4292) Linux
430
431Much work done on ACPI init (MADT and PCI IRQ routing
432support). (Paul D. and Dominik Brodowski)
433
434Fix PCI IRQ-related panic on boot (Sam Revitch)
435
436Set BM_ARB_DIS when entering a sleep state (Ducrot Bruno)
437
438Fix "MHz" typo (Dominik Brodowski)
439
440Fix RTC year 2000 issue (Dominik Brodowski)
441
442Preclude multiple button proc entries (Eric Brunet)
443
444Moved arch-specific code out of include/platform/aclinux.h
445
4463) iASL Compiler Version X2044:
447
448Implemented error checking for the string used in the EISAID
449macro (Usually used in the definition of the _HID object.)
450The code now strictly enforces the PnP format - exactly 7
451characters, 3 uppercase letters and 4 hex digits.
452
453If a raw string is used in the definition of the _HID object
454(instead of the EISAID macro), the string must contain all
455alphanumeric characters (e.g., "*PNP0011" is not allowed
456because of the asterisk.)
457
458Implemented checking for invalid use of ACPI reserved names
459for most of the name creation operators (Name, Device,
460Event, Mutex, OperationRegion, PowerResource, Processor, and
461ThermalZone.)  Previously, this check was only performed for
462control methods.
463
464Implemented an additional check on the Name operator to emit
465an error if a reserved name that must be implemented in ASL
466as a control method is used.  We know that a reserved name
467must be a method if it is defined with input arguments.
468
469The warning emitted when a namespace object reference is not
470found during the cross reference phase has been changed into
471an error.  The "External" directive should be used for names
472defined in other modules.
473
474
4754) Tools and Utilities
476
477The 16-bit tools (adump16 and aexec16) have been regenerated
478and tested.
479
480Fixed a problem with the output of both acpidump and adump16
481where the indentation of closing parentheses and brackets
482was not aligned properly with the parent block.
483
484
485----------------------------------------
48603 May 2002.  Summary of changes for this release.
487
488
4891) ACPI CA Core Subsystem Version 20020503:
490
491Added support a new OSL interface that allows the host
492operating system software to override the DSDT found in the
493firmware - AcpiOsTableOverride.  With this interface, the
494OSL can examine the version of the firmware DSDT and replace
495it with a different one if desired.
496
497Added new external interfaces for accessing ACPI registers
498from device drivers and other system software -
499AcpiGetRegister and AcpiSetRegister.  This was simply an
500externalization of the existing AcpiHwBitRegister
501interfaces.
502
503Fixed a regression introduced in the previous build where
504the ASL/AML CreateField operator always returned an error,
505"destination must be a NS Node".
506
507Extended the maximum time (before failure) to successfully
508enable ACPI mode to 3 seconds.
509
510Code and Data Size: Current core subsystem library sizes are
511shown below.  These are the code and data sizes for the
512acpica.lib produced by the Microsoft Visual C++ 6.0
513compiler, and these values do not include any ACPI driver or
514OSPM code.  The debug version of the code includes the debug
515output trace mechanism and has a larger code and data size.
516Note that these values will vary depending on the efficiency
517of the compiler and the compiler options used during
518generation.
519
520  Previous Release
521    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K
522Total
523    Debug Version:     142.4K Code,  58.3K Data,  200.7K
524Total
525  Current Release:
526    Non-Debug Version:  68.8K Code,   7.1K Data,   75.9K
527Total
528    Debug Version:     142.9K Code,  58.4K Data,  201.3K
529Total
530
531
5322) Linux
533
534Enhanced ACPI init code for SMP. We are now fully MPS and
535$PIR-free. While 3 out of 4 of our in-house systems work
536fine, the last one still hangs when testing the LAPIC timer.
537
538Renamed many files in 2.5 kernel release to omit "acpi_"
539from the name.
540
541Added warning on boot for Presario 711FR.
542
543Sleep improvements (Pavel Machek)
544
545ACPI can now be built without CONFIG_PCI enabled.
546
547IA64: Fixed memory map functions (JI Lee)
548
549
5503) iASL Compiler Version X2043:
551
552Added support to allow the compiler to be integrated into
553the MS VC++ development environment for one-button
554compilation of single files or entire projects -- with error-
555to-source-line mapping.
556
557Implemented support for compile-time constant folding for
558the Type3, Type4, and Type5 opcodes first defined in the
559ACPI 2.0 specification.  This allows the ASL writer to use
560expressions instead of Integer/Buffer/String constants in
561terms that must evaluate to constants at compile time and
562will also simplify the emitted AML in any such sub-
563expressions that can be folded (evaluated at compile-time.)
564This increases the size of the compiler significantly
565because a portion of the ACPI CA AML interpreter is included
566within the compiler in order to pre-evaluate constant
567expressions.
568
569Fixed a problem with the "Unicode" ASL macro that caused the
570compiler to fault.  (This macro is used in conjunction with
571the _STR reserved name.)
572
573Implemented an AML opcode optimization to use the Zero, One,
574and Ones opcodes where possible to further reduce the size
575of integer constants and thus reduce the overall size of the
576generated AML code.
577
578Implemented error checking for new reserved terms for ACPI
579version 2.0A.
580
581Implemented the -qr option to display the current list of
582ACPI reserved names known to the compiler.
583
584Implemented the -qc option to display the current list of
585ASL operators that are allowed within constant expressions
586and can therefore be folded at compile time if the operands
587are constants.
588
589
5904) Documentation
591
592Updated the Programmer's Reference for new interfaces, data
593types, and memory allocation model options.
594
595Updated the iASL Compiler User Reference to apply new format
596and add information about new features and options.
597
598----------------------------------------
59919 April 2002.  Summary of changes for this release.
600
6011) ACPI CA Core Subsystem Version 20020419:
602
603The source code base for the Core Subsystem has been
604completely cleaned with PC-lint (FlexLint) for both 32-bit
605and 64-bit versions.  The Lint option files used are
606included in the /acpi/generate/lint directory.
607
608Implemented enhanced status/error checking across the entire
609Hardware manager subsystem.  Any hardware errors (reported
610from the OSL) are now bubbled up and will abort a running
611control method.
612
613Fixed a problem where the per-ACPI-table integer width (32
614or 64) was stored only with control method nodes, causing a
615fault when non-control method code was executed during table
616loading.  The solution implemented uses a global variable to
617indicate table width across the entire ACPI subsystem.
618Therefore, ACPI CA does not support mixed integer widths
619across different ACPI tables (DSDT, SSDT).
620
621Fixed a problem where NULL extended fields (X fields) in an
622ACPI 2.0 ACPI FADT caused the table load to fail.  Although
623the existing ACPI specification is a bit fuzzy on this
624topic, the new behavior is to fall back on a ACPI 1.0 field
625if the corresponding ACPI 2.0 X field is zero (even though
626the table revision indicates a full ACPI 2.0 table.)  The
627ACPI specification will be updated to clarify this issue.
628
629Fixed a problem with the SystemMemory operation region
630handler where memory was always accessed byte-wise even if
631the AML-specified access width was larger than a byte.  This
632caused problems on systems with memory-mapped I/O.  Memory
633is now accessed with the width specified.  On systems that
634do not support non-aligned transfers, a check is made to
635guarantee proper address alignment before proceeding in
636order to avoid an AML-caused alignment fault within the
637kernel.
638
639Fixed a problem with the ExtendedIrq resource where only one
640byte of the 4-byte Irq field was extracted.
641
642Fixed the AcpiExDigitsNeeded() procedure to support _UID.
643This function was out of date and required a rewrite.
644
645Code and Data Size: Current core subsystem library sizes are
646shown below.  These are the code and data sizes for the
647acpica.lib produced by the Microsoft Visual C++ 6.0
648compiler, and these values do not include any ACPI driver or
649OSPM code.  The debug version of the code includes the debug
650output trace mechanism and has a larger code and data size.
651Note that these values will vary depending on the efficiency
652of the compiler and the compiler options used during
653generation.
654
655  Previous Release
656    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K
657Total
658    Debug Version:     139.8K Code,  57.4K Data,  197.2K
659Total
660  Current Release:
661    Non-Debug Version:  68.5K Code,   7.0K Data,   75.5K
662Total
663    Debug Version:     142.4K Code,  58.3K Data,  200.7K
664Total
665
666
6672) Linux
668
669PCI IRQ routing fixes (Dominik Brodowski)
670
671
6723) iASL Compiler Version X2042:
673
674Implemented an additional compile-time error check for a
675field unit whose size + minimum access width would cause a
676run-time access beyond the end-of-region.  Previously, only
677the field size itself was checked.
678
679The Core subsystem and iASL compiler now share a common
680parse object in preparation for compile-time evaluation of
681the type 3/4/5 ASL operators.
682
683
684----------------------------------------
685Summary of changes for this release: 03_29_02
686
6871) ACPI CA Core Subsystem Version 20020329:
688
689Implemented support for late evaluation of TermArg operands
690to Buffer and Package objects.  This allows complex
691expressions to be used in the declarations of these object
692types.
693
694Fixed an ACPI 1.0 compatibility issue when reading Fields.
695In ACPI 1.0, if the field was larger than 32 bits, it was
696returned as a buffer � otherwise it was returned as an
697integer.  In ACPI 2.0, the field is returned as a buffer
698only if the field is larger than 64 bits.  The TableRevision
699is now considered when making this conversion to avoid
700incompatibility with existing ASL code.
701
702Implemented logical addressing for AcpiOsGetRootPointer.
703This allows an RSDP with either a logical or physical
704address.  With this support, the host OS can now override
705all ACPI tables with one logical RSDP.  Includes
706implementation of  �typed� pointer support to allow a common
707data type for both physical and logical pointers internally.
708This required a change to the AcpiOsGetRootPointer
709interface.
710
711Implemented the use of ACPI 2.0 Generic Address Structures
712for all GPE, Fixed Event, and PM Timer I/O.  This allows the
713use of memory mapped I/O for these ACPI features.
714
715Initialization now ignores not only non-required tables (All
716tables other than the FADT, FACS, DSDT, and SSDTs), but also
717does not validate the table headers of unrecognized tables.
718
719Fixed a problem where a notify handler could only be
720installed/removed on an object of type Device.  All "notify"
721objects are now supported -- Devices, Processor, Power, and
722Thermal.
723
724Removed most verbosity from the ACPI_DB_INFO debug level.
725Only critical information is returned when this debug level
726is enabled.
727
728Code and Data Size: Current core subsystem library sizes are
729shown below.  These are the code and data sizes for the
730acpica.lib produced by the Microsoft Visual C++ 6.0
731compiler, and these values do not include any ACPI driver or
732OSPM code.  The debug version of the code includes the debug
733output trace mechanism and has a larger code and data size.
734Note that these values will vary depending on the efficiency
735of the compiler and the compiler options used during
736generation.
737
738  Previous Release
739    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K
740Total
741    Debug Version:     138.0K Code,  56.6K Data,  194.6K
742Total
743  Current Release:
744    Non-Debug Version:  66.6K Code,   6.5K Data,   73.1K
745Total
746    Debug Version:     139.8K Code,  57.4K Data,  197.2K
747Total
748
749
7502) Linux:
751
752The processor driver (acpi_processor.c) now fully supports
753ACPI 2.0-based processor performance control (e.g. Intel(R)
754SpeedStep(TM) technology) Note that older laptops that only
755have the Intel "applet" interface are not supported through
756this.  The 'limit' and 'performance' interface (/proc) are
757fully functional.  [Note that basic policy for controlling
758performance state transitions will be included in the next
759version of ospmd.]  The idle handler was modified to more
760aggressively use C2, and PIIX4 errata handling underwent a
761complete overhaul (big thanks to Dominik Brodowski).
762
763Added support for ACPI-PCI device binding (acpi_pci_root.c).
764_ADR-based devices in the ACPI namespace are now dynamically
765bound (associated) with their PCI counterparts (e.g. PCI1-
766>01:00.0).  This allows, among other things, ACPI to resolve
767bus numbers for subordinate PCI bridges.
768
769Enhanced PCI IRQ routing to get the proper bus number for
770_PRT entries defined underneath PCI bridges.
771
772Added IBM 600E to bad bios list due to invalid _ADR value
773for PIIX4 PCI-ISA bridge, resulting in improper PCI IRQ
774routing.
775
776In the process of adding full MADT support (e.g. IOAPIC) for
777IA32 (acpi.c, mpparse.c) -- stay tuned.
778
779Added back visual differentiation between fixed-feature and
780control-method buttons in dmesg.  Buttons are also subtyped
781(e.g. button/power/PWRF) to simplify button identification.
782
783We no longer use -Wno-unused when compiling debug. Please
784ignore any "_THIS_MODULE defined but not used" messages.
785
786Can now shut down the system using "magic sysrq" key.
787
788
7893) iASL Compiler version 2041:
790
791Fixed a problem where conversion errors for
792hex/octal/decimal constants were not reported.
793
794Implemented a fix for the General Register template Address
795field.  This field was 8 bits when it should be 64.
796
797Fixed a problem where errors/warnings were no longer being
798emitted within the listing output file.
799
800Implemented the ACPI 2.0A restriction on ACPI Table
801Signatures to exactly 4 characters, alphanumeric only.
802
803
804
805
806----------------------------------------
807Summary of changes for this release: 03_08_02
808
809
8101) ACPI CA Core Subsystem Version 20020308:
811
812Fixed a problem with AML Fields where the use of the
813"AccessAny" keyword could cause an interpreter error due to
814attempting to read or write beyond the end of the parent
815Operation Region.
816
817Fixed a problem in the SystemMemory Operation Region handler
818where an attempt was made to map memory beyond the end of
819the region.  This was the root cause of the "AE_ERROR" and
820"AE_NO_MEMORY" errors on some Linux systems.
821
822Fixed a problem where the interpreter/namespace "search to
823root" algorithm was not functioning for some object types.
824Relaxed the internal restriction on the search to allow
825upsearches for all external object types as well as most
826internal types.
827
828
8292) Linux:
830
831We now use safe_halt() macro versus individual calls to sti
832| hlt.
833
834Writing to the processor limit interface should now work.
835"echo 1" will increase the limit, 2 will decrease, and 0
836will reset to the default.
837
838
8393) ASL compiler:
840
841Fixed segfault on Linux version.
842
843
844----------------------------------------
845Summary of changes for this release: 02_25_02
846
8471) ACPI CA Core Subsystem:
848
849
850Fixed a problem where the GPE bit masks were not initialized
851properly, causing erratic GPE behavior.
852
853Implemented limited support for multiple calling
854conventions.  The code can be generated with either the VPL
855(variable parameter list, or "C") convention, or the FPL
856(fixed parameter list, or "Pascal") convention.  The core
857subsystem is about 3.4% smaller when generated with FPL.
858
859
8602) Linux
861
862Re-add some /proc/acpi/event functionality that was lost
863during the rewrite
864
865Resolved issue with /proc events for fixed-feature buttons
866showing up as the system device.
867
868Fixed checks on C2/C3 latencies to be inclusive of maximum
869values.
870
871Replaced AE_ERRORs in acpi_osl.c with more specific error
872codes.
873
874Changed ACPI PRT option from "pci=noacpi-routing" to
875"pci=noacpi"
876
877Fixed limit interface & usage to fix bugs with passive
878cooling hysterisis.
879
880Restructured PRT support.
881
882
883----------------------------------------
884Summary of changes for this label: 02_14_02
885
886
8871) ACPI CA Core Subsystem:
888
889Implemented support in AcpiLoadTable to allow loading of
890FACS and FADT tables.
891
892Suport for the now-obsolete interim 0.71 64-bit ACPI tables
893has been removed.  All 64-bit platforms should be migrated
894to the ACPI 2.0 tables.  The actbl71.h header has been
895removed from the source tree.
896
897All C macros defined within the subsystem have been prefixed
898with "ACPI_" to avoid collision with other system include
899files.
900
901Removed the return value for the two AcpiOsPrint interfaces,
902since it is never used and causes lint warnings for ignoring
903the return value.
904
905Added error checking to all internal mutex acquire and
906release calls.  Although a failure from one of these
907interfaces is probably a fatal system error, these checks
908will cause the immediate abort of the currently executing
909method or interface.
910
911Fixed a problem where the AcpiSetCurrentResources interface
912could fault.  This was a side effect of the deployment of
913the new memory allocation model.
914
915Fixed a couple of problems with the Global Lock support
916introduced in the last major build.  The "common" (1.0/2.0)
917internal FACS was being overwritten with the FACS signature
918and clobbering the Global Lock pointer.  Also, the actual
919firmware FACS was being unmapped after construction of the
920"common" FACS, preventing access to the actual Global Lock
921field within it.  The "common" internal FACS is no longer
922installed as an actual ACPI table; it is used simply as a
923global.
924
925Code and Data Size: Current core subsystem library sizes are
926shown below.  These are the code and data sizes for the
927acpica.lib produced by the Microsoft Visual C++ 6.0
928compiler, and these values do not include any ACPI driver or
929OSPM code.  The debug version of the code includes the debug
930output trace mechanism and has a larger code and data size.
931Note that these values will vary depending on the efficiency
932of the compiler and the compiler options used during
933generation.
934
935  Previous Release (02_07_01)
936    Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
937Total
938    Debug Version:     136.9K Code,  56.4K Data,  193.3K
939Total
940  Current Release:
941    Non-Debug Version:  65.4K Code,   6.2K Data,   71.6K
942Total
943    Debug Version:     138.0K Code,  56.6K Data,  194.6K
944Total
945
946
9472) Linux
948
949Updated Linux-specific code for core macro and OSL interface
950changes described above.
951
952Improved /proc/acpi/event. It now can be opened only once
953and has proper poll functionality.
954
955Fixed and restructured power management (acpi_bus).
956
957Only create /proc "view by type" when devices of that class
958exist.
959
960Fixed "charging/discharging" bug (and others) in
961acpi_battery.
962
963Improved thermal zone code.
964
965
9663) ASL Compiler, version X2039:
967
968Implemented the new compiler restriction on ASL String
969hex/octal escapes to non-null, ASCII values.  An error
970results if an invalid value is used.  (This will require an
971ACPI 2.0 specification change.)
972
973AML object labels that are output to the optional C and ASM
974source are now prefixed with both the ACPI table signature
975and table ID to help guarantee uniqueness within a large
976BIOS project.
977
978
979----------------------------------------
980Summary of changes for this label: 02_01_02
981
9821) ACPI CA Core Subsystem:
983
984ACPI 2.0 support is complete in the entire Core Subsystem
985and the ASL compiler. All new ACPI 2.0 operators are
986implemented and all other changes for ACPI 2.0 support are
987complete.  With simultaneous code and data optimizations
988throughout the subsystem, ACPI 2.0 support has been
989implemented with almost no additional cost in terms of code
990and data size.
991
992Implemented a new mechanism for allocation of return
993buffers.  If the buffer length is set to
994ACPI_ALLOCATE_BUFFER, the buffer will be allocated on behalf
995of the caller.  Consolidated all return buffer validation
996and allocation to a common procedure.  Return buffers will
997be allocated via the primary OSL allocation interface since
998it appears that a separate pool is not needed by most users.
999If a separate pool is required for these buffers, the caller
1000can still use the original mechanism and pre-allocate the
1001buffer(s).
1002
1003Implemented support for string operands within the DerefOf
1004operator.
1005
1006Restructured the Hardware and Event managers to be table
1007driven, simplifying the source code and reducing the amount
1008of generated code.
1009
1010Split the common read/write low-level ACPI register bitfield
1011procedure into a separate read and write, simplifying the
1012code considerably.
1013
1014Obsoleted the AcpiOsCallocate OSL interface.  This interface
1015was used only a handful of times and didn't have enough
1016critical mass for a separate interface.  Replaced with a
1017common calloc procedure in the core.
1018
1019Fixed a reported problem with the GPE number mapping
1020mechanism that allows GPE1 numbers to be non-contiguous with
1021GPE0.  Reorganized the GPE information and shrunk a large
1022array that was originally large enough to hold info for all
1023possible GPEs (256) to simply large enough to hold all GPEs
1024up to the largest GPE number on the machine.
1025
1026Fixed a reported problem with resource structure alignment
1027on 64-bit platforms.
1028
1029Changed the AcpiEnableEvent and AcpiDisableEvent external
1030interfaces to not require any flags for the common case of
1031enabling/disabling a GPE.
1032
1033Implemented support to allow a "Notify" on a Processor
1034object.
1035
1036Most TBDs in comments within the source code have been
1037resolved and eliminated.
1038
1039Fixed a problem in the interpreter where a standalone parent
1040prefix (^) was not handled correctly in the interpreter and
1041debugger.
1042
1043Removed obsolete and unnecessary GPE save/restore code.
1044
1045Implemented Field support in the ASL Load operator.  This
1046allows a table to be loaded from a named field, in addition
1047to loading a table directly from an Operation Region.
1048
1049Implemented timeout and handle support in the external
1050Global Lock interfaces.
1051
1052Fixed a problem in the AcpiDump utility where pathnames were
1053no longer being generated correctly during the dump of named
1054objects.
1055
1056Modified the AML debugger to give a full display of if/while
1057predicates instead of just one AML opcode at a time.  (The
1058predicate can have several nested ASL statements.)  The old
1059method was confusing during single stepping.
1060
1061Code and Data Size: Current core subsystem library sizes are
1062shown below. These are the code and data sizes for the
1063acpica.lib produced by the Microsoft Visual C++ 6.0
1064compiler, and these values do not include any ACPI driver or
1065OSPM code.  The debug version of the code includes the debug
1066output trace mechanism and has a larger code and data size.
1067Note that these values will vary depending on the efficiency
1068of the compiler and the compiler options used during
1069generation.
1070
1071  Previous Release (12_18_01)
1072     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1073Total
1074     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1075Total
1076   Current Release:
1077     Non-Debug Version:  65.2K Code,   6.2K Data,   71.4K
1078Total
1079     Debug Version:     136.9K Code,  56.4K Data,  193.3K
1080Total
1081
10822) Linux
1083
1084 Implemented fix for PIIX reverse throttling errata
1085(Processor driver)
1086
1087Added new Limit interface (Processor and Thermal drivers)
1088
1089New thermal policy (Thermal driver)
1090
1091Many updates to /proc
1092
1093Battery "low" event support (Battery driver)
1094
1095Supports ACPI PCI IRQ routing (PCI Link and PCI root
1096drivers)
1097
1098IA32 - IA64 initialization unification, no longer
1099experimental
1100
1101Menuconfig options redesigned
1102
11033) ASL Compiler, version X2037:
1104
1105Implemented several new output features to simplify
1106integration of AML code into  firmware: 1) Output the AML in
1107C source code with labels for each named ASL object.  The
1108original ASL source code is interleaved as C comments. 2)
1109Output the AML in ASM source code with labels and
1110interleaved ASL    source. 3) Output the AML in raw hex
1111table form, in either C or ASM.
1112
1113Implemented support for optional string parameters to the
1114LoadTable operator.
1115
1116Completed support for embedded escape sequences within
1117string literals.  The compiler now supports all single
1118character escapes as well as the Octal and Hex escapes.
1119Note: the insertion of a null byte into a string literal
1120(via the hex/octal escape) causes the string to be
1121immediately terminated.  A warning is issued.
1122
1123Fixed a problem where incorrect AML was generated for the
1124case where an ASL namepath consists of a single parent
1125prefix (
1126
1127) with no trailing name segments.
1128
1129The compiler has been successfully generated with a 64-bit C
1130compiler.
1131
1132
1133
1134
1135----------------------------------------
1136Summary of changes for this label: 12_18_01
1137
11381) Linux
1139
1140Enhanced blacklist with reason and severity fields. Any
1141table's signature may now be used to identify a blacklisted
1142system.
1143
1144Call _PIC control method to inform the firmware which
1145interrupt model the OS is using. Turn on any disabled link
1146devices.
1147
1148Cleaned up busmgr /proc error handling (Andreas Dilger)
1149
1150 2) ACPI CA Core Subsystem:
1151
1152Implemented ACPI 2.0 semantics for the "Break" operator
1153(Exit from while loop)
1154
1155Completed implementation of the ACPI 2.0 "Continue",
1156"ConcatenateResTemplate", "DataTableRegion", and "LoadTable"
1157operators.  All new ACPI 2.0 operators are now implemented
1158in both the ASL compiler and the AML interpreter.  The only
1159remaining ACPI 2.0 task is support for the String data type
1160in the DerefOf operator.  Fixed a problem with AcquireMutex
1161where the status code was lost if the caller had to actually
1162wait for the mutex.
1163
1164Increased the maximum ASL Field size from 64K bits to 4G
1165bits.
1166
1167Completed implementation of the external Global Lock
1168interfaces -- AcpiAcquireGlobalLock and
1169AcpiReleaseGlobalLock.  The Timeout and Handler parameters
1170were added.
1171
1172Completed another pass at removing warnings and issues when
1173compiling with 64-bit compilers.  The code now compiles
1174cleanly with the Intel 64-bit C/C++ compiler.  Most notably,
1175the pointer add and subtract (diff) macros have changed
1176considerably.
1177
1178Created and deployed a new ACPI_SIZE type that is 64-bits
1179wide on 64-bit platforms, 32-bits on all others.  This type
1180is used wherever memory allocation and/or the C sizeof()
1181operator is used, and affects the OSL memory allocation
1182interfaces AcpiOsAllocate and AcpiOsCallocate.
1183
1184Implemented sticky user breakpoints in the AML debugger.
1185
1186Code and Data Size: Current core subsystem library sizes are
1187shown below. These are the code and data sizes for the
1188acpica.lib produced by the Microsoft Visual C++ 6.0
1189compiler, and these values do not include any ACPI driver or
1190OSPM code.  The debug version of the code includes the debug
1191output trace mechanism and has a larger code and data size.
1192Note that these values will vary depending on the efficiency
1193of the compiler and the compiler options used during
1194generation.
1195
1196  Previous Release (12_05_01)
1197     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1198Total
1199     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1200Total
1201   Current Release:
1202     Non-Debug Version:  66.1K Code,   5.5K Data,   71.6K
1203Total
1204     Debug Version:     138.3K Code,  55.9K Data,  194.2K
1205Total
1206
1207 3) ASL Compiler, version X2034:
1208
1209Now checks for (and generates an error if detected) the use
1210of a Break or Continue statement without an enclosing While
1211statement.
1212
1213Successfully generated the compiler with the Intel 64-bit C
1214compiler.
1215
1216 ----------------------------------------
1217Summary of changes for this label: 12_05_01
1218
1219 1) ACPI CA Core Subsystem:
1220
1221The ACPI 2.0 CopyObject operator is fully implemented.  This
1222operator creates a new copy of an object (and is also used
1223to bypass the "implicit conversion" mechanism of the Store
1224operator.)
1225
1226The ACPI 2.0 semantics for the SizeOf operator are fully
1227implemented.  The change is that performing a SizeOf on a
1228reference object causes an automatic dereference of the
1229object to tha actual value before the size is evaluated.
1230This behavior was undefined in ACPI 1.0.
1231
1232The ACPI 2.0 semantics for the Extended IRQ resource
1233descriptor have been implemented.  The interrupt polarity
1234and mode are now independently set.
1235
1236Fixed a problem where ASL Constants (Zero, One, Ones,
1237Revision) appearing in Package objects were not properly
1238converted to integers when the internal Package was
1239converted to an external object (via the AcpiEvaluateObject
1240interface.)
1241
1242Fixed a problem with the namespace object deletion mechanism
1243for objects created by control methods.  There were two
1244parts to this problem: 1) Objects created during the
1245initialization phase method parse were not being deleted,
1246and 2) The object owner ID mechanism to track objects was
1247broken.
1248
1249Fixed a problem where the use of the ASL Scope operator
1250within a control method would result in an invalid opcode
1251exception.
1252
1253Fixed a problem introduced in the previous label where the
1254buffer length required for the _PRT structure was not being
1255returned correctly.
1256
1257Code and Data Size: Current core subsystem library sizes are
1258shown below. These are the code and data sizes for the
1259acpica.lib produced by the Microsoft Visual C++ 6.0
1260compiler, and these values do not include any ACPI driver or
1261OSPM code.  The debug version of the code includes the debug
1262output trace mechanism and has a larger code and data size.
1263Note that these values will vary depending on the efficiency
1264of the compiler and the compiler options used during
1265generation.
1266
1267  Previous Release (11_20_01)
1268     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1269Total
1270     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1271Total
1272
1273  Current Release:
1274     Non-Debug Version:  64.7K Code,   5.3K Data,   70.0K
1275Total
1276     Debug Version:     136.2K Code,  55.6K Data,  191.8K
1277Total
1278
1279 2) Linux:
1280
1281Updated all files to apply cleanly against 2.4.16.
1282
1283Added basic PCI Interrupt Routing Table (PRT) support for
1284IA32 (acpi_pci.c), and unified the PRT code for IA32 and
1285IA64.  This version supports both static and dyanmic PRT
1286entries, but dynamic entries are treated as if they were
1287static (not yet reconfigurable).  Architecture- specific
1288code to use this data is absent on IA32 but should be
1289available shortly.
1290
1291Changed the initialization sequence to start the ACPI
1292interpreter (acpi_init) prior to initialization of the PCI
1293driver (pci_init) in init/main.c.  This ordering is required
1294to support PRT and facilitate other (future) enhancement.  A
1295side effect is that the ACPI bus driver and certain device
1296drivers can no longer be loaded as modules.
1297
1298Modified the 'make menuconfig' options to allow PCI
1299Interrupt Routing support to be included without the ACPI
1300Bus and other device drivers.
1301
1302 3) ASL Compiler, version X2033:
1303
1304Fixed some issues with the use of the new CopyObject and
1305DataTableRegion operators.  Both are fully functional.
1306
1307 ----------------------------------------
1308Summary of changes for this label: 11_20_01
1309
1310 20 November 2001.  Summary of changes for this release.
1311
1312 1) ACPI CA Core Subsystem:
1313
1314Updated Index support to match ACPI 2.0 semantics.  Storing
1315a Integer, String, or Buffer to an Index of a Buffer will
1316store only the least-significant byte of the source to the
1317Indexed buffer byte.  Multiple writes are not performed.
1318
1319Fixed a problem where the access type used in an AccessAs
1320ASL operator was not recorded correctly into the field
1321object.
1322
1323Fixed a problem where ASL Event objects were created in a
1324signalled state. Events are now created in an unsignalled
1325state.
1326
1327The internal object cache is now purged after table loading
1328and initialization to reduce the use of dynamic kernel
1329memory -- on the assumption that object use is greatest
1330during the parse phase of the entire table (versus the run-
1331time use of individual control methods.)
1332
1333ACPI 2.0 variable-length packages are now fully operational.
1334
1335Code and Data Size: Code and Data optimizations have
1336permitted new feature development with an actual reduction
1337in the library size.  Current core subsystem library sizes
1338are shown below.  These are the code and data sizes for the
1339acpica.lib produced by the Microsoft Visual C++ 6.0
1340compiler, and these values do not include any ACPI driver or
1341OSPM code.  The debug version of the code includes the debug
1342output trace mechanism and has a larger code and data size.
1343Note that these values will vary depending on the efficiency
1344of the compiler and the compiler options used during
1345generation.
1346
1347  Previous Release (11_09_01):
1348     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1349Total
1350     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1351Total
1352
1353  Current Release:
1354     Non-Debug Version:  64.1K Code,   5.3K Data,   69.4K
1355Total
1356     Debug Version:     135.1K Code,  55.4K Data,  190.5K
1357Total
1358
1359 2) Linux:
1360
1361Enhanced the ACPI boot-time initialization code to allow the
1362use of Local APIC tables for processor enumeration on IA-32,
1363and to pave the way for a fully MPS-free boot (on SMP
1364systems) in the near future.  This functionality replaces
1365arch/i386/kernel/acpitables.c, which was introduced in an
1366earlier 2.4.15-preX release.  To enable this feature you
1367must add "acpi_boot=on" to the kernel command line -- see
1368the help entry for CONFIG_ACPI_BOOT for more information.
1369An IA-64 release is in the works...
1370
1371Restructured the configuration options to allow boot-time
1372table parsing support without inclusion of the ACPI
1373Interpreter (and other) code.
1374
1375NOTE: This release does not include fixes for the reported
1376events, power-down, and thermal passive cooling issues
1377(coming soon).
1378
1379 3) ASL Compiler:
1380
1381Added additional typechecking for Fields within restricted
1382access Operation Regions.  All fields within EC and CMOS
1383regions must be declared with ByteAcc. All fields withing
1384SMBus regions must be declared with the BufferAcc access
1385type.
1386
1387Fixed a problem where the listing file output of control
1388methods no longer interleaved the actual AML code with the
1389ASL source code.
1390
1391
1392
1393----------------------------------------
1394Summary of changes for this label: 11_09_01
1395
13961) ACPI CA Core Subsystem:
1397
1398Implemented ACPI 2.0-defined support for writes to fields
1399with a Buffer, String, or Integer source operand that is
1400smaller than the target field. In these cases, the source
1401operand is zero-extended to fill the target field.
1402
1403Fixed a problem where a Field starting bit offset (within
1404the parent operation region) was calculated incorrectly if
1405the alignment of the field differed from the access width.
1406This affected CreateWordField, CreateDwordField,
1407CreateQwordField, and possibly other fields that use the
1408"AccessAny" keyword.
1409
1410Fixed a problem introduced in the 11_02_01 release where
1411indirect stores through method arguments did not operate
1412correctly.
1413
14142) Linux:
1415
1416Implemented boot-time ACPI table parsing support
1417(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems.  This
1418code facilitates the use of ACPI tables (e.g. MADT, SRAT)
1419rather than legacy BIOS interfaces (e.g. MPS) for the
1420configuration of system processors, memory, and interrupts
1421during setup_arch().  Note that this patch does not include
1422the required architecture-specific changes required to apply
1423this information -- subsequent patches will be posted for
1424both IA32 and IA64 to achieve this.
1425
1426Added low-level sleep support for IA32 platforms, courtesy
1427of Pat Mochel. This allows IA32 systems to transition
1428to/from various sleeping states (e.g. S1, S3), although the
1429lack of a centralized driver model and power-manageable
1430drivers will prevent its (successful) use on most systems.
1431
1432Revamped the ACPI 'menuconfig' layout: created new "ACPI
1433Support" submenu, unified IA32 and IA64 options, added new
1434"Boot using ACPI tables" option, etc.
1435
1436Increased the default timeout for the EC driver from 1ms to
143710ms (1000 cycles of 10us) to try to address AE_TIME errors
1438during EC transactions.
1439
1440 ----------------------------------------
1441Summary of changes for this label: 11_02_01
1442
14431) ACPI CA Core Subsystem:
1444
1445ACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access
1446(QWordAcc keyword). All ACPI 2.0 64-bit support is now
1447implemented.
1448
1449OSL Interfaces: Several of the OSL (AcpiOs*) interfaces
1450required changes to support ACPI 2.0 Qword field access.
1451Read/Write PciConfiguration(), Read/Write Memory(), and
1452Read/Write Port() now accept an ACPI_INTEGER (64 bits) as
1453the value parameter.  Also, the value parameter for the
1454address space handler interface is now an ACPI_INTEGER.  OSL
1455implementations of these interfaces must now handle the case
1456where the Width parameter is 64.
1457
1458Index Fields: Fixed a problem where unaligned bit assembly
1459and disassembly for IndexFields was not supported correctly.
1460
1461Index and Bank Fields:  Nested Index and Bank Fields are now
1462supported. During field access, a check is performed to
1463ensure that the value written to an Index or Bank register
1464is not out of the range of the register.  The Index (or
1465Bank) register is written before each access to the field
1466data. Future support will include allowing individual
1467IndexFields to be wider than the DataRegister width.
1468
1469Fields: Fixed a problem where the AML interpreter was
1470incorrectly attempting to write beyond the end of a
1471Field/OpRegion.  This was a boundary case that occurred when
1472a DWORD field was written to a BYTE access OpRegion, forcing
1473multiple writes and causing the interpreter to write one
1474datum too many.
1475
1476Fields: Fixed a problem with Field/OpRegion access where the
1477starting bit address of a field was incorrectly calculated
1478if the current access type was wider than a byte (WordAcc,
1479DwordAcc, or QwordAcc).
1480
1481Fields: Fixed a problem where forward references to
1482individual FieldUnits (individual Field names within a Field
1483definition) were not resolved during the AML table load.
1484
1485Fields: Fixed a problem where forward references from a
1486Field definition to the parent Operation Region definition
1487were not resolved during the AML table load.
1488
1489Fields: Duplicate FieldUnit names within a scope are now
1490detected during AML table load.
1491
1492Acpi Interfaces: Fixed a problem where the AcpiGetName()
1493interface returned an incorrect name for the root node.
1494
1495Code and Data Size: Code and Data optimizations have
1496permitted new feature development with an actual reduction
1497in the library size.  Current core subsystem library sizes
1498are shown below.  These are the code and data sizes for the
1499acpica.lib produced by the Microsoft Visual C++ 6.0
1500compiler, and these values do not include any ACPI driver or
1501OSPM code.  The debug version of the code includes the debug
1502output trace mechanism and has a larger code and data size.
1503Note that these values will vary depending on the efficiency
1504of the compiler and the compiler options used during
1505generation.
1506
1507  Previous Release (10_18_01):
1508     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1509Total
1510     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1511Total
1512
1513  Current Release:
1514     Non-Debug Version:  63.7K Code,   5.2K Data,   68.9K
1515Total
1516     Debug Version:     134.5K Code,  55.4K Data,  189.9K
1517Total
1518
1519 2) Linux:
1520
1521Improved /proc processor output (Pavel Machek) Re-added
1522MODULE_LICENSE("GPL") to all modules.
1523
1524 3) ASL Compiler version X2030:
1525
1526Duplicate FieldUnit names within a scope are now detected
1527and flagged as errors.
1528
1529 4) Documentation:
1530
1531Programmer Reference updated to reflect OSL and address
1532space handler interface changes described above.
1533
1534----------------------------------------
1535Summary of changes for this label: 10_18_01
1536
1537ACPI CA Core Subsystem:
1538
1539Fixed a problem with the internal object reference count
1540mechanism that occasionally caused premature object
1541deletion. This resolves all of the outstanding problem
1542reports where an object is deleted in the middle of an
1543interpreter evaluation.  Although this problem only showed
1544up in rather obscure cases, the solution to the problem
1545involved an adjustment of all reference counts involving
1546objects attached to namespace nodes.
1547
1548Fixed a problem with Field support in the interpreter where
1549writing to an aligned field whose length is an exact
1550multiple (2 or greater) of the field access granularity
1551would cause an attempt to write beyond the end of the field.
1552
1553The top level AML opcode execution functions within the
1554interpreter have been renamed with a more meaningful and
1555consistent naming convention.  The modules exmonad.c and
1556exdyadic.c were eliminated.  New modules are exoparg1.c,
1557exoparg2.c, exoparg3.c, and exoparg6.c.
1558
1559Support for the ACPI 2.0 "Mid" ASL operator has been
1560implemented.
1561
1562Fixed a problem where the AML debugger was causing some
1563internal objects to not be deleted during subsystem
1564termination.
1565
1566Fixed a problem with the external AcpiEvaluateObject
1567interface where the subsystem would fault if the named
1568object to be evaluated refered to a constant such as Zero,
1569Ones, etc.
1570
1571Fixed a problem with IndexFields and BankFields where the
1572subsystem would fault if the index, data, or bank registers
1573were not defined in the same scope as the field itself.
1574
1575Added printf format string checking for compilers that
1576support this feature.  Corrected more than 50 instances of
1577issues with format specifiers within invocations of
1578ACPI_DEBUG_PRINT throughout the core subsystem code.
1579
1580The ASL "Revision" operator now returns the ACPI support
1581level implemented in the core - the value "2" since the ACPI
15822.0 support is more than 50% implemented.
1583
1584Enhanced the output of the AML debugger "dump namespace"
1585command to output in a more human-readable form.
1586
1587Current core subsystem library code sizes are shown below.
1588These are the code and data sizes for the acpica.lib
1589produced by the Microsoft Visual C++ 6.0 compiler, and these
1590values do not include any ACPI driver or OSPM code.  The
1591debug version of the code includes the full debug trace
1592mechanism -- leading to a much larger code and data size.
1593Note that these values will vary depending on the efficiency
1594of the compiler and the compiler options used during
1595generation.
1596
1597     Previous Label (09_20_01):
1598     Non-Debug Version:    65K Code,     5K Data,     70K
1599Total
1600     Debug Version:       138K Code,    58K Data,    196K
1601Total
1602
1603     This Label:
1604     Non-Debug Version:  63.9K Code,   5.1K Data,   69.0K
1605Total
1606     Debug Version:     136.7K Code,  57.4K Data,  194.2K
1607Total
1608
1609Linux:
1610
1611Implemented a "Bad BIOS Blacklist" to track machines that
1612have known ASL/AML problems.
1613
1614Enhanced the /proc interface for the thermal zone driver and
1615added support for _HOT (the critical suspend trip point).
1616The 'info' file now includes threshold/policy information,
1617and allows setting of _SCP (cooling preference) and _TZP
1618(polling frequency) values to the 'info' file. Examples:
1619"echo tzp=5 > info" sets the polling frequency to 5 seconds,
1620and "echo scp=1 > info" sets the cooling preference to the
1621passive/quiet mode (if supported by the ASL).
1622
1623Implemented a workaround for a gcc bug that resuted in an
1624OOPs when loading the control method battery driver.
1625
1626 ----------------------------------------
1627Summary of changes for this label: 09_20_01
1628
1629 ACPI CA Core Subsystem:
1630
1631The AcpiEnableEvent and AcpiDisableEvent interfaces have
1632been modified to allow individual GPE levels to be flagged
1633as wake-enabled (i.e., these GPEs are to remain enabled when
1634the platform sleeps.)
1635
1636The AcpiEnterSleepState and AcpiLeaveSleepState interfaces
1637now support wake-enabled GPEs.  This means that upon
1638entering the sleep state, all GPEs that are not wake-enabled
1639are disabled.  When leaving the sleep state, these GPEs are
1640reenabled.
1641
1642A local double-precision divide/modulo module has been added
1643to enhance portability to OS kernels where a 64-bit math
1644library is not available.  The new module is "utmath.c".
1645
1646Several optimizations have been made to reduce the use of
1647CPU stack.  Originally over 2K, the maximum stack usage is
1648now below 2K at 1860  bytes (1.82k)
1649
1650Fixed a problem with the AcpiGetFirmwareTable interface
1651where the root table pointer was not mapped into a logical
1652address properly.
1653
1654Fixed a problem where a NULL pointer was being dereferenced
1655in the interpreter code for the ASL Notify operator.
1656
1657Fixed a problem where the use of the ASL Revision operator
1658returned an error. This operator now returns the current
1659version of the ACPI CA core subsystem.
1660
1661Fixed a problem where objects passed as control method
1662parameters to AcpiEvaluateObject were always deleted at
1663method termination.  However, these objects may end up being
1664stored into the namespace by the called method.  The object
1665reference count mechanism was applied to these objects
1666instead of a force delete.
1667
1668Fixed a problem where static strings or buffers (contained
1669in the AML code) that are declared as package elements
1670within the ASL code could cause a fault because the
1671interpreter would attempt to delete them.  These objects are
1672now marked with the "static object" flag to prevent any
1673attempt to delete them.
1674
1675Implemented an interpreter optimization to use operands
1676directly from the state object instead of extracting the
1677operands to local variables.  This reduces stack use and
1678code size, and improves performance.
1679
1680The module exxface.c was eliminated as it was an unnecessary
1681extra layer of code.
1682
1683Current core subsystem library code sizes are shown below.
1684These are the code and data sizes for the acpica.lib
1685produced by the Microsoft Visual C++ 6.0 compiler, and these
1686values do not include any ACPI driver or OSPM code.  The
1687debug version of the code includes the full debug trace
1688mechanism -- leading to a much larger code and data size.
1689Note that these values will vary depending on the efficiency
1690of the compiler and the compiler options used during
1691generation.
1692
1693  Non-Debug Version:  65K Code,   5K Data,   70K Total
1694(Previously 69K)   Debug Version:     138K Code,  58K Data,
1695196K Total  (Previously 195K)
1696
1697Linux:
1698
1699Support for ACPI 2.0 64-bit integers has been added.   All
1700ACPI Integer objects are now 64 bits wide
1701
1702All Acpi data types and structures are now in lower case.
1703Only Acpi macros are upper case for differentiation.
1704
1705 Documentation:
1706
1707Changes to the external interfaces as described above.
1708
1709 ----------------------------------------
1710Summary of changes for this label: 08_31_01
1711
1712 ACPI CA Core Subsystem:
1713
1714A bug with interpreter implementation of the ASL Divide
1715operator was found and fixed.  The implicit function return
1716value (not the explicit store operands) was returning the
1717remainder instead of the quotient.  This was a longstanding
1718bug and it fixes several known outstanding issues on various
1719platforms.
1720
1721The ACPI_DEBUG_PRINT and function trace entry/exit macros
1722have been further optimized for size.  There are 700
1723invocations of the DEBUG_PRINT macro alone, so each
1724optimization reduces the size of the debug version of the
1725subsystem significantly.
1726
1727A stack trace mechanism has been implemented.  The maximum
1728stack usage is about 2K on 32-bit platforms.  The debugger
1729command "stat stack" will display the current maximum stack
1730usage.
1731
1732All public symbols and global variables within the subsystem
1733are now prefixed with the string "Acpi".  This keeps all of
1734the symbols grouped together in a kernel map, and avoids
1735conflicts with other kernel subsystems.
1736
1737Most of the internal fixed lookup tables have been moved
1738into the code segment via the const operator.
1739
1740Several enhancements have been made to the interpreter to
1741both reduce the code size and improve performance.
1742
1743Current core subsystem library code sizes are shown below.
1744These are the code and data sizes for the acpica.lib
1745produced by the Microsoft Visual C++ 6.0 compiler, and these
1746values do not include any ACPI driver or OSPM code.  The
1747debug version of the code includes the full debug trace
1748mechanism which contains over 700 invocations of the
1749DEBUG_PRINT macro, 500 function entry macro invocations, and
1750over 900 function exit macro invocations -- leading to a
1751much larger code and data size.  Note that these values will
1752vary depending on the efficiency of the compiler and the
1753compiler options used during generation.
1754
1755        Non-Debug Version:  64K Code,   5K Data,   69K Total
1756Debug Version:     137K Code,  58K Data,  195K Total
1757
1758 Linux:
1759
1760Implemented wbinvd() macro, pending a kernel-wide
1761definition.
1762
1763Fixed /proc/acpi/event to handle poll() and short reads.
1764
1765 ASL Compiler, version X2026:
1766
1767Fixed a problem introduced in the previous label where the
1768AML code emitted for package objects produced packages with
1769zero length.
1770
1771 ----------------------------------------
1772Summary of changes for this label: 08_16_01
1773
1774ACPI CA Core Subsystem:
1775
1776The following ACPI 2.0 ASL operators have been implemented
1777in the AML interpreter (These are already supported by the
1778Intel ASL compiler):  ToDecimalString, ToHexString,
1779ToString, ToInteger, and ToBuffer.  Support for 64-bit AML
1780constants is implemented in the AML parser, debugger, and
1781disassembler.
1782
1783The internal memory tracking mechanism (leak detection code)
1784has been upgraded to reduce the memory overhead (a separate
1785tracking block is no longer allocated for each memory
1786allocation), and now supports all of the internal object
1787caches.
1788
1789The data structures and code for the internal object caches
1790have been coelesced and optimized so that there is a single
1791cache and memory list data structure and a single group of
1792functions that implement generic cache management.  This has
1793reduced the code size in both the debug and release versions
1794of the subsystem.
1795
1796The DEBUG_PRINT macro(s) have been optimized for size and
1797replaced by ACPI_DEBUG_PRINT.  The syntax for this macro is
1798slightly different, because it generates a single call to an
1799internal function.  This results in a savings of about 90
1800bytes per invocation, resulting in an overall code and data
1801savings of about 16% in the debug version of the subsystem.
1802
1803 Linux:
1804
1805Fixed C3 disk corruption problems and re-enabled C3 on
1806supporting machines.
1807
1808Integrated low-level sleep code by Patrick Mochel.
1809
1810Further tweaked source code Linuxization.
1811
1812Other minor fixes.
1813
1814 ASL Compiler:
1815
1816Support for ACPI 2.0 variable length packages is
1817fixed/completed.
1818
1819Fixed a problem where the optional length parameter for the
1820ACPI 2.0 ToString operator.
1821
1822Fixed multiple extraneous error messages when a syntax error
1823is detected within the declaration line of a control method.
1824
1825 ----------------------------------------
1826Summary of changes for this label: 07_17_01
1827
1828ACPI CA Core Subsystem:
1829
1830Added a new interface named AcpiGetFirmwareTable to obtain
1831any ACPI table via the ACPI signature.  The interface can be
1832called at any time during kernel initialization, even before
1833the kernel virtual memory manager is initialized and paging
1834is enabled.  This allows kernel subsystems to obtain ACPI
1835tables very early, even before the ACPI CA subsystem is
1836initialized.
1837
1838Fixed a problem where Fields defined with the AnyAcc
1839attribute could be resolved to the incorrect address under
1840the following conditions: 1) the field width is larger than
18418 bits and 2) the parent operation region is not defined on
1842a DWORD boundary.
1843
1844Fixed a problem where the interpreter is not being locked
1845during namespace initialization (during execution of the
1846_INI control methods), causing an error when an attempt is
1847made to release it later.
1848
1849ACPI 2.0 support in the AML Interpreter has begun and will
1850be ongoing throughout the rest of this year.  In this label,
1851The Mod operator is implemented.
1852
1853Added a new data type to contain full PCI addresses named
1854ACPI_PCI_ID. This structure contains the PCI Segment, Bus,
1855Device, and Function values.
1856
1857 Linux:
1858
1859Enhanced the Linux version of the source code to change most
1860capitalized ACPI type names to lowercase. For example, all
1861instances of ACPI_STATUS are changed to acpi_status.  This
1862will result in a large diff, but the change is strictly
1863cosmetic and aligns the CA code closer to the Linux coding
1864standard.
1865
1866OSL Interfaces:
1867
1868The interfaces to the PCI configuration space have been
1869changed to add the PCI Segment number and to split the
1870single 32-bit combined DeviceFunction field into two 16-bit
1871fields.  This was accomplished by moving the four values
1872that define an address in PCI configuration space (segment,
1873bus, device, and function) to the new ACPI_PCI_ID structure.
1874
1875The changes to the PCI configuration space interfaces led to
1876a reexamination of the complete set of address space access
1877interfaces for PCI, I/O, and Memory.  The previously
1878existing 18 interfaces have proven difficult to maintain
1879(any small change must be propagated across at least 6
1880interfaces) and do not easily allow for future expansion to
188164 bits if necessary.  Also, on some systems, it would not
1882be appropriate to demultiplex the access width (8, 16, 32,or
188364) before calling the OSL if the corresponding native OS
1884interfaces contain a similar access width parameter.  For
1885these reasons, the 18 address space interfaces have been
1886replaced by these 6 new ones:
1887
1888AcpiOsReadPciConfiguration
1889AcpiOsWritePciConfiguration
1890AcpiOsReadMemory
1891AcpiOsWriteMemory
1892AcpiOsReadPort
1893AcpiOsWritePort
1894
1895Added a new interface named AcpiOsGetRootPointer to allow
1896the OSL to perform the platform and/or OS-specific actions
1897necessary to obtain the ACPI RSDP table pointer.  On IA-32
1898platforms, this interface will simply call down to the CA
1899core to perform the low-memory search for the table.  On IA-
190064, the RSDP is obtained from EFI.  Migrating this interface
1901to the OSL allows the CA core to remain OS and platform
1902independent.
1903
1904Added a new interface named AcpiOsSignal to provide a
1905generic "function code and pointer" interface for various
1906miscellaneous signals and notifications that must be made to
1907the host OS.   The first such signals are intended to
1908support the ASL Fatal and Breakpoint operators.  In the
1909latter case, the AcpiOsBreakpoint interface has been
1910obsoleted.
1911
1912The definition of the AcpiFormatException interface has been
1913changed to simplify its use.  The caller no longer must
1914supply a buffer to the call; A pointer to a const string is
1915now returned directly.  This allows the call to be easily
1916used in printf statements, etc. since the caller does not
1917have to manage a local buffer.
1918
1919 ASL Compiler, Version X2025:
1920
1921The ACPI 2.0 Switch/Case/Default operators have been
1922implemented and are fully functional.  They will work with
1923all ACPI 1.0 interpreters, since the operators are simply
1924translated to If/Else pairs.
1925
1926The ACPI 2.0 ElseIf operator is implemented and will also
1927work with 1.0 interpreters, for the same reason.
1928
1929Implemented support for ACPI 2.0 variable-length packages.
1930These packages have a separate opcode, and their size is
1931determined by the interpreter at run-time.
1932
1933Documentation The ACPI CA Programmer Reference has been
1934updated to reflect the new interfaces and changes to
1935existing interfaces.
1936
1937 ------------------------------------------
1938Summary of changes for this label: 06_15_01
1939
1940 ACPI CA Core Subsystem:
1941
1942Fixed a problem where a DWORD-accessed field within a Buffer
1943object would get its byte address inadvertently rounded down
1944to the nearest DWORD.  Buffers are always Byte-accessible.
1945
1946 ASL Compiler, version X2024:
1947
1948Fixed a problem where the Switch() operator would either
1949fault or hang the compiler.  Note however, that the AML code
1950for this ACPI 2.0 operator is not yet implemented.
1951
1952Compiler uses the new AcpiOsGetTimer interface to obtain
1953compile timings.
1954
1955Implementation of the CreateField operator automatically
1956converts a reference to a named field within a resource
1957descriptor from a byte offset to a bit offset if required.
1958
1959Added some missing named fields from the resource descriptor
1960support. These are the names that are automatically created
1961by the compiler to reference fields within a descriptor.
1962They are only valid at compile time and are not passed
1963through to the AML interpreter.
1964
1965Resource descriptor named fields are now typed as Integers
1966and subject to compile-time typechecking when used in
1967expressions.
1968
1969 ------------------------------------------
1970Summary of changes for this label: 05_18_01
1971
1972 ACPI CA Core Subsystem:
1973
1974Fixed a couple of problems in the Field support code where
1975bits from adjacent fields could be returned along with the
1976proper field bits. Restructured the field support code to
1977improve performance, readability and maintainability.
1978
1979New DEBUG_PRINTP macro automatically inserts the procedure
1980name into the output, saving hundreds of copies of procedure
1981name strings within the source, shrinking the memory
1982footprint of the debug version of the core subsystem.
1983
1984 Source Code Structure:
1985
1986The source code directory tree was restructured to reflect
1987the current organization of the component architecture.
1988Some files and directories have been moved and/or renamed.
1989
1990 Linux:
1991
1992Fixed leaking kacpidpc processes.
1993
1994Fixed queueing event data even when /proc/acpi/event is not
1995opened.
1996
1997 ASL Compiler, version X2020:
1998
1999Memory allocation performance enhancement - over 24X compile
2000time improvement on large ASL files.  Parse nodes and
2001namestring buffers are now allocated from a large internal
2002compiler buffer.
2003
2004The temporary .SRC file is deleted unless the "-s" option is
2005specified
2006
2007The "-d" debug output option now sends all output to the
2008.DBG file instead of the console.
2009
2010"External" second parameter is now optional
2011
2012"ElseIf" syntax now properly allows the predicate
2013
2014Last operand to "Load" now recognized as a Target operand
2015
2016Debug object can now be used anywhere as a normal object.
2017
2018ResourceTemplate now returns an object of type BUFFER
2019
2020EISAID now returns an object of type INTEGER
2021
2022"Index" now works with a STRING operand
2023
2024"LoadTable" now accepts optional parameters
2025
2026"ToString" length parameter is now optional
2027
2028"Interrupt (ResourceType," parse error fixed.
2029
2030"Register" with a user-defined region space parse error
2031fixed
2032
2033Escaped backslash at the end of a string ("\\") scan/parse
2034error fixed
2035
2036"Revision" is now an object of type INTEGER.
2037
2038
2039
2040------------------------------------------
2041Summary of changes for this label: 05_02_01
2042
2043Linux:
2044
2045/proc/acpi/event now blocks properly.
2046
2047Removed /proc/sys/acpi. You can still dump your DSDT from
2048/proc/acpi/dsdt.
2049
2050 ACPI CA Core Subsystem:
2051
2052Fixed a problem introduced in the previous label where some
2053of the "small" resource descriptor types were not
2054recognized.
2055
2056Improved error messages for the case where an ASL Field is
2057outside the range of the parent operation region.
2058
2059 ASL Compiler, version X2018:
2060
2061Added error detection for ASL Fields that extend beyond the
2062length of the parent operation region (only if the length of
2063the region is known at compile time.)  This includes fields
2064that have a minimum access width that is smaller than the
2065parent region, and individual field units that are partially
2066or entirely beyond the extent of the parent.
2067
2068
2069
2070------------------------------------------
2071Summary of changes for this label: 04_27_01
2072
2073 ACPI CA Core Subsystem:
2074
2075Fixed a problem where the namespace mutex could be released
2076at the wrong time during execution of
2077AcpiRemoveAddressSpaceHandler.
2078
2079Added optional thread ID output for debug traces, to
2080simplify debugging of multiple threads.  Added context
2081switch notification when the debug code realizes that a
2082different thread is now executing ACPI code.
2083
2084Some additional external data types have been prefixed with
2085the string "ACPI_" for consistency.  This may effect
2086existing code.  The data types affected are the external
2087callback typedefs - e.g., WALK_CALLBACK becomes
2088ACPI_WALK_CALLBACK.
2089
2090 Linux:
2091
2092Fixed an issue with the OSL semaphore implementation where a
2093thread was waking up with an error from receiving a SIGCHLD
2094signal.
2095
2096Linux version of ACPI CA now uses the system C library for
2097string manipulation routines instead of a local
2098implementation.
2099
2100Cleaned up comments and removed TBDs.
2101
2102 ASL Compiler, version X2017:
2103
2104Enhanced error detection and reporting for all file I/O
2105operations.
2106
2107 Documentation:
2108
2109Programmer Reference updated to version 1.06.
2110
2111
2112
2113------------------------------------------
2114Summary of changes for this label: 04_13_01
2115
2116 ACPI CA Core Subsystem:
2117
2118Restructured support for BufferFields and RegionFields.
2119BankFields support is now fully operational.  All known 32-
2120bit limitations on field sizes have been removed.  Both
2121BufferFields and (Operation) RegionFields are now supported
2122by the same field management code.
2123
2124Resource support now supports QWORD address and IO
2125resources. The 16/32/64 bit address structures and the
2126Extended IRQ structure have been changed to properly handle
2127Source Resource strings.
2128
2129A ThreadId of -1 is now used to indicate a "mutex not
2130acquired" condition internally and must never be returned by
2131AcpiOsThreadId. This reserved value was changed from 0 since
2132Unix systems allow a thread ID of 0.
2133
2134Linux:
2135
2136Driver code reorganized to enhance portability
2137
2138Added a kernel configuration option to control ACPI_DEBUG
2139
2140Fixed the EC driver to honor _GLK.
2141
2142ASL Compiler, version X2016:
2143
2144Fixed support for the "FixedHw" keyword.  Previously, the
2145FixedHw address space was set to 0, not 0x7f as it should
2146be.
2147
2148 ------------------------------------------
2149Summary of changes for this label: 03_13_01
2150
2151 ACPI CA Core Subsystem:
2152
2153During ACPI initialization, the _SB_._INI method is now run
2154if present.
2155
2156Notify handler fix - notifies are deferred until the parent
2157method completes execution.  This fixes the "mutex already
2158acquired" issue seen occasionally.
2159
2160Part of the "implicit conversion" rules in ACPI 2.0 have
2161been found to cause compatibility problems with existing
2162ASL/AML.  The convert "result-to-target-type" implementation
2163has been removed for stores to method Args and Locals.
2164Source operand conversion is still fully implemented.
2165Possible changes to ACPI 2.0 specification pending.
2166
2167Fix to AcpiRsCalculatePciRoutingTableLength to return
2168correct length.
2169
2170Fix for compiler warnings for 64-bit compiles.
2171
2172 Linux:
2173
2174/proc output aligned for easier parsing.
2175
2176Release-version compile problem fixed.
2177
2178New kernel configuration options documented in
2179Configure.help.
2180
2181IBM 600E - Fixed Sleep button may generate "Invalid <NULL>
2182context" message.
2183
2184 OSPM:
2185
2186Power resource driver integrated with bus manager.
2187
2188Fixed kernel fault during active cooling for thermal zones.
2189
2190Source Code:
2191
2192The source code tree has been restructured.
2193
2194
2195
2196------------------------------------------
2197Summary of changes for this label: 03_02_01
2198
2199 Linux OS Services Layer (OSL):
2200
2201Major revision of all Linux-specific code.
2202
2203Modularized all ACPI-specific drivers.
2204
2205Added new thermal zone and power resource drivers.
2206
2207Revamped /proc interface (new functionality is under
2208/proc/acpi).
2209
2210New kernel configuration options.
2211
2212 Linux known issues:
2213
2214New kernel configuration options not documented in
2215Configure.help yet.
2216
2217Module dependencies not currently implemented. If used, they
2218should be loaded in this order: busmgr, power, ec, system,
2219processor, battery, ac_adapter, button, thermal.
2220
2221Modules will not load if CONFIG_MODVERSION is set.
2222
2223IBM 600E - entering S5 may reboot instead of shutting down.
2224
2225IBM 600E - Sleep button may generate "Invalid <NULL>
2226context" message.
2227
2228Some systems may fail with "execution mutex already
2229acquired" message.
2230
2231 ACPI CA Core Subsystem:
2232
2233Added a new OSL Interface, AcpiOsGetThreadId.  This was
2234required for the  deadlock detection code. Defined to return
2235a non-zero, 32-bit thread ID for the currently executing
2236thread.  May be a non-zero constant integer on single-thread
2237systems.
2238
2239Implemented deadlock detection for internal subsystem
2240mutexes.  We may add conditional compilation for this code
2241(debug only) later.
2242
2243ASL/AML Mutex object semantics are now fully supported.
2244This includes multiple acquires/releases by owner and
2245support for the Mutex SyncLevel parameter.
2246
2247A new "Force Release" mechanism automatically frees all ASL
2248Mutexes that have been acquired but not released when a
2249thread exits the interpreter.  This forces conformance to
2250the ACPI spec ("All mutexes must be released when an
2251invocation exits") and prevents deadlocked ASL threads.
2252This mechanism can be expanded (later) to monitor other
2253resource acquisitions if OEM ASL code continues to misbehave
2254(which it will).
2255
2256Several new ACPI exception codes have been added for the
2257Mutex support.
2258
2259Recursive method calls are now allowed and supported (the
2260ACPI spec does in fact allow recursive method calls.)  The
2261number of recursive calls is subject to the restrictions
2262imposed by the SERIALIZED method keyword and SyncLevel (ACPI
22632.0) method parameter.
2264
2265Implemented support for the SyncLevel parameter for control
2266methods (ACPI 2.0 feature)
2267
2268Fixed a deadlock problem when multiple threads attempted to
2269use the interpreter.
2270
2271Fixed a problem where the string length of a String package
2272element was not always set in a package returned from
2273AcpiEvaluateObject.
2274
2275Fixed a problem where the length of a String package element
2276was not always included in the length of the overall package
2277returned from AcpiEvaluateObject.
2278
2279Added external interfaces (Acpi*) to the ACPI debug memory
2280manager.  This manager keeps a list of all outstanding
2281allocations, and can therefore detect memory leaks and
2282attempts to free memory blocks more than once. Useful for
2283code such as the power manager, etc.  May not be appropriate
2284for device drivers.  Performance with the debug code enabled
2285is slow.
2286
2287The ACPI Global Lock is now an optional hardware element.
2288
2289 ASL Compiler Version X2015:
2290
2291Integrated changes to allow the compiler to be generated on
2292multiple platforms.
2293
2294Linux makefile added to generate the compiler on Linux
2295
2296 Source Code:
2297
2298All platform-specific headers have been moved to their own
2299subdirectory, Include/Platform.
2300
2301New source file added, Interpreter/ammutex.c
2302
2303New header file, Include/acstruct.h
2304
2305 Documentation:
2306
2307The programmer reference has been updated for the following
2308new interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate
2309AcpiFree
2310
2311 ------------------------------------------
2312Summary of changes for this label: 02_08_01
2313
2314Core ACPI CA Subsystem: Fixed a problem where an error was
2315incorrectly returned if the return resource buffer was
2316larger than the actual data (in the resource interfaces).
2317
2318References to named objects within packages are resolved to
2319the full pathname string before packages are returned
2320directly (via the AcpiEvaluateObject interface) or
2321indirectly via the resource interfaces.
2322
2323Linux OS Services Layer (OSL):
2324
2325Improved /proc battery interface.
2326
2327
2328Added C-state debugging output and other miscellaneous
2329fixes.
2330
2331ASL Compiler Version X2014:
2332
2333All defined method arguments can now be used as local
2334variables, including the ones that are not actually passed
2335in as parameters.  The compiler tracks initialization of the
2336arguments and issues an exception if they are used without
2337prior assignment (just like locals).
2338
2339The -o option now specifies a filename prefix that is used
2340for all output files, including the AML output file.
2341Otherwise, the default behavior is as follows:  1) the AML
2342goes to the file specified in the DSDT.  2) all other output
2343files use the input source filename as the base.
2344
2345 ------------------------------------------
2346Summary of changes for this label: 01_25_01
2347
2348Core ACPI CA Subsystem: Restructured the implementation of
2349object store support within the  interpreter.  This includes
2350support for the Store operator as well  as any ASL operators
2351that include a target operand.
2352
2353Partially implemented support for Implicit Result-to-Target
2354conversion. This is when a result object is converted on the
2355fly to the type of  an existing target object.  Completion
2356of this support is pending  further analysis of the ACPI
2357specification concerning this matter.
2358
2359CPU-specific code has been removed from the subsystem
2360(hardware directory).
2361
2362New Power Management Timer functions added
2363
2364Linux OS Services Layer (OSL): Moved system state transition
2365code to the core, fixed it, and modified  Linux OSL
2366accordingly.
2367
2368Fixed C2 and C3 latency calculations.
2369
2370
2371We no longer use the compilation date for the version
2372message on  initialization, but retrieve the version from
2373AcpiGetSystemInfo().
2374
2375Incorporated for fix Sony VAIO machines.
2376
2377Documentation:  The Programmer Reference has been updated
2378and reformatted.
2379
2380
2381ASL Compiler:  Version X2013: Fixed a problem where the line
2382numbering and error reporting could get out  of sync in the
2383presence of multiple include files.
2384
2385 ------------------------------------------
2386Summary of changes for this label: 01_15_01
2387
2388Core ACPI CA Subsystem:
2389
2390Implemented support for type conversions in the execution of
2391the ASL  Concatenate operator (The second operand is
2392converted to match the type  of the first operand before
2393concatenation.)
2394
2395Support for implicit source operand conversion is partially
2396implemented.   The ASL source operand types Integer, Buffer,
2397and String are freely  interchangeable for most ASL
2398operators and are converted by the interpreter  on the fly
2399as required.  Implicit Target operand conversion (where the
2400result is converted to the target type before storing) is
2401not yet implemented.
2402
2403Support for 32-bit and 64-bit BCD integers is implemented.
2404
2405Problem fixed where a field read on an aligned field could
2406cause a read  past the end of the field.
2407
2408New exception, AE_AML_NO_RETURN_VALUE, is returned when a
2409method does not return a value, but the caller expects one.
2410(The ASL compiler flags this as a warning.)
2411
2412ASL Compiler:
2413
2414Version X2011:
24151. Static typechecking of all operands is implemented. This
2416prevents the use of invalid objects (such as using a Package
2417where an Integer is required) at compile time instead of at
2418interpreter run-time.
24192. The ASL source line is printed with ALL errors and
2420warnings.
24213. Bug fix for source EOF without final linefeed.
24224. Debug option is split into a parse trace and a namespace
2423trace.
24245. Namespace output option (-n) includes initial values for
2425integers and strings.
24266. Parse-only option added for quick syntax checking.
24277. Compiler checks for duplicate ACPI name declarations
2428
2429Version X2012:
24301. Relaxed typechecking to allow interchangeability between
2431strings, integers, and buffers.  These types are now
2432converted by the interpreter at runtime.
24332. Compiler reports time taken by each internal subsystem in
2434the debug         output file.
2435
2436
2437 ------------------------------------------
2438Summary of changes for this label: 12_14_00
2439
2440ASL Compiler:
2441
2442This is the first official release of the compiler. Since
2443the compiler requires elements of the Core Subsystem, this
2444label synchronizes everything.
2445
2446------------------------------------------
2447Summary of changes for this label: 12_08_00
2448
2449Fixed a problem where named references within the ASL
2450definition of both OperationRegions and CreateXXXFields did
2451not work properly.  The symptom was an AE_AML_OPERAND_TYPE
2452during initialization of the region/field. This is similar
2453(but not related internally) to the problem that was fixed
2454in the last label.
2455
2456Implemented both 32-bit and 64-bit support for the BCD ASL
2457functions ToBCD and FromBCD.
2458
2459Updated all legal headers to include "2000" in the copyright
2460years.
2461
2462 ------------------------------------------
2463Summary of changes for this label: 12_01_00
2464
2465Fixed a problem where method invocations within the ASL
2466definition of both OperationRegions and CreateXXXFields did
2467not work properly.  The symptom was an AE_AML_OPERAND_TYPE
2468during initialization of the region/field:
2469
2470  nsinit-0209: AE_AML_OPERAND_TYPE while getting region
2471arguments [DEBG]   ammonad-0284: Exec_monadic2_r/Not: bad
2472operand(s) (0x3005)
2473
2474Fixed a problem where operators with more than one nested
2475subexpression would fail.  The symptoms were varied, by
2476mostly AE_AML_OPERAND_TYPE errors.  This was actually a
2477rather serious problem that has gone unnoticed until now.
2478
2479  Subtract (Add (1,2), Multiply (3,4))
2480
2481Fixed a problem where AcpiGetHandle didn't quite get fixed
2482in the previous build (The prefix part of a relative path
2483was handled incorrectly).
2484
2485Fixed a problem where Operation Region initialization failed
2486if the operation region name was a "namepath" instead of a
2487simple "nameseg". Symptom was an AE_NO_OPERAND error.
2488
2489Fixed a problem where an assignment to a local variable via
2490the indirect RefOf mechanism only worked for the first such
2491assignment.  Subsequent assignments were ignored.
2492
2493 ------------------------------------------
2494Summary of changes for this label: 11_15_00
2495
2496ACPI 2.0 table support with backwards support for ACPI 1.0
2497and the 0.71 extensions.  Note: although we can read ACPI
24982.0 BIOS tables, the AML  interpreter does NOT have support
2499for the new 2.0 ASL grammar terms at this time.
2500
2501All ACPI hardware access is via the GAS structures in the
2502ACPI 2.0 FADT.
2503
2504All physical memory addresses across all platforms are now
250564 bits wide. Logical address width remains dependent on the
2506platform (i.e., "void *").
2507
2508AcpiOsMapMemory interface changed to a 64-bit physical
2509address.
2510
2511The AML interpreter integer size is now 64 bits, as per the
2512ACPI 2.0 specification.
2513
2514For backwards compatibility with ACPI 1.0, ACPI tables with
2515a revision number less than 2 use 32-bit integers only.
2516
2517Fixed a problem where the evaluation of OpRegion operands
2518did not always resolve them to numbers properly.
2519
2520------------------------------------------
2521Summary of changes for this label: 10_20_00
2522
2523Fix for CBN_._STA issue.  This fix will allow correct access
2524to CBN_ OpRegions when the _STA returns 0x8.
2525
2526Support to convert ACPI constants (Ones, Zeros, One) to
2527actual values before a package object is returned
2528
2529Fix for method call as predicate to if/while construct
2530causing incorrect if/while behavior
2531
2532Fix for Else block package lengths sometimes calculated
2533wrong (if block > 63 bytes)
2534
2535Fix for Processor object length field, was always zero
2536
2537Table load abort if FACP sanity check fails
2538
2539Fix for problem with Scope(name) if name already exists
2540
2541Warning emitted if a named object referenced cannot be found
2542(resolved) during method execution.
2543
2544
2545
2546
2547
2548------------------------------------------
2549Summary of changes for this label: 9_29_00
2550
2551New table initialization interfaces: AcpiInitializeSubsystem
2552no longer has any parameters AcpiFindRootPointer - Find the
2553RSDP (if necessary) AcpiLoadTables (RSDP) - load all tables
2554found at RSDP->RSDT Obsolete Interfaces
2555AcpiLoadFirmwareTables - replaced by AcpiLoadTables
2556
2557Note: These interface changes require changes to all
2558existing OSDs
2559
2560The PCI_Config default address space handler is always
2561installed at the root namespace object.
2562
2563-------------------------------------------
2564Summary of changes for this label: 09_15_00
2565
2566The new initialization architecture is implemented.  New
2567interfaces are: AcpiInitializeSubsystem (replaces
2568AcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces:
2569AcpiLoadNamespace (Namespace is automatically loaded when a
2570table is loaded)
2571
2572The ACPI_OPERAND_OBJECT has been optimized to shrink its
2573size from 52 bytes to 32 bytes.  There is usually one of
2574these for every namespace object, so the memory savings is
2575significant.
2576
2577Implemented just-in-time evaluation of the CreateField
2578operators.
2579
2580Bug fixes for IA-64 support have been integrated.
2581
2582Additional code review comments have been implemented
2583
2584The so-called "third pass parse" has been replaced by a
2585final walk through the namespace to initialize all operation
2586regions (address spaces) and fields that have not yet been
2587initialized during the execution of the various _INI and REG
2588methods.
2589
2590New file - namespace/nsinit.c
2591
2592-------------------------------------------
2593Summary of changes for this label: 09_01_00
2594
2595Namespace manager data structures have been reworked to
2596change the primary  object from a table to a single object.
2597This has resulted in dynamic memory  savings of 3X within
2598the namespace and 2X overall in the ACPI CA subsystem.
2599
2600Fixed problem where the call to AcpiEvFindPciRootBuses was
2601inadvertently left  commented out.
2602
2603Reduced the warning count when generating the source with
2604the GCC compiler.
2605
2606Revision numbers added to each module header showing the
2607SourceSafe version of the file.  Please refer to this
2608version number when giving us feedback or comments on
2609individual modules.
2610
2611The main object types within the subsystem have been renamed
2612to clarify their  purpose:
2613
2614ACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT
2615ACPI_GENERIC_OP -> ACPI_PARSE_OBJECT
2616ACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE
2617
2618NOTE: no changes to the initialization sequence are included
2619in this label.
2620
2621-------------------------------------------
2622Summary of changes for this label: 08_23_00
2623
2624Fixed problem where TerminateControlMethod was being called
2625multiple times per  method
2626
2627Fixed debugger problem where single stepping caused a
2628semaphore to be  oversignalled
2629
2630Improved performance through additional parse object caching
2631- added  ACPI_EXTENDED_OP type
2632
2633-------------------------------------------
2634Summary of changes for this label: 08_10_00
2635
2636Parser/Interpreter integration:  Eliminated the creation of
2637complete parse trees  for ACPI tables and control methods.
2638Instead, parse subtrees are created and  then deleted as
2639soon as they are processed (Either entered into the
2640namespace or  executed by the interpreter).  This reduces
2641the use of dynamic kernel memory  significantly. (about 10X)
2642
2643Exception codes broken into classes and renumbered.  Be sure
2644to recompile all  code that includes acexcep.h.  Hopefully
2645we won't have to renumber the codes  again now that they are
2646split into classes (environment, programmer, AML code,  ACPI
2647table, and internal).
2648
2649Fixed some additional alignment issues in the Resource
2650Manager subcomponent
2651
2652Implemented semaphore tracking in the AcpiExec utility, and
2653fixed several places  where mutexes/semaphores were being
2654unlocked without a corresponding lock  operation.  There are
2655no known semaphore or mutex "leaks" at this time.
2656
2657Fixed the case where an ASL Return operator is used to
2658return an unnamed  package.
2659
2660-------------------------------------------
2661Summary of changes for this label: 07_28_00
2662
2663Fixed a problem with the way addresses were calculated in
2664AcpiAmlReadFieldData()  and AcpiAmlWriteFieldData(). This
2665problem manifested itself when a Field was  created with
2666WordAccess or DwordAccess, but the field unit defined within
2667the  Field was less than a Word or Dword.
2668
2669Fixed a problem in AmlDumpOperands() module's loop to pull
2670operands off of the  operand stack to display information.
2671The problem manifested itself as a TLB  error on 64-bit
2672systems when accessing an operand stack with two or more
2673operands.
2674
2675Fixed a problem with the PCI configuration space handlers
2676where context was  getting confused between accesses. This
2677required a change to the generic address  space handler and
2678address space setup definitions. Handlers now get both a
2679global handler context (this is the one passed in by the
2680user when executing  AcpiInstallAddressSpaceHandler() and a
2681specific region context that is unique to  each region (For
2682example, the _ADR, _SEG and _BBN values associated with a
2683specific region). The generic function definitions have
2684changed to the  following:
2685
2686typedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32
2687Function, UINT32 Address, UINT32 BitWidth, UINT32 *Value,
2688void *HandlerContext, // This used to be void *Context void
2689*RegionContext); // This is an additional parameter
2690
2691typedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE
2692RegionHandle, UINT32 Function, void *HandlerContext,  void
2693**RegionContext); // This used to be **ReturnContext
2694
2695-------------------------------------------
2696Summary of changes for this label: 07_21_00
2697
2698Major file consolidation and rename.  All files within the
2699interpreter have been  renamed as well as most header files.
2700This was done to prevent collisions with  existing files in
2701the host OSs -- filenames such as "config.h" and "global.h"
2702seem to be quite common.  The VC project files have been
2703updated.  All makefiles  will require modification.
2704
2705The parser/interpreter integration continues in Phase 5 with
2706the implementation  of a complete 2-pass parse (the AML is
2707parsed twice) for each table;  This  avoids the construction
2708of a huge parse tree and therefore reduces the amount of
2709dynamic memory required by the subsystem.  Greater use of
2710the parse object cache  means that performance is
2711unaffected.
2712
2713Many comments from the two code reviews have been rolled in.
2714
2715The 64-bit alignment support is complete.
2716
2717-------------------------------------------
2718Summary of changes for this label: 06_30_00
2719
2720With a nod and a tip of the hat to the technology of
2721yesteryear, we've added  support in the source code for 80
2722column output devices.  The code is now mostly  constrained
2723to 80 columns or less to support environments and editors
2724that 1)  cannot display or print more than 80 characters on
2725a single line, and 2) cannot  disable line wrapping.
2726
2727A major restructuring of the namespace data structure has
2728been completed.  The  result is 1) cleaner and more
2729understandable/maintainable code, and 2) a  significant
2730reduction in the dynamic memory requirement for each named
2731ACPI  object (almost half).
2732
2733-------------------------------------------
2734Summary of changes for this label: 06_23_00
2735
2736Linux support has been added.  In order to obtain approval
2737to get the ACPI CA  subsystem into the Linux kernel, we've
2738had to make quite a few changes to the  base subsystem that
2739will affect all users (all the changes are generic and OS-
2740independent).  The effects of these global changes have been
2741somewhat far  reaching.  Files have been merged and/or
2742renamed and interfaces have been  renamed.   The major
2743changes are described below.
2744
2745Osd* interfaces renamed to AcpiOs* to eliminate namespace
2746pollution/confusion  within our target kernels.  All OSD
2747interfaces must be modified to match the new  naming
2748convention.
2749
2750Files merged across the subsystem.  A number of the smaller
2751source and header  files have been merged to reduce the file
2752count and increase the density of the  existing files.
2753There are too many to list here.  In general, makefiles that
2754call out individual files will require rebuilding.
2755
2756Interpreter files renamed.  All interpreter files now have
2757the prefix am*  instead of ie* and is*.
2758
2759Header files renamed:  The acapi.h file is now acpixf.h.
2760The acpiosd.h file is  now acpiosxf.h.  We are removing
2761references to the acronym "API" since it is  somewhat
2762windowsy. The new name is "external interface" or xface or
2763xf in the  filenames.j
2764
2765
2766All manifest constants have been forced to upper case (some
2767were mixed case.)   Also, the string "ACPI_" has been
2768prepended to many (not all) of the constants,  typedefs, and
2769structs.
2770
2771The globals "DebugLevel" and "DebugLayer" have been renamed
2772"AcpiDbgLevel" and  "AcpiDbgLayer" respectively.
2773
2774All other globals within the subsystem are now prefixed with
2775"AcpiGbl_" Internal procedures within the subsystem are now
2776prefixed with "Acpi" (with only  a few exceptions).  The
2777original two-letter abbreviation for the subcomponent
2778remains after "Acpi" - for example, CmCallocate became
2779AcpiCmCallocate.
2780
2781Added a source code translation/conversion utility.  Used to
2782generate the Linux  source code, it can be modified to
2783generate other types of source as well. Can  also be used to
2784cleanup existing source by removing extraneous spaces and
2785blank  lines.  Found in tools/acpisrc/*
2786
2787OsdUnMapMemory was renamed to OsdUnmapMemory and then
2788AcpiOsUnmapMemory.  (UnMap  became Unmap).
2789
2790A "MaxUnits" parameter has been added to
2791AcpiOsCreateSemaphore.  When set to  one, this indicates
2792that the caller wants to use the semaphore as a mutex, not a
2793counting semaphore.  ACPI CA uses both types.  However,
2794implementers of this  call may want to use different OS
2795primitives depending on the type of semaphore  requested.
2796For example, some operating systems provide separate "mutex"
2797and  "semaphore" interfaces - where the mutex interface is
2798much faster because it  doesn't have all the overhead of a
2799full semaphore implementation.
2800
2801Fixed a deadlock problem where a method that accesses the
2802PCI address space can  block forever if it is the first
2803access to the space.
2804
2805-------------------------------------------
2806Summary of changes for this label: 06_02_00
2807
2808Support for environments that cannot handle unaligned data
2809accesses (e.g.  firmware and OS environments devoid of
2810alignment handler technology namely  SAL/EFI and the IA-64
2811Linux kernel) has been added (via configurable macros) in
2812these three areas: - Transfer of data from the raw AML byte
2813stream is done via byte moves instead of    word/dword/qword
2814moves. - External objects are aligned within the user
2815buffer, including package   elements (sub-objects). -
2816Conversion of name strings to UINT32 Acpi Names is now done
2817byte-wise.
2818
2819The Store operator was modified to mimic Microsoft's
2820implementation when storing  to a Buffer Field.
2821
2822Added a check of the BM_STS bit before entering C3.
2823
2824The methods subdirectory has been obsoleted and removed.  A
2825new file, cmeval.c  subsumes the functionality.
2826
2827A 16-bit (DOS) version of AcpiExec has been developed.  The
2828makefile is under  the acpiexec directory.
2829