changes.txt revision 107325
1102550Siwasaki---------------------------------------- 2107325Siwasaki15 November 2002. Summary of changes for version 20021115. 3104470Siwasaki 4107325Siwasaki1) ACPI CA Core Subsystem: 5107325Siwasaki 6107325SiwasakiFixed a memory leak problem where an error during resolution 7107325Siwasakiof method arguments during a method invocation from another 8107325Siwasakimethod failed to cleanup properly by deleting all successfully 9107325Siwasakiresolved argument objects. 10107325Siwasaki 11107325SiwasakiFixed a problem where the target of the Index() operator was 12107325Siwasakinot correctly constructed if the source object was a package. 13107325SiwasakiThis problem has not been detected because the use of a target 14107325Siwasakioperand with Index() is very rare. 15107325Siwasaki 16107325SiwasakiFixed a problem with the Index() operator where an attempt was 17107325Siwasakimade to delete the operand objects twice. 18107325Siwasaki 19107325SiwasakiFixed a problem where an attempt was made to delete an operand 20107325Siwasakitwice during execution of the CondRefOf() operator if the 21107325Siwasakitarget did not exist. 22107325Siwasaki 23107325SiwasakiImplemented the first of perhaps several internal create 24107325Siwasakiobject functions that create and initialize a specific object 25107325Siwasakitype. This consolidates duplicated code wherever the object 26107325Siwasakiis created, thus shrinking the size of the subsystem. 27107325Siwasaki 28107325SiwasakiImplemented improved debug/error messages for errors that 29107325Siwasakioccur during nested method invocations. All executing method 30107325Siwasakipathnames are displayed (with the error) as the call stack is 31107325Siwasakiunwound - thus simplifying debug. 32107325Siwasaki 33107325SiwasakiFixed a problem introduced in the 10/02 release that caused 34107325Siwasakipremature deletion of a buffer object if a buffer was used as 35107325Siwasakian ASL operand where an integer operand is required (Thus 36107325Siwasakicausing an implicit object conversion from Buffer to Integer.) 37107325SiwasakiThe change in the 10/02 release was attempting to fix a memory 38107325Siwasakileak (albeit incorrectly.) 39107325Siwasaki 40107325SiwasakiCode and Data Size: Current core subsystem library sizes are 41107325Siwasakishown below. These are the code and data sizes for the 42107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 43107325Siwasakiand these values do not include any ACPI driver or OSPM code. 44107325SiwasakiThe debug version of the code includes the debug output trace 45107325Siwasakimechanism and has a much larger code and data size. Note that 46107325Siwasakithese values will vary depending on the efficiency of the 47107325Siwasakicompiler and the compiler options used during generation. 48107325Siwasaki 49107325Siwasaki Previous Release 50107325Siwasaki Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total 51107325Siwasaki Debug Version: 153.1K Code, 63.3K Data, 216.4K Total 52107325Siwasaki Current Release: 53107325Siwasaki Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total 54107325Siwasaki Debug Version: 152.7K Code, 63.2K Data, 215.5K Total 55107325Siwasaki 56107325Siwasaki 57107325Siwasaki2) Linux 58107325Siwasaki 59107325SiwasakiChanged the implementation of the ACPI semaphores to use 60107325Siwasakidown() instead of down_interruptable(). It is important that 61107325Siwasakithe execution of ACPI control methods not be interrupted by 62107325Siwasakisignals. Methods must run to completion, or the system may be 63107325Siwasakileft in an unknown/unstable state. 64107325Siwasaki 65107325SiwasakiFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not 66107325Siwasakiset. (Shawn Starr) 67107325Siwasaki 68107325Siwasaki 69107325Siwasaki3) iASL Compiler/Disassembler 70107325Siwasaki 71107325SiwasakiChanged the default location of output files. All output 72107325Siwasakifiles are now placed in the current directory by default 73107325Siwasakiinstead of in the directory of the source file. This change 74107325Siwasakimay affect some existing makefiles, but it brings the behavior 75107325Siwasakiof the compiler in line with other similar tools. The 76107325Siwasakilocation of the output files can be overridden with the -p 77107325Siwasakicommand line switch. 78107325Siwasaki 79107325Siwasaki 80107325Siwasaki---------------------------------------- 81107325Siwasaki11 November 2002. Summary of changes for version 20021111. 82107325Siwasaki 83107325Siwasaki 84107325Siwasaki0) ACPI Specification 2.0B is released and is now available 85107325Siwasakiat: http://www.acpi.info/index.html 86107325Siwasaki 87107325Siwasaki 88107325Siwasaki1) ACPI CA Core Subsystem: 89107325Siwasaki 90107325SiwasakiImplemented support for the ACPI 2.0 SMBus Operation Regions. 91107325SiwasakiThis includes the early detection and handoff of the request 92107325Siwasakito the SMBus region handler (avoiding all of the complex field 93107325Siwasakisupport code), and support for the bidirectional return packet 94107325Siwasakifrom an SMBus write operation. This paves the way for the 95107325Siwasakidevelopment of SMBus drivers in each host operating system. 96107325Siwasaki 97107325SiwasakiFixed a problem where the semaphore WAIT_FOREVER constant was 98107325Siwasakidefined as 32 bits, but must be 16 bits according to the ACPI 99107325Siwasakispecification. This had the side effect of causing ASL 100107325SiwasakiMutex/Event timeouts even though the ASL code requested a wait 101107325Siwasakiforever. Changed all internal references to the ACPI timeout 102107325Siwasakiparameter to 16 bits to prevent future problems. Changed the 103107325Siwasakiname of WAIT_FOREVER to ACPI_WAIT_FOREVER. 104107325Siwasaki 105107325SiwasakiCode and Data Size: Current core subsystem library sizes are 106107325Siwasakishown below. These are the code and data sizes for the 107107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 108107325Siwasakiand these values do not include any ACPI driver or OSPM code. 109107325SiwasakiThe debug version of the code includes the debug output trace 110107325Siwasakimechanism and has a much larger code and data size. Note that 111107325Siwasakithese values will vary depending on the efficiency of the 112107325Siwasakicompiler and the compiler options used during generation. 113107325Siwasaki 114107325Siwasaki Previous Release 115107325Siwasaki Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 116107325Siwasaki Debug Version: 152.3K Code, 63.0K Data, 215.3K Total 117107325Siwasaki Current Release: 118107325Siwasaki Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total 119107325Siwasaki Debug Version: 153.1K Code, 63.3K Data, 216.4K Total 120107325Siwasaki 121107325Siwasaki 122107325Siwasaki2) Linux 123107325Siwasaki 124107325SiwasakiModule loading/unloading fixes (John Cagle) 125107325Siwasaki 126107325Siwasaki 127107325Siwasaki3) iASL Compiler/Disassembler 128107325Siwasaki 129107325SiwasakiAdded support for the SMBBlockProcessCall keyword (ACPI 2.0) 130107325Siwasaki 131107325SiwasakiImplemented support for the disassembly of all SMBus protocol 132107325Siwasakikeywords (SMBQuick, SMBWord, etc.) 133107325Siwasaki 134107325Siwasaki---------------------------------------- 135107325Siwasaki01 November 2002. Summary of changes for version 20021101. 136107325Siwasaki 137107325Siwasaki 138107325Siwasaki1) ACPI CA Core Subsystem: 139107325Siwasaki 140107325SiwasakiFixed a problem where platforms that have a GPE1 block but no 141107325SiwasakiGPE0 block were not handled correctly. This resulted in a 142107325Siwasaki"GPE overlap" error message. GPE0 is no longer required. 143107325Siwasaki 144107325SiwasakiRemoved code added in the previous release that inserted nodes 145107325Siwasakiinto the namespace in alphabetical order. This caused some 146107325Siwasakiside-effects on various machines. The root cause of the 147107325Siwasakiproblem is still under investigation since in theory, the 148107325Siwasakiinternal ordering of the namespace nodes should not matter. 149107325Siwasaki 150107325SiwasakiEnhanced error reporting for the case where a named object is 151107325Siwasakinot found during control method execution. The full ACPI 152107325Siwasakinamepath (name reference) of the object that was not found is 153107325Siwasakidisplayed in this case. 154107325Siwasaki 155107325SiwasakiNote: as a result of the overhaul of the namespace object 156107325Siwasakitypes in the previous release, the namespace nodes for the 157107325Siwasakipredefined scopes (_TZ, _PR, etc.) are now of the type 158107325SiwasakiACPI_TYPE_LOCAL_SCOPE instead of ACPI_TYPE_ANY. This 159107325Siwasakisimplifies the namespace management code but may affect code 160107325Siwasakithat walks the namespace tree looking for specific object 161107325Siwasakitypes. 162107325Siwasaki 163107325SiwasakiCode and Data Size: Current core subsystem library sizes are 164107325Siwasakishown below. These are the code and data sizes for the 165107325Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 166107325Siwasakiand these values do not include any ACPI driver or OSPM code. 167107325SiwasakiThe debug version of the code includes the debug output trace 168107325Siwasakimechanism and has a much larger code and data size. Note that 169107325Siwasakithese values will vary depending on the efficiency of the 170107325Siwasakicompiler and the compiler options used during generation. 171107325Siwasaki 172107325Siwasaki Previous Release 173107325Siwasaki Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total 174107325Siwasaki Debug Version: 151.7K Code, 62.4K Data, 214.1K Total 175107325Siwasaki Current Release: 176107325Siwasaki Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 177107325Siwasaki Debug Version: 152.3K Code, 63.0K Data, 215.3K Total 178107325Siwasaki 179107325Siwasaki 180107325Siwasaki2) Linux 181107325Siwasaki 182107325SiwasakiFixed a problem introduced in the previous release where the 183107325SiwasakiProcessor and Thermal objects were not recognized and 184107325Siwasakiinstalled in /proc. This was related to the scope type change 185107325Siwasakidescribed above. 186107325Siwasaki 187107325Siwasaki 188107325Siwasaki3) iASL Compiler/Disassembler 189107325Siwasaki 190107325SiwasakiImplemented the -g option to get all of the required ACPI 191107325Siwasakitables from the registry and save them to files (Windows 192107325Siwasakiversion of the compiler only.) The required tables are the 193107325SiwasakiFADT, FACS, and DSDT. 194107325Siwasaki 195107325SiwasakiAdded ACPI table checksum validation during table disassembly 196107325Siwasakiin order to catch corrupted tables. 197107325Siwasaki 198107325Siwasaki 199107325Siwasaki---------------------------------------- 200107325Siwasaki22 October 2002. Summary of changes for version 20021022. 201107325Siwasaki 202107325Siwasaki1) ACPI CA Core Subsystem: 203107325Siwasaki 204107325SiwasakiImplemented a restriction on the Scope operator that the 205107325Siwasakitarget must already exist in the namespace at the time the 206107325Siwasakioperator is encountered (during table load or method 207107325Siwasakiexecution). In other words, forward references are not 208107325Siwasakiallowed and Scope() cannot create a new object. This changes 209107325Siwasakithe previous behavior where the interpreter would create the 210107325Siwasakiname if not found. This new behavior correctly enables the 211107325Siwasakisearch-to-root algorithm during namespace lookup of the target 212107325Siwasakiname. Because of this upsearch, this fixes the known Compaq 213107325Siwasaki_SB_.OKEC problem and makes both the AML interpreter and iASL 214107325Siwasakicompiler compatible with other ACPI implementations. 215107325Siwasaki 216107325SiwasakiCompleted a major overhaul of the internal ACPI object types 217107325Siwasakifor the ACPI Namespace and the associated operand objects. 218107325SiwasakiMany of these types had become obsolete with the introduction 219107325Siwasakiof the two-pass namespace load. This cleanup simplifies the 220107325Siwasakicode and makes the entire namespace load mechanism much 221107325Siwasakiclearer and easier to understand. 222107325Siwasaki 223107325SiwasakiImproved debug output for tracking scope opening/closing to 224107325Siwasakihelp diagnose scoping issues. The old scope name as well as 225107325Siwasakithe new scope name are displayed. Also improved error 226107325Siwasakimessages for problems with ASL Mutex objects and error 227107325Siwasakimessages for GPE problems. 228107325Siwasaki 229107325SiwasakiCleaned up the namespace dump code, removed obsolete code. 230107325Siwasaki 231107325SiwasakiAll string output (for all namespace/object dumps) now uses 232107325Siwasakithe common ACPI string output procedure which handles escapes 233107325Siwasakiproperly and does not emit non-printable characters. 234107325Siwasaki 235107325SiwasakiFixed some issues with constants in the 64-bit version of the 236107325Siwasakilocal C library (utclib.c) 237107325Siwasaki 238107325Siwasaki 239107325Siwasaki2) Linux 240107325Siwasaki 241107325SiwasakiEC Driver: No longer attempts to acquire the Global Lock at 242107325Siwasakiinterrupt level. 243107325Siwasaki 244107325Siwasaki 245107325Siwasaki3) iASL Compiler/Disassembler 246107325Siwasaki 247107325SiwasakiImplemented ACPI 2.0B grammar change that disallows all Type 1 248107325Siwasakiand 2 opcodes outside of a control method. This means that 249107325Siwasakithe "executable" operators (versus the "namespace" operators) 250107325Siwasakicannot be used at the table level; they can only be used 251107325Siwasakiwithin a control method. 252107325Siwasaki 253107325SiwasakiImplemented the restriction on the Scope() operator where the 254107325Siwasakitarget must already exist in the namespace at the time the 255107325Siwasakioperator is encountered (during ASL compilation). In other 256107325Siwasakiwords, forward references are not allowed and Scope() cannot 257107325Siwasakicreate a new object. This makes the iASL compiler compatible 258107325Siwasakiwith other ACPI implementations and makes the Scope() 259107325Siwasakiimplementation adhere to the ACPI specification. 260107325Siwasaki 261107325SiwasakiFixed a problem where namepath optimization for the Alias 262107325Siwasakioperator was optimizing the wrong path (of the two namepaths.) 263107325SiwasakiThis caused a "Missing alias link" error message. 264107325Siwasaki 265107325SiwasakiFixed a problem where an "unknown reserved name" warning could 266107325Siwasakibe incorrectly generated for names like "_SB" when the 267107325Siwasakitrailing underscore is not used in the original ASL. 268107325Siwasaki 269107325SiwasakiFixed a problem where the reserved name check did not handle 270107325SiwasakiNamePaths with multiple NameSegs correctly. The first nameseg 271107325Siwasakiof the NamePath was examined instead of the last NameSeg. 272107325Siwasaki 273107325Siwasaki 274107325Siwasaki---------------------------------------- 275107325Siwasaki 276104470Siwasaki02 October 2002. Summary of changes for this release. 277104470Siwasaki 278104470Siwasaki 279104470Siwasaki1) ACPI CA Core Subsystem version 20021002: 280104470Siwasaki 281104470SiwasakiFixed a problem where a store/copy of a string to an existing 282104470Siwasakistring did not always set the string length properly in the 283104470SiwasakiString object. 284104470Siwasaki 285104470SiwasakiFixed a reported problem with the ToString operator where the 286104470Siwasakibehavior was identical to the ToHexString operator instead of 287104470Siwasakijust simply converting a raw buffer to a string data type. 288104470Siwasaki 289104470SiwasakiFixed a problem where CopyObject and the other "explicit" 290104470Siwasakiconversion operators were not updating the internal namespace 291104470Siwasakinode type as part of the store operation. 292104470Siwasaki 293104470SiwasakiFixed a memory leak during implicit source operand conversion 294104470Siwasakiwhere the original object was not deleted if it was converted 295104470Siwasakito a new object of a different type. 296104470Siwasaki 297104470SiwasakiEnhanced error messages for all problems associated with 298104470Siwasakinamespace lookups. Common procedure generates and prints the 299104470Siwasakilookup name as well as the formatted status. 300104470Siwasaki 301104470SiwasakiCompleted implementation of a new design for the Alias support 302104470Siwasakiwithin the namespace. The existing design did not handle the 303104470Siwasakicase where a new object was assigned to one of the two names 304104470Siwasakidue to the use of an explicit conversion operator, resulting 305104470Siwasakiin the two names pointing to two different objects. The new 306104470Siwasakidesign simply points the Alias name to the original name node 307104470Siwasaki- not to the object. This results in a level of indirection 308104470Siwasakithat must be handled in the name resolution mechanism. 309104470Siwasaki 310104470SiwasakiCode and Data Size: Current core subsystem library sizes are 311104470Siwasakishown below. These are the code and data sizes for the 312104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 313104470Siwasakiand these values do not include any ACPI driver or OSPM code. 314104470SiwasakiThe debug version of the code includes the debug output trace 315104470Siwasakimechanism and has a larger code and data size. Note that 316104470Siwasakithese values will vary depending on the efficiency of the 317104470Siwasakicompiler and the compiler options used during generation. 318104470Siwasaki 319104470Siwasaki Previous Release 320104470Siwasaki Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 321104470Siwasaki Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 322104470Siwasaki Current Release: 323104470Siwasaki Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total 324104470Siwasaki Debug Version: 151.7K Code, 62.4K Data, 214.1K Total 325104470Siwasaki 326104470Siwasaki 327104470Siwasaki2) Linux 328104470Siwasaki 329104470SiwasakiInitialize thermal driver's timer before it is used. (Knut 330104470SiwasakiNeumann) 331104470Siwasaki 332104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi) 333104470Siwasaki 334104470SiwasakiFix thermal management and make trip points. R/W (Pavel 335104470SiwasakiMachek) 336104470Siwasaki 337104470SiwasakiFix /proc/acpi/sleep. (P. Christeas) 338104470Siwasaki 339104470SiwasakiIA64 fixes. (David Mosberger) 340104470Siwasaki 341104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto) 342104470Siwasaki 343104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik 344104470SiwasakiBrodowski) 345104470Siwasaki 346104470Siwasaki 347104470Siwasaki3) iASL Compiler/Disassembler 348104470Siwasaki 349104470SiwasakiClarified some warning/error messages. 350104470Siwasaki 351104470Siwasaki 352104470Siwasaki---------------------------------------- 353104470Siwasaki18 September 2002. Summary of changes for this release. 354104470Siwasaki 355104470Siwasaki 356104470Siwasaki1) ACPI CA Core Subsystem version 20020918: 357104470Siwasaki 358104470SiwasakiFixed a reported problem with reference chaining (via the 359104470SiwasakiIndex() and RefOf() operators) in the ObjectType() and 360104470SiwasakiSizeOf() operators. The definition of these operators 361104470Siwasakiincludes the dereferencing of all chained references to return 362104470Siwasakiinformation on the base object. 363104470Siwasaki 364104470SiwasakiFixed a problem with stores to indexed package elements - the 365104470Siwasakiexisting code would not complete the store if an "implicit 366104470Siwasakiconversion" was not performed. In other words, if the 367104470Siwasakiexisting object (package element) was to be replaced 368104470Siwasakicompletely, the code didn't handle this case. 369104470Siwasaki 370104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the 371104470Siwasakitarget name to refer to an object of type Integer, String, or 372104470SiwasakiBuffer, in addition to the scoping object types (Device, 373104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.) 374104470SiwasakiThis allows existing AML code that has workarounds for a bug 375104470Siwasakiin Windows to function properly. A warning is issued, 376104470Siwasakihowever. This affects both the AML interpreter and the iASL 377104470Siwasakicompiler. Below is an example of this type of ASL code: 378104470Siwasaki 379104470Siwasaki Name(DEB,0x00) 380104470Siwasaki Scope(DEB) 381104470Siwasaki { 382104470Siwasaki 383104470SiwasakiFixed some reported problems with 64-bit integer support in 384104470Siwasakithe local implementation of C library functions (clib.c) 385104470Siwasaki 386104470Siwasaki 387104470Siwasaki2) Linux 388104470Siwasaki 389104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is 390104470Siwasakiundefined in non-SMP. 391104470Siwasaki 392104470SiwasakiEnsure that the SCI has the proper polarity and trigger, even 393104470Siwasakion systems that do not have an interrupt override entry in the 394104470SiwasakiMADT. 395104470Siwasaki 396104470Siwasaki2.5 big driver reorganization (Pat Mochel) 397104470Siwasaki 398104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen) 399104470Siwasaki 400104470SiwasakiNew blacklist entries (Andi Kleen) 401104470Siwasaki 402104470SiwasakiBlacklist improvements. Split blacklist code out into a 403104470Siwasakiseparate file. Move checking the blacklist to very early. 404104470SiwasakiPreviously, we would use ACPI tables, and then halfway through 405104470Siwasakiinit, check the blacklist -- too late. Now, it's early enough 406104470Siwasakito completely fall-back to non-ACPI. 407104470Siwasaki 408104470Siwasaki 409104470Siwasaki3) iASL Compiler/Disassembler version 20020918: 410104470Siwasaki 411104470SiwasakiFixed a problem where the typechecking code didn't know that 412104470Siwasakian alias could point to a method. In other words, aliases 413104470Siwasakiwere not being dereferenced during typechecking. 414104470Siwasaki 415104470Siwasaki 416104470Siwasaki---------------------------------------- 417104470Siwasaki29 August 2002. Summary of changes for this release. 418104470Siwasaki 419104470Siwasaki1) ACPI CA Core Subsystem Version 20020829: 420104470Siwasaki 421104470SiwasakiIf the target of a Scope() operator already exists, it must be 422104470Siwasakian object type that actually opens a scope -- such as a 423104470SiwasakiDevice, Method, Scope, etc. This is a fatal runtime error. 424104470SiwasakiSimilar error check has been added to the iASL compiler also. 425104470Siwasaki 426104470SiwasakiTightened up the namespace load to disallow multiple names in 427104470Siwasakithe same scope. This previously was allowed if both objects 428104470Siwasakiwere of the same type. (i.e., a lookup was the same as 429104470Siwasakientering a new name). 430104470Siwasaki 431104470Siwasaki 432104470Siwasaki2) Linux 433104470Siwasaki 434104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and 435104470Siwasakipolarity. 436104470Siwasaki 437104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox) 438104470Siwasaki 439104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI 440104470Siwasakiinterpreter *or* the tables. 441104470Siwasaki 442104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables 443104470Siwasaki(Kochi Takayoshi) 444104470Siwasaki 445104470Siwasaki 446104470Siwasaki3) iASL Compiler/Disassembler Version 20020829: 447104470Siwasaki 448104470SiwasakiImplemented namepath optimization for name declarations. For 449104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get 450104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the 451104470Siwasaki\_SB_ scope. This optimization is in addition to the named 452104470Siwasakireference path optimization first released in the previous 453104470Siwasakiversion. This would seem to complete all possible 454104470Siwasakioptimizations for namepaths within the ASL/AML. 455104470Siwasaki 456104470SiwasakiIf the target of a Scope() operator already exists, it must be 457104470Siwasakian object type that actually opens a scope -- such as a 458104470SiwasakiDevice, Method, Scope, etc. 459104470Siwasaki 460104470SiwasakiImplemented a check and warning for unreachable code in the 461104470Siwasakisame block below a Return() statement. 462104470Siwasaki 463104470SiwasakiFixed a problem where the listing file was not generated if 464104470Siwasakithe compiler aborted if the maximum error count was exceeded 465104470Siwasaki(200). 466104470Siwasaki 467104470SiwasakiFixed a problem where the typechecking of method return values 468104470Siwasakiwas broken. This includes the check for a return value when 469104470Siwasakithe method is invoked as a TermArg (a return value is 470104470Siwasakiexpected.) 471104470Siwasaki 472104470SiwasakiFixed a reported problem where EOF conditions during a quoted 473104470Siwasakistring or comment caused a fault. 474104470Siwasaki 475104470Siwasaki 476104470Siwasaki---------------------------------------- 477102550Siwasaki15 August 2002. Summary of changes for this release. 478102550Siwasaki 479102550Siwasaki1) ACPI CA Core Subsystem Version 20020815: 480102550Siwasaki 481102550SiwasakiFixed a reported problem where a Store to a method argument 482102550Siwasakithat contains a reference did not perform the indirect store 483104470Siwasakicorrectly. This problem was created during the conversion to 484104470Siwasakithe new reference object model - the indirect store to a 485104470Siwasakimethod argument code was not updated to reflect the new model. 486102550Siwasaki 487102550SiwasakiReworked the ACPI mode change code to better conform to ACPI 488102550Siwasaki2.0, handle corner cases, and improve code legibility (Kochi 489102550SiwasakiTakayoshi) 490102550Siwasaki 491102550SiwasakiFixed a problem with the pathname parsing for the carat (^) 492102550Siwasakiprefix. The heavy use of the carat operator by the new 493104470Siwasakinamepath optimization in the iASL compiler uncovered a problem 494104470Siwasakiwith the AML interpreter handling of this prefix. In the case 495104470Siwasakiwhere one or more carats precede a single nameseg, the nameseg 496104470Siwasakiwas treated as standalone and the search rule (to root) was 497104470Siwasakiinadvertently applied. This could cause both the iASL 498104470Siwasakicompiler and the interpreter to find the wrong object or to 499104470Siwasakimiss the error that should occur if the object does not exist 500104470Siwasakiat that exact pathname. 501102550Siwasaki 502102550SiwasakiFound and fixed the problem where the HP Pavilion DSDT would 503102550Siwasakinot load. This was a relatively minor tweak to the table 504102550Siwasakiloading code (a problem caused by the unexpected encounter 505104470Siwasakiwith a method invocation not within a control method), but it 506104470Siwasakidoes not solve the overall issue of the execution of AML code 507104470Siwasakiat the table level. This investigation is still ongoing. 508102550Siwasaki 509102550SiwasakiCode and Data Size: Current core subsystem library sizes are 510102550Siwasakishown below. These are the code and data sizes for the 511104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 512104470Siwasakiand these values do not include any ACPI driver or OSPM code. 513104470SiwasakiThe debug version of the code includes the debug output trace 514104470Siwasakimechanism and has a larger code and data size. Note that 515104470Siwasakithese values will vary depending on the efficiency of the 516104470Siwasakicompiler and the compiler options used during generation. 517102550Siwasaki 518102550Siwasaki Previous Release 519104470Siwasaki Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 520104470Siwasaki Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 521102550Siwasaki Current Release: 522104470Siwasaki Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 523104470Siwasaki Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 524102550Siwasaki 525102550Siwasaki 526102550Siwasaki2) Linux 527102550Siwasaki 528102550SiwasakiRemove redundant slab.h include (Brad Hards) 529102550Siwasaki 530102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel) 531102550Siwasaki 532102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek) 533102550Siwasaki 534104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel 535104470SiwasakiMachek) 536102550Siwasaki 537102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox) 538102550Siwasaki 539102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi) 540102550Siwasaki 541102550SiwasakiFix early-boot table parsing (Bjorn Helgaas) 542102550Siwasaki 543102550Siwasaki 544102550Siwasaki3) iASL Compiler/Disassembler 545102550Siwasaki 546104470SiwasakiReworked the compiler options to make them more consistent and 547104470Siwasakito use two-letter options where appropriate. We were running 548104470Siwasakiout of sensible letters. This may break some makefiles, so 549104470Siwasakicheck the current options list by invoking the compiler with 550104470Siwasakino parameters. 551102550Siwasaki 552102550SiwasakiCompleted the design and implementation of the ASL namepath 553102550Siwasakioptimization option for the compiler. This option optimizes 554104470Siwasakiall references to named objects to the shortest possible path. 555104470SiwasakiThe first attempt tries to utilize a single nameseg (4 556104470Siwasakicharacters) and the "search-to-root" algorithm used by the 557104470Siwasakiinterpreter. If that cannot be used (because either the name 558104470Siwasakiis not in the search path or there is a conflict with another 559104470Siwasakiobject with the same name), the pathname is optimized using 560104470Siwasakithe carat prefix (usually a shorter string than specifying the 561104470Siwasakientire path from the root.) 562102550Siwasaki 563102550SiwasakiImplemented support to obtain the DSDT from the Windows 564102550Siwasakiregistry (when the disassembly option is specified with no 565102550Siwasakiinput file). Added this code as the implementation for 566102550SiwasakiAcpiOsTableOverride in the Windows OSL. Migrated the 16-bit 567102550Siwasakicode (used in the AcpiDump utility) to scan memory for the 568102550SiwasakiDSDT to the AcpiOsTableOverride function in the DOS OSL to 569102550Siwasakimake the disassembler truly OS independent. 570102550Siwasaki 571102550SiwasakiImplemented a new option to disassemble and compile in one 572102550Siwasakistep. When used without an input filename, this option will 573102550Siwasakigrab the DSDT from the local machine, disassemble it, and 574102550Siwasakicompile it in one step. 575102550Siwasaki 576102550SiwasakiAdded a warning message for invalid escapes (a backslash 577102550Siwasakifollowed by any character other than the allowable escapes). 578104470SiwasakiThis catches the quoted string error "\_SB_" (which should be 579104470Siwasaki"\\_SB_" ). Also, there are numerous instances in the ACPI 580104470Siwasakispecification where this error occurs. 581102550Siwasaki 582104470SiwasakiAdded a compiler option to disable all optimizations. This is 583104470Siwasakibasically the "compatibility mode" because by using this 584102550Siwasakioption, the AML code will come out exactly the same as other 585102550SiwasakiASL compilers. 586102550Siwasaki 587102550SiwasakiAdded error messages for incorrectly ordered dependent 588102550Siwasakiresource functions. This includes: missing EndDependentFn 589102550Siwasakimacro at end of dependent resource list, nested dependent 590102550Siwasakifunction macros (both start and end), and missing 591102550SiwasakiStartDependentFn macro. These are common errors that should 592102550Siwasakibe caught at compile time. 593102550Siwasaki 594102550SiwasakiImplemented _OSI support for the disassembler and compiler. 595104470Siwasaki_OSI must be included in the namespace for proper disassembly 596104470Siwasaki(because the disassembler must know the number of arguments.) 597102550Siwasaki 598104470SiwasakiAdded an "optimization" message type that is optional (off by 599104470Siwasakidefault). This message is used for all optimizations - 600104470Siwasakiincluding constant folding, integer optimization, and namepath 601104470Siwasakioptimization. 602102550Siwasaki 603102550Siwasaki---------------------------------------- 604102550Siwasaki25 July 2002. Summary of changes for this release. 605102550Siwasaki 606102550Siwasaki 607102550Siwasaki1) ACPI CA Core Subsystem Version 20020725: 608102550Siwasaki 609102550SiwasakiThe AML Disassembler has been enhanced to produce compilable 610102550SiwasakiASL code and has been integrated into the iASL compiler (see 611102550Siwasakibelow) as well as the single-step disassembly for the AML 612102550Siwasakidebugger and the disassembler for the AcpiDump utility. All 613102550SiwasakiACPI 2.0A opcodes, resource templates and macros are fully 614102550Siwasakisupported. The disassembler has been tested on over 30 615102550Siwasakidifferent AML files, producing identical AML when the 616102550Siwasakiresulting disassembled ASL file is recompiled with the same 617102550SiwasakiASL compiler. 618102550Siwasaki 619102550SiwasakiModified the Resource Manager to allow zero interrupts and 620102550Siwasakizero dma channels during the GetCurrentResources call. This 621102550Siwasakiwas causing problems on some platforms. 622102550Siwasaki 623102550SiwasakiAdded the AcpiOsRedirectOutput interface to the OSL to 624102550Siwasakisimplify output redirection for the AcpiOsPrintf and 625102550SiwasakiAcpiOsVprintf interfaces. 626102550Siwasaki 627102550SiwasakiCode and Data Size: Current core subsystem library sizes are 628102550Siwasakishown below. These are the code and data sizes for the 629104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 630104470Siwasakiand these values do not include any ACPI driver or OSPM code. 631104470SiwasakiThe debug version of the code includes the debug output trace 632104470Siwasakimechanism and has a larger code and data size. Note that 633104470Siwasakithese values will vary depending on the efficiency of the 634104470Siwasakicompiler and the compiler options used during generation. 635102550Siwasaki 636102550Siwasaki Previous Release 637104470Siwasaki Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 638104470Siwasaki Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 639102550Siwasaki Current Release: 640104470Siwasaki Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 641104470Siwasaki Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 642102550Siwasaki 643102550Siwasaki 644102550Siwasaki2) Linux 645102550Siwasaki 646102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski) 647102550Siwasaki 648102550SiwasakiImplemented checksum of the R/XSDT itself during Linux table 649102550Siwasakiscan (Richard Schaal) 650102550Siwasaki 651102550Siwasaki 652102550Siwasaki3) iASL compiler 653102550Siwasaki 654102550SiwasakiThe AML disassembler is integrated into the compiler. The "- 655104470Siwasakid" option invokes the disassembler to completely disassemble 656104470Siwasakian input AML file, producing as output a text ASL file with 657104470Siwasakithe extension ".dsl" (to avoid name collisions with existing 658104470Siwasaki.asl source files.) A future enhancement will allow the 659104470Siwasakidisassembler to obtain the BIOS DSDT from the registry under 660104470SiwasakiWindows. 661102550Siwasaki 662102550SiwasakiFixed a problem with the VendorShort and VendorLong resource 663102550Siwasakidescriptors where an invalid AML sequence was created. 664102550Siwasaki 665102550SiwasakiImplemented a fix for BufferData term in the ASL parser. It 666102550Siwasakiwas inadvertently defined twice, allowing invalid syntax to 667102550Siwasakipass and causing reduction conflicts. 668102550Siwasaki 669104470SiwasakiFixed a problem where the Ones opcode could get converted to a 670104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword 671104470Siwasakivalue was expected. The 64-bit value is now truncated to the 672104470Siwasakicorrect size with the correct value. 673102550Siwasaki 674102550Siwasaki 675102550Siwasaki---------------------------------------- 676102550Siwasaki02 July 2002. Summary of changes for this release. 677102550Siwasaki 678102550Siwasaki 679102550Siwasaki1) ACPI CA Core Subsystem Version 20020702: 680102550Siwasaki 681102550SiwasakiThe Table Manager code has been restructured to add several 682102550Siwasakinew features. Tables that are not required by the core 683102550Siwasakisubsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are 684102550Siwasakino longer validated in any way and are returned from 685102550SiwasakiAcpiGetFirmwareTable if requested. The AcpiOsTableOverride 686102550Siwasakiinterface is now called for each table that is loaded by the 687104470Siwasakisubsystem in order to allow the host to override any table it 688104470Siwasakichooses. Previously, only the DSDT could be overridden. 689102550SiwasakiAdded one new files, tbrsdt.c and tbgetall.c. 690102550Siwasaki 691102550SiwasakiFixed a problem with the conversion of internal package 692104470Siwasakiobjects to external objects (when a package is returned from a 693104470Siwasakicontrol method.) The return buffer length was set to zero 694102550Siwasakiinstead of the proper length of the package object. 695102550Siwasaki 696104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf 697104470Siwasakioperators when passing reference arguments to control methods. 698104470SiwasakiA new type of Reference object is used internally for 699104470Siwasakireferences produced by the RefOf operator. 700102550Siwasaki 701102550SiwasakiAdded additional error messages in the Resource Manager to 702102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource 703102550Siwasakiparsing. 704102550Siwasaki 705104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a 706104470Siwasakifiner granularity initialization sequence. These two calls 707104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags), 708104470SiwasakiAcpiInitializeObjects (flags). The flags parameter remains 709104470Siwasakithe same. 710102550Siwasaki 711102550Siwasaki 712102550Siwasaki2) Linux 713102550Siwasaki 714104470SiwasakiUpdated the ACPI utilities module to understand the new style 715104470Siwasakiof fully resolved package objects that are now returned from 716104470Siwasakithe core subsystem. This eliminates errors of the form: 717102550Siwasaki 718102550Siwasaki ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT] 719102550Siwasaki acpi_utils-0430 [145] acpi_evaluate_reference: 720102550Siwasaki Invalid element in package (not a device reference) 721102550Siwasaki 722102550SiwasakiThe method evaluation utility uses the new buffer allocation 723102550Siwasakischeme instead of calling AcpiEvaluate Object twice. 724102550Siwasaki 725102550SiwasakiAdded support for ECDT. This allows the use of the Embedded 726102550SiwasakiController before the namespace has been fully initialized, 727104470Siwasakiwhich is necessary for ACPI 2.0 support, and for some laptops 728104470Siwasakito initialize properly. (Laptops using ECDT are still rare, so 729104470Siwasakionly limited testing was performed of the added 730104470Siwasakifunctionality.) 731102550Siwasaki 732102550SiwasakiFixed memory leaks in the EC driver. 733102550Siwasaki 734102550SiwasakiEliminated a brittle code structure in acpi_bus_init(). 735102550Siwasaki 736104470SiwasakiEliminated the acpi_evaluate() helper function in utils.c. It 737104470Siwasakiis no longer needed since acpi_evaluate_object can optionally 738104470Siwasakiallocate memory for the return object. 739102550Siwasaki 740102550SiwasakiImplemented fix for keyboard hang when getting battery 741102550Siwasakireadings on some systems (Stephen White) 742102550Siwasaki 743102550SiwasakiPCI IRQ routing update (Dominik Brodowski) 744102550Siwasaki 745102550SiwasakiFix an ifdef to allow compilation on UP with LAPIC but no 746102550SiwasakiIOAPIC support 747102550Siwasaki 748102550Siwasaki---------------------------------------- 749102550Siwasaki11 June 2002. Summary of changes for this release. 750102550Siwasaki 751102550Siwasaki 752102550Siwasaki1) ACPI CA Core Subsystem Version 20020611: 753102550Siwasaki 754104470SiwasakiFixed a reported problem where constants such as Zero and One 755104470Siwasakiappearing within _PRT packages were not handled correctly 756104470Siwasakiwithin the resource manager code. Originally reported against 757104470Siwasakithe ASL compiler because the code generator now optimizes 758104470Siwasakiintegers to their minimal AML representation (i.e. AML 759104470Siwasakiconstants if possible.) The _PRT code now handles all AML 760104470Siwasakiconstant opcodes correctly (Zero, One, Ones, Revision). 761102550Siwasaki 762102550SiwasakiFixed a problem with the Concatenate operator in the AML 763102550Siwasakiinterpreter where a buffer result object was incorrectly 764102550Siwasakimarked as not fully evaluated, causing a run-time error of 765102550SiwasakiAE_AML_INTERNAL. 766102550Siwasaki 767104470SiwasakiAll package sub-objects are now fully resolved before they are 768104470Siwasakireturned from the external ACPI interfaces. This means that 769104470Siwasakiname strings are resolved to object handles, and constant 770104470Siwasakioperators (Zero, One, Ones, Revision) are resolved to 771104470SiwasakiIntegers. 772102550Siwasaki 773102550SiwasakiImplemented immediate resolution of the AML Constant opcodes 774104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection 775104470Siwasakiwithin the AML stream. This has simplified and reduced the 776104470Siwasakigenerated code size of the subsystem by eliminating about 10 777104470Siwasakiswitch statements for these constants (which previously were 778104470Siwasakicontained in Reference objects.) The complicating issues are 779104470Siwasakithat the Zero opcode is used as a "placeholder" for 780104470Siwasakiunspecified optional target operands and stores to constants 781104470Siwasakiare defined to be no-ops. 782102550Siwasaki 783102550SiwasakiCode and Data Size: Current core subsystem library sizes are 784102550Siwasakishown below. These are the code and data sizes for the 785104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 786104470Siwasakiand these values do not include any ACPI driver or OSPM code. 787104470SiwasakiThe debug version of the code includes the debug output trace 788104470Siwasakimechanism and has a larger code and data size. Note that 789104470Siwasakithese values will vary depending on the efficiency of the 790104470Siwasakicompiler and the compiler options used during generation. 791102550Siwasaki 792102550Siwasaki Previous Release 793104470Siwasaki Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 794104470Siwasaki Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 795102550Siwasaki Current Release: 796104470Siwasaki Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 797104470Siwasaki Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 798102550Siwasaki 799102550Siwasaki 800102550Siwasaki2) Linux 801102550Siwasaki 802104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root 803104470Siwasakibridges (Bjorn Helgaas). 804102550Siwasaki 805102550Siwasaki 806102550Siwasaki3) iASL Compiler Version X2046: 807102550Siwasaki 808104470SiwasakiFixed a problem where the "_DDN" reserved name was defined to 809104470Siwasakibe a control method with one argument. There are no 810102550Siwasakiarguments, and _DDN does not have to be a control method. 811102550Siwasaki 812102550SiwasakiFixed a problem with the Linux version of the compiler where 813102550Siwasakithe source lines printed with error messages were the wrong 814104470Siwasakilines. This turned out to be the "LF versus CR/LF" difference 815104470Siwasakibetween Windows and Unix. This appears to be the longstanding 816104470Siwasakiissue concerning listing output and error messages. 817102550Siwasaki 818102550SiwasakiFixed a problem with the Linux version of compiler where 819102550Siwasakiopcode names within error messages were wrong. This was 820102550Siwasakicaused by a slight difference in the output of the Flex tool 821102550Siwasakion Linux versus Windows. 822102550Siwasaki 823102550SiwasakiFixed a problem with the Linux compiler where the hex output 824104470Siwasakifiles contained some garbage data caused by an internal buffer 825104470Siwasakioverrun. 826102550Siwasaki 827102550Siwasaki 828102550Siwasaki---------------------------------------- 829102550Siwasaki17 May 2002. Summary of changes for this release. 830102550Siwasaki 831102550Siwasaki 832102550Siwasaki1) ACPI CA Core Subsystem Version 20020517: 833102550Siwasaki 834102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP 835104470SiwasakiOmniBook where the FADT revision number and the table size are 836104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The 837104470Siwasakinew behavior is to fallback to using only the ACPI 1.0 fields 838104470Siwasakiof the FADT if the table is too small to be a ACPI 2.0 table 839104470Siwasakias claimed by the revision number. Although this is a BIOS 840104470Siwasakibug, this is a case where the workaround is simple enough and 841104470Siwasakiwith no side effects, so it seemed prudent to add it. A 842104470Siwasakiwarning message is issued, however. 843102550Siwasaki 844102550SiwasakiImplemented minimum size checks for the fixed-length ACPI 845102550Siwasakitables -- the FADT and FACS, as well as consistency checks 846102550Siwasakibetween the revision number and the table size. 847102550Siwasaki 848102550SiwasakiFixed a reported problem in the table override support where 849102550Siwasakithe new table pointer was incorrectly treated as a physical 850102550Siwasakiaddress instead of a logical address. 851102550Siwasaki 852104470SiwasakiEliminated the use of the AE_AML_ERROR exception and replaced 853104470Siwasakiit with more descriptive codes. 854102550Siwasaki 855104470SiwasakiFixed a problem where an exception would occur if an ASL Field 856104470Siwasakiwas defined with no named Field Units underneath it (used by 857104470Siwasakisome index fields). 858102550Siwasaki 859102550SiwasakiCode and Data Size: Current core subsystem library sizes are 860102550Siwasakishown below. These are the code and data sizes for the 861104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 862104470Siwasakiand these values do not include any ACPI driver or OSPM code. 863104470SiwasakiThe debug version of the code includes the debug output trace 864104470Siwasakimechanism and has a larger code and data size. Note that 865104470Siwasakithese values will vary depending on the efficiency of the 866104470Siwasakicompiler and the compiler options used during generation. 867102550Siwasaki 868102550Siwasaki Previous Release 869104470Siwasaki Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 870104470Siwasaki Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 871102550Siwasaki Current Release: 872104470Siwasaki Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 873104470Siwasaki Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 874102550Siwasaki 875102550Siwasaki 876102550Siwasaki 877102550Siwasaki2) Linux 878102550Siwasaki 879102550SiwasakiMuch work done on ACPI init (MADT and PCI IRQ routing 880102550Siwasakisupport). (Paul D. and Dominik Brodowski) 881102550Siwasaki 882102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch) 883102550Siwasaki 884102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno) 885102550Siwasaki 886102550SiwasakiFix "MHz" typo (Dominik Brodowski) 887102550Siwasaki 888102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski) 889102550Siwasaki 890102550SiwasakiPreclude multiple button proc entries (Eric Brunet) 891102550Siwasaki 892102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h 893102550Siwasaki 894102550Siwasaki3) iASL Compiler Version X2044: 895102550Siwasaki 896102550SiwasakiImplemented error checking for the string used in the EISAID 897102550Siwasakimacro (Usually used in the definition of the _HID object.) 898102550SiwasakiThe code now strictly enforces the PnP format - exactly 7 899102550Siwasakicharacters, 3 uppercase letters and 4 hex digits. 900102550Siwasaki 901102550SiwasakiIf a raw string is used in the definition of the _HID object 902102550Siwasaki(instead of the EISAID macro), the string must contain all 903102550Siwasakialphanumeric characters (e.g., "*PNP0011" is not allowed 904102550Siwasakibecause of the asterisk.) 905102550Siwasaki 906102550SiwasakiImplemented checking for invalid use of ACPI reserved names 907104470Siwasakifor most of the name creation operators (Name, Device, Event, 908104470SiwasakiMutex, OperationRegion, PowerResource, Processor, and 909102550SiwasakiThermalZone.) Previously, this check was only performed for 910102550Siwasakicontrol methods. 911102550Siwasaki 912102550SiwasakiImplemented an additional check on the Name operator to emit 913104470Siwasakian error if a reserved name that must be implemented in ASL as 914104470Siwasakia control method is used. We know that a reserved name must 915104470Siwasakibe a method if it is defined with input arguments. 916102550Siwasaki 917102550SiwasakiThe warning emitted when a namespace object reference is not 918102550Siwasakifound during the cross reference phase has been changed into 919102550Siwasakian error. The "External" directive should be used for names 920102550Siwasakidefined in other modules. 921102550Siwasaki 922102550Siwasaki 923102550Siwasaki4) Tools and Utilities 924102550Siwasaki 925102550SiwasakiThe 16-bit tools (adump16 and aexec16) have been regenerated 926102550Siwasakiand tested. 927102550Siwasaki 928102550SiwasakiFixed a problem with the output of both acpidump and adump16 929104470Siwasakiwhere the indentation of closing parentheses and brackets was 930104470Siwasakinot aligned properly with the parent block. 931102550Siwasaki 932102550Siwasaki 933102550Siwasaki---------------------------------------- 934102550Siwasaki03 May 2002. Summary of changes for this release. 935102550Siwasaki 936102550Siwasaki 937102550Siwasaki1) ACPI CA Core Subsystem Version 20020503: 938102550Siwasaki 939102550SiwasakiAdded support a new OSL interface that allows the host 940102550Siwasakioperating system software to override the DSDT found in the 941104470Siwasakifirmware - AcpiOsTableOverride. With this interface, the OSL 942104470Siwasakican examine the version of the firmware DSDT and replace it 943104470Siwasakiwith a different one if desired. 944102550Siwasaki 945102550SiwasakiAdded new external interfaces for accessing ACPI registers 946102550Siwasakifrom device drivers and other system software - 947102550SiwasakiAcpiGetRegister and AcpiSetRegister. This was simply an 948104470Siwasakiexternalization of the existing AcpiHwBitRegister interfaces. 949102550Siwasaki 950104470SiwasakiFixed a regression introduced in the previous build where the 951104470SiwasakiASL/AML CreateField operator always returned an error, 952102550Siwasaki"destination must be a NS Node". 953102550Siwasaki 954102550SiwasakiExtended the maximum time (before failure) to successfully 955102550Siwasakienable ACPI mode to 3 seconds. 956102550Siwasaki 957102550SiwasakiCode and Data Size: Current core subsystem library sizes are 958102550Siwasakishown below. These are the code and data sizes for the 959104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 960104470Siwasakiand these values do not include any ACPI driver or OSPM code. 961104470SiwasakiThe debug version of the code includes the debug output trace 962104470Siwasakimechanism and has a larger code and data size. Note that 963104470Siwasakithese values will vary depending on the efficiency of the 964104470Siwasakicompiler and the compiler options used during generation. 965102550Siwasaki 966102550Siwasaki Previous Release 967104470Siwasaki Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 968104470Siwasaki Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 969102550Siwasaki Current Release: 970104470Siwasaki Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 971104470Siwasaki Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 972102550Siwasaki 973102550Siwasaki 974102550Siwasaki2) Linux 975102550Siwasaki 976104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR- 977104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the 978104470Siwasakilast one still hangs when testing the LAPIC timer. 979102550Siwasaki 980104470SiwasakiRenamed many files in 2.5 kernel release to omit "acpi_" from 981104470Siwasakithe name. 982102550Siwasaki 983102550SiwasakiAdded warning on boot for Presario 711FR. 984102550Siwasaki 985102550SiwasakiSleep improvements (Pavel Machek) 986102550Siwasaki 987102550SiwasakiACPI can now be built without CONFIG_PCI enabled. 988102550Siwasaki 989102550SiwasakiIA64: Fixed memory map functions (JI Lee) 990102550Siwasaki 991102550Siwasaki 992102550Siwasaki3) iASL Compiler Version X2043: 993102550Siwasaki 994104470SiwasakiAdded support to allow the compiler to be integrated into the 995104470SiwasakiMS VC++ development environment for one-button compilation of 996104470Siwasakisingle files or entire projects -- with error-to-source-line 997104470Siwasakimapping. 998102550Siwasaki 999104470SiwasakiImplemented support for compile-time constant folding for the 1000104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0 1001104470Siwasakispecification. This allows the ASL writer to use expressions 1002104470Siwasakiinstead of Integer/Buffer/String constants in terms that must 1003104470Siwasakievaluate to constants at compile time and will also simplify 1004104470Siwasakithe emitted AML in any such sub-expressions that can be folded 1005104470Siwasaki(evaluated at compile-time.) This increases the size of the 1006104470Siwasakicompiler significantly because a portion of the ACPI CA AML 1007104470Siwasakiinterpreter is included within the compiler in order to pre- 1008104470Siwasakievaluate constant expressions. 1009102550Siwasaki 1010102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the 1011102550Siwasakicompiler to fault. (This macro is used in conjunction with 1012102550Siwasakithe _STR reserved name.) 1013102550Siwasaki 1014102550SiwasakiImplemented an AML opcode optimization to use the Zero, One, 1015104470Siwasakiand Ones opcodes where possible to further reduce the size of 1016104470Siwasakiinteger constants and thus reduce the overall size of the 1017102550Siwasakigenerated AML code. 1018102550Siwasaki 1019102550SiwasakiImplemented error checking for new reserved terms for ACPI 1020102550Siwasakiversion 2.0A. 1021102550Siwasaki 1022104470SiwasakiImplemented the -qr option to display the current list of ACPI 1023104470Siwasakireserved names known to the compiler. 1024102550Siwasaki 1025104470SiwasakiImplemented the -qc option to display the current list of ASL 1026104470Siwasakioperators that are allowed within constant expressions and can 1027104470Siwasakitherefore be folded at compile time if the operands are 1028104470Siwasakiconstants. 1029102550Siwasaki 1030102550Siwasaki 1031102550Siwasaki4) Documentation 1032102550Siwasaki 1033102550SiwasakiUpdated the Programmer's Reference for new interfaces, data 1034102550Siwasakitypes, and memory allocation model options. 1035102550Siwasaki 1036102550SiwasakiUpdated the iASL Compiler User Reference to apply new format 1037102550Siwasakiand add information about new features and options. 1038102550Siwasaki 1039102550Siwasaki---------------------------------------- 1040102550Siwasaki19 April 2002. Summary of changes for this release. 1041102550Siwasaki 1042102550Siwasaki1) ACPI CA Core Subsystem Version 20020419: 1043102550Siwasaki 1044102550SiwasakiThe source code base for the Core Subsystem has been 1045104470Siwasakicompletely cleaned with PC-lint (FlexLint) for both 32-bit and 1046104470Siwasaki64-bit versions. The Lint option files used are included in 1047104470Siwasakithe /acpi/generate/lint directory. 1048102550Siwasaki 1049102550SiwasakiImplemented enhanced status/error checking across the entire 1050102550SiwasakiHardware manager subsystem. Any hardware errors (reported 1051102550Siwasakifrom the OSL) are now bubbled up and will abort a running 1052102550Siwasakicontrol method. 1053102550Siwasaki 1054104470SiwasakiFixed a problem where the per-ACPI-table integer width (32 or 1055104470Siwasaki64) was stored only with control method nodes, causing a fault 1056104470Siwasakiwhen non-control method code was executed during table 1057102550Siwasakiloading. The solution implemented uses a global variable to 1058102550Siwasakiindicate table width across the entire ACPI subsystem. 1059102550SiwasakiTherefore, ACPI CA does not support mixed integer widths 1060102550Siwasakiacross different ACPI tables (DSDT, SSDT). 1061102550Siwasaki 1062102550SiwasakiFixed a problem where NULL extended fields (X fields) in an 1063102550SiwasakiACPI 2.0 ACPI FADT caused the table load to fail. Although 1064104470Siwasakithe existing ACPI specification is a bit fuzzy on this topic, 1065104470Siwasakithe new behavior is to fall back on a ACPI 1.0 field if the 1066104470Siwasakicorresponding ACPI 2.0 X field is zero (even though the table 1067104470Siwasakirevision indicates a full ACPI 2.0 table.) The ACPI 1068104470Siwasakispecification will be updated to clarify this issue. 1069102550Siwasaki 1070104470SiwasakiFixed a problem with the SystemMemory operation region handler 1071104470Siwasakiwhere memory was always accessed byte-wise even if the AML- 1072104470Siwasakispecified access width was larger than a byte. This caused 1073104470Siwasakiproblems on systems with memory-mapped I/O. Memory is now 1074104470Siwasakiaccessed with the width specified. On systems that do not 1075104470Siwasakisupport non-aligned transfers, a check is made to guarantee 1076104470Siwasakiproper address alignment before proceeding in order to avoid 1077104470Siwasakian AML-caused alignment fault within the kernel. 1078102550Siwasaki 1079102550SiwasakiFixed a problem with the ExtendedIrq resource where only one 1080102550Siwasakibyte of the 4-byte Irq field was extracted. 1081102550Siwasaki 1082102550SiwasakiFixed the AcpiExDigitsNeeded() procedure to support _UID. 1083102550SiwasakiThis function was out of date and required a rewrite. 1084102550Siwasaki 1085102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1086102550Siwasakishown below. These are the code and data sizes for the 1087104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1088104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1089104470SiwasakiThe debug version of the code includes the debug output trace 1090104470Siwasakimechanism and has a larger code and data size. Note that 1091104470Siwasakithese values will vary depending on the efficiency of the 1092104470Siwasakicompiler and the compiler options used during generation. 1093102550Siwasaki 1094102550Siwasaki Previous Release 1095104470Siwasaki Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 1096104470Siwasaki Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 1097102550Siwasaki Current Release: 1098104470Siwasaki Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 1099104470Siwasaki Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 1100102550Siwasaki 1101102550Siwasaki 1102102550Siwasaki2) Linux 1103102550Siwasaki 1104102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski) 1105102550Siwasaki 1106102550Siwasaki 1107102550Siwasaki3) iASL Compiler Version X2042: 1108102550Siwasaki 1109104470SiwasakiImplemented an additional compile-time error check for a field 1110104470Siwasakiunit whose size + minimum access width would cause a run-time 1111104470Siwasakiaccess beyond the end-of-region. Previously, only the field 1112104470Siwasakisize itself was checked. 1113102550Siwasaki 1114104470SiwasakiThe Core subsystem and iASL compiler now share a common parse 1115104470Siwasakiobject in preparation for compile-time evaluation of the type 1116104470Siwasaki3/4/5 ASL operators. 1117102550Siwasaki 1118102550Siwasaki 1119102550Siwasaki---------------------------------------- 1120102550SiwasakiSummary of changes for this release: 03_29_02 1121102550Siwasaki 1122102550Siwasaki1) ACPI CA Core Subsystem Version 20020329: 1123102550Siwasaki 1124104470SiwasakiImplemented support for late evaluation of TermArg operands to 1125104470SiwasakiBuffer and Package objects. This allows complex expressions 1126104470Siwasakito be used in the declarations of these object types. 1127102550Siwasaki 1128104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In 1129104470SiwasakiACPI 1.0, if the field was larger than 32 bits, it was 1130104470Siwasakireturned as a buffer - otherwise it was returned as an 1131104470Siwasakiinteger. In ACPI 2.0, the field is returned as a buffer only 1132104470Siwasakiif the field is larger than 64 bits. The TableRevision is now 1133104470Siwasakiconsidered when making this conversion to avoid 1134102550Siwasakiincompatibility with existing ASL code. 1135102550Siwasaki 1136104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer. This 1137104470Siwasakiallows an RSDP with either a logical or physical address. 1138104470SiwasakiWith this support, the host OS can now override all ACPI 1139104470Siwasakitables with one logical RSDP. Includes implementation of 1140104470Siwasaki"typed" pointer support to allow a common data type for both 1141104470Siwasakiphysical and logical pointers internally. This required a 1142104470Siwasakichange to the AcpiOsGetRootPointer interface. 1143102550Siwasaki 1144104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for 1145104470Siwasakiall GPE, Fixed Event, and PM Timer I/O. This allows the use 1146104470Siwasakiof memory mapped I/O for these ACPI features. 1147102550Siwasaki 1148102550SiwasakiInitialization now ignores not only non-required tables (All 1149102550Siwasakitables other than the FADT, FACS, DSDT, and SSDTs), but also 1150102550Siwasakidoes not validate the table headers of unrecognized tables. 1151102550Siwasaki 1152102550SiwasakiFixed a problem where a notify handler could only be 1153102550Siwasakiinstalled/removed on an object of type Device. All "notify" 1154102550Siwasakiobjects are now supported -- Devices, Processor, Power, and 1155102550SiwasakiThermal. 1156102550Siwasaki 1157102550SiwasakiRemoved most verbosity from the ACPI_DB_INFO debug level. 1158104470SiwasakiOnly critical information is returned when this debug level is 1159104470Siwasakienabled. 1160102550Siwasaki 1161102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1162102550Siwasakishown below. These are the code and data sizes for the 1163104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1164104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1165104470SiwasakiThe debug version of the code includes the debug output trace 1166104470Siwasakimechanism and has a larger code and data size. Note that 1167104470Siwasakithese values will vary depending on the efficiency of the 1168104470Siwasakicompiler and the compiler options used during generation. 1169102550Siwasaki 1170102550Siwasaki Previous Release 1171104470Siwasaki Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 1172104470Siwasaki Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 1173102550Siwasaki Current Release: 1174104470Siwasaki Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 1175104470Siwasaki Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 1176102550Siwasaki 1177102550Siwasaki 1178102550Siwasaki2) Linux: 1179102550Siwasaki 1180102550SiwasakiThe processor driver (acpi_processor.c) now fully supports 1181102550SiwasakiACPI 2.0-based processor performance control (e.g. Intel(R) 1182102550SiwasakiSpeedStep(TM) technology) Note that older laptops that only 1183102550Siwasakihave the Intel "applet" interface are not supported through 1184102550Siwasakithis. The 'limit' and 'performance' interface (/proc) are 1185102550Siwasakifully functional. [Note that basic policy for controlling 1186102550Siwasakiperformance state transitions will be included in the next 1187102550Siwasakiversion of ospmd.] The idle handler was modified to more 1188102550Siwasakiaggressively use C2, and PIIX4 errata handling underwent a 1189102550Siwasakicomplete overhaul (big thanks to Dominik Brodowski). 1190102550Siwasaki 1191102550SiwasakiAdded support for ACPI-PCI device binding (acpi_pci_root.c). 1192102550Siwasaki_ADR-based devices in the ACPI namespace are now dynamically 1193102550Siwasakibound (associated) with their PCI counterparts (e.g. PCI1- 1194102550Siwasaki>01:00.0). This allows, among other things, ACPI to resolve 1195102550Siwasakibus numbers for subordinate PCI bridges. 1196102550Siwasaki 1197104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT 1198104470Siwasakientries defined underneath PCI bridges. 1199102550Siwasaki 1200104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for 1201104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing. 1202102550Siwasaki 1203102550SiwasakiIn the process of adding full MADT support (e.g. IOAPIC) for 1204102550SiwasakiIA32 (acpi.c, mpparse.c) -- stay tuned. 1205102550Siwasaki 1206102550SiwasakiAdded back visual differentiation between fixed-feature and 1207102550Siwasakicontrol-method buttons in dmesg. Buttons are also subtyped 1208102550Siwasaki(e.g. button/power/PWRF) to simplify button identification. 1209102550Siwasaki 1210102550SiwasakiWe no longer use -Wno-unused when compiling debug. Please 1211102550Siwasakiignore any "_THIS_MODULE defined but not used" messages. 1212102550Siwasaki 1213102550SiwasakiCan now shut down the system using "magic sysrq" key. 1214102550Siwasaki 1215102550Siwasaki 1216102550Siwasaki3) iASL Compiler version 2041: 1217102550Siwasaki 1218104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal 1219104470Siwasakiconstants were not reported. 1220102550Siwasaki 1221102550SiwasakiImplemented a fix for the General Register template Address 1222102550Siwasakifield. This field was 8 bits when it should be 64. 1223102550Siwasaki 1224102550SiwasakiFixed a problem where errors/warnings were no longer being 1225102550Siwasakiemitted within the listing output file. 1226102550Siwasaki 1227104470SiwasakiImplemented the ACPI 2.0A restriction on ACPI Table Signatures 1228104470Siwasakito exactly 4 characters, alphanumeric only. 1229102550Siwasaki 1230102550Siwasaki 1231102550Siwasaki 1232102550Siwasaki 1233102550Siwasaki---------------------------------------- 1234102550SiwasakiSummary of changes for this release: 03_08_02 1235102550Siwasaki 1236102550Siwasaki 1237102550Siwasaki1) ACPI CA Core Subsystem Version 20020308: 1238102550Siwasaki 1239102550SiwasakiFixed a problem with AML Fields where the use of the 1240102550Siwasaki"AccessAny" keyword could cause an interpreter error due to 1241102550Siwasakiattempting to read or write beyond the end of the parent 1242102550SiwasakiOperation Region. 1243102550Siwasaki 1244102550SiwasakiFixed a problem in the SystemMemory Operation Region handler 1245104470Siwasakiwhere an attempt was made to map memory beyond the end of the 1246104470Siwasakiregion. This was the root cause of the "AE_ERROR" and 1247102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems. 1248102550Siwasaki 1249102550SiwasakiFixed a problem where the interpreter/namespace "search to 1250102550Siwasakiroot" algorithm was not functioning for some object types. 1251102550SiwasakiRelaxed the internal restriction on the search to allow 1252102550Siwasakiupsearches for all external object types as well as most 1253102550Siwasakiinternal types. 1254102550Siwasaki 1255102550Siwasaki 1256102550Siwasaki2) Linux: 1257102550Siwasaki 1258104470SiwasakiWe now use safe_halt() macro versus individual calls to sti | 1259104470Siwasakihlt. 1260102550Siwasaki 1261102550SiwasakiWriting to the processor limit interface should now work. 1262104470Siwasaki"echo 1" will increase the limit, 2 will decrease, and 0 will 1263104470Siwasakireset to the default. 1264102550Siwasaki 1265102550Siwasaki 1266102550Siwasaki3) ASL compiler: 1267102550Siwasaki 1268102550SiwasakiFixed segfault on Linux version. 1269102550Siwasaki 1270102550Siwasaki 1271102550Siwasaki---------------------------------------- 1272102550SiwasakiSummary of changes for this release: 02_25_02 1273102550Siwasaki 1274102550Siwasaki1) ACPI CA Core Subsystem: 1275102550Siwasaki 1276102550Siwasaki 1277102550SiwasakiFixed a problem where the GPE bit masks were not initialized 1278102550Siwasakiproperly, causing erratic GPE behavior. 1279102550Siwasaki 1280104470SiwasakiImplemented limited support for multiple calling conventions. 1281104470SiwasakiThe code can be generated with either the VPL (variable 1282104470Siwasakiparameter list, or "C") convention, or the FPL (fixed 1283104470Siwasakiparameter list, or "Pascal") convention. The core subsystem 1284104470Siwasakiis about 3.4% smaller when generated with FPL. 1285102550Siwasaki 1286102550Siwasaki 1287102550Siwasaki2) Linux 1288102550Siwasaki 1289102550SiwasakiRe-add some /proc/acpi/event functionality that was lost 1290102550Siwasakiduring the rewrite 1291102550Siwasaki 1292102550SiwasakiResolved issue with /proc events for fixed-feature buttons 1293102550Siwasakishowing up as the system device. 1294102550Siwasaki 1295102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum 1296102550Siwasakivalues. 1297102550Siwasaki 1298102550SiwasakiReplaced AE_ERRORs in acpi_osl.c with more specific error 1299102550Siwasakicodes. 1300102550Siwasaki 1301102550SiwasakiChanged ACPI PRT option from "pci=noacpi-routing" to 1302102550Siwasaki"pci=noacpi" 1303102550Siwasaki 1304104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling 1305104470Siwasakihysterisis. 1306102550Siwasaki 1307102550SiwasakiRestructured PRT support. 1308102550Siwasaki 1309102550Siwasaki 1310102550Siwasaki---------------------------------------- 1311102550SiwasakiSummary of changes for this label: 02_14_02 1312102550Siwasaki 1313102550Siwasaki 1314102550Siwasaki1) ACPI CA Core Subsystem: 1315102550Siwasaki 1316104470SiwasakiImplemented support in AcpiLoadTable to allow loading of FACS 1317104470Siwasakiand FADT tables. 1318102550Siwasaki 1319102550SiwasakiSuport for the now-obsolete interim 0.71 64-bit ACPI tables 1320104470Siwasakihas been removed. All 64-bit platforms should be migrated to 1321104470Siwasakithe ACPI 2.0 tables. The actbl71.h header has been removed 1322104470Siwasakifrom the source tree. 1323102550Siwasaki 1324102550SiwasakiAll C macros defined within the subsystem have been prefixed 1325102550Siwasakiwith "ACPI_" to avoid collision with other system include 1326102550Siwasakifiles. 1327102550Siwasaki 1328102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces, 1329102550Siwasakisince it is never used and causes lint warnings for ignoring 1330102550Siwasakithe return value. 1331102550Siwasaki 1332104470SiwasakiAdded error checking to all internal mutex acquire and release 1333104470Siwasakicalls. Although a failure from one of these interfaces is 1334104470Siwasakiprobably a fatal system error, these checks will cause the 1335104470Siwasakiimmediate abort of the currently executing method or 1336104470Siwasakiinterface. 1337102550Siwasaki 1338102550SiwasakiFixed a problem where the AcpiSetCurrentResources interface 1339104470Siwasakicould fault. This was a side effect of the deployment of the 1340104470Siwasakinew memory allocation model. 1341102550Siwasaki 1342102550SiwasakiFixed a couple of problems with the Global Lock support 1343102550Siwasakiintroduced in the last major build. The "common" (1.0/2.0) 1344102550Siwasakiinternal FACS was being overwritten with the FACS signature 1345102550Siwasakiand clobbering the Global Lock pointer. Also, the actual 1346102550Siwasakifirmware FACS was being unmapped after construction of the 1347102550Siwasaki"common" FACS, preventing access to the actual Global Lock 1348102550Siwasakifield within it. The "common" internal FACS is no longer 1349102550Siwasakiinstalled as an actual ACPI table; it is used simply as a 1350102550Siwasakiglobal. 1351102550Siwasaki 1352102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1353102550Siwasakishown below. These are the code and data sizes for the 1354104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1355104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1356104470SiwasakiThe debug version of the code includes the debug output trace 1357104470Siwasakimechanism and has a larger code and data size. Note that 1358104470Siwasakithese values will vary depending on the efficiency of the 1359104470Siwasakicompiler and the compiler options used during generation. 1360102550Siwasaki 1361102550Siwasaki Previous Release (02_07_01) 1362104470Siwasaki Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total 1363104470Siwasaki Debug Version: 136.9K Code, 56.4K Data, 193.3K Total 1364102550Siwasaki Current Release: 1365104470Siwasaki Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 1366104470Siwasaki Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 1367102550Siwasaki 1368102550Siwasaki 1369102550Siwasaki2) Linux 1370102550Siwasaki 1371102550SiwasakiUpdated Linux-specific code for core macro and OSL interface 1372102550Siwasakichanges described above. 1373102550Siwasaki 1374104470SiwasakiImproved /proc/acpi/event. It now can be opened only once and 1375104470Siwasakihas proper poll functionality. 1376102550Siwasaki 1377102550SiwasakiFixed and restructured power management (acpi_bus). 1378102550Siwasaki 1379102550SiwasakiOnly create /proc "view by type" when devices of that class 1380102550Siwasakiexist. 1381102550Siwasaki 1382104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery. 1383102550Siwasaki 1384102550SiwasakiImproved thermal zone code. 1385102550Siwasaki 1386102550Siwasaki 1387102550Siwasaki3) ASL Compiler, version X2039: 1388102550Siwasaki 1389102550SiwasakiImplemented the new compiler restriction on ASL String 1390104470Siwasakihex/octal escapes to non-null, ASCII values. An error results 1391104470Siwasakiif an invalid value is used. (This will require an ACPI 2.0 1392104470Siwasakispecification change.) 1393102550Siwasaki 1394102550SiwasakiAML object labels that are output to the optional C and ASM 1395104470Siwasakisource are now prefixed with both the ACPI table signature and 1396104470Siwasakitable ID to help guarantee uniqueness within a large BIOS 1397104470Siwasakiproject. 1398102550Siwasaki 1399102550Siwasaki 1400102550Siwasaki---------------------------------------- 1401102550SiwasakiSummary of changes for this label: 02_01_02 1402102550Siwasaki 1403102550Siwasaki1) ACPI CA Core Subsystem: 1404102550Siwasaki 1405104470SiwasakiACPI 2.0 support is complete in the entire Core Subsystem and 1406104470Siwasakithe ASL compiler. All new ACPI 2.0 operators are implemented 1407104470Siwasakiand all other changes for ACPI 2.0 support are complete. With 1408104470Siwasakisimultaneous code and data optimizations throughout the 1409104470Siwasakisubsystem, ACPI 2.0 support has been implemented with almost 1410104470Siwasakino additional cost in terms of code and data size. 1411102550Siwasaki 1412104470SiwasakiImplemented a new mechanism for allocation of return buffers. 1413104470SiwasakiIf the buffer length is set to ACPI_ALLOCATE_BUFFER, the 1414104470Siwasakibuffer will be allocated on behalf of the caller. 1415104470SiwasakiConsolidated all return buffer validation and allocation to a 1416104470Siwasakicommon procedure. Return buffers will be allocated via the 1417104470Siwasakiprimary OSL allocation interface since it appears that a 1418104470Siwasakiseparate pool is not needed by most users. If a separate pool 1419104470Siwasakiis required for these buffers, the caller can still use the 1420104470Siwasakioriginal mechanism and pre-allocate the buffer(s). 1421102550Siwasaki 1422102550SiwasakiImplemented support for string operands within the DerefOf 1423102550Siwasakioperator. 1424102550Siwasaki 1425102550SiwasakiRestructured the Hardware and Event managers to be table 1426104470Siwasakidriven, simplifying the source code and reducing the amount of 1427104470Siwasakigenerated code. 1428102550Siwasaki 1429102550SiwasakiSplit the common read/write low-level ACPI register bitfield 1430104470Siwasakiprocedure into a separate read and write, simplifying the code 1431104470Siwasakiconsiderably. 1432102550Siwasaki 1433102550SiwasakiObsoleted the AcpiOsCallocate OSL interface. This interface 1434102550Siwasakiwas used only a handful of times and didn't have enough 1435102550Siwasakicritical mass for a separate interface. Replaced with a 1436102550Siwasakicommon calloc procedure in the core. 1437102550Siwasaki 1438104470SiwasakiFixed a reported problem with the GPE number mapping mechanism 1439104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0. 1440104470SiwasakiReorganized the GPE information and shrunk a large array that 1441104470Siwasakiwas originally large enough to hold info for all possible GPEs 1442104470Siwasaki(256) to simply large enough to hold all GPEs up to the 1443104470Siwasakilargest GPE number on the machine. 1444102550Siwasaki 1445104470SiwasakiFixed a reported problem with resource structure alignment on 1446104470Siwasaki64-bit platforms. 1447102550Siwasaki 1448102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external 1449102550Siwasakiinterfaces to not require any flags for the common case of 1450102550Siwasakienabling/disabling a GPE. 1451102550Siwasaki 1452104470SiwasakiImplemented support to allow a "Notify" on a Processor object. 1453102550Siwasaki 1454102550SiwasakiMost TBDs in comments within the source code have been 1455102550Siwasakiresolved and eliminated. 1456102550Siwasaki 1457102550SiwasakiFixed a problem in the interpreter where a standalone parent 1458102550Siwasakiprefix (^) was not handled correctly in the interpreter and 1459102550Siwasakidebugger. 1460102550Siwasaki 1461102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code. 1462102550Siwasaki 1463102550SiwasakiImplemented Field support in the ASL Load operator. This 1464104470Siwasakiallows a table to be loaded from a named field, in addition to 1465104470Siwasakiloading a table directly from an Operation Region. 1466102550Siwasaki 1467104470SiwasakiImplemented timeout and handle support in the external Global 1468104470SiwasakiLock interfaces. 1469102550Siwasaki 1470102550SiwasakiFixed a problem in the AcpiDump utility where pathnames were 1471102550Siwasakino longer being generated correctly during the dump of named 1472102550Siwasakiobjects. 1473102550Siwasaki 1474102550SiwasakiModified the AML debugger to give a full display of if/while 1475102550Siwasakipredicates instead of just one AML opcode at a time. (The 1476102550Siwasakipredicate can have several nested ASL statements.) The old 1477102550Siwasakimethod was confusing during single stepping. 1478102550Siwasaki 1479102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1480102550Siwasakishown below. These are the code and data sizes for the 1481104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1482104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1483104470SiwasakiThe debug version of the code includes the debug output trace 1484104470Siwasakimechanism and has a larger code and data size. Note that 1485104470Siwasakithese values will vary depending on the efficiency of the 1486104470Siwasakicompiler and the compiler options used during generation. 1487102550Siwasaki 1488102550Siwasaki Previous Release (12_18_01) 1489102550Siwasaki Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K 1490102550SiwasakiTotal 1491102550Siwasaki Debug Version: 138.3K Code, 55.9K Data, 194.2K 1492102550SiwasakiTotal 1493102550Siwasaki Current Release: 1494102550Siwasaki Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K 1495102550SiwasakiTotal 1496102550Siwasaki Debug Version: 136.9K Code, 56.4K Data, 193.3K 1497102550SiwasakiTotal 1498102550Siwasaki 1499102550Siwasaki2) Linux 1500102550Siwasaki 1501104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor 1502104470Siwasakidriver) 1503102550Siwasaki 1504102550SiwasakiAdded new Limit interface (Processor and Thermal drivers) 1505102550Siwasaki 1506102550SiwasakiNew thermal policy (Thermal driver) 1507102550Siwasaki 1508102550SiwasakiMany updates to /proc 1509102550Siwasaki 1510102550SiwasakiBattery "low" event support (Battery driver) 1511102550Siwasaki 1512104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers) 1513102550Siwasaki 1514104470SiwasakiIA32 - IA64 initialization unification, no longer experimental 1515102550Siwasaki 1516102550SiwasakiMenuconfig options redesigned 1517102550Siwasaki 1518102550Siwasaki3) ASL Compiler, version X2037: 1519102550Siwasaki 1520102550SiwasakiImplemented several new output features to simplify 1521104470Siwasakiintegration of AML code into firmware: 1) Output the AML in C 1522104470Siwasakisource code with labels for each named ASL object. The 1523102550Siwasakioriginal ASL source code is interleaved as C comments. 2) 1524104470SiwasakiOutput the AML in ASM source code with labels and interleaved 1525104470SiwasakiASL source. 3) Output the AML in raw hex table form, in 1526104470Siwasakieither C or ASM. 1527102550Siwasaki 1528102550SiwasakiImplemented support for optional string parameters to the 1529102550SiwasakiLoadTable operator. 1530102550Siwasaki 1531104470SiwasakiCompleted support for embedded escape sequences within string 1532104470Siwasakiliterals. The compiler now supports all single character 1533104470Siwasakiescapes as well as the Octal and Hex escapes. Note: the 1534104470Siwasakiinsertion of a null byte into a string literal (via the 1535104470Siwasakihex/octal escape) causes the string to be immediately 1536104470Siwasakiterminated. A warning is issued. 1537102550Siwasaki 1538104470SiwasakiFixed a problem where incorrect AML was generated for the case 1539104470Siwasakiwhere an ASL namepath consists of a single parent prefix ( 1540102550Siwasaki 1541102550Siwasaki) with no trailing name segments. 1542102550Siwasaki 1543102550SiwasakiThe compiler has been successfully generated with a 64-bit C 1544102550Siwasakicompiler. 1545102550Siwasaki 1546102550Siwasaki 1547102550Siwasaki 1548102550Siwasaki 1549102550Siwasaki---------------------------------------- 1550102550SiwasakiSummary of changes for this label: 12_18_01 1551102550Siwasaki 1552102550Siwasaki1) Linux 1553102550Siwasaki 1554102550SiwasakiEnhanced blacklist with reason and severity fields. Any 1555102550Siwasakitable's signature may now be used to identify a blacklisted 1556102550Siwasakisystem. 1557102550Siwasaki 1558102550SiwasakiCall _PIC control method to inform the firmware which 1559102550Siwasakiinterrupt model the OS is using. Turn on any disabled link 1560102550Siwasakidevices. 1561102550Siwasaki 1562102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger) 1563102550Siwasaki 1564102550Siwasaki 2) ACPI CA Core Subsystem: 1565102550Siwasaki 1566104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit 1567104470Siwasakifrom while loop) 1568102550Siwasaki 1569102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue", 1570102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable" 1571104470Siwasakioperators. All new ACPI 2.0 operators are now implemented in 1572104470Siwasakiboth the ASL compiler and the AML interpreter. The only 1573104470Siwasakiremaining ACPI 2.0 task is support for the String data type in 1574104470Siwasakithe DerefOf operator. Fixed a problem with AcquireMutex where 1575104470Siwasakithe status code was lost if the caller had to actually wait 1576104470Siwasakifor the mutex. 1577102550Siwasaki 1578104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits. 1579102550Siwasaki 1580102550SiwasakiCompleted implementation of the external Global Lock 1581104470Siwasakiinterfaces -- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock. 1582104470SiwasakiThe Timeout and Handler parameters were added. 1583102550Siwasaki 1584102550SiwasakiCompleted another pass at removing warnings and issues when 1585102550Siwasakicompiling with 64-bit compilers. The code now compiles 1586102550Siwasakicleanly with the Intel 64-bit C/C++ compiler. Most notably, 1587102550Siwasakithe pointer add and subtract (diff) macros have changed 1588102550Siwasakiconsiderably. 1589102550Siwasaki 1590104470SiwasakiCreated and deployed a new ACPI_SIZE type that is 64-bits wide 1591104470Siwasakion 64-bit platforms, 32-bits on all others. This type is used 1592104470Siwasakiwherever memory allocation and/or the C sizeof() operator is 1593104470Siwasakiused, and affects the OSL memory allocation interfaces 1594104470SiwasakiAcpiOsAllocate and AcpiOsCallocate. 1595102550Siwasaki 1596102550SiwasakiImplemented sticky user breakpoints in the AML debugger. 1597102550Siwasaki 1598102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1599102550Siwasakishown below. These are the code and data sizes for the 1600104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1601104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1602104470SiwasakiThe debug version of the code includes the debug output trace 1603104470Siwasakimechanism and has a larger code and data size. Note that these 1604104470Siwasakivalues will vary depending on the efficiency of the compiler 1605104470Siwasakiand the compiler options used during generation. 1606102550Siwasaki 1607102550Siwasaki Previous Release (12_05_01) 1608102550Siwasaki Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K 1609102550SiwasakiTotal 1610102550Siwasaki Debug Version: 136.2K Code, 55.6K Data, 191.8K 1611102550SiwasakiTotal 1612102550Siwasaki Current Release: 1613102550Siwasaki Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K 1614102550SiwasakiTotal 1615102550Siwasaki Debug Version: 138.3K Code, 55.9K Data, 194.2K 1616102550SiwasakiTotal 1617102550Siwasaki 1618102550Siwasaki 3) ASL Compiler, version X2034: 1619102550Siwasaki 1620104470SiwasakiNow checks for (and generates an error if detected) the use of 1621104470Siwasakia Break or Continue statement without an enclosing While 1622102550Siwasakistatement. 1623102550Siwasaki 1624102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C 1625102550Siwasakicompiler. 1626102550Siwasaki 1627102550Siwasaki ---------------------------------------- 1628102550SiwasakiSummary of changes for this label: 12_05_01 1629102550Siwasaki 1630102550Siwasaki 1) ACPI CA Core Subsystem: 1631102550Siwasaki 1632102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented. This 1633104470Siwasakioperator creates a new copy of an object (and is also used to 1634104470Siwasakibypass the "implicit conversion" mechanism of the Store 1635102550Siwasakioperator.) 1636102550Siwasaki 1637102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully 1638102550Siwasakiimplemented. The change is that performing a SizeOf on a 1639104470Siwasakireference object causes an automatic dereference of the object 1640104470Siwasakito tha actual value before the size is evaluated. This 1641104470Siwasakibehavior was undefined in ACPI 1.0. 1642102550Siwasaki 1643102550SiwasakiThe ACPI 2.0 semantics for the Extended IRQ resource 1644104470Siwasakidescriptor have been implemented. The interrupt polarity and 1645104470Siwasakimode are now independently set. 1646102550Siwasaki 1647102550SiwasakiFixed a problem where ASL Constants (Zero, One, Ones, 1648102550SiwasakiRevision) appearing in Package objects were not properly 1649104470Siwasakiconverted to integers when the internal Package was converted 1650104470Siwasakito an external object (via the AcpiEvaluateObject interface.) 1651102550Siwasaki 1652102550SiwasakiFixed a problem with the namespace object deletion mechanism 1653104470Siwasakifor objects created by control methods. There were two parts 1654104470Siwasakito this problem: 1) Objects created during the initialization 1655104470Siwasakiphase method parse were not being deleted, and 2) The object 1656104470Siwasakiowner ID mechanism to track objects was broken. 1657102550Siwasaki 1658104470SiwasakiFixed a problem where the use of the ASL Scope operator within 1659104470Siwasakia control method would result in an invalid opcode exception. 1660102550Siwasaki 1661102550SiwasakiFixed a problem introduced in the previous label where the 1662102550Siwasakibuffer length required for the _PRT structure was not being 1663102550Siwasakireturned correctly. 1664102550Siwasaki 1665102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1666102550Siwasakishown below. These are the code and data sizes for the 1667104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1668104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1669104470SiwasakiThe debug version of the code includes the debug output trace 1670104470Siwasakimechanism and has a larger code and data size. Note that 1671104470Siwasakithese values will vary depending on the efficiency of the 1672104470Siwasakicompiler and the compiler options used during generation. 1673102550Siwasaki 1674102550Siwasaki Previous Release (11_20_01) 1675102550Siwasaki Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K 1676102550SiwasakiTotal 1677102550Siwasaki Debug Version: 135.1K Code, 55.4K Data, 190.5K 1678102550SiwasakiTotal 1679102550Siwasaki 1680102550Siwasaki Current Release: 1681102550Siwasaki Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K 1682102550SiwasakiTotal 1683102550Siwasaki Debug Version: 136.2K Code, 55.6K Data, 191.8K 1684102550SiwasakiTotal 1685102550Siwasaki 1686102550Siwasaki 2) Linux: 1687102550Siwasaki 1688102550SiwasakiUpdated all files to apply cleanly against 2.4.16. 1689102550Siwasaki 1690104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32 1691104470Siwasaki(acpi_pci.c), and unified the PRT code for IA32 and IA64. 1692104470SiwasakiThis version supports both static and dyanmic PRT entries, but 1693104470Siwasakidynamic entries are treated as if they were static (not yet 1694104470Siwasakireconfigurable). Architecture- specific code to use this data 1695104470Siwasakiis absent on IA32 but should be available shortly. 1696102550Siwasaki 1697102550SiwasakiChanged the initialization sequence to start the ACPI 1698102550Siwasakiinterpreter (acpi_init) prior to initialization of the PCI 1699102550Siwasakidriver (pci_init) in init/main.c. This ordering is required 1700102550Siwasakito support PRT and facilitate other (future) enhancement. A 1701102550Siwasakiside effect is that the ACPI bus driver and certain device 1702102550Siwasakidrivers can no longer be loaded as modules. 1703102550Siwasaki 1704104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt 1705104470SiwasakiRouting support to be included without the ACPI Bus and other 1706104470Siwasakidevice drivers. 1707102550Siwasaki 1708102550Siwasaki 3) ASL Compiler, version X2033: 1709102550Siwasaki 1710102550SiwasakiFixed some issues with the use of the new CopyObject and 1711102550SiwasakiDataTableRegion operators. Both are fully functional. 1712102550Siwasaki 1713102550Siwasaki ---------------------------------------- 1714102550SiwasakiSummary of changes for this label: 11_20_01 1715102550Siwasaki 1716102550Siwasaki 20 November 2001. Summary of changes for this release. 1717102550Siwasaki 1718102550Siwasaki 1) ACPI CA Core Subsystem: 1719102550Siwasaki 1720104470SiwasakiUpdated Index support to match ACPI 2.0 semantics. Storing a 1721104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store 1722104470Siwasakionly the least-significant byte of the source to the Indexed 1723104470Siwasakibuffer byte. Multiple writes are not performed. 1724102550Siwasaki 1725104470SiwasakiFixed a problem where the access type used in an AccessAs ASL 1726104470Siwasakioperator was not recorded correctly into the field object. 1727102550Siwasaki 1728102550SiwasakiFixed a problem where ASL Event objects were created in a 1729102550Siwasakisignalled state. Events are now created in an unsignalled 1730102550Siwasakistate. 1731102550Siwasaki 1732102550SiwasakiThe internal object cache is now purged after table loading 1733104470Siwasakiand initialization to reduce the use of dynamic kernel memory 1734104470Siwasaki-- on the assumption that object use is greatest during the 1735104470Siwasakiparse phase of the entire table (versus the run-time use of 1736104470Siwasakiindividual control methods.) 1737102550Siwasaki 1738102550SiwasakiACPI 2.0 variable-length packages are now fully operational. 1739102550Siwasaki 1740104470SiwasakiCode and Data Size: Code and Data optimizations have permitted 1741104470Siwasakinew feature development with an actual reduction in the 1742104470Siwasakilibrary size. Current core subsystem library sizes are shown 1743104470Siwasakibelow. These are the code and data sizes for the acpica.lib 1744104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these 1745104470Siwasakivalues do not include any ACPI driver or OSPM code. The debug 1746104470Siwasakiversion of the code includes the debug output trace mechanism 1747104470Siwasakiand has a larger code and data size. Note that these values 1748104470Siwasakiwill vary depending on the efficiency of the compiler and the 1749104470Siwasakicompiler options used during generation. 1750102550Siwasaki 1751102550Siwasaki Previous Release (11_09_01): 1752102550Siwasaki Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K 1753102550SiwasakiTotal 1754102550Siwasaki Debug Version: 134.5K Code, 55.4K Data, 189.9K 1755102550SiwasakiTotal 1756102550Siwasaki 1757102550Siwasaki Current Release: 1758102550Siwasaki Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K 1759102550SiwasakiTotal 1760102550Siwasaki Debug Version: 135.1K Code, 55.4K Data, 190.5K 1761102550SiwasakiTotal 1762102550Siwasaki 1763102550Siwasaki 2) Linux: 1764102550Siwasaki 1765102550SiwasakiEnhanced the ACPI boot-time initialization code to allow the 1766102550Siwasakiuse of Local APIC tables for processor enumeration on IA-32, 1767104470Siwasakiand to pave the way for a fully MPS-free boot (on SMP systems) 1768104470Siwasakiin the near future. This functionality replaces 1769102550Siwasakiarch/i386/kernel/acpitables.c, which was introduced in an 1770104470Siwasakiearlier 2.4.15-preX release. To enable this feature you must 1771104470Siwasakiadd "acpi_boot=on" to the kernel command line -- see the help 1772104470Siwasakientry for CONFIG_ACPI_BOOT for more information. An IA-64 1773104470Siwasakirelease is in the works... 1774102550Siwasaki 1775102550SiwasakiRestructured the configuration options to allow boot-time 1776102550Siwasakitable parsing support without inclusion of the ACPI 1777102550SiwasakiInterpreter (and other) code. 1778102550Siwasaki 1779102550SiwasakiNOTE: This release does not include fixes for the reported 1780104470Siwasakievents, power-down, and thermal passive cooling issues (coming 1781104470Siwasakisoon). 1782102550Siwasaki 1783102550Siwasaki 3) ASL Compiler: 1784102550Siwasaki 1785102550SiwasakiAdded additional typechecking for Fields within restricted 1786102550Siwasakiaccess Operation Regions. All fields within EC and CMOS 1787102550Siwasakiregions must be declared with ByteAcc. All fields withing 1788104470SiwasakiSMBus regions must be declared with the BufferAcc access type. 1789102550Siwasaki 1790102550SiwasakiFixed a problem where the listing file output of control 1791104470Siwasakimethods no longer interleaved the actual AML code with the ASL 1792104470Siwasakisource code. 1793102550Siwasaki 1794102550Siwasaki 1795102550Siwasaki 1796102550Siwasaki---------------------------------------- 1797102550SiwasakiSummary of changes for this label: 11_09_01 1798102550Siwasaki 1799102550Siwasaki1) ACPI CA Core Subsystem: 1800102550Siwasaki 1801104470SiwasakiImplemented ACPI 2.0-defined support for writes to fields with 1802104470Siwasakia Buffer, String, or Integer source operand that is smaller 1803104470Siwasakithan the target field. In these cases, the source operand is 1804104470Siwasakizero-extended to fill the target field. 1805102550Siwasaki 1806104470SiwasakiFixed a problem where a Field starting bit offset (within the 1807104470Siwasakiparent operation region) was calculated incorrectly if the 1808104470Siwasakialignment of the field differed from the access width. This 1809104470Siwasakiaffected CreateWordField, CreateDwordField, CreateQwordField, 1810104470Siwasakiand possibly other fields that use the "AccessAny" keyword. 1811102550Siwasaki 1812102550SiwasakiFixed a problem introduced in the 11_02_01 release where 1813102550Siwasakiindirect stores through method arguments did not operate 1814102550Siwasakicorrectly. 1815102550Siwasaki 1816102550Siwasaki2) Linux: 1817102550Siwasaki 1818102550SiwasakiImplemented boot-time ACPI table parsing support 1819102550Siwasaki(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This 1820102550Siwasakicode facilitates the use of ACPI tables (e.g. MADT, SRAT) 1821102550Siwasakirather than legacy BIOS interfaces (e.g. MPS) for the 1822102550Siwasakiconfiguration of system processors, memory, and interrupts 1823102550Siwasakiduring setup_arch(). Note that this patch does not include 1824102550Siwasakithe required architecture-specific changes required to apply 1825104470Siwasakithis information -- subsequent patches will be posted for both 1826104470SiwasakiIA32 and IA64 to achieve this. 1827102550Siwasaki 1828104470SiwasakiAdded low-level sleep support for IA32 platforms, courtesy of 1829104470SiwasakiPat Mochel. This allows IA32 systems to transition to/from 1830104470Siwasakivarious sleeping states (e.g. S1, S3), although the lack of a 1831104470Siwasakicentralized driver model and power-manageable drivers will 1832104470Siwasakiprevent its (successful) use on most systems. 1833102550Siwasaki 1834102550SiwasakiRevamped the ACPI 'menuconfig' layout: created new "ACPI 1835102550SiwasakiSupport" submenu, unified IA32 and IA64 options, added new 1836102550Siwasaki"Boot using ACPI tables" option, etc. 1837102550Siwasaki 1838102550SiwasakiIncreased the default timeout for the EC driver from 1ms to 1839102550Siwasaki10ms (1000 cycles of 10us) to try to address AE_TIME errors 1840102550Siwasakiduring EC transactions. 1841102550Siwasaki 1842102550Siwasaki ---------------------------------------- 1843102550SiwasakiSummary of changes for this label: 11_02_01 1844102550Siwasaki 1845102550Siwasaki1) ACPI CA Core Subsystem: 1846102550Siwasaki 1847102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access 1848102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now 1849102550Siwasakiimplemented. 1850102550Siwasaki 1851102550SiwasakiOSL Interfaces: Several of the OSL (AcpiOs*) interfaces 1852102550Siwasakirequired changes to support ACPI 2.0 Qword field access. 1853102550SiwasakiRead/Write PciConfiguration(), Read/Write Memory(), and 1854104470SiwasakiRead/Write Port() now accept an ACPI_INTEGER (64 bits) as the 1855104470Siwasakivalue parameter. Also, the value parameter for the address 1856104470Siwasakispace handler interface is now an ACPI_INTEGER. OSL 1857102550Siwasakiimplementations of these interfaces must now handle the case 1858102550Siwasakiwhere the Width parameter is 64. 1859102550Siwasaki 1860104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and 1861104470Siwasakidisassembly for IndexFields was not supported correctly. 1862102550Siwasaki 1863102550SiwasakiIndex and Bank Fields: Nested Index and Bank Fields are now 1864104470Siwasakisupported. During field access, a check is performed to ensure 1865104470Siwasakithat the value written to an Index or Bank register is not out 1866104470Siwasakiof the range of the register. The Index (or Bank) register is 1867104470Siwasakiwritten before each access to the field data. Future support 1868104470Siwasakiwill include allowing individual IndexFields to be wider than 1869104470Siwasakithe DataRegister width. 1870102550Siwasaki 1871102550SiwasakiFields: Fixed a problem where the AML interpreter was 1872102550Siwasakiincorrectly attempting to write beyond the end of a 1873104470SiwasakiField/OpRegion. This was a boundary case that occurred when a 1874104470SiwasakiDWORD field was written to a BYTE access OpRegion, forcing 1875104470Siwasakimultiple writes and causing the interpreter to write one datum 1876104470Siwasakitoo many. 1877102550Siwasaki 1878102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the 1879104470Siwasakistarting bit address of a field was incorrectly calculated if 1880104470Siwasakithe current access type was wider than a byte (WordAcc, 1881102550SiwasakiDwordAcc, or QwordAcc). 1882102550Siwasaki 1883104470SiwasakiFields: Fixed a problem where forward references to individual 1884104470SiwasakiFieldUnits (individual Field names within a Field definition) 1885102550Siwasakiwere not resolved during the AML table load. 1886102550Siwasaki 1887104470SiwasakiFields: Fixed a problem where forward references from a Field 1888104470Siwasakidefinition to the parent Operation Region definition were not 1889104470Siwasakiresolved during the AML table load. 1890104470Siwasaki 1891102550SiwasakiFields: Duplicate FieldUnit names within a scope are now 1892102550Siwasakidetected during AML table load. 1893102550Siwasaki 1894102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName() 1895102550Siwasakiinterface returned an incorrect name for the root node. 1896102550Siwasaki 1897104470SiwasakiCode and Data Size: Code and Data optimizations have permitted 1898104470Siwasakinew feature development with an actual reduction in the 1899104470Siwasakilibrary size. Current core subsystem library sizes are shown 1900104470Siwasakibelow. These are the code and data sizes for the acpica.lib 1901104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these 1902104470Siwasakivalues do not include any ACPI driver or OSPM code. The debug 1903104470Siwasakiversion of the code includes the debug output trace mechanism 1904104470Siwasakiand has a larger code and data size. Note that these values 1905104470Siwasakiwill vary depending on the efficiency of the compiler and the 1906104470Siwasakicompiler options used during generation. 1907102550Siwasaki 1908102550Siwasaki Previous Release (10_18_01): 1909102550Siwasaki Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K 1910102550SiwasakiTotal 1911102550Siwasaki Debug Version: 136.7K Code, 57.4K Data, 194.2K 1912102550SiwasakiTotal 1913102550Siwasaki 1914102550Siwasaki Current Release: 1915102550Siwasaki Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K 1916102550SiwasakiTotal 1917102550Siwasaki Debug Version: 134.5K Code, 55.4K Data, 189.9K 1918102550SiwasakiTotal 1919102550Siwasaki 1920102550Siwasaki 2) Linux: 1921102550Siwasaki 1922102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added 1923102550SiwasakiMODULE_LICENSE("GPL") to all modules. 1924102550Siwasaki 1925102550Siwasaki 3) ASL Compiler version X2030: 1926102550Siwasaki 1927104470SiwasakiDuplicate FieldUnit names within a scope are now detected and 1928104470Siwasakiflagged as errors. 1929102550Siwasaki 1930102550Siwasaki 4) Documentation: 1931102550Siwasaki 1932104470SiwasakiProgrammer Reference updated to reflect OSL and address space 1933104470Siwasakihandler interface changes described above. 1934102550Siwasaki 1935102550Siwasaki---------------------------------------- 1936102550SiwasakiSummary of changes for this label: 10_18_01 1937102550Siwasaki 1938102550SiwasakiACPI CA Core Subsystem: 1939102550Siwasaki 1940102550SiwasakiFixed a problem with the internal object reference count 1941104470Siwasakimechanism that occasionally caused premature object deletion. 1942104470SiwasakiThis resolves all of the outstanding problem reports where an 1943104470Siwasakiobject is deleted in the middle of an interpreter evaluation. 1944104470SiwasakiAlthough this problem only showed up in rather obscure cases, 1945104470Siwasakithe solution to the problem involved an adjustment of all 1946104470Siwasakireference counts involving objects attached to namespace 1947104470Siwasakinodes. 1948102550Siwasaki 1949102550SiwasakiFixed a problem with Field support in the interpreter where 1950104470Siwasakiwriting to an aligned field whose length is an exact multiple 1951104470Siwasaki(2 or greater) of the field access granularity would cause an 1952104470Siwasakiattempt to write beyond the end of the field. 1953102550Siwasaki 1954102550SiwasakiThe top level AML opcode execution functions within the 1955102550Siwasakiinterpreter have been renamed with a more meaningful and 1956102550Siwasakiconsistent naming convention. The modules exmonad.c and 1957102550Siwasakiexdyadic.c were eliminated. New modules are exoparg1.c, 1958102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c. 1959102550Siwasaki 1960102550SiwasakiSupport for the ACPI 2.0 "Mid" ASL operator has been 1961102550Siwasakiimplemented. 1962102550Siwasaki 1963102550SiwasakiFixed a problem where the AML debugger was causing some 1964102550Siwasakiinternal objects to not be deleted during subsystem 1965102550Siwasakitermination. 1966102550Siwasaki 1967104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface 1968104470Siwasakiwhere the subsystem would fault if the named object to be 1969104470Siwasakievaluated refered to a constant such as Zero, Ones, etc. 1970102550Siwasaki 1971102550SiwasakiFixed a problem with IndexFields and BankFields where the 1972102550Siwasakisubsystem would fault if the index, data, or bank registers 1973102550Siwasakiwere not defined in the same scope as the field itself. 1974102550Siwasaki 1975104470SiwasakiAdded printf format string checking for compilers that support 1976104470Siwasakithis feature. Corrected more than 50 instances of issues with 1977104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT 1978104470Siwasakithroughout the core subsystem code. 1979102550Siwasaki 1980104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level 1981104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0 1982104470Siwasakisupport is more than 50% implemented. 1983102550Siwasaki 1984102550SiwasakiEnhanced the output of the AML debugger "dump namespace" 1985102550Siwasakicommand to output in a more human-readable form. 1986102550Siwasaki 1987102550SiwasakiCurrent core subsystem library code sizes are shown below. 1988104470SiwasakiThese are the code and data sizes for the acpica.lib produced 1989104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 1990104470Siwasakinot include any ACPI driver or OSPM code. The debug version 1991104470Siwasakiof the code includes the full debug trace mechanism -- leading 1992104470Siwasakito a much larger code and data size. Note that these values 1993104470Siwasakiwill vary depending on the efficiency of the compiler and the 1994104470Siwasakicompiler options used during generation. 1995102550Siwasaki 1996102550Siwasaki Previous Label (09_20_01): 1997102550Siwasaki Non-Debug Version: 65K Code, 5K Data, 70K 1998102550SiwasakiTotal 1999102550Siwasaki Debug Version: 138K Code, 58K Data, 196K 2000102550SiwasakiTotal 2001102550Siwasaki 2002102550Siwasaki This Label: 2003102550Siwasaki Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K 2004102550SiwasakiTotal 2005102550Siwasaki Debug Version: 136.7K Code, 57.4K Data, 194.2K 2006102550SiwasakiTotal 2007102550Siwasaki 2008102550SiwasakiLinux: 2009102550Siwasaki 2010104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have 2011104470Siwasakiknown ASL/AML problems. 2012102550Siwasaki 2013102550SiwasakiEnhanced the /proc interface for the thermal zone driver and 2014104470Siwasakiadded support for _HOT (the critical suspend trip point). The 2015104470Siwasaki'info' file now includes threshold/policy information, and 2016104470Siwasakiallows setting of _SCP (cooling preference) and _TZP (polling 2017104470Siwasakifrequency) values to the 'info' file. Examples: "echo tzp=5 > 2018104470Siwasakiinfo" sets the polling frequency to 5 seconds, and "echo scp=1 2019104470Siwasaki> info" sets the cooling preference to the passive/quiet mode 2020104470Siwasaki(if supported by the ASL). 2021102550Siwasaki 2022104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs 2023104470Siwasakiwhen loading the control method battery driver. 2024102550Siwasaki 2025102550Siwasaki ---------------------------------------- 2026102550SiwasakiSummary of changes for this label: 09_20_01 2027102550Siwasaki 2028102550Siwasaki ACPI CA Core Subsystem: 2029102550Siwasaki 2030104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been 2031104470Siwasakimodified to allow individual GPE levels to be flagged as wake- 2032104470Siwasakienabled (i.e., these GPEs are to remain enabled when the 2033104470Siwasakiplatform sleeps.) 2034102550Siwasaki 2035104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now 2036104470Siwasakisupport wake-enabled GPEs. This means that upon entering the 2037104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled. 2038104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled. 2039102550Siwasaki 2040102550SiwasakiA local double-precision divide/modulo module has been added 2041102550Siwasakito enhance portability to OS kernels where a 64-bit math 2042102550Siwasakilibrary is not available. The new module is "utmath.c". 2043102550Siwasaki 2044104470SiwasakiSeveral optimizations have been made to reduce the use of CPU 2045104470Siwasakistack. Originally over 2K, the maximum stack usage is now 2046104470Siwasakibelow 2K at 1860 bytes (1.82k) 2047102550Siwasaki 2048104470SiwasakiFixed a problem with the AcpiGetFirmwareTable interface where 2049104470Siwasakithe root table pointer was not mapped into a logical address 2050104470Siwasakiproperly. 2051102550Siwasaki 2052104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in 2053104470Siwasakithe interpreter code for the ASL Notify operator. 2054102550Siwasaki 2055102550SiwasakiFixed a problem where the use of the ASL Revision operator 2056102550Siwasakireturned an error. This operator now returns the current 2057102550Siwasakiversion of the ACPI CA core subsystem. 2058102550Siwasaki 2059102550SiwasakiFixed a problem where objects passed as control method 2060104470Siwasakiparameters to AcpiEvaluateObject were always deleted at method 2061104470Siwasakitermination. However, these objects may end up being stored 2062104470Siwasakiinto the namespace by the called method. The object reference 2063104470Siwasakicount mechanism was applied to these objects instead of a 2064104470Siwasakiforce delete. 2065102550Siwasaki 2066104470SiwasakiFixed a problem where static strings or buffers (contained in 2067104470Siwasakithe AML code) that are declared as package elements within the 2068104470SiwasakiASL code could cause a fault because the interpreter would 2069104470Siwasakiattempt to delete them. These objects are now marked with the 2070104470Siwasaki"static object" flag to prevent any attempt to delete them. 2071102550Siwasaki 2072102550SiwasakiImplemented an interpreter optimization to use operands 2073102550Siwasakidirectly from the state object instead of extracting the 2074104470Siwasakioperands to local variables. This reduces stack use and code 2075104470Siwasakisize, and improves performance. 2076102550Siwasaki 2077102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary 2078102550Siwasakiextra layer of code. 2079102550Siwasaki 2080102550SiwasakiCurrent core subsystem library code sizes are shown below. 2081104470SiwasakiThese are the code and data sizes for the acpica.lib produced 2082104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 2083104470Siwasakinot include any ACPI driver or OSPM code. The debug version 2084104470Siwasakiof the code includes the full debug trace mechanism -- leading 2085104470Siwasakito a much larger code and data size. Note that these values 2086104470Siwasakiwill vary depending on the efficiency of the compiler and the 2087104470Siwasakicompiler options used during generation. 2088102550Siwasaki 2089102550Siwasaki Non-Debug Version: 65K Code, 5K Data, 70K Total 2090102550Siwasaki(Previously 69K) Debug Version: 138K Code, 58K Data, 2091102550Siwasaki196K Total (Previously 195K) 2092102550Siwasaki 2093102550SiwasakiLinux: 2094102550Siwasaki 2095102550SiwasakiSupport for ACPI 2.0 64-bit integers has been added. All 2096102550SiwasakiACPI Integer objects are now 64 bits wide 2097102550Siwasaki 2098102550SiwasakiAll Acpi data types and structures are now in lower case. 2099102550SiwasakiOnly Acpi macros are upper case for differentiation. 2100102550Siwasaki 2101102550Siwasaki Documentation: 2102102550Siwasaki 2103102550SiwasakiChanges to the external interfaces as described above. 2104102550Siwasaki 2105102550Siwasaki ---------------------------------------- 2106102550SiwasakiSummary of changes for this label: 08_31_01 2107102550Siwasaki 2108102550Siwasaki ACPI CA Core Subsystem: 2109102550Siwasaki 2110102550SiwasakiA bug with interpreter implementation of the ASL Divide 2111102550Siwasakioperator was found and fixed. The implicit function return 2112102550Siwasakivalue (not the explicit store operands) was returning the 2113102550Siwasakiremainder instead of the quotient. This was a longstanding 2114102550Siwasakibug and it fixes several known outstanding issues on various 2115102550Siwasakiplatforms. 2116102550Siwasaki 2117104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have 2118104470Siwasakibeen further optimized for size. There are 700 invocations of 2119104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the 2120104470Siwasakisize of the debug version of the subsystem significantly. 2121102550Siwasaki 2122102550SiwasakiA stack trace mechanism has been implemented. The maximum 2123102550Siwasakistack usage is about 2K on 32-bit platforms. The debugger 2124102550Siwasakicommand "stat stack" will display the current maximum stack 2125102550Siwasakiusage. 2126102550Siwasaki 2127102550SiwasakiAll public symbols and global variables within the subsystem 2128102550Siwasakiare now prefixed with the string "Acpi". This keeps all of 2129102550Siwasakithe symbols grouped together in a kernel map, and avoids 2130102550Siwasakiconflicts with other kernel subsystems. 2131102550Siwasaki 2132104470SiwasakiMost of the internal fixed lookup tables have been moved into 2133104470Siwasakithe code segment via the const operator. 2134102550Siwasaki 2135104470SiwasakiSeveral enhancements have been made to the interpreter to both 2136104470Siwasakireduce the code size and improve performance. 2137102550Siwasaki 2138102550SiwasakiCurrent core subsystem library code sizes are shown below. 2139104470SiwasakiThese are the code and data sizes for the acpica.lib produced 2140104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 2141104470Siwasakinot include any ACPI driver or OSPM code. The debug version 2142104470Siwasakiof the code includes the full debug trace mechanism which 2143104470Siwasakicontains over 700 invocations of the DEBUG_PRINT macro, 500 2144104470Siwasakifunction entry macro invocations, and over 900 function exit 2145104470Siwasakimacro invocations -- leading to a much larger code and data 2146104470Siwasakisize. Note that these values will vary depending on the 2147104470Siwasakiefficiency of the compiler and the compiler options used 2148104470Siwasakiduring generation. 2149102550Siwasaki 2150102550Siwasaki Non-Debug Version: 64K Code, 5K Data, 69K Total 2151102550SiwasakiDebug Version: 137K Code, 58K Data, 195K Total 2152102550Siwasaki 2153102550Siwasaki Linux: 2154102550Siwasaki 2155104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition. 2156102550Siwasaki 2157102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads. 2158102550Siwasaki 2159102550Siwasaki ASL Compiler, version X2026: 2160102550Siwasaki 2161104470SiwasakiFixed a problem introduced in the previous label where the AML 2162104470Siwasakicode emitted for package objects produced packages with zero 2163104470Siwasakilength. 2164102550Siwasaki 2165102550Siwasaki ---------------------------------------- 2166102550SiwasakiSummary of changes for this label: 08_16_01 2167102550Siwasaki 2168102550SiwasakiACPI CA Core Subsystem: 2169102550Siwasaki 2170104470SiwasakiThe following ACPI 2.0 ASL operators have been implemented in 2171104470Siwasakithe AML interpreter (These are already supported by the Intel 2172104470SiwasakiASL compiler): ToDecimalString, ToHexString, ToString, 2173104470SiwasakiToInteger, and ToBuffer. Support for 64-bit AML constants is 2174104470Siwasakiimplemented in the AML parser, debugger, and disassembler. 2175102550Siwasaki 2176102550SiwasakiThe internal memory tracking mechanism (leak detection code) 2177102550Siwasakihas been upgraded to reduce the memory overhead (a separate 2178102550Siwasakitracking block is no longer allocated for each memory 2179102550Siwasakiallocation), and now supports all of the internal object 2180102550Siwasakicaches. 2181102550Siwasaki 2182102550SiwasakiThe data structures and code for the internal object caches 2183102550Siwasakihave been coelesced and optimized so that there is a single 2184102550Siwasakicache and memory list data structure and a single group of 2185102550Siwasakifunctions that implement generic cache management. This has 2186102550Siwasakireduced the code size in both the debug and release versions 2187102550Siwasakiof the subsystem. 2188102550Siwasaki 2189102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and 2190102550Siwasakireplaced by ACPI_DEBUG_PRINT. The syntax for this macro is 2191102550Siwasakislightly different, because it generates a single call to an 2192102550Siwasakiinternal function. This results in a savings of about 90 2193102550Siwasakibytes per invocation, resulting in an overall code and data 2194102550Siwasakisavings of about 16% in the debug version of the subsystem. 2195102550Siwasaki 2196102550Siwasaki Linux: 2197102550Siwasaki 2198102550SiwasakiFixed C3 disk corruption problems and re-enabled C3 on 2199102550Siwasakisupporting machines. 2200102550Siwasaki 2201102550SiwasakiIntegrated low-level sleep code by Patrick Mochel. 2202102550Siwasaki 2203102550SiwasakiFurther tweaked source code Linuxization. 2204102550Siwasaki 2205102550SiwasakiOther minor fixes. 2206102550Siwasaki 2207102550Siwasaki ASL Compiler: 2208102550Siwasaki 2209102550SiwasakiSupport for ACPI 2.0 variable length packages is 2210102550Siwasakifixed/completed. 2211102550Siwasaki 2212102550SiwasakiFixed a problem where the optional length parameter for the 2213102550SiwasakiACPI 2.0 ToString operator. 2214102550Siwasaki 2215102550SiwasakiFixed multiple extraneous error messages when a syntax error 2216102550Siwasakiis detected within the declaration line of a control method. 2217102550Siwasaki 2218102550Siwasaki ---------------------------------------- 2219102550SiwasakiSummary of changes for this label: 07_17_01 2220102550Siwasaki 2221102550SiwasakiACPI CA Core Subsystem: 2222102550Siwasaki 2223104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any 2224104470SiwasakiACPI table via the ACPI signature. The interface can be 2225102550Siwasakicalled at any time during kernel initialization, even before 2226104470Siwasakithe kernel virtual memory manager is initialized and paging is 2227104470Siwasakienabled. This allows kernel subsystems to obtain ACPI tables 2228104470Siwasakivery early, even before the ACPI CA subsystem is initialized. 2229102550Siwasaki 2230104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute 2231104470Siwasakicould be resolved to the incorrect address under the following 2232104470Siwasakiconditions: 1) the field width is larger than 8 bits and 2) 2233104470Siwasakithe parent operation region is not defined on a DWORD 2234104470Siwasakiboundary. 2235102550Siwasaki 2236102550SiwasakiFixed a problem where the interpreter is not being locked 2237104470Siwasakiduring namespace initialization (during execution of the _INI 2238104470Siwasakicontrol methods), causing an error when an attempt is made to 2239104470Siwasakirelease it later. 2240102550Siwasaki 2241104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be 2242104470Siwasakiongoing throughout the rest of this year. In this label, The 2243104470SiwasakiMod operator is implemented. 2244102550Siwasaki 2245102550SiwasakiAdded a new data type to contain full PCI addresses named 2246102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus, 2247102550SiwasakiDevice, and Function values. 2248102550Siwasaki 2249102550Siwasaki Linux: 2250102550Siwasaki 2251102550SiwasakiEnhanced the Linux version of the source code to change most 2252102550Siwasakicapitalized ACPI type names to lowercase. For example, all 2253102550Siwasakiinstances of ACPI_STATUS are changed to acpi_status. This 2254102550Siwasakiwill result in a large diff, but the change is strictly 2255102550Siwasakicosmetic and aligns the CA code closer to the Linux coding 2256102550Siwasakistandard. 2257102550Siwasaki 2258102550SiwasakiOSL Interfaces: 2259102550Siwasaki 2260102550SiwasakiThe interfaces to the PCI configuration space have been 2261104470Siwasakichanged to add the PCI Segment number and to split the single 2262104470Siwasaki32-bit combined DeviceFunction field into two 16-bit fields. 2263104470SiwasakiThis was accomplished by moving the four values that define an 2264104470Siwasakiaddress in PCI configuration space (segment, bus, device, and 2265104470Siwasakifunction) to the new ACPI_PCI_ID structure. 2266102550Siwasaki 2267104470SiwasakiThe changes to the PCI configuration space interfaces led to a 2268104470Siwasakireexamination of the complete set of address space access 2269104470Siwasakiinterfaces for PCI, I/O, and Memory. The previously existing 2270104470Siwasaki18 interfaces have proven difficult to maintain (any small 2271104470Siwasakichange must be propagated across at least 6 interfaces) and do 2272104470Siwasakinot easily allow for future expansion to 64 bits if necessary. 2273104470SiwasakiAlso, on some systems, it would not be appropriate to 2274104470Siwasakidemultiplex the access width (8, 16, 32,or 64) before calling 2275104470Siwasakithe OSL if the corresponding native OS interfaces contain a 2276104470Siwasakisimilar access width parameter. For these reasons, the 18 2277104470Siwasakiaddress space interfaces have been replaced by these 6 new 2278104470Siwasakiones: 2279102550Siwasaki 2280102550SiwasakiAcpiOsReadPciConfiguration 2281102550SiwasakiAcpiOsWritePciConfiguration 2282102550SiwasakiAcpiOsReadMemory 2283102550SiwasakiAcpiOsWriteMemory 2284102550SiwasakiAcpiOsReadPort 2285102550SiwasakiAcpiOsWritePort 2286102550Siwasaki 2287104470SiwasakiAdded a new interface named AcpiOsGetRootPointer to allow the 2288104470SiwasakiOSL to perform the platform and/or OS-specific actions 2289102550Siwasakinecessary to obtain the ACPI RSDP table pointer. On IA-32 2290104470Siwasakiplatforms, this interface will simply call down to the CA core 2291104470Siwasakito perform the low-memory search for the table. On IA-64, the 2292104470SiwasakiRSDP is obtained from EFI. Migrating this interface to the 2293104470SiwasakiOSL allows the CA core to remain OS and platform independent. 2294102550Siwasaki 2295104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic 2296104470Siwasaki"function code and pointer" interface for various 2297102550Siwasakimiscellaneous signals and notifications that must be made to 2298104470Siwasakithe host OS. The first such signals are intended to support 2299104470Siwasakithe ASL Fatal and Breakpoint operators. In the latter case, 2300104470Siwasakithe AcpiOsBreakpoint interface has been obsoleted. 2301102550Siwasaki 2302102550SiwasakiThe definition of the AcpiFormatException interface has been 2303104470Siwasakichanged to simplify its use. The caller no longer must supply 2304104470Siwasakia buffer to the call; A pointer to a const string is now 2305104470Siwasakireturned directly. This allows the call to be easily used in 2306104470Siwasakiprintf statements, etc. since the caller does not have to 2307104470Siwasakimanage a local buffer. 2308102550Siwasaki 2309102550Siwasaki ASL Compiler, Version X2025: 2310102550Siwasaki 2311102550SiwasakiThe ACPI 2.0 Switch/Case/Default operators have been 2312104470Siwasakiimplemented and are fully functional. They will work with all 2313104470SiwasakiACPI 1.0 interpreters, since the operators are simply 2314102550Siwasakitranslated to If/Else pairs. 2315102550Siwasaki 2316104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work 2317104470Siwasakiwith 1.0 interpreters, for the same reason. 2318102550Siwasaki 2319102550SiwasakiImplemented support for ACPI 2.0 variable-length packages. 2320102550SiwasakiThese packages have a separate opcode, and their size is 2321102550Siwasakidetermined by the interpreter at run-time. 2322102550Siwasaki 2323102550SiwasakiDocumentation The ACPI CA Programmer Reference has been 2324104470Siwasakiupdated to reflect the new interfaces and changes to existing 2325104470Siwasakiinterfaces. 2326102550Siwasaki 2327102550Siwasaki ------------------------------------------ 2328102550SiwasakiSummary of changes for this label: 06_15_01 2329102550Siwasaki 2330102550Siwasaki ACPI CA Core Subsystem: 2331102550Siwasaki 2332102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer 2333102550Siwasakiobject would get its byte address inadvertently rounded down 2334102550Siwasakito the nearest DWORD. Buffers are always Byte-accessible. 2335102550Siwasaki 2336102550Siwasaki ASL Compiler, version X2024: 2337102550Siwasaki 2338104470SiwasakiFixed a problem where the Switch() operator would either fault 2339104470Siwasakior hang the compiler. Note however, that the AML code for 2340104470Siwasakithis ACPI 2.0 operator is not yet implemented. 2341102550Siwasaki 2342102550SiwasakiCompiler uses the new AcpiOsGetTimer interface to obtain 2343102550Siwasakicompile timings. 2344102550Siwasaki 2345102550SiwasakiImplementation of the CreateField operator automatically 2346102550Siwasakiconverts a reference to a named field within a resource 2347102550Siwasakidescriptor from a byte offset to a bit offset if required. 2348102550Siwasaki 2349102550SiwasakiAdded some missing named fields from the resource descriptor 2350104470Siwasakisupport. These are the names that are automatically created by 2351104470Siwasakithe compiler to reference fields within a descriptor. They 2352104470Siwasakiare only valid at compile time and are not passed through to 2353104470Siwasakithe AML interpreter. 2354102550Siwasaki 2355104470SiwasakiResource descriptor named fields are now typed as Integers and 2356104470Siwasakisubject to compile-time typechecking when used in expressions. 2357102550Siwasaki 2358102550Siwasaki ------------------------------------------ 2359102550SiwasakiSummary of changes for this label: 05_18_01 2360102550Siwasaki 2361102550Siwasaki ACPI CA Core Subsystem: 2362102550Siwasaki 2363102550SiwasakiFixed a couple of problems in the Field support code where 2364102550Siwasakibits from adjacent fields could be returned along with the 2365102550Siwasakiproper field bits. Restructured the field support code to 2366102550Siwasakiimprove performance, readability and maintainability. 2367102550Siwasaki 2368102550SiwasakiNew DEBUG_PRINTP macro automatically inserts the procedure 2369102550Siwasakiname into the output, saving hundreds of copies of procedure 2370104470Siwasakiname strings within the source, shrinking the memory footprint 2371104470Siwasakiof the debug version of the core subsystem. 2372102550Siwasaki 2373102550Siwasaki Source Code Structure: 2374102550Siwasaki 2375104470SiwasakiThe source code directory tree was restructured to reflect the 2376104470Siwasakicurrent organization of the component architecture. Some 2377104470Siwasakifiles and directories have been moved and/or renamed. 2378102550Siwasaki 2379102550Siwasaki Linux: 2380102550Siwasaki 2381102550SiwasakiFixed leaking kacpidpc processes. 2382102550Siwasaki 2383102550SiwasakiFixed queueing event data even when /proc/acpi/event is not 2384102550Siwasakiopened. 2385102550Siwasaki 2386102550Siwasaki ASL Compiler, version X2020: 2387102550Siwasaki 2388102550SiwasakiMemory allocation performance enhancement - over 24X compile 2389102550Siwasakitime improvement on large ASL files. Parse nodes and 2390102550Siwasakinamestring buffers are now allocated from a large internal 2391102550Siwasakicompiler buffer. 2392102550Siwasaki 2393102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is 2394102550Siwasakispecified 2395102550Siwasaki 2396104470SiwasakiThe "-d" debug output option now sends all output to the .DBG 2397104470Siwasakifile instead of the console. 2398102550Siwasaki 2399102550Siwasaki"External" second parameter is now optional 2400102550Siwasaki 2401102550Siwasaki"ElseIf" syntax now properly allows the predicate 2402102550Siwasaki 2403102550SiwasakiLast operand to "Load" now recognized as a Target operand 2404102550Siwasaki 2405102550SiwasakiDebug object can now be used anywhere as a normal object. 2406102550Siwasaki 2407102550SiwasakiResourceTemplate now returns an object of type BUFFER 2408102550Siwasaki 2409102550SiwasakiEISAID now returns an object of type INTEGER 2410102550Siwasaki 2411102550Siwasaki"Index" now works with a STRING operand 2412102550Siwasaki 2413102550Siwasaki"LoadTable" now accepts optional parameters 2414102550Siwasaki 2415102550Siwasaki"ToString" length parameter is now optional 2416102550Siwasaki 2417102550Siwasaki"Interrupt (ResourceType," parse error fixed. 2418102550Siwasaki 2419104470Siwasaki"Register" with a user-defined region space parse error fixed 2420102550Siwasaki 2421102550SiwasakiEscaped backslash at the end of a string ("\\") scan/parse 2422102550Siwasakierror fixed 2423102550Siwasaki 2424102550Siwasaki"Revision" is now an object of type INTEGER. 2425102550Siwasaki 2426102550Siwasaki 2427102550Siwasaki 2428102550Siwasaki------------------------------------------ 2429102550SiwasakiSummary of changes for this label: 05_02_01 2430102550Siwasaki 2431102550SiwasakiLinux: 2432102550Siwasaki 2433102550Siwasaki/proc/acpi/event now blocks properly. 2434102550Siwasaki 2435102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from 2436102550Siwasaki/proc/acpi/dsdt. 2437102550Siwasaki 2438102550Siwasaki ACPI CA Core Subsystem: 2439102550Siwasaki 2440104470SiwasakiFixed a problem introduced in the previous label where some of 2441104470Siwasakithe "small" resource descriptor types were not recognized. 2442102550Siwasaki 2443102550SiwasakiImproved error messages for the case where an ASL Field is 2444102550Siwasakioutside the range of the parent operation region. 2445102550Siwasaki 2446102550Siwasaki ASL Compiler, version X2018: 2447102550Siwasaki 2448102550SiwasakiAdded error detection for ASL Fields that extend beyond the 2449102550Siwasakilength of the parent operation region (only if the length of 2450102550Siwasakithe region is known at compile time.) This includes fields 2451102550Siwasakithat have a minimum access width that is smaller than the 2452102550Siwasakiparent region, and individual field units that are partially 2453102550Siwasakior entirely beyond the extent of the parent. 2454102550Siwasaki 2455102550Siwasaki 2456102550Siwasaki 2457102550Siwasaki------------------------------------------ 2458102550SiwasakiSummary of changes for this label: 04_27_01 2459102550Siwasaki 2460102550Siwasaki ACPI CA Core Subsystem: 2461102550Siwasaki 2462104470SiwasakiFixed a problem where the namespace mutex could be released at 2463104470Siwasakithe wrong time during execution of 2464102550SiwasakiAcpiRemoveAddressSpaceHandler. 2465102550Siwasaki 2466104470SiwasakiAdded optional thread ID output for debug traces, to simplify 2467104470Siwasakidebugging of multiple threads. Added context switch 2468104470Siwasakinotification when the debug code realizes that a different 2469104470Siwasakithread is now executing ACPI code. 2470102550Siwasaki 2471102550SiwasakiSome additional external data types have been prefixed with 2472104470Siwasakithe string "ACPI_" for consistency. This may effect existing 2473104470Siwasakicode. The data types affected are the external callback 2474104470Siwasakitypedefs - e.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK. 2475102550Siwasaki 2476102550Siwasaki Linux: 2477102550Siwasaki 2478102550SiwasakiFixed an issue with the OSL semaphore implementation where a 2479102550Siwasakithread was waking up with an error from receiving a SIGCHLD 2480102550Siwasakisignal. 2481102550Siwasaki 2482102550SiwasakiLinux version of ACPI CA now uses the system C library for 2483102550Siwasakistring manipulation routines instead of a local 2484102550Siwasakiimplementation. 2485102550Siwasaki 2486102550SiwasakiCleaned up comments and removed TBDs. 2487102550Siwasaki 2488102550Siwasaki ASL Compiler, version X2017: 2489102550Siwasaki 2490102550SiwasakiEnhanced error detection and reporting for all file I/O 2491102550Siwasakioperations. 2492102550Siwasaki 2493102550Siwasaki Documentation: 2494102550Siwasaki 2495102550SiwasakiProgrammer Reference updated to version 1.06. 2496102550Siwasaki 2497102550Siwasaki 2498102550Siwasaki 2499102550Siwasaki------------------------------------------ 2500102550SiwasakiSummary of changes for this label: 04_13_01 2501102550Siwasaki 2502102550Siwasaki ACPI CA Core Subsystem: 2503102550Siwasaki 2504102550SiwasakiRestructured support for BufferFields and RegionFields. 2505104470SiwasakiBankFields support is now fully operational. All known 32-bit 2506104470Siwasakilimitations on field sizes have been removed. Both 2507104470SiwasakiBufferFields and (Operation) RegionFields are now supported by 2508104470Siwasakithe same field management code. 2509102550Siwasaki 2510104470SiwasakiResource support now supports QWORD address and IO resources. 2511104470SiwasakiThe 16/32/64 bit address structures and the Extended IRQ 2512104470Siwasakistructure have been changed to properly handle Source Resource 2513104470Siwasakistrings. 2514102550Siwasaki 2515102550SiwasakiA ThreadId of -1 is now used to indicate a "mutex not 2516102550Siwasakiacquired" condition internally and must never be returned by 2517102550SiwasakiAcpiOsThreadId. This reserved value was changed from 0 since 2518102550SiwasakiUnix systems allow a thread ID of 0. 2519102550Siwasaki 2520102550SiwasakiLinux: 2521102550Siwasaki 2522102550SiwasakiDriver code reorganized to enhance portability 2523102550Siwasaki 2524102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG 2525102550Siwasaki 2526102550SiwasakiFixed the EC driver to honor _GLK. 2527102550Siwasaki 2528102550SiwasakiASL Compiler, version X2016: 2529102550Siwasaki 2530102550SiwasakiFixed support for the "FixedHw" keyword. Previously, the 2531104470SiwasakiFixedHw address space was set to 0, not 0x7f as it should be. 2532102550Siwasaki 2533102550Siwasaki ------------------------------------------ 2534102550SiwasakiSummary of changes for this label: 03_13_01 2535102550Siwasaki 2536102550Siwasaki ACPI CA Core Subsystem: 2537102550Siwasaki 2538104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if 2539104470Siwasakipresent. 2540102550Siwasaki 2541102550SiwasakiNotify handler fix - notifies are deferred until the parent 2542102550Siwasakimethod completes execution. This fixes the "mutex already 2543102550Siwasakiacquired" issue seen occasionally. 2544102550Siwasaki 2545104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been 2546104470Siwasakifound to cause compatibility problems with existing ASL/AML. 2547104470SiwasakiThe convert "result-to-target-type" implementation has been 2548104470Siwasakiremoved for stores to method Args and Locals. Source operand 2549104470Siwasakiconversion is still fully implemented. Possible changes to 2550104470SiwasakiACPI 2.0 specification pending. 2551102550Siwasaki 2552104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct 2553104470Siwasakilength. 2554102550Siwasaki 2555102550SiwasakiFix for compiler warnings for 64-bit compiles. 2556102550Siwasaki 2557102550Siwasaki Linux: 2558102550Siwasaki 2559102550Siwasaki/proc output aligned for easier parsing. 2560102550Siwasaki 2561102550SiwasakiRelease-version compile problem fixed. 2562102550Siwasaki 2563104470SiwasakiNew kernel configuration options documented in Configure.help. 2564102550Siwasaki 2565102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL> 2566102550Siwasakicontext" message. 2567102550Siwasaki 2568102550Siwasaki OSPM: 2569102550Siwasaki 2570102550SiwasakiPower resource driver integrated with bus manager. 2571102550Siwasaki 2572102550SiwasakiFixed kernel fault during active cooling for thermal zones. 2573102550Siwasaki 2574102550SiwasakiSource Code: 2575102550Siwasaki 2576102550SiwasakiThe source code tree has been restructured. 2577102550Siwasaki 2578102550Siwasaki 2579102550Siwasaki 2580102550Siwasaki------------------------------------------ 2581102550SiwasakiSummary of changes for this label: 03_02_01 2582102550Siwasaki 2583102550Siwasaki Linux OS Services Layer (OSL): 2584102550Siwasaki 2585102550SiwasakiMajor revision of all Linux-specific code. 2586102550Siwasaki 2587102550SiwasakiModularized all ACPI-specific drivers. 2588102550Siwasaki 2589102550SiwasakiAdded new thermal zone and power resource drivers. 2590102550Siwasaki 2591102550SiwasakiRevamped /proc interface (new functionality is under 2592102550Siwasaki/proc/acpi). 2593102550Siwasaki 2594102550SiwasakiNew kernel configuration options. 2595102550Siwasaki 2596102550Siwasaki Linux known issues: 2597102550Siwasaki 2598102550SiwasakiNew kernel configuration options not documented in 2599102550SiwasakiConfigure.help yet. 2600102550Siwasaki 2601102550SiwasakiModule dependencies not currently implemented. If used, they 2602102550Siwasakishould be loaded in this order: busmgr, power, ec, system, 2603102550Siwasakiprocessor, battery, ac_adapter, button, thermal. 2604102550Siwasaki 2605102550SiwasakiModules will not load if CONFIG_MODVERSION is set. 2606102550Siwasaki 2607102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down. 2608102550Siwasaki 2609104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context" 2610104470Siwasakimessage. 2611102550Siwasaki 2612104470SiwasakiSome systems may fail with "execution mutex already acquired" 2613104470Siwasakimessage. 2614102550Siwasaki 2615102550Siwasaki ACPI CA Core Subsystem: 2616102550Siwasaki 2617102550SiwasakiAdded a new OSL Interface, AcpiOsGetThreadId. This was 2618104470Siwasakirequired for the deadlock detection code. Defined to return a 2619104470Siwasakinon-zero, 32-bit thread ID for the currently executing thread. 2620104470SiwasakiMay be a non-zero constant integer on single-thread systems. 2621102550Siwasaki 2622104470SiwasakiImplemented deadlock detection for internal subsystem mutexes. 2623104470SiwasakiWe may add conditional compilation for this code (debug only) 2624104470Siwasakilater. 2625102550Siwasaki 2626104470SiwasakiASL/AML Mutex object semantics are now fully supported. This 2627104470Siwasakiincludes multiple acquires/releases by owner and support for 2628104470Siwasakithe Mutex SyncLevel parameter. 2629102550Siwasaki 2630102550SiwasakiA new "Force Release" mechanism automatically frees all ASL 2631104470SiwasakiMutexes that have been acquired but not released when a thread 2632104470Siwasakiexits the interpreter. This forces conformance to the ACPI 2633104470Siwasakispec ("All mutexes must be released when an invocation exits") 2634104470Siwasakiand prevents deadlocked ASL threads. This mechanism can be 2635104470Siwasakiexpanded (later) to monitor other resource acquisitions if OEM 2636104470SiwasakiASL code continues to misbehave (which it will). 2637102550Siwasaki 2638104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex 2639104470Siwasakisupport. 2640102550Siwasaki 2641104470SiwasakiRecursive method calls are now allowed and supported (the ACPI 2642104470Siwasakispec does in fact allow recursive method calls.) The number 2643104470Siwasakiof recursive calls is subject to the restrictions imposed by 2644104470Siwasakithe SERIALIZED method keyword and SyncLevel (ACPI 2.0) method 2645104470Siwasakiparameter. 2646102550Siwasaki 2647102550SiwasakiImplemented support for the SyncLevel parameter for control 2648102550Siwasakimethods (ACPI 2.0 feature) 2649102550Siwasaki 2650102550SiwasakiFixed a deadlock problem when multiple threads attempted to 2651102550Siwasakiuse the interpreter. 2652102550Siwasaki 2653102550SiwasakiFixed a problem where the string length of a String package 2654102550Siwasakielement was not always set in a package returned from 2655102550SiwasakiAcpiEvaluateObject. 2656102550Siwasaki 2657102550SiwasakiFixed a problem where the length of a String package element 2658102550Siwasakiwas not always included in the length of the overall package 2659102550Siwasakireturned from AcpiEvaluateObject. 2660102550Siwasaki 2661102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory 2662102550Siwasakimanager. This manager keeps a list of all outstanding 2663102550Siwasakiallocations, and can therefore detect memory leaks and 2664104470Siwasakiattempts to free memory blocks more than once. Useful for code 2665104470Siwasakisuch as the power manager, etc. May not be appropriate for 2666104470Siwasakidevice drivers. Performance with the debug code enabled is 2667104470Siwasakislow. 2668102550Siwasaki 2669102550SiwasakiThe ACPI Global Lock is now an optional hardware element. 2670102550Siwasaki 2671102550Siwasaki ASL Compiler Version X2015: 2672102550Siwasaki 2673102550SiwasakiIntegrated changes to allow the compiler to be generated on 2674102550Siwasakimultiple platforms. 2675102550Siwasaki 2676102550SiwasakiLinux makefile added to generate the compiler on Linux 2677102550Siwasaki 2678102550Siwasaki Source Code: 2679102550Siwasaki 2680102550SiwasakiAll platform-specific headers have been moved to their own 2681102550Siwasakisubdirectory, Include/Platform. 2682102550Siwasaki 2683102550SiwasakiNew source file added, Interpreter/ammutex.c 2684102550Siwasaki 2685102550SiwasakiNew header file, Include/acstruct.h 2686102550Siwasaki 2687102550Siwasaki Documentation: 2688102550Siwasaki 2689102550SiwasakiThe programmer reference has been updated for the following 2690102550Siwasakinew interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate 2691102550SiwasakiAcpiFree 2692102550Siwasaki 2693102550Siwasaki ------------------------------------------ 2694102550SiwasakiSummary of changes for this label: 02_08_01 2695102550Siwasaki 2696102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was 2697104470Siwasakiincorrectly returned if the return resource buffer was larger 2698104470Siwasakithan the actual data (in the resource interfaces). 2699102550Siwasaki 2700102550SiwasakiReferences to named objects within packages are resolved to 2701104470Siwasakithe full pathname string before packages are returned directly 2702104470Siwasaki(via the AcpiEvaluateObject interface) or indirectly via the 2703104470Siwasakiresource interfaces. 2704102550Siwasaki 2705102550SiwasakiLinux OS Services Layer (OSL): 2706102550Siwasaki 2707102550SiwasakiImproved /proc battery interface. 2708102550Siwasaki 2709102550Siwasaki 2710104470SiwasakiAdded C-state debugging output and other miscellaneous fixes. 2711102550Siwasaki 2712102550SiwasakiASL Compiler Version X2014: 2713102550Siwasaki 2714102550SiwasakiAll defined method arguments can now be used as local 2715104470Siwasakivariables, including the ones that are not actually passed in 2716104470Siwasakias parameters. The compiler tracks initialization of the 2717102550Siwasakiarguments and issues an exception if they are used without 2718102550Siwasakiprior assignment (just like locals). 2719102550Siwasaki 2720104470SiwasakiThe -o option now specifies a filename prefix that is used for 2721104470Siwasakiall output files, including the AML output file. Otherwise, 2722104470Siwasakithe default behavior is as follows: 1) the AML goes to the 2723104470Siwasakifile specified in the DSDT. 2) all other output files use the 2724104470Siwasakiinput source filename as the base. 2725102550Siwasaki 2726102550Siwasaki ------------------------------------------ 2727102550SiwasakiSummary of changes for this label: 01_25_01 2728102550Siwasaki 2729102550SiwasakiCore ACPI CA Subsystem: Restructured the implementation of 2730102550Siwasakiobject store support within the interpreter. This includes 2731102550Siwasakisupport for the Store operator as well as any ASL operators 2732102550Siwasakithat include a target operand. 2733102550Siwasaki 2734102550SiwasakiPartially implemented support for Implicit Result-to-Target 2735102550Siwasakiconversion. This is when a result object is converted on the 2736104470Siwasakifly to the type of an existing target object. Completion of 2737104470Siwasakithis support is pending further analysis of the ACPI 2738102550Siwasakispecification concerning this matter. 2739102550Siwasaki 2740102550SiwasakiCPU-specific code has been removed from the subsystem 2741102550Siwasaki(hardware directory). 2742102550Siwasaki 2743102550SiwasakiNew Power Management Timer functions added 2744102550Siwasaki 2745102550SiwasakiLinux OS Services Layer (OSL): Moved system state transition 2746102550Siwasakicode to the core, fixed it, and modified Linux OSL 2747102550Siwasakiaccordingly. 2748102550Siwasaki 2749102550SiwasakiFixed C2 and C3 latency calculations. 2750102550Siwasaki 2751102550Siwasaki 2752104470SiwasakiWe no longer use the compilation date for the version message 2753104470Siwasakion initialization, but retrieve the version from 2754102550SiwasakiAcpiGetSystemInfo(). 2755102550Siwasaki 2756102550SiwasakiIncorporated for fix Sony VAIO machines. 2757102550Siwasaki 2758104470SiwasakiDocumentation: The Programmer Reference has been updated and 2759104470Siwasakireformatted. 2760102550Siwasaki 2761102550Siwasaki 2762102550SiwasakiASL Compiler: Version X2013: Fixed a problem where the line 2763102550Siwasakinumbering and error reporting could get out of sync in the 2764102550Siwasakipresence of multiple include files. 2765102550Siwasaki 2766102550Siwasaki ------------------------------------------ 2767102550SiwasakiSummary of changes for this label: 01_15_01 2768102550Siwasaki 2769102550SiwasakiCore ACPI CA Subsystem: 2770102550Siwasaki 2771102550SiwasakiImplemented support for type conversions in the execution of 2772104470Siwasakithe ASL Concatenate operator (The second operand is converted 2773104470Siwasakito match the type of the first operand before concatenation.) 2774102550Siwasaki 2775102550SiwasakiSupport for implicit source operand conversion is partially 2776102550Siwasakiimplemented. The ASL source operand types Integer, Buffer, 2777104470Siwasakiand String are freely interchangeable for most ASL operators 2778104470Siwasakiand are converted by the interpreter on the fly as required. 2779104470SiwasakiImplicit Target operand conversion (where the result is 2780104470Siwasakiconverted to the target type before storing) is not yet 2781104470Siwasakiimplemented. 2782102550Siwasaki 2783102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented. 2784102550Siwasaki 2785102550SiwasakiProblem fixed where a field read on an aligned field could 2786102550Siwasakicause a read past the end of the field. 2787102550Siwasaki 2788102550SiwasakiNew exception, AE_AML_NO_RETURN_VALUE, is returned when a 2789102550Siwasakimethod does not return a value, but the caller expects one. 2790102550Siwasaki(The ASL compiler flags this as a warning.) 2791102550Siwasaki 2792102550SiwasakiASL Compiler: 2793102550Siwasaki 2794102550SiwasakiVersion X2011: 2795102550Siwasaki1. Static typechecking of all operands is implemented. This 2796102550Siwasakiprevents the use of invalid objects (such as using a Package 2797102550Siwasakiwhere an Integer is required) at compile time instead of at 2798102550Siwasakiinterpreter run-time. 2799102550Siwasaki2. The ASL source line is printed with ALL errors and 2800102550Siwasakiwarnings. 2801102550Siwasaki3. Bug fix for source EOF without final linefeed. 2802102550Siwasaki4. Debug option is split into a parse trace and a namespace 2803102550Siwasakitrace. 2804102550Siwasaki5. Namespace output option (-n) includes initial values for 2805102550Siwasakiintegers and strings. 2806102550Siwasaki6. Parse-only option added for quick syntax checking. 2807102550Siwasaki7. Compiler checks for duplicate ACPI name declarations 2808102550Siwasaki 2809102550SiwasakiVersion X2012: 2810102550Siwasaki1. Relaxed typechecking to allow interchangeability between 2811104470Siwasakistrings, integers, and buffers. These types are now converted 2812104470Siwasakiby the interpreter at runtime. 2813102550Siwasaki2. Compiler reports time taken by each internal subsystem in 2814102550Siwasakithe debug output file. 2815102550Siwasaki 2816102550Siwasaki 2817102550Siwasaki ------------------------------------------ 2818102550SiwasakiSummary of changes for this label: 12_14_00 2819102550Siwasaki 2820102550SiwasakiASL Compiler: 2821102550Siwasaki 2822104470SiwasakiThis is the first official release of the compiler. Since the 2823104470Siwasakicompiler requires elements of the Core Subsystem, this label 2824104470Siwasakisynchronizes everything. 2825102550Siwasaki 2826102550Siwasaki------------------------------------------ 2827102550SiwasakiSummary of changes for this label: 12_08_00 2828102550Siwasaki 2829102550SiwasakiFixed a problem where named references within the ASL 2830102550Siwasakidefinition of both OperationRegions and CreateXXXFields did 2831102550Siwasakinot work properly. The symptom was an AE_AML_OPERAND_TYPE 2832102550Siwasakiduring initialization of the region/field. This is similar 2833104470Siwasaki(but not related internally) to the problem that was fixed in 2834104470Siwasakithe last label. 2835102550Siwasaki 2836102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL 2837102550Siwasakifunctions ToBCD and FromBCD. 2838102550Siwasaki 2839102550SiwasakiUpdated all legal headers to include "2000" in the copyright 2840102550Siwasakiyears. 2841102550Siwasaki 2842102550Siwasaki ------------------------------------------ 2843102550SiwasakiSummary of changes for this label: 12_01_00 2844102550Siwasaki 2845102550SiwasakiFixed a problem where method invocations within the ASL 2846102550Siwasakidefinition of both OperationRegions and CreateXXXFields did 2847102550Siwasakinot work properly. The symptom was an AE_AML_OPERAND_TYPE 2848102550Siwasakiduring initialization of the region/field: 2849102550Siwasaki 2850102550Siwasaki nsinit-0209: AE_AML_OPERAND_TYPE while getting region 2851102550Siwasakiarguments [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad 2852102550Siwasakioperand(s) (0x3005) 2853102550Siwasaki 2854102550SiwasakiFixed a problem where operators with more than one nested 2855104470Siwasakisubexpression would fail. The symptoms were varied, by mostly 2856104470SiwasakiAE_AML_OPERAND_TYPE errors. This was actually a rather 2857104470Siwasakiserious problem that has gone unnoticed until now. 2858102550Siwasaki 2859102550Siwasaki Subtract (Add (1,2), Multiply (3,4)) 2860102550Siwasaki 2861104470SiwasakiFixed a problem where AcpiGetHandle didn't quite get fixed in 2862104470Siwasakithe previous build (The prefix part of a relative path was 2863104470Siwasakihandled incorrectly). 2864102550Siwasaki 2865102550SiwasakiFixed a problem where Operation Region initialization failed 2866102550Siwasakiif the operation region name was a "namepath" instead of a 2867102550Siwasakisimple "nameseg". Symptom was an AE_NO_OPERAND error. 2868102550Siwasaki 2869102550SiwasakiFixed a problem where an assignment to a local variable via 2870102550Siwasakithe indirect RefOf mechanism only worked for the first such 2871102550Siwasakiassignment. Subsequent assignments were ignored. 2872102550Siwasaki 2873102550Siwasaki ------------------------------------------ 2874102550SiwasakiSummary of changes for this label: 11_15_00 2875102550Siwasaki 2876104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and 2877104470Siwasakithe 0.71 extensions. Note: although we can read ACPI 2.0 BIOS 2878104470Siwasakitables, the AML interpreter does NOT have support for the new 2879104470Siwasaki2.0 ASL grammar terms at this time. 2880102550Siwasaki 2881104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI 2882104470Siwasaki2.0 FADT. 2883102550Siwasaki 2884104470SiwasakiAll physical memory addresses across all platforms are now 64 2885104470Siwasakibits wide. Logical address width remains dependent on the 2886102550Siwasakiplatform (i.e., "void *"). 2887102550Siwasaki 2888102550SiwasakiAcpiOsMapMemory interface changed to a 64-bit physical 2889102550Siwasakiaddress. 2890102550Siwasaki 2891102550SiwasakiThe AML interpreter integer size is now 64 bits, as per the 2892102550SiwasakiACPI 2.0 specification. 2893102550Siwasaki 2894104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a 2895104470Siwasakirevision number less than 2 use 32-bit integers only. 2896102550Siwasaki 2897104470SiwasakiFixed a problem where the evaluation of OpRegion operands did 2898104470Siwasakinot always resolve them to numbers properly. 2899102550Siwasaki 2900102550Siwasaki------------------------------------------ 2901102550SiwasakiSummary of changes for this label: 10_20_00 2902102550Siwasaki 2903102550SiwasakiFix for CBN_._STA issue. This fix will allow correct access 2904102550Siwasakito CBN_ OpRegions when the _STA returns 0x8. 2905102550Siwasaki 2906104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual 2907104470Siwasakivalues before a package object is returned 2908102550Siwasaki 2909104470SiwasakiFix for method call as predicate to if/while construct causing 2910104470Siwasakiincorrect if/while behavior 2911102550Siwasaki 2912104470SiwasakiFix for Else block package lengths sometimes calculated wrong 2913104470Siwasaki(if block > 63 bytes) 2914102550Siwasaki 2915102550SiwasakiFix for Processor object length field, was always zero 2916102550Siwasaki 2917102550SiwasakiTable load abort if FACP sanity check fails 2918102550Siwasaki 2919102550SiwasakiFix for problem with Scope(name) if name already exists 2920102550Siwasaki 2921102550SiwasakiWarning emitted if a named object referenced cannot be found 2922102550Siwasaki(resolved) during method execution. 2923102550Siwasaki 2924102550Siwasaki 2925102550Siwasaki 2926102550Siwasaki 2927102550Siwasaki 2928102550Siwasaki------------------------------------------ 2929102550SiwasakiSummary of changes for this label: 9_29_00 2930102550Siwasaki 2931102550SiwasakiNew table initialization interfaces: AcpiInitializeSubsystem 2932102550Siwasakino longer has any parameters AcpiFindRootPointer - Find the 2933102550SiwasakiRSDP (if necessary) AcpiLoadTables (RSDP) - load all tables 2934104470Siwasakifound at RSDP->RSDT Obsolete Interfaces AcpiLoadFirmwareTables 2935104470Siwasaki- replaced by AcpiLoadTables 2936102550Siwasaki 2937104470SiwasakiNote: These interface changes require changes to all existing 2938104470SiwasakiOSDs 2939102550Siwasaki 2940102550SiwasakiThe PCI_Config default address space handler is always 2941102550Siwasakiinstalled at the root namespace object. 2942102550Siwasaki 2943102550Siwasaki------------------------------------------- 2944102550SiwasakiSummary of changes for this label: 09_15_00 2945102550Siwasaki 2946102550SiwasakiThe new initialization architecture is implemented. New 2947102550Siwasakiinterfaces are: AcpiInitializeSubsystem (replaces 2948102550SiwasakiAcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces: 2949102550SiwasakiAcpiLoadNamespace (Namespace is automatically loaded when a 2950102550Siwasakitable is loaded) 2951102550Siwasaki 2952104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size 2953104470Siwasakifrom 52 bytes to 32 bytes. There is usually one of these for 2954104470Siwasakievery namespace object, so the memory savings is significant. 2955102550Siwasaki 2956102550SiwasakiImplemented just-in-time evaluation of the CreateField 2957102550Siwasakioperators. 2958102550Siwasaki 2959102550SiwasakiBug fixes for IA-64 support have been integrated. 2960102550Siwasaki 2961102550SiwasakiAdditional code review comments have been implemented 2962102550Siwasaki 2963104470SiwasakiThe so-called "third pass parse" has been replaced by a final 2964104470Siwasakiwalk through the namespace to initialize all operation regions 2965104470Siwasaki(address spaces) and fields that have not yet been initialized 2966104470Siwasakiduring the execution of the various _INI and REG methods. 2967102550Siwasaki 2968102550SiwasakiNew file - namespace/nsinit.c 2969102550Siwasaki 2970102550Siwasaki------------------------------------------- 2971102550SiwasakiSummary of changes for this label: 09_01_00 2972102550Siwasaki 2973104470SiwasakiNamespace manager data structures have been reworked to change 2974104470Siwasakithe primary object from a table to a single object. This has 2975104470Siwasakiresulted in dynamic memory savings of 3X within the namespace 2976104470Siwasakiand 2X overall in the ACPI CA subsystem. 2977102550Siwasaki 2978102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was 2979102550Siwasakiinadvertently left commented out. 2980102550Siwasaki 2981104470SiwasakiReduced the warning count when generating the source with the 2982104470SiwasakiGCC compiler. 2983102550Siwasaki 2984102550SiwasakiRevision numbers added to each module header showing the 2985104470SiwasakiSourceSafe version of the file. Please refer to this version 2986104470Siwasakinumber when giving us feedback or comments on individual 2987104470Siwasakimodules. 2988102550Siwasaki 2989102550SiwasakiThe main object types within the subsystem have been renamed 2990102550Siwasakito clarify their purpose: 2991102550Siwasaki 2992102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT 2993102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT 2994102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE 2995102550Siwasaki 2996102550SiwasakiNOTE: no changes to the initialization sequence are included 2997102550Siwasakiin this label. 2998102550Siwasaki 2999102550Siwasaki------------------------------------------- 3000102550SiwasakiSummary of changes for this label: 08_23_00 3001102550Siwasaki 3002102550SiwasakiFixed problem where TerminateControlMethod was being called 3003102550Siwasakimultiple times per method 3004102550Siwasaki 3005102550SiwasakiFixed debugger problem where single stepping caused a 3006102550Siwasakisemaphore to be oversignalled 3007102550Siwasaki 3008104470SiwasakiImproved performance through additional parse object caching - 3009104470Siwasakiadded ACPI_EXTENDED_OP type 3010102550Siwasaki 3011102550Siwasaki------------------------------------------- 3012102550SiwasakiSummary of changes for this label: 08_10_00 3013102550Siwasaki 3014102550SiwasakiParser/Interpreter integration: Eliminated the creation of 3015102550Siwasakicomplete parse trees for ACPI tables and control methods. 3016104470SiwasakiInstead, parse subtrees are created and then deleted as soon 3017104470Siwasakias they are processed (Either entered into the namespace or 3018104470Siwasakiexecuted by the interpreter). This reduces the use of dynamic 3019104470Siwasakikernel memory significantly. (about 10X) 3020102550Siwasaki 3021102550SiwasakiException codes broken into classes and renumbered. Be sure 3022104470Siwasakito recompile all code that includes acexcep.h. Hopefully we 3023104470Siwasakiwon't have to renumber the codes again now that they are 3024102550Siwasakisplit into classes (environment, programmer, AML code, ACPI 3025102550Siwasakitable, and internal). 3026102550Siwasaki 3027104470SiwasakiFixed some additional alignment issues in the Resource Manager 3028104470Siwasakisubcomponent 3029102550Siwasaki 3030102550SiwasakiImplemented semaphore tracking in the AcpiExec utility, and 3031102550Siwasakifixed several places where mutexes/semaphores were being 3032102550Siwasakiunlocked without a corresponding lock operation. There are 3033102550Siwasakino known semaphore or mutex "leaks" at this time. 3034102550Siwasaki 3035104470SiwasakiFixed the case where an ASL Return operator is used to return 3036104470Siwasakian unnamed package. 3037102550Siwasaki 3038102550Siwasaki------------------------------------------- 3039102550SiwasakiSummary of changes for this label: 07_28_00 3040102550Siwasaki 3041102550SiwasakiFixed a problem with the way addresses were calculated in 3042102550SiwasakiAcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This 3043102550Siwasakiproblem manifested itself when a Field was created with 3044102550SiwasakiWordAccess or DwordAccess, but the field unit defined within 3045102550Siwasakithe Field was less than a Word or Dword. 3046102550Siwasaki 3047102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull 3048104470Siwasakioperands off of the operand stack to display information. The 3049104470Siwasakiproblem manifested itself as a TLB error on 64-bit systems 3050104470Siwasakiwhen accessing an operand stack with two or more operands. 3051102550Siwasaki 3052102550SiwasakiFixed a problem with the PCI configuration space handlers 3053102550Siwasakiwhere context was getting confused between accesses. This 3054102550Siwasakirequired a change to the generic address space handler and 3055102550Siwasakiaddress space setup definitions. Handlers now get both a 3056104470Siwasakiglobal handler context (this is the one passed in by the user 3057104470Siwasakiwhen executing AcpiInstallAddressSpaceHandler() and a 3058102550Siwasakispecific region context that is unique to each region (For 3059102550Siwasakiexample, the _ADR, _SEG and _BBN values associated with a 3060102550Siwasakispecific region). The generic function definitions have 3061102550Siwasakichanged to the following: 3062102550Siwasaki 3063102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 3064104470SiwasakiFunction, UINT32 Address, UINT32 BitWidth, UINT32 *Value, void 3065104470Siwasaki*HandlerContext, // This used to be void *Context void 3066102550Siwasaki*RegionContext); // This is an additional parameter 3067102550Siwasaki 3068102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE 3069102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext, void 3070102550Siwasaki**RegionContext); // This used to be **ReturnContext 3071102550Siwasaki 3072102550Siwasaki------------------------------------------- 3073102550SiwasakiSummary of changes for this label: 07_21_00 3074102550Siwasaki 3075102550SiwasakiMajor file consolidation and rename. All files within the 3076102550Siwasakiinterpreter have been renamed as well as most header files. 3077102550SiwasakiThis was done to prevent collisions with existing files in 3078102550Siwasakithe host OSs -- filenames such as "config.h" and "global.h" 3079102550Siwasakiseem to be quite common. The VC project files have been 3080102550Siwasakiupdated. All makefiles will require modification. 3081102550Siwasaki 3082102550SiwasakiThe parser/interpreter integration continues in Phase 5 with 3083102550Siwasakithe implementation of a complete 2-pass parse (the AML is 3084102550Siwasakiparsed twice) for each table; This avoids the construction 3085102550Siwasakiof a huge parse tree and therefore reduces the amount of 3086104470Siwasakidynamic memory required by the subsystem. Greater use of the 3087104470Siwasakiparse object cache means that performance is unaffected. 3088102550Siwasaki 3089102550SiwasakiMany comments from the two code reviews have been rolled in. 3090102550Siwasaki 3091102550SiwasakiThe 64-bit alignment support is complete. 3092102550Siwasaki 3093102550Siwasaki------------------------------------------- 3094102550SiwasakiSummary of changes for this label: 06_30_00 3095102550Siwasaki 3096102550SiwasakiWith a nod and a tip of the hat to the technology of 3097102550Siwasakiyesteryear, we've added support in the source code for 80 3098104470Siwasakicolumn output devices. The code is now mostly constrained to 3099104470Siwasaki80 columns or less to support environments and editors that 1) 3100104470Siwasakicannot display or print more than 80 characters on a single 3101104470Siwasakiline, and 2) cannot disable line wrapping. 3102102550Siwasaki 3103104470SiwasakiA major restructuring of the namespace data structure has been 3104104470Siwasakicompleted. The result is 1) cleaner and more 3105102550Siwasakiunderstandable/maintainable code, and 2) a significant 3106102550Siwasakireduction in the dynamic memory requirement for each named 3107102550SiwasakiACPI object (almost half). 3108102550Siwasaki 3109102550Siwasaki------------------------------------------- 3110102550SiwasakiSummary of changes for this label: 06_23_00 3111102550Siwasaki 3112104470SiwasakiLinux support has been added. In order to obtain approval to 3113104470Siwasakiget the ACPI CA subsystem into the Linux kernel, we've had to 3114104470Siwasakimake quite a few changes to the base subsystem that will 3115104470Siwasakiaffect all users (all the changes are generic and OS- 3116102550Siwasakiindependent). The effects of these global changes have been 3117104470Siwasakisomewhat far reaching. Files have been merged and/or renamed 3118104470Siwasakiand interfaces have been renamed. The major changes are 3119104470Siwasakidescribed below. 3120102550Siwasaki 3121102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace 3122102550Siwasakipollution/confusion within our target kernels. All OSD 3123102550Siwasakiinterfaces must be modified to match the new naming 3124102550Siwasakiconvention. 3125102550Siwasaki 3126102550SiwasakiFiles merged across the subsystem. A number of the smaller 3127102550Siwasakisource and header files have been merged to reduce the file 3128104470Siwasakicount and increase the density of the existing files. There 3129104470Siwasakiare too many to list here. In general, makefiles that call 3130104470Siwasakiout individual files will require rebuilding. 3131102550Siwasaki 3132104470SiwasakiInterpreter files renamed. All interpreter files now have the 3133104470Siwasakiprefix am* instead of ie* and is*. 3134102550Siwasaki 3135104470SiwasakiHeader files renamed: The acapi.h file is now acpixf.h. The 3136104470Siwasakiacpiosd.h file is now acpiosxf.h. We are removing references 3137104470Siwasakito the acronym "API" since it is somewhat windowsy. The new 3138104470Siwasakiname is "external interface" or xface or xf in the 3139104470Siwasakifilenames.j 3140102550Siwasaki 3141102550Siwasaki 3142102550SiwasakiAll manifest constants have been forced to upper case (some 3143102550Siwasakiwere mixed case.) Also, the string "ACPI_" has been 3144102550Siwasakiprepended to many (not all) of the constants, typedefs, and 3145102550Siwasakistructs. 3146102550Siwasaki 3147102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed 3148102550Siwasaki"AcpiDbgLevel" and "AcpiDbgLayer" respectively. 3149102550Siwasaki 3150102550SiwasakiAll other globals within the subsystem are now prefixed with 3151102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now 3152102550Siwasakiprefixed with "Acpi" (with only a few exceptions). The 3153104470Siwasakioriginal two-letter abbreviation for the subcomponent remains 3154104470Siwasakiafter "Acpi" - for example, CmCallocate became 3155102550SiwasakiAcpiCmCallocate. 3156102550Siwasaki 3157102550SiwasakiAdded a source code translation/conversion utility. Used to 3158102550Siwasakigenerate the Linux source code, it can be modified to 3159102550Siwasakigenerate other types of source as well. Can also be used to 3160102550Siwasakicleanup existing source by removing extraneous spaces and 3161102550Siwasakiblank lines. Found in tools/acpisrc/* 3162102550Siwasaki 3163102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then 3164102550SiwasakiAcpiOsUnmapMemory. (UnMap became Unmap). 3165102550Siwasaki 3166102550SiwasakiA "MaxUnits" parameter has been added to 3167104470SiwasakiAcpiOsCreateSemaphore. When set to one, this indicates that 3168104470Siwasakithe caller wants to use the semaphore as a mutex, not a 3169102550Siwasakicounting semaphore. ACPI CA uses both types. However, 3170102550Siwasakiimplementers of this call may want to use different OS 3171104470Siwasakiprimitives depending on the type of semaphore requested. For 3172104470Siwasakiexample, some operating systems provide separate "mutex" and 3173104470Siwasaki"semaphore" interfaces - where the mutex interface is much 3174104470Siwasakifaster because it doesn't have all the overhead of a full 3175104470Siwasakisemaphore implementation. 3176102550Siwasaki 3177104470SiwasakiFixed a deadlock problem where a method that accesses the PCI 3178104470Siwasakiaddress space can block forever if it is the first access to 3179104470Siwasakithe space. 3180102550Siwasaki 3181102550Siwasaki------------------------------------------- 3182102550SiwasakiSummary of changes for this label: 06_02_00 3183102550Siwasaki 3184102550SiwasakiSupport for environments that cannot handle unaligned data 3185102550Siwasakiaccesses (e.g. firmware and OS environments devoid of 3186102550Siwasakialignment handler technology namely SAL/EFI and the IA-64 3187102550SiwasakiLinux kernel) has been added (via configurable macros) in 3188102550Siwasakithese three areas: - Transfer of data from the raw AML byte 3189102550Siwasakistream is done via byte moves instead of word/dword/qword 3190104470Siwasakimoves. - External objects are aligned within the user buffer, 3191104470Siwasakiincluding package elements (sub-objects). - Conversion of 3192104470Siwasakiname strings to UINT32 Acpi Names is now done byte-wise. 3193102550Siwasaki 3194102550SiwasakiThe Store operator was modified to mimic Microsoft's 3195102550Siwasakiimplementation when storing to a Buffer Field. 3196102550Siwasaki 3197102550SiwasakiAdded a check of the BM_STS bit before entering C3. 3198102550Siwasaki 3199102550SiwasakiThe methods subdirectory has been obsoleted and removed. A 3200102550Siwasakinew file, cmeval.c subsumes the functionality. 3201102550Siwasaki 3202102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed. The 3203102550Siwasakimakefile is under the acpiexec directory. 3204