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