changes.txt revision 104470
1102550Siwasaki---------------------------------------- 2104470Siwasaki 3104470Siwasaki02 October 2002. Summary of changes for this release. 4104470Siwasaki 5104470Siwasaki 6104470Siwasaki1) ACPI CA Core Subsystem version 20021002: 7104470Siwasaki 8104470SiwasakiFixed a problem where a store/copy of a string to an existing 9104470Siwasakistring did not always set the string length properly in the 10104470SiwasakiString object. 11104470Siwasaki 12104470SiwasakiFixed a reported problem with the ToString operator where the 13104470Siwasakibehavior was identical to the ToHexString operator instead of 14104470Siwasakijust simply converting a raw buffer to a string data type. 15104470Siwasaki 16104470SiwasakiFixed a problem where CopyObject and the other "explicit" 17104470Siwasakiconversion operators were not updating the internal namespace 18104470Siwasakinode type as part of the store operation. 19104470Siwasaki 20104470SiwasakiFixed a memory leak during implicit source operand conversion 21104470Siwasakiwhere the original object was not deleted if it was converted 22104470Siwasakito a new object of a different type. 23104470Siwasaki 24104470SiwasakiEnhanced error messages for all problems associated with 25104470Siwasakinamespace lookups. Common procedure generates and prints the 26104470Siwasakilookup name as well as the formatted status. 27104470Siwasaki 28104470SiwasakiCompleted implementation of a new design for the Alias support 29104470Siwasakiwithin the namespace. The existing design did not handle the 30104470Siwasakicase where a new object was assigned to one of the two names 31104470Siwasakidue to the use of an explicit conversion operator, resulting 32104470Siwasakiin the two names pointing to two different objects. The new 33104470Siwasakidesign simply points the Alias name to the original name node 34104470Siwasaki- not to the object. This results in a level of indirection 35104470Siwasakithat must be handled in the name resolution mechanism. 36104470Siwasaki 37104470SiwasakiCode and Data Size: Current core subsystem library sizes are 38104470Siwasakishown below. These are the code and data sizes for the 39104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 40104470Siwasakiand these values do not include any ACPI driver or OSPM code. 41104470SiwasakiThe debug version of the code includes the debug output trace 42104470Siwasakimechanism and has a larger code and data size. Note that 43104470Siwasakithese values will vary depending on the efficiency of the 44104470Siwasakicompiler and the compiler options used during generation. 45104470Siwasaki 46104470Siwasaki Previous Release 47104470Siwasaki Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 48104470Siwasaki Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 49104470Siwasaki Current Release: 50104470Siwasaki Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total 51104470Siwasaki Debug Version: 151.7K Code, 62.4K Data, 214.1K Total 52104470Siwasaki 53104470Siwasaki 54104470Siwasaki2) Linux 55104470Siwasaki 56104470SiwasakiInitialize thermal driver's timer before it is used. (Knut 57104470SiwasakiNeumann) 58104470Siwasaki 59104470SiwasakiAllow handling negative celsius values. (Kochi Takayoshi) 60104470Siwasaki 61104470SiwasakiFix thermal management and make trip points. R/W (Pavel 62104470SiwasakiMachek) 63104470Siwasaki 64104470SiwasakiFix /proc/acpi/sleep. (P. Christeas) 65104470Siwasaki 66104470SiwasakiIA64 fixes. (David Mosberger) 67104470Siwasaki 68104470SiwasakiFix reversed logic in blacklist code. (Sergio Monteiro Basto) 69104470Siwasaki 70104470SiwasakiReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik 71104470SiwasakiBrodowski) 72104470Siwasaki 73104470Siwasaki 74104470Siwasaki3) iASL Compiler/Disassembler 75104470Siwasaki 76104470SiwasakiClarified some warning/error messages. 77104470Siwasaki 78104470Siwasaki 79104470Siwasaki---------------------------------------- 80104470Siwasaki18 September 2002. Summary of changes for this release. 81104470Siwasaki 82104470Siwasaki 83104470Siwasaki1) ACPI CA Core Subsystem version 20020918: 84104470Siwasaki 85104470SiwasakiFixed a reported problem with reference chaining (via the 86104470SiwasakiIndex() and RefOf() operators) in the ObjectType() and 87104470SiwasakiSizeOf() operators. The definition of these operators 88104470Siwasakiincludes the dereferencing of all chained references to return 89104470Siwasakiinformation on the base object. 90104470Siwasaki 91104470SiwasakiFixed a problem with stores to indexed package elements - the 92104470Siwasakiexisting code would not complete the store if an "implicit 93104470Siwasakiconversion" was not performed. In other words, if the 94104470Siwasakiexisting object (package element) was to be replaced 95104470Siwasakicompletely, the code didn't handle this case. 96104470Siwasaki 97104470SiwasakiRelaxed typechecking on the ASL "Scope" operator to allow the 98104470Siwasakitarget name to refer to an object of type Integer, String, or 99104470SiwasakiBuffer, in addition to the scoping object types (Device, 100104470Siwasakipredefined Scopes, Processor, PowerResource, and ThermalZone.) 101104470SiwasakiThis allows existing AML code that has workarounds for a bug 102104470Siwasakiin Windows to function properly. A warning is issued, 103104470Siwasakihowever. This affects both the AML interpreter and the iASL 104104470Siwasakicompiler. Below is an example of this type of ASL code: 105104470Siwasaki 106104470Siwasaki Name(DEB,0x00) 107104470Siwasaki Scope(DEB) 108104470Siwasaki { 109104470Siwasaki 110104470SiwasakiFixed some reported problems with 64-bit integer support in 111104470Siwasakithe local implementation of C library functions (clib.c) 112104470Siwasaki 113104470Siwasaki 114104470Siwasaki2) Linux 115104470Siwasaki 116104470SiwasakiUse ACPI fix map region instead of IOAPIC region, since it is 117104470Siwasakiundefined in non-SMP. 118104470Siwasaki 119104470SiwasakiEnsure that the SCI has the proper polarity and trigger, even 120104470Siwasakion systems that do not have an interrupt override entry in the 121104470SiwasakiMADT. 122104470Siwasaki 123104470Siwasaki2.5 big driver reorganization (Pat Mochel) 124104470Siwasaki 125104470SiwasakiUse early table mapping code from acpitable.c (Andi Kleen) 126104470Siwasaki 127104470SiwasakiNew blacklist entries (Andi Kleen) 128104470Siwasaki 129104470SiwasakiBlacklist improvements. Split blacklist code out into a 130104470Siwasakiseparate file. Move checking the blacklist to very early. 131104470SiwasakiPreviously, we would use ACPI tables, and then halfway through 132104470Siwasakiinit, check the blacklist -- too late. Now, it's early enough 133104470Siwasakito completely fall-back to non-ACPI. 134104470Siwasaki 135104470Siwasaki 136104470Siwasaki3) iASL Compiler/Disassembler version 20020918: 137104470Siwasaki 138104470SiwasakiFixed a problem where the typechecking code didn't know that 139104470Siwasakian alias could point to a method. In other words, aliases 140104470Siwasakiwere not being dereferenced during typechecking. 141104470Siwasaki 142104470Siwasaki 143104470Siwasaki---------------------------------------- 144104470Siwasaki29 August 2002. Summary of changes for this release. 145104470Siwasaki 146104470Siwasaki1) ACPI CA Core Subsystem Version 20020829: 147104470Siwasaki 148104470SiwasakiIf the target of a Scope() operator already exists, it must be 149104470Siwasakian object type that actually opens a scope -- such as a 150104470SiwasakiDevice, Method, Scope, etc. This is a fatal runtime error. 151104470SiwasakiSimilar error check has been added to the iASL compiler also. 152104470Siwasaki 153104470SiwasakiTightened up the namespace load to disallow multiple names in 154104470Siwasakithe same scope. This previously was allowed if both objects 155104470Siwasakiwere of the same type. (i.e., a lookup was the same as 156104470Siwasakientering a new name). 157104470Siwasaki 158104470Siwasaki 159104470Siwasaki2) Linux 160104470Siwasaki 161104470SiwasakiEnsure that the ACPI interrupt has the proper trigger and 162104470Siwasakipolarity. 163104470Siwasaki 164104470Siwasakilocal_irq_disable is extraneous. (Matthew Wilcox) 165104470Siwasaki 166104470SiwasakiMake "acpi=off" actually do what it says, and not use the ACPI 167104470Siwasakiinterpreter *or* the tables. 168104470Siwasaki 169104470SiwasakiAdded arch-neutral support for parsing SLIT and SRAT tables 170104470Siwasaki(Kochi Takayoshi) 171104470Siwasaki 172104470Siwasaki 173104470Siwasaki3) iASL Compiler/Disassembler Version 20020829: 174104470Siwasaki 175104470SiwasakiImplemented namepath optimization for name declarations. For 176104470Siwasakiexample, a declaration like "Method (\_SB_.ABCD)" would get 177104470Siwasakioptimized to "Method (ABCD)" if the declaration is within the 178104470Siwasaki\_SB_ scope. This optimization is in addition to the named 179104470Siwasakireference path optimization first released in the previous 180104470Siwasakiversion. This would seem to complete all possible 181104470Siwasakioptimizations for namepaths within the ASL/AML. 182104470Siwasaki 183104470SiwasakiIf the target of a Scope() operator already exists, it must be 184104470Siwasakian object type that actually opens a scope -- such as a 185104470SiwasakiDevice, Method, Scope, etc. 186104470Siwasaki 187104470SiwasakiImplemented a check and warning for unreachable code in the 188104470Siwasakisame block below a Return() statement. 189104470Siwasaki 190104470SiwasakiFixed a problem where the listing file was not generated if 191104470Siwasakithe compiler aborted if the maximum error count was exceeded 192104470Siwasaki(200). 193104470Siwasaki 194104470SiwasakiFixed a problem where the typechecking of method return values 195104470Siwasakiwas broken. This includes the check for a return value when 196104470Siwasakithe method is invoked as a TermArg (a return value is 197104470Siwasakiexpected.) 198104470Siwasaki 199104470SiwasakiFixed a reported problem where EOF conditions during a quoted 200104470Siwasakistring or comment caused a fault. 201104470Siwasaki 202104470Siwasaki 203104470Siwasaki---------------------------------------- 204102550Siwasaki15 August 2002. Summary of changes for this release. 205102550Siwasaki 206102550Siwasaki1) ACPI CA Core Subsystem Version 20020815: 207102550Siwasaki 208102550SiwasakiFixed a reported problem where a Store to a method argument 209102550Siwasakithat contains a reference did not perform the indirect store 210104470Siwasakicorrectly. This problem was created during the conversion to 211104470Siwasakithe new reference object model - the indirect store to a 212104470Siwasakimethod argument code was not updated to reflect the new model. 213102550Siwasaki 214102550SiwasakiReworked the ACPI mode change code to better conform to ACPI 215102550Siwasaki2.0, handle corner cases, and improve code legibility (Kochi 216102550SiwasakiTakayoshi) 217102550Siwasaki 218102550SiwasakiFixed a problem with the pathname parsing for the carat (^) 219102550Siwasakiprefix. The heavy use of the carat operator by the new 220104470Siwasakinamepath optimization in the iASL compiler uncovered a problem 221104470Siwasakiwith the AML interpreter handling of this prefix. In the case 222104470Siwasakiwhere one or more carats precede a single nameseg, the nameseg 223104470Siwasakiwas treated as standalone and the search rule (to root) was 224104470Siwasakiinadvertently applied. This could cause both the iASL 225104470Siwasakicompiler and the interpreter to find the wrong object or to 226104470Siwasakimiss the error that should occur if the object does not exist 227104470Siwasakiat that exact pathname. 228102550Siwasaki 229102550SiwasakiFound and fixed the problem where the HP Pavilion DSDT would 230102550Siwasakinot load. This was a relatively minor tweak to the table 231102550Siwasakiloading code (a problem caused by the unexpected encounter 232104470Siwasakiwith a method invocation not within a control method), but it 233104470Siwasakidoes not solve the overall issue of the execution of AML code 234104470Siwasakiat the table level. This investigation is still ongoing. 235102550Siwasaki 236102550SiwasakiCode and Data Size: Current core subsystem library sizes are 237102550Siwasakishown below. These are the code and data sizes for the 238104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 239104470Siwasakiand these values do not include any ACPI driver or OSPM code. 240104470SiwasakiThe debug version of the code includes the debug output trace 241104470Siwasakimechanism and has a larger code and data size. Note that 242104470Siwasakithese values will vary depending on the efficiency of the 243104470Siwasakicompiler and the compiler options used during generation. 244102550Siwasaki 245102550Siwasaki Previous Release 246104470Siwasaki Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 247104470Siwasaki Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 248102550Siwasaki Current Release: 249104470Siwasaki Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 250104470Siwasaki Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 251102550Siwasaki 252102550Siwasaki 253102550Siwasaki2) Linux 254102550Siwasaki 255102550SiwasakiRemove redundant slab.h include (Brad Hards) 256102550Siwasaki 257102550SiwasakiFix several bugs in thermal.c (Herbert Nachtnebel) 258102550Siwasaki 259102550SiwasakiMake CONFIG_ACPI_BOOT work properly (Pavel Machek) 260102550Siwasaki 261104470SiwasakiChange acpi_system_suspend to use updated irq functions (Pavel 262104470SiwasakiMachek) 263102550Siwasaki 264102550SiwasakiExport acpi_get_firmware_table (Matthew Wilcox) 265102550Siwasaki 266102550SiwasakiUse proper root proc entry for ACPI (Kochi Takayoshi) 267102550Siwasaki 268102550SiwasakiFix early-boot table parsing (Bjorn Helgaas) 269102550Siwasaki 270102550Siwasaki 271102550Siwasaki3) iASL Compiler/Disassembler 272102550Siwasaki 273104470SiwasakiReworked the compiler options to make them more consistent and 274104470Siwasakito use two-letter options where appropriate. We were running 275104470Siwasakiout of sensible letters. This may break some makefiles, so 276104470Siwasakicheck the current options list by invoking the compiler with 277104470Siwasakino parameters. 278102550Siwasaki 279102550SiwasakiCompleted the design and implementation of the ASL namepath 280102550Siwasakioptimization option for the compiler. This option optimizes 281104470Siwasakiall references to named objects to the shortest possible path. 282104470SiwasakiThe first attempt tries to utilize a single nameseg (4 283104470Siwasakicharacters) and the "search-to-root" algorithm used by the 284104470Siwasakiinterpreter. If that cannot be used (because either the name 285104470Siwasakiis not in the search path or there is a conflict with another 286104470Siwasakiobject with the same name), the pathname is optimized using 287104470Siwasakithe carat prefix (usually a shorter string than specifying the 288104470Siwasakientire path from the root.) 289102550Siwasaki 290102550SiwasakiImplemented support to obtain the DSDT from the Windows 291102550Siwasakiregistry (when the disassembly option is specified with no 292102550Siwasakiinput file). Added this code as the implementation for 293102550SiwasakiAcpiOsTableOverride in the Windows OSL. Migrated the 16-bit 294102550Siwasakicode (used in the AcpiDump utility) to scan memory for the 295102550SiwasakiDSDT to the AcpiOsTableOverride function in the DOS OSL to 296102550Siwasakimake the disassembler truly OS independent. 297102550Siwasaki 298102550SiwasakiImplemented a new option to disassemble and compile in one 299102550Siwasakistep. When used without an input filename, this option will 300102550Siwasakigrab the DSDT from the local machine, disassemble it, and 301102550Siwasakicompile it in one step. 302102550Siwasaki 303102550SiwasakiAdded a warning message for invalid escapes (a backslash 304102550Siwasakifollowed by any character other than the allowable escapes). 305104470SiwasakiThis catches the quoted string error "\_SB_" (which should be 306104470Siwasaki"\\_SB_" ). Also, there are numerous instances in the ACPI 307104470Siwasakispecification where this error occurs. 308102550Siwasaki 309104470SiwasakiAdded a compiler option to disable all optimizations. This is 310104470Siwasakibasically the "compatibility mode" because by using this 311102550Siwasakioption, the AML code will come out exactly the same as other 312102550SiwasakiASL compilers. 313102550Siwasaki 314102550SiwasakiAdded error messages for incorrectly ordered dependent 315102550Siwasakiresource functions. This includes: missing EndDependentFn 316102550Siwasakimacro at end of dependent resource list, nested dependent 317102550Siwasakifunction macros (both start and end), and missing 318102550SiwasakiStartDependentFn macro. These are common errors that should 319102550Siwasakibe caught at compile time. 320102550Siwasaki 321102550SiwasakiImplemented _OSI support for the disassembler and compiler. 322104470Siwasaki_OSI must be included in the namespace for proper disassembly 323104470Siwasaki(because the disassembler must know the number of arguments.) 324102550Siwasaki 325104470SiwasakiAdded an "optimization" message type that is optional (off by 326104470Siwasakidefault). This message is used for all optimizations - 327104470Siwasakiincluding constant folding, integer optimization, and namepath 328104470Siwasakioptimization. 329102550Siwasaki 330102550Siwasaki---------------------------------------- 331102550Siwasaki25 July 2002. Summary of changes for this release. 332102550Siwasaki 333102550Siwasaki 334102550Siwasaki1) ACPI CA Core Subsystem Version 20020725: 335102550Siwasaki 336102550SiwasakiThe AML Disassembler has been enhanced to produce compilable 337102550SiwasakiASL code and has been integrated into the iASL compiler (see 338102550Siwasakibelow) as well as the single-step disassembly for the AML 339102550Siwasakidebugger and the disassembler for the AcpiDump utility. All 340102550SiwasakiACPI 2.0A opcodes, resource templates and macros are fully 341102550Siwasakisupported. The disassembler has been tested on over 30 342102550Siwasakidifferent AML files, producing identical AML when the 343102550Siwasakiresulting disassembled ASL file is recompiled with the same 344102550SiwasakiASL compiler. 345102550Siwasaki 346102550SiwasakiModified the Resource Manager to allow zero interrupts and 347102550Siwasakizero dma channels during the GetCurrentResources call. This 348102550Siwasakiwas causing problems on some platforms. 349102550Siwasaki 350102550SiwasakiAdded the AcpiOsRedirectOutput interface to the OSL to 351102550Siwasakisimplify output redirection for the AcpiOsPrintf and 352102550SiwasakiAcpiOsVprintf interfaces. 353102550Siwasaki 354102550SiwasakiCode and Data Size: Current core subsystem library sizes are 355102550Siwasakishown below. These are the code and data sizes for the 356104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 357104470Siwasakiand these values do not include any ACPI driver or OSPM code. 358104470SiwasakiThe debug version of the code includes the debug output trace 359104470Siwasakimechanism and has a larger code and data size. Note that 360104470Siwasakithese values will vary depending on the efficiency of the 361104470Siwasakicompiler and the compiler options used during generation. 362102550Siwasaki 363102550Siwasaki Previous Release 364104470Siwasaki Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 365104470Siwasaki Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 366102550Siwasaki Current Release: 367104470Siwasaki Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 368104470Siwasaki Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 369102550Siwasaki 370102550Siwasaki 371102550Siwasaki2) Linux 372102550Siwasaki 373102550SiwasakiFixed a panic in the EC driver (Dominik Brodowski) 374102550Siwasaki 375102550SiwasakiImplemented checksum of the R/XSDT itself during Linux table 376102550Siwasakiscan (Richard Schaal) 377102550Siwasaki 378102550Siwasaki 379102550Siwasaki3) iASL compiler 380102550Siwasaki 381102550SiwasakiThe AML disassembler is integrated into the compiler. The "- 382104470Siwasakid" option invokes the disassembler to completely disassemble 383104470Siwasakian input AML file, producing as output a text ASL file with 384104470Siwasakithe extension ".dsl" (to avoid name collisions with existing 385104470Siwasaki.asl source files.) A future enhancement will allow the 386104470Siwasakidisassembler to obtain the BIOS DSDT from the registry under 387104470SiwasakiWindows. 388102550Siwasaki 389102550SiwasakiFixed a problem with the VendorShort and VendorLong resource 390102550Siwasakidescriptors where an invalid AML sequence was created. 391102550Siwasaki 392102550SiwasakiImplemented a fix for BufferData term in the ASL parser. It 393102550Siwasakiwas inadvertently defined twice, allowing invalid syntax to 394102550Siwasakipass and causing reduction conflicts. 395102550Siwasaki 396104470SiwasakiFixed a problem where the Ones opcode could get converted to a 397104470Siwasakivalue of zero if "Ones" was used where a byte, word or dword 398104470Siwasakivalue was expected. The 64-bit value is now truncated to the 399104470Siwasakicorrect size with the correct value. 400102550Siwasaki 401102550Siwasaki 402102550Siwasaki---------------------------------------- 403102550Siwasaki02 July 2002. Summary of changes for this release. 404102550Siwasaki 405102550Siwasaki 406102550Siwasaki1) ACPI CA Core Subsystem Version 20020702: 407102550Siwasaki 408102550SiwasakiThe Table Manager code has been restructured to add several 409102550Siwasakinew features. Tables that are not required by the core 410102550Siwasakisubsystem (other than the FADT, DSDT, FACS, PSDTs, etc.) are 411102550Siwasakino longer validated in any way and are returned from 412102550SiwasakiAcpiGetFirmwareTable if requested. The AcpiOsTableOverride 413102550Siwasakiinterface is now called for each table that is loaded by the 414104470Siwasakisubsystem in order to allow the host to override any table it 415104470Siwasakichooses. Previously, only the DSDT could be overridden. 416102550SiwasakiAdded one new files, tbrsdt.c and tbgetall.c. 417102550Siwasaki 418102550SiwasakiFixed a problem with the conversion of internal package 419104470Siwasakiobjects to external objects (when a package is returned from a 420104470Siwasakicontrol method.) The return buffer length was set to zero 421102550Siwasakiinstead of the proper length of the package object. 422102550Siwasaki 423104470SiwasakiFixed a reported problem with the use of the RefOf and DeRefOf 424104470Siwasakioperators when passing reference arguments to control methods. 425104470SiwasakiA new type of Reference object is used internally for 426104470Siwasakireferences produced by the RefOf operator. 427102550Siwasaki 428102550SiwasakiAdded additional error messages in the Resource Manager to 429102550Siwasakiexplain AE_BAD_DATA errors when they occur during resource 430102550Siwasakiparsing. 431102550Siwasaki 432104470SiwasakiSplit the AcpiEnableSubsystem into two primitives to enable a 433104470Siwasakifiner granularity initialization sequence. These two calls 434104470Siwasakishould be called in this order: AcpiEnableSubsystem (flags), 435104470SiwasakiAcpiInitializeObjects (flags). The flags parameter remains 436104470Siwasakithe same. 437102550Siwasaki 438102550Siwasaki 439102550Siwasaki2) Linux 440102550Siwasaki 441104470SiwasakiUpdated the ACPI utilities module to understand the new style 442104470Siwasakiof fully resolved package objects that are now returned from 443104470Siwasakithe core subsystem. This eliminates errors of the form: 444102550Siwasaki 445102550Siwasaki ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT] 446102550Siwasaki acpi_utils-0430 [145] acpi_evaluate_reference: 447102550Siwasaki Invalid element in package (not a device reference) 448102550Siwasaki 449102550SiwasakiThe method evaluation utility uses the new buffer allocation 450102550Siwasakischeme instead of calling AcpiEvaluate Object twice. 451102550Siwasaki 452102550SiwasakiAdded support for ECDT. This allows the use of the Embedded 453102550SiwasakiController before the namespace has been fully initialized, 454104470Siwasakiwhich is necessary for ACPI 2.0 support, and for some laptops 455104470Siwasakito initialize properly. (Laptops using ECDT are still rare, so 456104470Siwasakionly limited testing was performed of the added 457104470Siwasakifunctionality.) 458102550Siwasaki 459102550SiwasakiFixed memory leaks in the EC driver. 460102550Siwasaki 461102550SiwasakiEliminated a brittle code structure in acpi_bus_init(). 462102550Siwasaki 463104470SiwasakiEliminated the acpi_evaluate() helper function in utils.c. It 464104470Siwasakiis no longer needed since acpi_evaluate_object can optionally 465104470Siwasakiallocate memory for the return object. 466102550Siwasaki 467102550SiwasakiImplemented fix for keyboard hang when getting battery 468102550Siwasakireadings on some systems (Stephen White) 469102550Siwasaki 470102550SiwasakiPCI IRQ routing update (Dominik Brodowski) 471102550Siwasaki 472102550SiwasakiFix an ifdef to allow compilation on UP with LAPIC but no 473102550SiwasakiIOAPIC support 474102550Siwasaki 475102550Siwasaki---------------------------------------- 476102550Siwasaki11 June 2002. Summary of changes for this release. 477102550Siwasaki 478102550Siwasaki 479102550Siwasaki1) ACPI CA Core Subsystem Version 20020611: 480102550Siwasaki 481104470SiwasakiFixed a reported problem where constants such as Zero and One 482104470Siwasakiappearing within _PRT packages were not handled correctly 483104470Siwasakiwithin the resource manager code. Originally reported against 484104470Siwasakithe ASL compiler because the code generator now optimizes 485104470Siwasakiintegers to their minimal AML representation (i.e. AML 486104470Siwasakiconstants if possible.) The _PRT code now handles all AML 487104470Siwasakiconstant opcodes correctly (Zero, One, Ones, Revision). 488102550Siwasaki 489102550SiwasakiFixed a problem with the Concatenate operator in the AML 490102550Siwasakiinterpreter where a buffer result object was incorrectly 491102550Siwasakimarked as not fully evaluated, causing a run-time error of 492102550SiwasakiAE_AML_INTERNAL. 493102550Siwasaki 494104470SiwasakiAll package sub-objects are now fully resolved before they are 495104470Siwasakireturned from the external ACPI interfaces. This means that 496104470Siwasakiname strings are resolved to object handles, and constant 497104470Siwasakioperators (Zero, One, Ones, Revision) are resolved to 498104470SiwasakiIntegers. 499102550Siwasaki 500102550SiwasakiImplemented immediate resolution of the AML Constant opcodes 501104470Siwasaki(Zero, One, Ones, Revision) to Integer objects upon detection 502104470Siwasakiwithin the AML stream. This has simplified and reduced the 503104470Siwasakigenerated code size of the subsystem by eliminating about 10 504104470Siwasakiswitch statements for these constants (which previously were 505104470Siwasakicontained in Reference objects.) The complicating issues are 506104470Siwasakithat the Zero opcode is used as a "placeholder" for 507104470Siwasakiunspecified optional target operands and stores to constants 508104470Siwasakiare defined to be no-ops. 509102550Siwasaki 510102550SiwasakiCode and Data Size: Current core subsystem library sizes are 511102550Siwasakishown below. These are the code and data sizes for the 512104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 513104470Siwasakiand these values do not include any ACPI driver or OSPM code. 514104470SiwasakiThe debug version of the code includes the debug output trace 515104470Siwasakimechanism and has a larger code and data size. Note that 516104470Siwasakithese values will vary depending on the efficiency of the 517104470Siwasakicompiler and the compiler options used during generation. 518102550Siwasaki 519102550Siwasaki Previous Release 520104470Siwasaki Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 521104470Siwasaki Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 522102550Siwasaki Current Release: 523104470Siwasaki Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 524104470Siwasaki Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 525102550Siwasaki 526102550Siwasaki 527102550Siwasaki2) Linux 528102550Siwasaki 529104470SiwasakiAdded preliminary support for obtaining _TRA data for PCI root 530104470Siwasakibridges (Bjorn Helgaas). 531102550Siwasaki 532102550Siwasaki 533102550Siwasaki3) iASL Compiler Version X2046: 534102550Siwasaki 535104470SiwasakiFixed a problem where the "_DDN" reserved name was defined to 536104470Siwasakibe a control method with one argument. There are no 537102550Siwasakiarguments, and _DDN does not have to be a control method. 538102550Siwasaki 539102550SiwasakiFixed a problem with the Linux version of the compiler where 540102550Siwasakithe source lines printed with error messages were the wrong 541104470Siwasakilines. This turned out to be the "LF versus CR/LF" difference 542104470Siwasakibetween Windows and Unix. This appears to be the longstanding 543104470Siwasakiissue concerning listing output and error messages. 544102550Siwasaki 545102550SiwasakiFixed a problem with the Linux version of compiler where 546102550Siwasakiopcode names within error messages were wrong. This was 547102550Siwasakicaused by a slight difference in the output of the Flex tool 548102550Siwasakion Linux versus Windows. 549102550Siwasaki 550102550SiwasakiFixed a problem with the Linux compiler where the hex output 551104470Siwasakifiles contained some garbage data caused by an internal buffer 552104470Siwasakioverrun. 553102550Siwasaki 554102550Siwasaki 555102550Siwasaki---------------------------------------- 556102550Siwasaki17 May 2002. Summary of changes for this release. 557102550Siwasaki 558102550Siwasaki 559102550Siwasaki1) ACPI CA Core Subsystem Version 20020517: 560102550Siwasaki 561102550SiwasakiImplemented a workaround to an BIOS bug discovered on the HP 562104470SiwasakiOmniBook where the FADT revision number and the table size are 563104470Siwasakiinconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The 564104470Siwasakinew behavior is to fallback to using only the ACPI 1.0 fields 565104470Siwasakiof the FADT if the table is too small to be a ACPI 2.0 table 566104470Siwasakias claimed by the revision number. Although this is a BIOS 567104470Siwasakibug, this is a case where the workaround is simple enough and 568104470Siwasakiwith no side effects, so it seemed prudent to add it. A 569104470Siwasakiwarning message is issued, however. 570102550Siwasaki 571102550SiwasakiImplemented minimum size checks for the fixed-length ACPI 572102550Siwasakitables -- the FADT and FACS, as well as consistency checks 573102550Siwasakibetween the revision number and the table size. 574102550Siwasaki 575102550SiwasakiFixed a reported problem in the table override support where 576102550Siwasakithe new table pointer was incorrectly treated as a physical 577102550Siwasakiaddress instead of a logical address. 578102550Siwasaki 579104470SiwasakiEliminated the use of the AE_AML_ERROR exception and replaced 580104470Siwasakiit with more descriptive codes. 581102550Siwasaki 582104470SiwasakiFixed a problem where an exception would occur if an ASL Field 583104470Siwasakiwas defined with no named Field Units underneath it (used by 584104470Siwasakisome index fields). 585102550Siwasaki 586102550SiwasakiCode and Data Size: Current core subsystem library sizes are 587102550Siwasakishown below. These are the code and data sizes for the 588104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 589104470Siwasakiand these values do not include any ACPI driver or OSPM code. 590104470SiwasakiThe debug version of the code includes the debug output trace 591104470Siwasakimechanism and has a larger code and data size. Note that 592104470Siwasakithese values will vary depending on the efficiency of the 593104470Siwasakicompiler and the compiler options used during generation. 594102550Siwasaki 595102550Siwasaki Previous Release 596104470Siwasaki Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 597104470Siwasaki Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 598102550Siwasaki Current Release: 599104470Siwasaki Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 600104470Siwasaki Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 601102550Siwasaki 602102550Siwasaki 603102550Siwasaki 604102550Siwasaki2) Linux 605102550Siwasaki 606102550SiwasakiMuch work done on ACPI init (MADT and PCI IRQ routing 607102550Siwasakisupport). (Paul D. and Dominik Brodowski) 608102550Siwasaki 609102550SiwasakiFix PCI IRQ-related panic on boot (Sam Revitch) 610102550Siwasaki 611102550SiwasakiSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno) 612102550Siwasaki 613102550SiwasakiFix "MHz" typo (Dominik Brodowski) 614102550Siwasaki 615102550SiwasakiFix RTC year 2000 issue (Dominik Brodowski) 616102550Siwasaki 617102550SiwasakiPreclude multiple button proc entries (Eric Brunet) 618102550Siwasaki 619102550SiwasakiMoved arch-specific code out of include/platform/aclinux.h 620102550Siwasaki 621102550Siwasaki3) iASL Compiler Version X2044: 622102550Siwasaki 623102550SiwasakiImplemented error checking for the string used in the EISAID 624102550Siwasakimacro (Usually used in the definition of the _HID object.) 625102550SiwasakiThe code now strictly enforces the PnP format - exactly 7 626102550Siwasakicharacters, 3 uppercase letters and 4 hex digits. 627102550Siwasaki 628102550SiwasakiIf a raw string is used in the definition of the _HID object 629102550Siwasaki(instead of the EISAID macro), the string must contain all 630102550Siwasakialphanumeric characters (e.g., "*PNP0011" is not allowed 631102550Siwasakibecause of the asterisk.) 632102550Siwasaki 633102550SiwasakiImplemented checking for invalid use of ACPI reserved names 634104470Siwasakifor most of the name creation operators (Name, Device, Event, 635104470SiwasakiMutex, OperationRegion, PowerResource, Processor, and 636102550SiwasakiThermalZone.) Previously, this check was only performed for 637102550Siwasakicontrol methods. 638102550Siwasaki 639102550SiwasakiImplemented an additional check on the Name operator to emit 640104470Siwasakian error if a reserved name that must be implemented in ASL as 641104470Siwasakia control method is used. We know that a reserved name must 642104470Siwasakibe a method if it is defined with input arguments. 643102550Siwasaki 644102550SiwasakiThe warning emitted when a namespace object reference is not 645102550Siwasakifound during the cross reference phase has been changed into 646102550Siwasakian error. The "External" directive should be used for names 647102550Siwasakidefined in other modules. 648102550Siwasaki 649102550Siwasaki 650102550Siwasaki4) Tools and Utilities 651102550Siwasaki 652102550SiwasakiThe 16-bit tools (adump16 and aexec16) have been regenerated 653102550Siwasakiand tested. 654102550Siwasaki 655102550SiwasakiFixed a problem with the output of both acpidump and adump16 656104470Siwasakiwhere the indentation of closing parentheses and brackets was 657104470Siwasakinot aligned properly with the parent block. 658102550Siwasaki 659102550Siwasaki 660102550Siwasaki---------------------------------------- 661102550Siwasaki03 May 2002. Summary of changes for this release. 662102550Siwasaki 663102550Siwasaki 664102550Siwasaki1) ACPI CA Core Subsystem Version 20020503: 665102550Siwasaki 666102550SiwasakiAdded support a new OSL interface that allows the host 667102550Siwasakioperating system software to override the DSDT found in the 668104470Siwasakifirmware - AcpiOsTableOverride. With this interface, the OSL 669104470Siwasakican examine the version of the firmware DSDT and replace it 670104470Siwasakiwith a different one if desired. 671102550Siwasaki 672102550SiwasakiAdded new external interfaces for accessing ACPI registers 673102550Siwasakifrom device drivers and other system software - 674102550SiwasakiAcpiGetRegister and AcpiSetRegister. This was simply an 675104470Siwasakiexternalization of the existing AcpiHwBitRegister interfaces. 676102550Siwasaki 677104470SiwasakiFixed a regression introduced in the previous build where the 678104470SiwasakiASL/AML CreateField operator always returned an error, 679102550Siwasaki"destination must be a NS Node". 680102550Siwasaki 681102550SiwasakiExtended the maximum time (before failure) to successfully 682102550Siwasakienable ACPI mode to 3 seconds. 683102550Siwasaki 684102550SiwasakiCode and Data Size: Current core subsystem library sizes are 685102550Siwasakishown below. These are the code and data sizes for the 686104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 687104470Siwasakiand these values do not include any ACPI driver or OSPM code. 688104470SiwasakiThe debug version of the code includes the debug output trace 689104470Siwasakimechanism and has a larger code and data size. Note that 690104470Siwasakithese values will vary depending on the efficiency of the 691104470Siwasakicompiler and the compiler options used during generation. 692102550Siwasaki 693102550Siwasaki Previous Release 694104470Siwasaki Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 695104470Siwasaki Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 696102550Siwasaki Current Release: 697104470Siwasaki Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 698104470Siwasaki Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 699102550Siwasaki 700102550Siwasaki 701102550Siwasaki2) Linux 702102550Siwasaki 703104470SiwasakiEnhanced ACPI init code for SMP. We are now fully MPS and $PIR- 704104470Siwasakifree. While 3 out of 4 of our in-house systems work fine, the 705104470Siwasakilast one still hangs when testing the LAPIC timer. 706102550Siwasaki 707104470SiwasakiRenamed many files in 2.5 kernel release to omit "acpi_" from 708104470Siwasakithe name. 709102550Siwasaki 710102550SiwasakiAdded warning on boot for Presario 711FR. 711102550Siwasaki 712102550SiwasakiSleep improvements (Pavel Machek) 713102550Siwasaki 714102550SiwasakiACPI can now be built without CONFIG_PCI enabled. 715102550Siwasaki 716102550SiwasakiIA64: Fixed memory map functions (JI Lee) 717102550Siwasaki 718102550Siwasaki 719102550Siwasaki3) iASL Compiler Version X2043: 720102550Siwasaki 721104470SiwasakiAdded support to allow the compiler to be integrated into the 722104470SiwasakiMS VC++ development environment for one-button compilation of 723104470Siwasakisingle files or entire projects -- with error-to-source-line 724104470Siwasakimapping. 725102550Siwasaki 726104470SiwasakiImplemented support for compile-time constant folding for the 727104470SiwasakiType3, Type4, and Type5 opcodes first defined in the ACPI 2.0 728104470Siwasakispecification. This allows the ASL writer to use expressions 729104470Siwasakiinstead of Integer/Buffer/String constants in terms that must 730104470Siwasakievaluate to constants at compile time and will also simplify 731104470Siwasakithe emitted AML in any such sub-expressions that can be folded 732104470Siwasaki(evaluated at compile-time.) This increases the size of the 733104470Siwasakicompiler significantly because a portion of the ACPI CA AML 734104470Siwasakiinterpreter is included within the compiler in order to pre- 735104470Siwasakievaluate constant expressions. 736102550Siwasaki 737102550SiwasakiFixed a problem with the "Unicode" ASL macro that caused the 738102550Siwasakicompiler to fault. (This macro is used in conjunction with 739102550Siwasakithe _STR reserved name.) 740102550Siwasaki 741102550SiwasakiImplemented an AML opcode optimization to use the Zero, One, 742104470Siwasakiand Ones opcodes where possible to further reduce the size of 743104470Siwasakiinteger constants and thus reduce the overall size of the 744102550Siwasakigenerated AML code. 745102550Siwasaki 746102550SiwasakiImplemented error checking for new reserved terms for ACPI 747102550Siwasakiversion 2.0A. 748102550Siwasaki 749104470SiwasakiImplemented the -qr option to display the current list of ACPI 750104470Siwasakireserved names known to the compiler. 751102550Siwasaki 752104470SiwasakiImplemented the -qc option to display the current list of ASL 753104470Siwasakioperators that are allowed within constant expressions and can 754104470Siwasakitherefore be folded at compile time if the operands are 755104470Siwasakiconstants. 756102550Siwasaki 757102550Siwasaki 758102550Siwasaki4) Documentation 759102550Siwasaki 760102550SiwasakiUpdated the Programmer's Reference for new interfaces, data 761102550Siwasakitypes, and memory allocation model options. 762102550Siwasaki 763102550SiwasakiUpdated the iASL Compiler User Reference to apply new format 764102550Siwasakiand add information about new features and options. 765102550Siwasaki 766102550Siwasaki---------------------------------------- 767102550Siwasaki19 April 2002. Summary of changes for this release. 768102550Siwasaki 769102550Siwasaki1) ACPI CA Core Subsystem Version 20020419: 770102550Siwasaki 771102550SiwasakiThe source code base for the Core Subsystem has been 772104470Siwasakicompletely cleaned with PC-lint (FlexLint) for both 32-bit and 773104470Siwasaki64-bit versions. The Lint option files used are included in 774104470Siwasakithe /acpi/generate/lint directory. 775102550Siwasaki 776102550SiwasakiImplemented enhanced status/error checking across the entire 777102550SiwasakiHardware manager subsystem. Any hardware errors (reported 778102550Siwasakifrom the OSL) are now bubbled up and will abort a running 779102550Siwasakicontrol method. 780102550Siwasaki 781104470SiwasakiFixed a problem where the per-ACPI-table integer width (32 or 782104470Siwasaki64) was stored only with control method nodes, causing a fault 783104470Siwasakiwhen non-control method code was executed during table 784102550Siwasakiloading. The solution implemented uses a global variable to 785102550Siwasakiindicate table width across the entire ACPI subsystem. 786102550SiwasakiTherefore, ACPI CA does not support mixed integer widths 787102550Siwasakiacross different ACPI tables (DSDT, SSDT). 788102550Siwasaki 789102550SiwasakiFixed a problem where NULL extended fields (X fields) in an 790102550SiwasakiACPI 2.0 ACPI FADT caused the table load to fail. Although 791104470Siwasakithe existing ACPI specification is a bit fuzzy on this topic, 792104470Siwasakithe new behavior is to fall back on a ACPI 1.0 field if the 793104470Siwasakicorresponding ACPI 2.0 X field is zero (even though the table 794104470Siwasakirevision indicates a full ACPI 2.0 table.) The ACPI 795104470Siwasakispecification will be updated to clarify this issue. 796102550Siwasaki 797104470SiwasakiFixed a problem with the SystemMemory operation region handler 798104470Siwasakiwhere memory was always accessed byte-wise even if the AML- 799104470Siwasakispecified access width was larger than a byte. This caused 800104470Siwasakiproblems on systems with memory-mapped I/O. Memory is now 801104470Siwasakiaccessed with the width specified. On systems that do not 802104470Siwasakisupport non-aligned transfers, a check is made to guarantee 803104470Siwasakiproper address alignment before proceeding in order to avoid 804104470Siwasakian AML-caused alignment fault within the kernel. 805102550Siwasaki 806102550SiwasakiFixed a problem with the ExtendedIrq resource where only one 807102550Siwasakibyte of the 4-byte Irq field was extracted. 808102550Siwasaki 809102550SiwasakiFixed the AcpiExDigitsNeeded() procedure to support _UID. 810102550SiwasakiThis function was out of date and required a rewrite. 811102550Siwasaki 812102550SiwasakiCode and Data Size: Current core subsystem library sizes are 813102550Siwasakishown below. These are the code and data sizes for the 814104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 815104470Siwasakiand these values do not include any ACPI driver or OSPM code. 816104470SiwasakiThe debug version of the code includes the debug output trace 817104470Siwasakimechanism and has a larger code and data size. Note that 818104470Siwasakithese values will vary depending on the efficiency of the 819104470Siwasakicompiler and the compiler options used during generation. 820102550Siwasaki 821102550Siwasaki Previous Release 822104470Siwasaki Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 823104470Siwasaki Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 824102550Siwasaki Current Release: 825104470Siwasaki Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 826104470Siwasaki Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 827102550Siwasaki 828102550Siwasaki 829102550Siwasaki2) Linux 830102550Siwasaki 831102550SiwasakiPCI IRQ routing fixes (Dominik Brodowski) 832102550Siwasaki 833102550Siwasaki 834102550Siwasaki3) iASL Compiler Version X2042: 835102550Siwasaki 836104470SiwasakiImplemented an additional compile-time error check for a field 837104470Siwasakiunit whose size + minimum access width would cause a run-time 838104470Siwasakiaccess beyond the end-of-region. Previously, only the field 839104470Siwasakisize itself was checked. 840102550Siwasaki 841104470SiwasakiThe Core subsystem and iASL compiler now share a common parse 842104470Siwasakiobject in preparation for compile-time evaluation of the type 843104470Siwasaki3/4/5 ASL operators. 844102550Siwasaki 845102550Siwasaki 846102550Siwasaki---------------------------------------- 847102550SiwasakiSummary of changes for this release: 03_29_02 848102550Siwasaki 849102550Siwasaki1) ACPI CA Core Subsystem Version 20020329: 850102550Siwasaki 851104470SiwasakiImplemented support for late evaluation of TermArg operands to 852104470SiwasakiBuffer and Package objects. This allows complex expressions 853104470Siwasakito be used in the declarations of these object types. 854102550Siwasaki 855104470SiwasakiFixed an ACPI 1.0 compatibility issue when reading Fields. In 856104470SiwasakiACPI 1.0, if the field was larger than 32 bits, it was 857104470Siwasakireturned as a buffer - otherwise it was returned as an 858104470Siwasakiinteger. In ACPI 2.0, the field is returned as a buffer only 859104470Siwasakiif the field is larger than 64 bits. The TableRevision is now 860104470Siwasakiconsidered when making this conversion to avoid 861102550Siwasakiincompatibility with existing ASL code. 862102550Siwasaki 863104470SiwasakiImplemented logical addressing for AcpiOsGetRootPointer. This 864104470Siwasakiallows an RSDP with either a logical or physical address. 865104470SiwasakiWith this support, the host OS can now override all ACPI 866104470Siwasakitables with one logical RSDP. Includes implementation of 867104470Siwasaki"typed" pointer support to allow a common data type for both 868104470Siwasakiphysical and logical pointers internally. This required a 869104470Siwasakichange to the AcpiOsGetRootPointer interface. 870102550Siwasaki 871104470SiwasakiImplemented the use of ACPI 2.0 Generic Address Structures for 872104470Siwasakiall GPE, Fixed Event, and PM Timer I/O. This allows the use 873104470Siwasakiof memory mapped I/O for these ACPI features. 874102550Siwasaki 875102550SiwasakiInitialization now ignores not only non-required tables (All 876102550Siwasakitables other than the FADT, FACS, DSDT, and SSDTs), but also 877102550Siwasakidoes not validate the table headers of unrecognized tables. 878102550Siwasaki 879102550SiwasakiFixed a problem where a notify handler could only be 880102550Siwasakiinstalled/removed on an object of type Device. All "notify" 881102550Siwasakiobjects are now supported -- Devices, Processor, Power, and 882102550SiwasakiThermal. 883102550Siwasaki 884102550SiwasakiRemoved most verbosity from the ACPI_DB_INFO debug level. 885104470SiwasakiOnly critical information is returned when this debug level is 886104470Siwasakienabled. 887102550Siwasaki 888102550SiwasakiCode and Data Size: Current core subsystem library sizes are 889102550Siwasakishown below. These are the code and data sizes for the 890104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 891104470Siwasakiand these values do not include any ACPI driver or OSPM code. 892104470SiwasakiThe debug version of the code includes the debug output trace 893104470Siwasakimechanism and has a larger code and data size. Note that 894104470Siwasakithese values will vary depending on the efficiency of the 895104470Siwasakicompiler and the compiler options used during generation. 896102550Siwasaki 897102550Siwasaki Previous Release 898104470Siwasaki Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 899104470Siwasaki Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 900102550Siwasaki Current Release: 901104470Siwasaki Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 902104470Siwasaki Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 903102550Siwasaki 904102550Siwasaki 905102550Siwasaki2) Linux: 906102550Siwasaki 907102550SiwasakiThe processor driver (acpi_processor.c) now fully supports 908102550SiwasakiACPI 2.0-based processor performance control (e.g. Intel(R) 909102550SiwasakiSpeedStep(TM) technology) Note that older laptops that only 910102550Siwasakihave the Intel "applet" interface are not supported through 911102550Siwasakithis. The 'limit' and 'performance' interface (/proc) are 912102550Siwasakifully functional. [Note that basic policy for controlling 913102550Siwasakiperformance state transitions will be included in the next 914102550Siwasakiversion of ospmd.] The idle handler was modified to more 915102550Siwasakiaggressively use C2, and PIIX4 errata handling underwent a 916102550Siwasakicomplete overhaul (big thanks to Dominik Brodowski). 917102550Siwasaki 918102550SiwasakiAdded support for ACPI-PCI device binding (acpi_pci_root.c). 919102550Siwasaki_ADR-based devices in the ACPI namespace are now dynamically 920102550Siwasakibound (associated) with their PCI counterparts (e.g. PCI1- 921102550Siwasaki>01:00.0). This allows, among other things, ACPI to resolve 922102550Siwasakibus numbers for subordinate PCI bridges. 923102550Siwasaki 924104470SiwasakiEnhanced PCI IRQ routing to get the proper bus number for _PRT 925104470Siwasakientries defined underneath PCI bridges. 926102550Siwasaki 927104470SiwasakiAdded IBM 600E to bad bios list due to invalid _ADR value for 928104470SiwasakiPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing. 929102550Siwasaki 930102550SiwasakiIn the process of adding full MADT support (e.g. IOAPIC) for 931102550SiwasakiIA32 (acpi.c, mpparse.c) -- stay tuned. 932102550Siwasaki 933102550SiwasakiAdded back visual differentiation between fixed-feature and 934102550Siwasakicontrol-method buttons in dmesg. Buttons are also subtyped 935102550Siwasaki(e.g. button/power/PWRF) to simplify button identification. 936102550Siwasaki 937102550SiwasakiWe no longer use -Wno-unused when compiling debug. Please 938102550Siwasakiignore any "_THIS_MODULE defined but not used" messages. 939102550Siwasaki 940102550SiwasakiCan now shut down the system using "magic sysrq" key. 941102550Siwasaki 942102550Siwasaki 943102550Siwasaki3) iASL Compiler version 2041: 944102550Siwasaki 945104470SiwasakiFixed a problem where conversion errors for hex/octal/decimal 946104470Siwasakiconstants were not reported. 947102550Siwasaki 948102550SiwasakiImplemented a fix for the General Register template Address 949102550Siwasakifield. This field was 8 bits when it should be 64. 950102550Siwasaki 951102550SiwasakiFixed a problem where errors/warnings were no longer being 952102550Siwasakiemitted within the listing output file. 953102550Siwasaki 954104470SiwasakiImplemented the ACPI 2.0A restriction on ACPI Table Signatures 955104470Siwasakito exactly 4 characters, alphanumeric only. 956102550Siwasaki 957102550Siwasaki 958102550Siwasaki 959102550Siwasaki 960102550Siwasaki---------------------------------------- 961102550SiwasakiSummary of changes for this release: 03_08_02 962102550Siwasaki 963102550Siwasaki 964102550Siwasaki1) ACPI CA Core Subsystem Version 20020308: 965102550Siwasaki 966102550SiwasakiFixed a problem with AML Fields where the use of the 967102550Siwasaki"AccessAny" keyword could cause an interpreter error due to 968102550Siwasakiattempting to read or write beyond the end of the parent 969102550SiwasakiOperation Region. 970102550Siwasaki 971102550SiwasakiFixed a problem in the SystemMemory Operation Region handler 972104470Siwasakiwhere an attempt was made to map memory beyond the end of the 973104470Siwasakiregion. This was the root cause of the "AE_ERROR" and 974102550Siwasaki"AE_NO_MEMORY" errors on some Linux systems. 975102550Siwasaki 976102550SiwasakiFixed a problem where the interpreter/namespace "search to 977102550Siwasakiroot" algorithm was not functioning for some object types. 978102550SiwasakiRelaxed the internal restriction on the search to allow 979102550Siwasakiupsearches for all external object types as well as most 980102550Siwasakiinternal types. 981102550Siwasaki 982102550Siwasaki 983102550Siwasaki2) Linux: 984102550Siwasaki 985104470SiwasakiWe now use safe_halt() macro versus individual calls to sti | 986104470Siwasakihlt. 987102550Siwasaki 988102550SiwasakiWriting to the processor limit interface should now work. 989104470Siwasaki"echo 1" will increase the limit, 2 will decrease, and 0 will 990104470Siwasakireset to the default. 991102550Siwasaki 992102550Siwasaki 993102550Siwasaki3) ASL compiler: 994102550Siwasaki 995102550SiwasakiFixed segfault on Linux version. 996102550Siwasaki 997102550Siwasaki 998102550Siwasaki---------------------------------------- 999102550SiwasakiSummary of changes for this release: 02_25_02 1000102550Siwasaki 1001102550Siwasaki1) ACPI CA Core Subsystem: 1002102550Siwasaki 1003102550Siwasaki 1004102550SiwasakiFixed a problem where the GPE bit masks were not initialized 1005102550Siwasakiproperly, causing erratic GPE behavior. 1006102550Siwasaki 1007104470SiwasakiImplemented limited support for multiple calling conventions. 1008104470SiwasakiThe code can be generated with either the VPL (variable 1009104470Siwasakiparameter list, or "C") convention, or the FPL (fixed 1010104470Siwasakiparameter list, or "Pascal") convention. The core subsystem 1011104470Siwasakiis about 3.4% smaller when generated with FPL. 1012102550Siwasaki 1013102550Siwasaki 1014102550Siwasaki2) Linux 1015102550Siwasaki 1016102550SiwasakiRe-add some /proc/acpi/event functionality that was lost 1017102550Siwasakiduring the rewrite 1018102550Siwasaki 1019102550SiwasakiResolved issue with /proc events for fixed-feature buttons 1020102550Siwasakishowing up as the system device. 1021102550Siwasaki 1022102550SiwasakiFixed checks on C2/C3 latencies to be inclusive of maximum 1023102550Siwasakivalues. 1024102550Siwasaki 1025102550SiwasakiReplaced AE_ERRORs in acpi_osl.c with more specific error 1026102550Siwasakicodes. 1027102550Siwasaki 1028102550SiwasakiChanged ACPI PRT option from "pci=noacpi-routing" to 1029102550Siwasaki"pci=noacpi" 1030102550Siwasaki 1031104470SiwasakiFixed limit interface & usage to fix bugs with passive cooling 1032104470Siwasakihysterisis. 1033102550Siwasaki 1034102550SiwasakiRestructured PRT support. 1035102550Siwasaki 1036102550Siwasaki 1037102550Siwasaki---------------------------------------- 1038102550SiwasakiSummary of changes for this label: 02_14_02 1039102550Siwasaki 1040102550Siwasaki 1041102550Siwasaki1) ACPI CA Core Subsystem: 1042102550Siwasaki 1043104470SiwasakiImplemented support in AcpiLoadTable to allow loading of FACS 1044104470Siwasakiand FADT tables. 1045102550Siwasaki 1046102550SiwasakiSuport for the now-obsolete interim 0.71 64-bit ACPI tables 1047104470Siwasakihas been removed. All 64-bit platforms should be migrated to 1048104470Siwasakithe ACPI 2.0 tables. The actbl71.h header has been removed 1049104470Siwasakifrom the source tree. 1050102550Siwasaki 1051102550SiwasakiAll C macros defined within the subsystem have been prefixed 1052102550Siwasakiwith "ACPI_" to avoid collision with other system include 1053102550Siwasakifiles. 1054102550Siwasaki 1055102550SiwasakiRemoved the return value for the two AcpiOsPrint interfaces, 1056102550Siwasakisince it is never used and causes lint warnings for ignoring 1057102550Siwasakithe return value. 1058102550Siwasaki 1059104470SiwasakiAdded error checking to all internal mutex acquire and release 1060104470Siwasakicalls. Although a failure from one of these interfaces is 1061104470Siwasakiprobably a fatal system error, these checks will cause the 1062104470Siwasakiimmediate abort of the currently executing method or 1063104470Siwasakiinterface. 1064102550Siwasaki 1065102550SiwasakiFixed a problem where the AcpiSetCurrentResources interface 1066104470Siwasakicould fault. This was a side effect of the deployment of the 1067104470Siwasakinew memory allocation model. 1068102550Siwasaki 1069102550SiwasakiFixed a couple of problems with the Global Lock support 1070102550Siwasakiintroduced in the last major build. The "common" (1.0/2.0) 1071102550Siwasakiinternal FACS was being overwritten with the FACS signature 1072102550Siwasakiand clobbering the Global Lock pointer. Also, the actual 1073102550Siwasakifirmware FACS was being unmapped after construction of the 1074102550Siwasaki"common" FACS, preventing access to the actual Global Lock 1075102550Siwasakifield within it. The "common" internal FACS is no longer 1076102550Siwasakiinstalled as an actual ACPI table; it is used simply as a 1077102550Siwasakiglobal. 1078102550Siwasaki 1079102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1080102550Siwasakishown below. These are the code and data sizes for the 1081104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1082104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1083104470SiwasakiThe debug version of the code includes the debug output trace 1084104470Siwasakimechanism and has a larger code and data size. Note that 1085104470Siwasakithese values will vary depending on the efficiency of the 1086104470Siwasakicompiler and the compiler options used during generation. 1087102550Siwasaki 1088102550Siwasaki Previous Release (02_07_01) 1089104470Siwasaki Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total 1090104470Siwasaki Debug Version: 136.9K Code, 56.4K Data, 193.3K Total 1091102550Siwasaki Current Release: 1092104470Siwasaki Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 1093104470Siwasaki Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 1094102550Siwasaki 1095102550Siwasaki 1096102550Siwasaki2) Linux 1097102550Siwasaki 1098102550SiwasakiUpdated Linux-specific code for core macro and OSL interface 1099102550Siwasakichanges described above. 1100102550Siwasaki 1101104470SiwasakiImproved /proc/acpi/event. It now can be opened only once and 1102104470Siwasakihas proper poll functionality. 1103102550Siwasaki 1104102550SiwasakiFixed and restructured power management (acpi_bus). 1105102550Siwasaki 1106102550SiwasakiOnly create /proc "view by type" when devices of that class 1107102550Siwasakiexist. 1108102550Siwasaki 1109104470SiwasakiFixed "charging/discharging" bug (and others) in acpi_battery. 1110102550Siwasaki 1111102550SiwasakiImproved thermal zone code. 1112102550Siwasaki 1113102550Siwasaki 1114102550Siwasaki3) ASL Compiler, version X2039: 1115102550Siwasaki 1116102550SiwasakiImplemented the new compiler restriction on ASL String 1117104470Siwasakihex/octal escapes to non-null, ASCII values. An error results 1118104470Siwasakiif an invalid value is used. (This will require an ACPI 2.0 1119104470Siwasakispecification change.) 1120102550Siwasaki 1121102550SiwasakiAML object labels that are output to the optional C and ASM 1122104470Siwasakisource are now prefixed with both the ACPI table signature and 1123104470Siwasakitable ID to help guarantee uniqueness within a large BIOS 1124104470Siwasakiproject. 1125102550Siwasaki 1126102550Siwasaki 1127102550Siwasaki---------------------------------------- 1128102550SiwasakiSummary of changes for this label: 02_01_02 1129102550Siwasaki 1130102550Siwasaki1) ACPI CA Core Subsystem: 1131102550Siwasaki 1132104470SiwasakiACPI 2.0 support is complete in the entire Core Subsystem and 1133104470Siwasakithe ASL compiler. All new ACPI 2.0 operators are implemented 1134104470Siwasakiand all other changes for ACPI 2.0 support are complete. With 1135104470Siwasakisimultaneous code and data optimizations throughout the 1136104470Siwasakisubsystem, ACPI 2.0 support has been implemented with almost 1137104470Siwasakino additional cost in terms of code and data size. 1138102550Siwasaki 1139104470SiwasakiImplemented a new mechanism for allocation of return buffers. 1140104470SiwasakiIf the buffer length is set to ACPI_ALLOCATE_BUFFER, the 1141104470Siwasakibuffer will be allocated on behalf of the caller. 1142104470SiwasakiConsolidated all return buffer validation and allocation to a 1143104470Siwasakicommon procedure. Return buffers will be allocated via the 1144104470Siwasakiprimary OSL allocation interface since it appears that a 1145104470Siwasakiseparate pool is not needed by most users. If a separate pool 1146104470Siwasakiis required for these buffers, the caller can still use the 1147104470Siwasakioriginal mechanism and pre-allocate the buffer(s). 1148102550Siwasaki 1149102550SiwasakiImplemented support for string operands within the DerefOf 1150102550Siwasakioperator. 1151102550Siwasaki 1152102550SiwasakiRestructured the Hardware and Event managers to be table 1153104470Siwasakidriven, simplifying the source code and reducing the amount of 1154104470Siwasakigenerated code. 1155102550Siwasaki 1156102550SiwasakiSplit the common read/write low-level ACPI register bitfield 1157104470Siwasakiprocedure into a separate read and write, simplifying the code 1158104470Siwasakiconsiderably. 1159102550Siwasaki 1160102550SiwasakiObsoleted the AcpiOsCallocate OSL interface. This interface 1161102550Siwasakiwas used only a handful of times and didn't have enough 1162102550Siwasakicritical mass for a separate interface. Replaced with a 1163102550Siwasakicommon calloc procedure in the core. 1164102550Siwasaki 1165104470SiwasakiFixed a reported problem with the GPE number mapping mechanism 1166104470Siwasakithat allows GPE1 numbers to be non-contiguous with GPE0. 1167104470SiwasakiReorganized the GPE information and shrunk a large array that 1168104470Siwasakiwas originally large enough to hold info for all possible GPEs 1169104470Siwasaki(256) to simply large enough to hold all GPEs up to the 1170104470Siwasakilargest GPE number on the machine. 1171102550Siwasaki 1172104470SiwasakiFixed a reported problem with resource structure alignment on 1173104470Siwasaki64-bit platforms. 1174102550Siwasaki 1175102550SiwasakiChanged the AcpiEnableEvent and AcpiDisableEvent external 1176102550Siwasakiinterfaces to not require any flags for the common case of 1177102550Siwasakienabling/disabling a GPE. 1178102550Siwasaki 1179104470SiwasakiImplemented support to allow a "Notify" on a Processor object. 1180102550Siwasaki 1181102550SiwasakiMost TBDs in comments within the source code have been 1182102550Siwasakiresolved and eliminated. 1183102550Siwasaki 1184102550SiwasakiFixed a problem in the interpreter where a standalone parent 1185102550Siwasakiprefix (^) was not handled correctly in the interpreter and 1186102550Siwasakidebugger. 1187102550Siwasaki 1188102550SiwasakiRemoved obsolete and unnecessary GPE save/restore code. 1189102550Siwasaki 1190102550SiwasakiImplemented Field support in the ASL Load operator. This 1191104470Siwasakiallows a table to be loaded from a named field, in addition to 1192104470Siwasakiloading a table directly from an Operation Region. 1193102550Siwasaki 1194104470SiwasakiImplemented timeout and handle support in the external Global 1195104470SiwasakiLock interfaces. 1196102550Siwasaki 1197102550SiwasakiFixed a problem in the AcpiDump utility where pathnames were 1198102550Siwasakino longer being generated correctly during the dump of named 1199102550Siwasakiobjects. 1200102550Siwasaki 1201102550SiwasakiModified the AML debugger to give a full display of if/while 1202102550Siwasakipredicates instead of just one AML opcode at a time. (The 1203102550Siwasakipredicate can have several nested ASL statements.) The old 1204102550Siwasakimethod was confusing during single stepping. 1205102550Siwasaki 1206102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1207102550Siwasakishown below. These are the code and data sizes for the 1208104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1209104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1210104470SiwasakiThe debug version of the code includes the debug output trace 1211104470Siwasakimechanism and has a larger code and data size. Note that 1212104470Siwasakithese values will vary depending on the efficiency of the 1213104470Siwasakicompiler and the compiler options used during generation. 1214102550Siwasaki 1215102550Siwasaki Previous Release (12_18_01) 1216102550Siwasaki Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K 1217102550SiwasakiTotal 1218102550Siwasaki Debug Version: 138.3K Code, 55.9K Data, 194.2K 1219102550SiwasakiTotal 1220102550Siwasaki Current Release: 1221102550Siwasaki Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K 1222102550SiwasakiTotal 1223102550Siwasaki Debug Version: 136.9K Code, 56.4K Data, 193.3K 1224102550SiwasakiTotal 1225102550Siwasaki 1226102550Siwasaki2) Linux 1227102550Siwasaki 1228104470Siwasaki Implemented fix for PIIX reverse throttling errata (Processor 1229104470Siwasakidriver) 1230102550Siwasaki 1231102550SiwasakiAdded new Limit interface (Processor and Thermal drivers) 1232102550Siwasaki 1233102550SiwasakiNew thermal policy (Thermal driver) 1234102550Siwasaki 1235102550SiwasakiMany updates to /proc 1236102550Siwasaki 1237102550SiwasakiBattery "low" event support (Battery driver) 1238102550Siwasaki 1239104470SiwasakiSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers) 1240102550Siwasaki 1241104470SiwasakiIA32 - IA64 initialization unification, no longer experimental 1242102550Siwasaki 1243102550SiwasakiMenuconfig options redesigned 1244102550Siwasaki 1245102550Siwasaki3) ASL Compiler, version X2037: 1246102550Siwasaki 1247102550SiwasakiImplemented several new output features to simplify 1248104470Siwasakiintegration of AML code into firmware: 1) Output the AML in C 1249104470Siwasakisource code with labels for each named ASL object. The 1250102550Siwasakioriginal ASL source code is interleaved as C comments. 2) 1251104470SiwasakiOutput the AML in ASM source code with labels and interleaved 1252104470SiwasakiASL source. 3) Output the AML in raw hex table form, in 1253104470Siwasakieither C or ASM. 1254102550Siwasaki 1255102550SiwasakiImplemented support for optional string parameters to the 1256102550SiwasakiLoadTable operator. 1257102550Siwasaki 1258104470SiwasakiCompleted support for embedded escape sequences within string 1259104470Siwasakiliterals. The compiler now supports all single character 1260104470Siwasakiescapes as well as the Octal and Hex escapes. Note: the 1261104470Siwasakiinsertion of a null byte into a string literal (via the 1262104470Siwasakihex/octal escape) causes the string to be immediately 1263104470Siwasakiterminated. A warning is issued. 1264102550Siwasaki 1265104470SiwasakiFixed a problem where incorrect AML was generated for the case 1266104470Siwasakiwhere an ASL namepath consists of a single parent prefix ( 1267102550Siwasaki 1268102550Siwasaki) with no trailing name segments. 1269102550Siwasaki 1270102550SiwasakiThe compiler has been successfully generated with a 64-bit C 1271102550Siwasakicompiler. 1272102550Siwasaki 1273102550Siwasaki 1274102550Siwasaki 1275102550Siwasaki 1276102550Siwasaki---------------------------------------- 1277102550SiwasakiSummary of changes for this label: 12_18_01 1278102550Siwasaki 1279102550Siwasaki1) Linux 1280102550Siwasaki 1281102550SiwasakiEnhanced blacklist with reason and severity fields. Any 1282102550Siwasakitable's signature may now be used to identify a blacklisted 1283102550Siwasakisystem. 1284102550Siwasaki 1285102550SiwasakiCall _PIC control method to inform the firmware which 1286102550Siwasakiinterrupt model the OS is using. Turn on any disabled link 1287102550Siwasakidevices. 1288102550Siwasaki 1289102550SiwasakiCleaned up busmgr /proc error handling (Andreas Dilger) 1290102550Siwasaki 1291102550Siwasaki 2) ACPI CA Core Subsystem: 1292102550Siwasaki 1293104470SiwasakiImplemented ACPI 2.0 semantics for the "Break" operator (Exit 1294104470Siwasakifrom while loop) 1295102550Siwasaki 1296102550SiwasakiCompleted implementation of the ACPI 2.0 "Continue", 1297102550Siwasaki"ConcatenateResTemplate", "DataTableRegion", and "LoadTable" 1298104470Siwasakioperators. All new ACPI 2.0 operators are now implemented in 1299104470Siwasakiboth the ASL compiler and the AML interpreter. The only 1300104470Siwasakiremaining ACPI 2.0 task is support for the String data type in 1301104470Siwasakithe DerefOf operator. Fixed a problem with AcquireMutex where 1302104470Siwasakithe status code was lost if the caller had to actually wait 1303104470Siwasakifor the mutex. 1304102550Siwasaki 1305104470SiwasakiIncreased the maximum ASL Field size from 64K bits to 4G bits. 1306102550Siwasaki 1307102550SiwasakiCompleted implementation of the external Global Lock 1308104470Siwasakiinterfaces -- AcpiAcquireGlobalLock and AcpiReleaseGlobalLock. 1309104470SiwasakiThe Timeout and Handler parameters were added. 1310102550Siwasaki 1311102550SiwasakiCompleted another pass at removing warnings and issues when 1312102550Siwasakicompiling with 64-bit compilers. The code now compiles 1313102550Siwasakicleanly with the Intel 64-bit C/C++ compiler. Most notably, 1314102550Siwasakithe pointer add and subtract (diff) macros have changed 1315102550Siwasakiconsiderably. 1316102550Siwasaki 1317104470SiwasakiCreated and deployed a new ACPI_SIZE type that is 64-bits wide 1318104470Siwasakion 64-bit platforms, 32-bits on all others. This type is used 1319104470Siwasakiwherever memory allocation and/or the C sizeof() operator is 1320104470Siwasakiused, and affects the OSL memory allocation interfaces 1321104470SiwasakiAcpiOsAllocate and AcpiOsCallocate. 1322102550Siwasaki 1323102550SiwasakiImplemented sticky user breakpoints in the AML debugger. 1324102550Siwasaki 1325102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1326102550Siwasakishown below. These are the code and data sizes for the 1327104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1328104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1329104470SiwasakiThe debug version of the code includes the debug output trace 1330104470Siwasakimechanism and has a larger code and data size. Note that these 1331104470Siwasakivalues will vary depending on the efficiency of the compiler 1332104470Siwasakiand the compiler options used during generation. 1333102550Siwasaki 1334102550Siwasaki Previous Release (12_05_01) 1335102550Siwasaki Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K 1336102550SiwasakiTotal 1337102550Siwasaki Debug Version: 136.2K Code, 55.6K Data, 191.8K 1338102550SiwasakiTotal 1339102550Siwasaki Current Release: 1340102550Siwasaki Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K 1341102550SiwasakiTotal 1342102550Siwasaki Debug Version: 138.3K Code, 55.9K Data, 194.2K 1343102550SiwasakiTotal 1344102550Siwasaki 1345102550Siwasaki 3) ASL Compiler, version X2034: 1346102550Siwasaki 1347104470SiwasakiNow checks for (and generates an error if detected) the use of 1348104470Siwasakia Break or Continue statement without an enclosing While 1349102550Siwasakistatement. 1350102550Siwasaki 1351102550SiwasakiSuccessfully generated the compiler with the Intel 64-bit C 1352102550Siwasakicompiler. 1353102550Siwasaki 1354102550Siwasaki ---------------------------------------- 1355102550SiwasakiSummary of changes for this label: 12_05_01 1356102550Siwasaki 1357102550Siwasaki 1) ACPI CA Core Subsystem: 1358102550Siwasaki 1359102550SiwasakiThe ACPI 2.0 CopyObject operator is fully implemented. This 1360104470Siwasakioperator creates a new copy of an object (and is also used to 1361104470Siwasakibypass the "implicit conversion" mechanism of the Store 1362102550Siwasakioperator.) 1363102550Siwasaki 1364102550SiwasakiThe ACPI 2.0 semantics for the SizeOf operator are fully 1365102550Siwasakiimplemented. The change is that performing a SizeOf on a 1366104470Siwasakireference object causes an automatic dereference of the object 1367104470Siwasakito tha actual value before the size is evaluated. This 1368104470Siwasakibehavior was undefined in ACPI 1.0. 1369102550Siwasaki 1370102550SiwasakiThe ACPI 2.0 semantics for the Extended IRQ resource 1371104470Siwasakidescriptor have been implemented. The interrupt polarity and 1372104470Siwasakimode are now independently set. 1373102550Siwasaki 1374102550SiwasakiFixed a problem where ASL Constants (Zero, One, Ones, 1375102550SiwasakiRevision) appearing in Package objects were not properly 1376104470Siwasakiconverted to integers when the internal Package was converted 1377104470Siwasakito an external object (via the AcpiEvaluateObject interface.) 1378102550Siwasaki 1379102550SiwasakiFixed a problem with the namespace object deletion mechanism 1380104470Siwasakifor objects created by control methods. There were two parts 1381104470Siwasakito this problem: 1) Objects created during the initialization 1382104470Siwasakiphase method parse were not being deleted, and 2) The object 1383104470Siwasakiowner ID mechanism to track objects was broken. 1384102550Siwasaki 1385104470SiwasakiFixed a problem where the use of the ASL Scope operator within 1386104470Siwasakia control method would result in an invalid opcode exception. 1387102550Siwasaki 1388102550SiwasakiFixed a problem introduced in the previous label where the 1389102550Siwasakibuffer length required for the _PRT structure was not being 1390102550Siwasakireturned correctly. 1391102550Siwasaki 1392102550SiwasakiCode and Data Size: Current core subsystem library sizes are 1393102550Siwasakishown below. These are the code and data sizes for the 1394104470Siwasakiacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, 1395104470Siwasakiand these values do not include any ACPI driver or OSPM code. 1396104470SiwasakiThe debug version of the code includes the debug output trace 1397104470Siwasakimechanism and has a larger code and data size. Note that 1398104470Siwasakithese values will vary depending on the efficiency of the 1399104470Siwasakicompiler and the compiler options used during generation. 1400102550Siwasaki 1401102550Siwasaki Previous Release (11_20_01) 1402102550Siwasaki Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K 1403102550SiwasakiTotal 1404102550Siwasaki Debug Version: 135.1K Code, 55.4K Data, 190.5K 1405102550SiwasakiTotal 1406102550Siwasaki 1407102550Siwasaki Current Release: 1408102550Siwasaki Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K 1409102550SiwasakiTotal 1410102550Siwasaki Debug Version: 136.2K Code, 55.6K Data, 191.8K 1411102550SiwasakiTotal 1412102550Siwasaki 1413102550Siwasaki 2) Linux: 1414102550Siwasaki 1415102550SiwasakiUpdated all files to apply cleanly against 2.4.16. 1416102550Siwasaki 1417104470SiwasakiAdded basic PCI Interrupt Routing Table (PRT) support for IA32 1418104470Siwasaki(acpi_pci.c), and unified the PRT code for IA32 and IA64. 1419104470SiwasakiThis version supports both static and dyanmic PRT entries, but 1420104470Siwasakidynamic entries are treated as if they were static (not yet 1421104470Siwasakireconfigurable). Architecture- specific code to use this data 1422104470Siwasakiis absent on IA32 but should be available shortly. 1423102550Siwasaki 1424102550SiwasakiChanged the initialization sequence to start the ACPI 1425102550Siwasakiinterpreter (acpi_init) prior to initialization of the PCI 1426102550Siwasakidriver (pci_init) in init/main.c. This ordering is required 1427102550Siwasakito support PRT and facilitate other (future) enhancement. A 1428102550Siwasakiside effect is that the ACPI bus driver and certain device 1429102550Siwasakidrivers can no longer be loaded as modules. 1430102550Siwasaki 1431104470SiwasakiModified the 'make menuconfig' options to allow PCI Interrupt 1432104470SiwasakiRouting support to be included without the ACPI Bus and other 1433104470Siwasakidevice drivers. 1434102550Siwasaki 1435102550Siwasaki 3) ASL Compiler, version X2033: 1436102550Siwasaki 1437102550SiwasakiFixed some issues with the use of the new CopyObject and 1438102550SiwasakiDataTableRegion operators. Both are fully functional. 1439102550Siwasaki 1440102550Siwasaki ---------------------------------------- 1441102550SiwasakiSummary of changes for this label: 11_20_01 1442102550Siwasaki 1443102550Siwasaki 20 November 2001. Summary of changes for this release. 1444102550Siwasaki 1445102550Siwasaki 1) ACPI CA Core Subsystem: 1446102550Siwasaki 1447104470SiwasakiUpdated Index support to match ACPI 2.0 semantics. Storing a 1448104470SiwasakiInteger, String, or Buffer to an Index of a Buffer will store 1449104470Siwasakionly the least-significant byte of the source to the Indexed 1450104470Siwasakibuffer byte. Multiple writes are not performed. 1451102550Siwasaki 1452104470SiwasakiFixed a problem where the access type used in an AccessAs ASL 1453104470Siwasakioperator was not recorded correctly into the field object. 1454102550Siwasaki 1455102550SiwasakiFixed a problem where ASL Event objects were created in a 1456102550Siwasakisignalled state. Events are now created in an unsignalled 1457102550Siwasakistate. 1458102550Siwasaki 1459102550SiwasakiThe internal object cache is now purged after table loading 1460104470Siwasakiand initialization to reduce the use of dynamic kernel memory 1461104470Siwasaki-- on the assumption that object use is greatest during the 1462104470Siwasakiparse phase of the entire table (versus the run-time use of 1463104470Siwasakiindividual control methods.) 1464102550Siwasaki 1465102550SiwasakiACPI 2.0 variable-length packages are now fully operational. 1466102550Siwasaki 1467104470SiwasakiCode and Data Size: Code and Data optimizations have permitted 1468104470Siwasakinew feature development with an actual reduction in the 1469104470Siwasakilibrary size. Current core subsystem library sizes are shown 1470104470Siwasakibelow. These are the code and data sizes for the acpica.lib 1471104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these 1472104470Siwasakivalues do not include any ACPI driver or OSPM code. The debug 1473104470Siwasakiversion of the code includes the debug output trace mechanism 1474104470Siwasakiand has a larger code and data size. Note that these values 1475104470Siwasakiwill vary depending on the efficiency of the compiler and the 1476104470Siwasakicompiler options used during generation. 1477102550Siwasaki 1478102550Siwasaki Previous Release (11_09_01): 1479102550Siwasaki Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K 1480102550SiwasakiTotal 1481102550Siwasaki Debug Version: 134.5K Code, 55.4K Data, 189.9K 1482102550SiwasakiTotal 1483102550Siwasaki 1484102550Siwasaki Current Release: 1485102550Siwasaki Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K 1486102550SiwasakiTotal 1487102550Siwasaki Debug Version: 135.1K Code, 55.4K Data, 190.5K 1488102550SiwasakiTotal 1489102550Siwasaki 1490102550Siwasaki 2) Linux: 1491102550Siwasaki 1492102550SiwasakiEnhanced the ACPI boot-time initialization code to allow the 1493102550Siwasakiuse of Local APIC tables for processor enumeration on IA-32, 1494104470Siwasakiand to pave the way for a fully MPS-free boot (on SMP systems) 1495104470Siwasakiin the near future. This functionality replaces 1496102550Siwasakiarch/i386/kernel/acpitables.c, which was introduced in an 1497104470Siwasakiearlier 2.4.15-preX release. To enable this feature you must 1498104470Siwasakiadd "acpi_boot=on" to the kernel command line -- see the help 1499104470Siwasakientry for CONFIG_ACPI_BOOT for more information. An IA-64 1500104470Siwasakirelease is in the works... 1501102550Siwasaki 1502102550SiwasakiRestructured the configuration options to allow boot-time 1503102550Siwasakitable parsing support without inclusion of the ACPI 1504102550SiwasakiInterpreter (and other) code. 1505102550Siwasaki 1506102550SiwasakiNOTE: This release does not include fixes for the reported 1507104470Siwasakievents, power-down, and thermal passive cooling issues (coming 1508104470Siwasakisoon). 1509102550Siwasaki 1510102550Siwasaki 3) ASL Compiler: 1511102550Siwasaki 1512102550SiwasakiAdded additional typechecking for Fields within restricted 1513102550Siwasakiaccess Operation Regions. All fields within EC and CMOS 1514102550Siwasakiregions must be declared with ByteAcc. All fields withing 1515104470SiwasakiSMBus regions must be declared with the BufferAcc access type. 1516102550Siwasaki 1517102550SiwasakiFixed a problem where the listing file output of control 1518104470Siwasakimethods no longer interleaved the actual AML code with the ASL 1519104470Siwasakisource code. 1520102550Siwasaki 1521102550Siwasaki 1522102550Siwasaki 1523102550Siwasaki---------------------------------------- 1524102550SiwasakiSummary of changes for this label: 11_09_01 1525102550Siwasaki 1526102550Siwasaki1) ACPI CA Core Subsystem: 1527102550Siwasaki 1528104470SiwasakiImplemented ACPI 2.0-defined support for writes to fields with 1529104470Siwasakia Buffer, String, or Integer source operand that is smaller 1530104470Siwasakithan the target field. In these cases, the source operand is 1531104470Siwasakizero-extended to fill the target field. 1532102550Siwasaki 1533104470SiwasakiFixed a problem where a Field starting bit offset (within the 1534104470Siwasakiparent operation region) was calculated incorrectly if the 1535104470Siwasakialignment of the field differed from the access width. This 1536104470Siwasakiaffected CreateWordField, CreateDwordField, CreateQwordField, 1537104470Siwasakiand possibly other fields that use the "AccessAny" keyword. 1538102550Siwasaki 1539102550SiwasakiFixed a problem introduced in the 11_02_01 release where 1540102550Siwasakiindirect stores through method arguments did not operate 1541102550Siwasakicorrectly. 1542102550Siwasaki 1543102550Siwasaki2) Linux: 1544102550Siwasaki 1545102550SiwasakiImplemented boot-time ACPI table parsing support 1546102550Siwasaki(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This 1547102550Siwasakicode facilitates the use of ACPI tables (e.g. MADT, SRAT) 1548102550Siwasakirather than legacy BIOS interfaces (e.g. MPS) for the 1549102550Siwasakiconfiguration of system processors, memory, and interrupts 1550102550Siwasakiduring setup_arch(). Note that this patch does not include 1551102550Siwasakithe required architecture-specific changes required to apply 1552104470Siwasakithis information -- subsequent patches will be posted for both 1553104470SiwasakiIA32 and IA64 to achieve this. 1554102550Siwasaki 1555104470SiwasakiAdded low-level sleep support for IA32 platforms, courtesy of 1556104470SiwasakiPat Mochel. This allows IA32 systems to transition to/from 1557104470Siwasakivarious sleeping states (e.g. S1, S3), although the lack of a 1558104470Siwasakicentralized driver model and power-manageable drivers will 1559104470Siwasakiprevent its (successful) use on most systems. 1560102550Siwasaki 1561102550SiwasakiRevamped the ACPI 'menuconfig' layout: created new "ACPI 1562102550SiwasakiSupport" submenu, unified IA32 and IA64 options, added new 1563102550Siwasaki"Boot using ACPI tables" option, etc. 1564102550Siwasaki 1565102550SiwasakiIncreased the default timeout for the EC driver from 1ms to 1566102550Siwasaki10ms (1000 cycles of 10us) to try to address AE_TIME errors 1567102550Siwasakiduring EC transactions. 1568102550Siwasaki 1569102550Siwasaki ---------------------------------------- 1570102550SiwasakiSummary of changes for this label: 11_02_01 1571102550Siwasaki 1572102550Siwasaki1) ACPI CA Core Subsystem: 1573102550Siwasaki 1574102550SiwasakiACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access 1575102550Siwasaki(QWordAcc keyword). All ACPI 2.0 64-bit support is now 1576102550Siwasakiimplemented. 1577102550Siwasaki 1578102550SiwasakiOSL Interfaces: Several of the OSL (AcpiOs*) interfaces 1579102550Siwasakirequired changes to support ACPI 2.0 Qword field access. 1580102550SiwasakiRead/Write PciConfiguration(), Read/Write Memory(), and 1581104470SiwasakiRead/Write Port() now accept an ACPI_INTEGER (64 bits) as the 1582104470Siwasakivalue parameter. Also, the value parameter for the address 1583104470Siwasakispace handler interface is now an ACPI_INTEGER. OSL 1584102550Siwasakiimplementations of these interfaces must now handle the case 1585102550Siwasakiwhere the Width parameter is 64. 1586102550Siwasaki 1587104470SiwasakiIndex Fields: Fixed a problem where unaligned bit assembly and 1588104470Siwasakidisassembly for IndexFields was not supported correctly. 1589102550Siwasaki 1590102550SiwasakiIndex and Bank Fields: Nested Index and Bank Fields are now 1591104470Siwasakisupported. During field access, a check is performed to ensure 1592104470Siwasakithat the value written to an Index or Bank register is not out 1593104470Siwasakiof the range of the register. The Index (or Bank) register is 1594104470Siwasakiwritten before each access to the field data. Future support 1595104470Siwasakiwill include allowing individual IndexFields to be wider than 1596104470Siwasakithe DataRegister width. 1597102550Siwasaki 1598102550SiwasakiFields: Fixed a problem where the AML interpreter was 1599102550Siwasakiincorrectly attempting to write beyond the end of a 1600104470SiwasakiField/OpRegion. This was a boundary case that occurred when a 1601104470SiwasakiDWORD field was written to a BYTE access OpRegion, forcing 1602104470Siwasakimultiple writes and causing the interpreter to write one datum 1603104470Siwasakitoo many. 1604102550Siwasaki 1605102550SiwasakiFields: Fixed a problem with Field/OpRegion access where the 1606104470Siwasakistarting bit address of a field was incorrectly calculated if 1607104470Siwasakithe current access type was wider than a byte (WordAcc, 1608102550SiwasakiDwordAcc, or QwordAcc). 1609102550Siwasaki 1610104470SiwasakiFields: Fixed a problem where forward references to individual 1611104470SiwasakiFieldUnits (individual Field names within a Field definition) 1612102550Siwasakiwere not resolved during the AML table load. 1613102550Siwasaki 1614104470SiwasakiFields: Fixed a problem where forward references from a Field 1615104470Siwasakidefinition to the parent Operation Region definition were not 1616104470Siwasakiresolved during the AML table load. 1617104470Siwasaki 1618102550SiwasakiFields: Duplicate FieldUnit names within a scope are now 1619102550Siwasakidetected during AML table load. 1620102550Siwasaki 1621102550SiwasakiAcpi Interfaces: Fixed a problem where the AcpiGetName() 1622102550Siwasakiinterface returned an incorrect name for the root node. 1623102550Siwasaki 1624104470SiwasakiCode and Data Size: Code and Data optimizations have permitted 1625104470Siwasakinew feature development with an actual reduction in the 1626104470Siwasakilibrary size. Current core subsystem library sizes are shown 1627104470Siwasakibelow. These are the code and data sizes for the acpica.lib 1628104470Siwasakiproduced by the Microsoft Visual C++ 6.0 compiler, and these 1629104470Siwasakivalues do not include any ACPI driver or OSPM code. The debug 1630104470Siwasakiversion of the code includes the debug output trace mechanism 1631104470Siwasakiand has a larger code and data size. Note that these values 1632104470Siwasakiwill vary depending on the efficiency of the compiler and the 1633104470Siwasakicompiler options used during generation. 1634102550Siwasaki 1635102550Siwasaki Previous Release (10_18_01): 1636102550Siwasaki Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K 1637102550SiwasakiTotal 1638102550Siwasaki Debug Version: 136.7K Code, 57.4K Data, 194.2K 1639102550SiwasakiTotal 1640102550Siwasaki 1641102550Siwasaki Current Release: 1642102550Siwasaki Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K 1643102550SiwasakiTotal 1644102550Siwasaki Debug Version: 134.5K Code, 55.4K Data, 189.9K 1645102550SiwasakiTotal 1646102550Siwasaki 1647102550Siwasaki 2) Linux: 1648102550Siwasaki 1649102550SiwasakiImproved /proc processor output (Pavel Machek) Re-added 1650102550SiwasakiMODULE_LICENSE("GPL") to all modules. 1651102550Siwasaki 1652102550Siwasaki 3) ASL Compiler version X2030: 1653102550Siwasaki 1654104470SiwasakiDuplicate FieldUnit names within a scope are now detected and 1655104470Siwasakiflagged as errors. 1656102550Siwasaki 1657102550Siwasaki 4) Documentation: 1658102550Siwasaki 1659104470SiwasakiProgrammer Reference updated to reflect OSL and address space 1660104470Siwasakihandler interface changes described above. 1661102550Siwasaki 1662102550Siwasaki---------------------------------------- 1663102550SiwasakiSummary of changes for this label: 10_18_01 1664102550Siwasaki 1665102550SiwasakiACPI CA Core Subsystem: 1666102550Siwasaki 1667102550SiwasakiFixed a problem with the internal object reference count 1668104470Siwasakimechanism that occasionally caused premature object deletion. 1669104470SiwasakiThis resolves all of the outstanding problem reports where an 1670104470Siwasakiobject is deleted in the middle of an interpreter evaluation. 1671104470SiwasakiAlthough this problem only showed up in rather obscure cases, 1672104470Siwasakithe solution to the problem involved an adjustment of all 1673104470Siwasakireference counts involving objects attached to namespace 1674104470Siwasakinodes. 1675102550Siwasaki 1676102550SiwasakiFixed a problem with Field support in the interpreter where 1677104470Siwasakiwriting to an aligned field whose length is an exact multiple 1678104470Siwasaki(2 or greater) of the field access granularity would cause an 1679104470Siwasakiattempt to write beyond the end of the field. 1680102550Siwasaki 1681102550SiwasakiThe top level AML opcode execution functions within the 1682102550Siwasakiinterpreter have been renamed with a more meaningful and 1683102550Siwasakiconsistent naming convention. The modules exmonad.c and 1684102550Siwasakiexdyadic.c were eliminated. New modules are exoparg1.c, 1685102550Siwasakiexoparg2.c, exoparg3.c, and exoparg6.c. 1686102550Siwasaki 1687102550SiwasakiSupport for the ACPI 2.0 "Mid" ASL operator has been 1688102550Siwasakiimplemented. 1689102550Siwasaki 1690102550SiwasakiFixed a problem where the AML debugger was causing some 1691102550Siwasakiinternal objects to not be deleted during subsystem 1692102550Siwasakitermination. 1693102550Siwasaki 1694104470SiwasakiFixed a problem with the external AcpiEvaluateObject interface 1695104470Siwasakiwhere the subsystem would fault if the named object to be 1696104470Siwasakievaluated refered to a constant such as Zero, Ones, etc. 1697102550Siwasaki 1698102550SiwasakiFixed a problem with IndexFields and BankFields where the 1699102550Siwasakisubsystem would fault if the index, data, or bank registers 1700102550Siwasakiwere not defined in the same scope as the field itself. 1701102550Siwasaki 1702104470SiwasakiAdded printf format string checking for compilers that support 1703104470Siwasakithis feature. Corrected more than 50 instances of issues with 1704104470Siwasakiformat specifiers within invocations of ACPI_DEBUG_PRINT 1705104470Siwasakithroughout the core subsystem code. 1706102550Siwasaki 1707104470SiwasakiThe ASL "Revision" operator now returns the ACPI support level 1708104470Siwasakiimplemented in the core - the value "2" since the ACPI 2.0 1709104470Siwasakisupport is more than 50% implemented. 1710102550Siwasaki 1711102550SiwasakiEnhanced the output of the AML debugger "dump namespace" 1712102550Siwasakicommand to output in a more human-readable form. 1713102550Siwasaki 1714102550SiwasakiCurrent core subsystem library code sizes are shown below. 1715104470SiwasakiThese are the code and data sizes for the acpica.lib produced 1716104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 1717104470Siwasakinot include any ACPI driver or OSPM code. The debug version 1718104470Siwasakiof the code includes the full debug trace mechanism -- leading 1719104470Siwasakito a much larger code and data size. Note that these values 1720104470Siwasakiwill vary depending on the efficiency of the compiler and the 1721104470Siwasakicompiler options used during generation. 1722102550Siwasaki 1723102550Siwasaki Previous Label (09_20_01): 1724102550Siwasaki Non-Debug Version: 65K Code, 5K Data, 70K 1725102550SiwasakiTotal 1726102550Siwasaki Debug Version: 138K Code, 58K Data, 196K 1727102550SiwasakiTotal 1728102550Siwasaki 1729102550Siwasaki This Label: 1730102550Siwasaki Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K 1731102550SiwasakiTotal 1732102550Siwasaki Debug Version: 136.7K Code, 57.4K Data, 194.2K 1733102550SiwasakiTotal 1734102550Siwasaki 1735102550SiwasakiLinux: 1736102550Siwasaki 1737104470SiwasakiImplemented a "Bad BIOS Blacklist" to track machines that have 1738104470Siwasakiknown ASL/AML problems. 1739102550Siwasaki 1740102550SiwasakiEnhanced the /proc interface for the thermal zone driver and 1741104470Siwasakiadded support for _HOT (the critical suspend trip point). The 1742104470Siwasaki'info' file now includes threshold/policy information, and 1743104470Siwasakiallows setting of _SCP (cooling preference) and _TZP (polling 1744104470Siwasakifrequency) values to the 'info' file. Examples: "echo tzp=5 > 1745104470Siwasakiinfo" sets the polling frequency to 5 seconds, and "echo scp=1 1746104470Siwasaki> info" sets the cooling preference to the passive/quiet mode 1747104470Siwasaki(if supported by the ASL). 1748102550Siwasaki 1749104470SiwasakiImplemented a workaround for a gcc bug that resuted in an OOPs 1750104470Siwasakiwhen loading the control method battery driver. 1751102550Siwasaki 1752102550Siwasaki ---------------------------------------- 1753102550SiwasakiSummary of changes for this label: 09_20_01 1754102550Siwasaki 1755102550Siwasaki ACPI CA Core Subsystem: 1756102550Siwasaki 1757104470SiwasakiThe AcpiEnableEvent and AcpiDisableEvent interfaces have been 1758104470Siwasakimodified to allow individual GPE levels to be flagged as wake- 1759104470Siwasakienabled (i.e., these GPEs are to remain enabled when the 1760104470Siwasakiplatform sleeps.) 1761102550Siwasaki 1762104470SiwasakiThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now 1763104470Siwasakisupport wake-enabled GPEs. This means that upon entering the 1764104470Siwasakisleep state, all GPEs that are not wake-enabled are disabled. 1765104470SiwasakiWhen leaving the sleep state, these GPEs are reenabled. 1766102550Siwasaki 1767102550SiwasakiA local double-precision divide/modulo module has been added 1768102550Siwasakito enhance portability to OS kernels where a 64-bit math 1769102550Siwasakilibrary is not available. The new module is "utmath.c". 1770102550Siwasaki 1771104470SiwasakiSeveral optimizations have been made to reduce the use of CPU 1772104470Siwasakistack. Originally over 2K, the maximum stack usage is now 1773104470Siwasakibelow 2K at 1860 bytes (1.82k) 1774102550Siwasaki 1775104470SiwasakiFixed a problem with the AcpiGetFirmwareTable interface where 1776104470Siwasakithe root table pointer was not mapped into a logical address 1777104470Siwasakiproperly. 1778102550Siwasaki 1779104470SiwasakiFixed a problem where a NULL pointer was being dereferenced in 1780104470Siwasakithe interpreter code for the ASL Notify operator. 1781102550Siwasaki 1782102550SiwasakiFixed a problem where the use of the ASL Revision operator 1783102550Siwasakireturned an error. This operator now returns the current 1784102550Siwasakiversion of the ACPI CA core subsystem. 1785102550Siwasaki 1786102550SiwasakiFixed a problem where objects passed as control method 1787104470Siwasakiparameters to AcpiEvaluateObject were always deleted at method 1788104470Siwasakitermination. However, these objects may end up being stored 1789104470Siwasakiinto the namespace by the called method. The object reference 1790104470Siwasakicount mechanism was applied to these objects instead of a 1791104470Siwasakiforce delete. 1792102550Siwasaki 1793104470SiwasakiFixed a problem where static strings or buffers (contained in 1794104470Siwasakithe AML code) that are declared as package elements within the 1795104470SiwasakiASL code could cause a fault because the interpreter would 1796104470Siwasakiattempt to delete them. These objects are now marked with the 1797104470Siwasaki"static object" flag to prevent any attempt to delete them. 1798102550Siwasaki 1799102550SiwasakiImplemented an interpreter optimization to use operands 1800102550Siwasakidirectly from the state object instead of extracting the 1801104470Siwasakioperands to local variables. This reduces stack use and code 1802104470Siwasakisize, and improves performance. 1803102550Siwasaki 1804102550SiwasakiThe module exxface.c was eliminated as it was an unnecessary 1805102550Siwasakiextra layer of code. 1806102550Siwasaki 1807102550SiwasakiCurrent core subsystem library code sizes are shown below. 1808104470SiwasakiThese are the code and data sizes for the acpica.lib produced 1809104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 1810104470Siwasakinot include any ACPI driver or OSPM code. The debug version 1811104470Siwasakiof the code includes the full debug trace mechanism -- leading 1812104470Siwasakito a much larger code and data size. Note that these values 1813104470Siwasakiwill vary depending on the efficiency of the compiler and the 1814104470Siwasakicompiler options used during generation. 1815102550Siwasaki 1816102550Siwasaki Non-Debug Version: 65K Code, 5K Data, 70K Total 1817102550Siwasaki(Previously 69K) Debug Version: 138K Code, 58K Data, 1818102550Siwasaki196K Total (Previously 195K) 1819102550Siwasaki 1820102550SiwasakiLinux: 1821102550Siwasaki 1822102550SiwasakiSupport for ACPI 2.0 64-bit integers has been added. All 1823102550SiwasakiACPI Integer objects are now 64 bits wide 1824102550Siwasaki 1825102550SiwasakiAll Acpi data types and structures are now in lower case. 1826102550SiwasakiOnly Acpi macros are upper case for differentiation. 1827102550Siwasaki 1828102550Siwasaki Documentation: 1829102550Siwasaki 1830102550SiwasakiChanges to the external interfaces as described above. 1831102550Siwasaki 1832102550Siwasaki ---------------------------------------- 1833102550SiwasakiSummary of changes for this label: 08_31_01 1834102550Siwasaki 1835102550Siwasaki ACPI CA Core Subsystem: 1836102550Siwasaki 1837102550SiwasakiA bug with interpreter implementation of the ASL Divide 1838102550Siwasakioperator was found and fixed. The implicit function return 1839102550Siwasakivalue (not the explicit store operands) was returning the 1840102550Siwasakiremainder instead of the quotient. This was a longstanding 1841102550Siwasakibug and it fixes several known outstanding issues on various 1842102550Siwasakiplatforms. 1843102550Siwasaki 1844104470SiwasakiThe ACPI_DEBUG_PRINT and function trace entry/exit macros have 1845104470Siwasakibeen further optimized for size. There are 700 invocations of 1846104470Siwasakithe DEBUG_PRINT macro alone, so each optimization reduces the 1847104470Siwasakisize of the debug version of the subsystem significantly. 1848102550Siwasaki 1849102550SiwasakiA stack trace mechanism has been implemented. The maximum 1850102550Siwasakistack usage is about 2K on 32-bit platforms. The debugger 1851102550Siwasakicommand "stat stack" will display the current maximum stack 1852102550Siwasakiusage. 1853102550Siwasaki 1854102550SiwasakiAll public symbols and global variables within the subsystem 1855102550Siwasakiare now prefixed with the string "Acpi". This keeps all of 1856102550Siwasakithe symbols grouped together in a kernel map, and avoids 1857102550Siwasakiconflicts with other kernel subsystems. 1858102550Siwasaki 1859104470SiwasakiMost of the internal fixed lookup tables have been moved into 1860104470Siwasakithe code segment via the const operator. 1861102550Siwasaki 1862104470SiwasakiSeveral enhancements have been made to the interpreter to both 1863104470Siwasakireduce the code size and improve performance. 1864102550Siwasaki 1865102550SiwasakiCurrent core subsystem library code sizes are shown below. 1866104470SiwasakiThese are the code and data sizes for the acpica.lib produced 1867104470Siwasakiby the Microsoft Visual C++ 6.0 compiler, and these values do 1868104470Siwasakinot include any ACPI driver or OSPM code. The debug version 1869104470Siwasakiof the code includes the full debug trace mechanism which 1870104470Siwasakicontains over 700 invocations of the DEBUG_PRINT macro, 500 1871104470Siwasakifunction entry macro invocations, and over 900 function exit 1872104470Siwasakimacro invocations -- leading to a much larger code and data 1873104470Siwasakisize. Note that these values will vary depending on the 1874104470Siwasakiefficiency of the compiler and the compiler options used 1875104470Siwasakiduring generation. 1876102550Siwasaki 1877102550Siwasaki Non-Debug Version: 64K Code, 5K Data, 69K Total 1878102550SiwasakiDebug Version: 137K Code, 58K Data, 195K Total 1879102550Siwasaki 1880102550Siwasaki Linux: 1881102550Siwasaki 1882104470SiwasakiImplemented wbinvd() macro, pending a kernel-wide definition. 1883102550Siwasaki 1884102550SiwasakiFixed /proc/acpi/event to handle poll() and short reads. 1885102550Siwasaki 1886102550Siwasaki ASL Compiler, version X2026: 1887102550Siwasaki 1888104470SiwasakiFixed a problem introduced in the previous label where the AML 1889104470Siwasakicode emitted for package objects produced packages with zero 1890104470Siwasakilength. 1891102550Siwasaki 1892102550Siwasaki ---------------------------------------- 1893102550SiwasakiSummary of changes for this label: 08_16_01 1894102550Siwasaki 1895102550SiwasakiACPI CA Core Subsystem: 1896102550Siwasaki 1897104470SiwasakiThe following ACPI 2.0 ASL operators have been implemented in 1898104470Siwasakithe AML interpreter (These are already supported by the Intel 1899104470SiwasakiASL compiler): ToDecimalString, ToHexString, ToString, 1900104470SiwasakiToInteger, and ToBuffer. Support for 64-bit AML constants is 1901104470Siwasakiimplemented in the AML parser, debugger, and disassembler. 1902102550Siwasaki 1903102550SiwasakiThe internal memory tracking mechanism (leak detection code) 1904102550Siwasakihas been upgraded to reduce the memory overhead (a separate 1905102550Siwasakitracking block is no longer allocated for each memory 1906102550Siwasakiallocation), and now supports all of the internal object 1907102550Siwasakicaches. 1908102550Siwasaki 1909102550SiwasakiThe data structures and code for the internal object caches 1910102550Siwasakihave been coelesced and optimized so that there is a single 1911102550Siwasakicache and memory list data structure and a single group of 1912102550Siwasakifunctions that implement generic cache management. This has 1913102550Siwasakireduced the code size in both the debug and release versions 1914102550Siwasakiof the subsystem. 1915102550Siwasaki 1916102550SiwasakiThe DEBUG_PRINT macro(s) have been optimized for size and 1917102550Siwasakireplaced by ACPI_DEBUG_PRINT. The syntax for this macro is 1918102550Siwasakislightly different, because it generates a single call to an 1919102550Siwasakiinternal function. This results in a savings of about 90 1920102550Siwasakibytes per invocation, resulting in an overall code and data 1921102550Siwasakisavings of about 16% in the debug version of the subsystem. 1922102550Siwasaki 1923102550Siwasaki Linux: 1924102550Siwasaki 1925102550SiwasakiFixed C3 disk corruption problems and re-enabled C3 on 1926102550Siwasakisupporting machines. 1927102550Siwasaki 1928102550SiwasakiIntegrated low-level sleep code by Patrick Mochel. 1929102550Siwasaki 1930102550SiwasakiFurther tweaked source code Linuxization. 1931102550Siwasaki 1932102550SiwasakiOther minor fixes. 1933102550Siwasaki 1934102550Siwasaki ASL Compiler: 1935102550Siwasaki 1936102550SiwasakiSupport for ACPI 2.0 variable length packages is 1937102550Siwasakifixed/completed. 1938102550Siwasaki 1939102550SiwasakiFixed a problem where the optional length parameter for the 1940102550SiwasakiACPI 2.0 ToString operator. 1941102550Siwasaki 1942102550SiwasakiFixed multiple extraneous error messages when a syntax error 1943102550Siwasakiis detected within the declaration line of a control method. 1944102550Siwasaki 1945102550Siwasaki ---------------------------------------- 1946102550SiwasakiSummary of changes for this label: 07_17_01 1947102550Siwasaki 1948102550SiwasakiACPI CA Core Subsystem: 1949102550Siwasaki 1950104470SiwasakiAdded a new interface named AcpiGetFirmwareTable to obtain any 1951104470SiwasakiACPI table via the ACPI signature. The interface can be 1952102550Siwasakicalled at any time during kernel initialization, even before 1953104470Siwasakithe kernel virtual memory manager is initialized and paging is 1954104470Siwasakienabled. This allows kernel subsystems to obtain ACPI tables 1955104470Siwasakivery early, even before the ACPI CA subsystem is initialized. 1956102550Siwasaki 1957104470SiwasakiFixed a problem where Fields defined with the AnyAcc attribute 1958104470Siwasakicould be resolved to the incorrect address under the following 1959104470Siwasakiconditions: 1) the field width is larger than 8 bits and 2) 1960104470Siwasakithe parent operation region is not defined on a DWORD 1961104470Siwasakiboundary. 1962102550Siwasaki 1963102550SiwasakiFixed a problem where the interpreter is not being locked 1964104470Siwasakiduring namespace initialization (during execution of the _INI 1965104470Siwasakicontrol methods), causing an error when an attempt is made to 1966104470Siwasakirelease it later. 1967102550Siwasaki 1968104470SiwasakiACPI 2.0 support in the AML Interpreter has begun and will be 1969104470Siwasakiongoing throughout the rest of this year. In this label, The 1970104470SiwasakiMod operator is implemented. 1971102550Siwasaki 1972102550SiwasakiAdded a new data type to contain full PCI addresses named 1973102550SiwasakiACPI_PCI_ID. This structure contains the PCI Segment, Bus, 1974102550SiwasakiDevice, and Function values. 1975102550Siwasaki 1976102550Siwasaki Linux: 1977102550Siwasaki 1978102550SiwasakiEnhanced the Linux version of the source code to change most 1979102550Siwasakicapitalized ACPI type names to lowercase. For example, all 1980102550Siwasakiinstances of ACPI_STATUS are changed to acpi_status. This 1981102550Siwasakiwill result in a large diff, but the change is strictly 1982102550Siwasakicosmetic and aligns the CA code closer to the Linux coding 1983102550Siwasakistandard. 1984102550Siwasaki 1985102550SiwasakiOSL Interfaces: 1986102550Siwasaki 1987102550SiwasakiThe interfaces to the PCI configuration space have been 1988104470Siwasakichanged to add the PCI Segment number and to split the single 1989104470Siwasaki32-bit combined DeviceFunction field into two 16-bit fields. 1990104470SiwasakiThis was accomplished by moving the four values that define an 1991104470Siwasakiaddress in PCI configuration space (segment, bus, device, and 1992104470Siwasakifunction) to the new ACPI_PCI_ID structure. 1993102550Siwasaki 1994104470SiwasakiThe changes to the PCI configuration space interfaces led to a 1995104470Siwasakireexamination of the complete set of address space access 1996104470Siwasakiinterfaces for PCI, I/O, and Memory. The previously existing 1997104470Siwasaki18 interfaces have proven difficult to maintain (any small 1998104470Siwasakichange must be propagated across at least 6 interfaces) and do 1999104470Siwasakinot easily allow for future expansion to 64 bits if necessary. 2000104470SiwasakiAlso, on some systems, it would not be appropriate to 2001104470Siwasakidemultiplex the access width (8, 16, 32,or 64) before calling 2002104470Siwasakithe OSL if the corresponding native OS interfaces contain a 2003104470Siwasakisimilar access width parameter. For these reasons, the 18 2004104470Siwasakiaddress space interfaces have been replaced by these 6 new 2005104470Siwasakiones: 2006102550Siwasaki 2007102550SiwasakiAcpiOsReadPciConfiguration 2008102550SiwasakiAcpiOsWritePciConfiguration 2009102550SiwasakiAcpiOsReadMemory 2010102550SiwasakiAcpiOsWriteMemory 2011102550SiwasakiAcpiOsReadPort 2012102550SiwasakiAcpiOsWritePort 2013102550Siwasaki 2014104470SiwasakiAdded a new interface named AcpiOsGetRootPointer to allow the 2015104470SiwasakiOSL to perform the platform and/or OS-specific actions 2016102550Siwasakinecessary to obtain the ACPI RSDP table pointer. On IA-32 2017104470Siwasakiplatforms, this interface will simply call down to the CA core 2018104470Siwasakito perform the low-memory search for the table. On IA-64, the 2019104470SiwasakiRSDP is obtained from EFI. Migrating this interface to the 2020104470SiwasakiOSL allows the CA core to remain OS and platform independent. 2021102550Siwasaki 2022104470SiwasakiAdded a new interface named AcpiOsSignal to provide a generic 2023104470Siwasaki"function code and pointer" interface for various 2024102550Siwasakimiscellaneous signals and notifications that must be made to 2025104470Siwasakithe host OS. The first such signals are intended to support 2026104470Siwasakithe ASL Fatal and Breakpoint operators. In the latter case, 2027104470Siwasakithe AcpiOsBreakpoint interface has been obsoleted. 2028102550Siwasaki 2029102550SiwasakiThe definition of the AcpiFormatException interface has been 2030104470Siwasakichanged to simplify its use. The caller no longer must supply 2031104470Siwasakia buffer to the call; A pointer to a const string is now 2032104470Siwasakireturned directly. This allows the call to be easily used in 2033104470Siwasakiprintf statements, etc. since the caller does not have to 2034104470Siwasakimanage a local buffer. 2035102550Siwasaki 2036102550Siwasaki ASL Compiler, Version X2025: 2037102550Siwasaki 2038102550SiwasakiThe ACPI 2.0 Switch/Case/Default operators have been 2039104470Siwasakiimplemented and are fully functional. They will work with all 2040104470SiwasakiACPI 1.0 interpreters, since the operators are simply 2041102550Siwasakitranslated to If/Else pairs. 2042102550Siwasaki 2043104470SiwasakiThe ACPI 2.0 ElseIf operator is implemented and will also work 2044104470Siwasakiwith 1.0 interpreters, for the same reason. 2045102550Siwasaki 2046102550SiwasakiImplemented support for ACPI 2.0 variable-length packages. 2047102550SiwasakiThese packages have a separate opcode, and their size is 2048102550Siwasakidetermined by the interpreter at run-time. 2049102550Siwasaki 2050102550SiwasakiDocumentation The ACPI CA Programmer Reference has been 2051104470Siwasakiupdated to reflect the new interfaces and changes to existing 2052104470Siwasakiinterfaces. 2053102550Siwasaki 2054102550Siwasaki ------------------------------------------ 2055102550SiwasakiSummary of changes for this label: 06_15_01 2056102550Siwasaki 2057102550Siwasaki ACPI CA Core Subsystem: 2058102550Siwasaki 2059102550SiwasakiFixed a problem where a DWORD-accessed field within a Buffer 2060102550Siwasakiobject would get its byte address inadvertently rounded down 2061102550Siwasakito the nearest DWORD. Buffers are always Byte-accessible. 2062102550Siwasaki 2063102550Siwasaki ASL Compiler, version X2024: 2064102550Siwasaki 2065104470SiwasakiFixed a problem where the Switch() operator would either fault 2066104470Siwasakior hang the compiler. Note however, that the AML code for 2067104470Siwasakithis ACPI 2.0 operator is not yet implemented. 2068102550Siwasaki 2069102550SiwasakiCompiler uses the new AcpiOsGetTimer interface to obtain 2070102550Siwasakicompile timings. 2071102550Siwasaki 2072102550SiwasakiImplementation of the CreateField operator automatically 2073102550Siwasakiconverts a reference to a named field within a resource 2074102550Siwasakidescriptor from a byte offset to a bit offset if required. 2075102550Siwasaki 2076102550SiwasakiAdded some missing named fields from the resource descriptor 2077104470Siwasakisupport. These are the names that are automatically created by 2078104470Siwasakithe compiler to reference fields within a descriptor. They 2079104470Siwasakiare only valid at compile time and are not passed through to 2080104470Siwasakithe AML interpreter. 2081102550Siwasaki 2082104470SiwasakiResource descriptor named fields are now typed as Integers and 2083104470Siwasakisubject to compile-time typechecking when used in expressions. 2084102550Siwasaki 2085102550Siwasaki ------------------------------------------ 2086102550SiwasakiSummary of changes for this label: 05_18_01 2087102550Siwasaki 2088102550Siwasaki ACPI CA Core Subsystem: 2089102550Siwasaki 2090102550SiwasakiFixed a couple of problems in the Field support code where 2091102550Siwasakibits from adjacent fields could be returned along with the 2092102550Siwasakiproper field bits. Restructured the field support code to 2093102550Siwasakiimprove performance, readability and maintainability. 2094102550Siwasaki 2095102550SiwasakiNew DEBUG_PRINTP macro automatically inserts the procedure 2096102550Siwasakiname into the output, saving hundreds of copies of procedure 2097104470Siwasakiname strings within the source, shrinking the memory footprint 2098104470Siwasakiof the debug version of the core subsystem. 2099102550Siwasaki 2100102550Siwasaki Source Code Structure: 2101102550Siwasaki 2102104470SiwasakiThe source code directory tree was restructured to reflect the 2103104470Siwasakicurrent organization of the component architecture. Some 2104104470Siwasakifiles and directories have been moved and/or renamed. 2105102550Siwasaki 2106102550Siwasaki Linux: 2107102550Siwasaki 2108102550SiwasakiFixed leaking kacpidpc processes. 2109102550Siwasaki 2110102550SiwasakiFixed queueing event data even when /proc/acpi/event is not 2111102550Siwasakiopened. 2112102550Siwasaki 2113102550Siwasaki ASL Compiler, version X2020: 2114102550Siwasaki 2115102550SiwasakiMemory allocation performance enhancement - over 24X compile 2116102550Siwasakitime improvement on large ASL files. Parse nodes and 2117102550Siwasakinamestring buffers are now allocated from a large internal 2118102550Siwasakicompiler buffer. 2119102550Siwasaki 2120102550SiwasakiThe temporary .SRC file is deleted unless the "-s" option is 2121102550Siwasakispecified 2122102550Siwasaki 2123104470SiwasakiThe "-d" debug output option now sends all output to the .DBG 2124104470Siwasakifile instead of the console. 2125102550Siwasaki 2126102550Siwasaki"External" second parameter is now optional 2127102550Siwasaki 2128102550Siwasaki"ElseIf" syntax now properly allows the predicate 2129102550Siwasaki 2130102550SiwasakiLast operand to "Load" now recognized as a Target operand 2131102550Siwasaki 2132102550SiwasakiDebug object can now be used anywhere as a normal object. 2133102550Siwasaki 2134102550SiwasakiResourceTemplate now returns an object of type BUFFER 2135102550Siwasaki 2136102550SiwasakiEISAID now returns an object of type INTEGER 2137102550Siwasaki 2138102550Siwasaki"Index" now works with a STRING operand 2139102550Siwasaki 2140102550Siwasaki"LoadTable" now accepts optional parameters 2141102550Siwasaki 2142102550Siwasaki"ToString" length parameter is now optional 2143102550Siwasaki 2144102550Siwasaki"Interrupt (ResourceType," parse error fixed. 2145102550Siwasaki 2146104470Siwasaki"Register" with a user-defined region space parse error fixed 2147102550Siwasaki 2148102550SiwasakiEscaped backslash at the end of a string ("\\") scan/parse 2149102550Siwasakierror fixed 2150102550Siwasaki 2151102550Siwasaki"Revision" is now an object of type INTEGER. 2152102550Siwasaki 2153102550Siwasaki 2154102550Siwasaki 2155102550Siwasaki------------------------------------------ 2156102550SiwasakiSummary of changes for this label: 05_02_01 2157102550Siwasaki 2158102550SiwasakiLinux: 2159102550Siwasaki 2160102550Siwasaki/proc/acpi/event now blocks properly. 2161102550Siwasaki 2162102550SiwasakiRemoved /proc/sys/acpi. You can still dump your DSDT from 2163102550Siwasaki/proc/acpi/dsdt. 2164102550Siwasaki 2165102550Siwasaki ACPI CA Core Subsystem: 2166102550Siwasaki 2167104470SiwasakiFixed a problem introduced in the previous label where some of 2168104470Siwasakithe "small" resource descriptor types were not recognized. 2169102550Siwasaki 2170102550SiwasakiImproved error messages for the case where an ASL Field is 2171102550Siwasakioutside the range of the parent operation region. 2172102550Siwasaki 2173102550Siwasaki ASL Compiler, version X2018: 2174102550Siwasaki 2175102550SiwasakiAdded error detection for ASL Fields that extend beyond the 2176102550Siwasakilength of the parent operation region (only if the length of 2177102550Siwasakithe region is known at compile time.) This includes fields 2178102550Siwasakithat have a minimum access width that is smaller than the 2179102550Siwasakiparent region, and individual field units that are partially 2180102550Siwasakior entirely beyond the extent of the parent. 2181102550Siwasaki 2182102550Siwasaki 2183102550Siwasaki 2184102550Siwasaki------------------------------------------ 2185102550SiwasakiSummary of changes for this label: 04_27_01 2186102550Siwasaki 2187102550Siwasaki ACPI CA Core Subsystem: 2188102550Siwasaki 2189104470SiwasakiFixed a problem where the namespace mutex could be released at 2190104470Siwasakithe wrong time during execution of 2191102550SiwasakiAcpiRemoveAddressSpaceHandler. 2192102550Siwasaki 2193104470SiwasakiAdded optional thread ID output for debug traces, to simplify 2194104470Siwasakidebugging of multiple threads. Added context switch 2195104470Siwasakinotification when the debug code realizes that a different 2196104470Siwasakithread is now executing ACPI code. 2197102550Siwasaki 2198102550SiwasakiSome additional external data types have been prefixed with 2199104470Siwasakithe string "ACPI_" for consistency. This may effect existing 2200104470Siwasakicode. The data types affected are the external callback 2201104470Siwasakitypedefs - e.g., WALK_CALLBACK becomes ACPI_WALK_CALLBACK. 2202102550Siwasaki 2203102550Siwasaki Linux: 2204102550Siwasaki 2205102550SiwasakiFixed an issue with the OSL semaphore implementation where a 2206102550Siwasakithread was waking up with an error from receiving a SIGCHLD 2207102550Siwasakisignal. 2208102550Siwasaki 2209102550SiwasakiLinux version of ACPI CA now uses the system C library for 2210102550Siwasakistring manipulation routines instead of a local 2211102550Siwasakiimplementation. 2212102550Siwasaki 2213102550SiwasakiCleaned up comments and removed TBDs. 2214102550Siwasaki 2215102550Siwasaki ASL Compiler, version X2017: 2216102550Siwasaki 2217102550SiwasakiEnhanced error detection and reporting for all file I/O 2218102550Siwasakioperations. 2219102550Siwasaki 2220102550Siwasaki Documentation: 2221102550Siwasaki 2222102550SiwasakiProgrammer Reference updated to version 1.06. 2223102550Siwasaki 2224102550Siwasaki 2225102550Siwasaki 2226102550Siwasaki------------------------------------------ 2227102550SiwasakiSummary of changes for this label: 04_13_01 2228102550Siwasaki 2229102550Siwasaki ACPI CA Core Subsystem: 2230102550Siwasaki 2231102550SiwasakiRestructured support for BufferFields and RegionFields. 2232104470SiwasakiBankFields support is now fully operational. All known 32-bit 2233104470Siwasakilimitations on field sizes have been removed. Both 2234104470SiwasakiBufferFields and (Operation) RegionFields are now supported by 2235104470Siwasakithe same field management code. 2236102550Siwasaki 2237104470SiwasakiResource support now supports QWORD address and IO resources. 2238104470SiwasakiThe 16/32/64 bit address structures and the Extended IRQ 2239104470Siwasakistructure have been changed to properly handle Source Resource 2240104470Siwasakistrings. 2241102550Siwasaki 2242102550SiwasakiA ThreadId of -1 is now used to indicate a "mutex not 2243102550Siwasakiacquired" condition internally and must never be returned by 2244102550SiwasakiAcpiOsThreadId. This reserved value was changed from 0 since 2245102550SiwasakiUnix systems allow a thread ID of 0. 2246102550Siwasaki 2247102550SiwasakiLinux: 2248102550Siwasaki 2249102550SiwasakiDriver code reorganized to enhance portability 2250102550Siwasaki 2251102550SiwasakiAdded a kernel configuration option to control ACPI_DEBUG 2252102550Siwasaki 2253102550SiwasakiFixed the EC driver to honor _GLK. 2254102550Siwasaki 2255102550SiwasakiASL Compiler, version X2016: 2256102550Siwasaki 2257102550SiwasakiFixed support for the "FixedHw" keyword. Previously, the 2258104470SiwasakiFixedHw address space was set to 0, not 0x7f as it should be. 2259102550Siwasaki 2260102550Siwasaki ------------------------------------------ 2261102550SiwasakiSummary of changes for this label: 03_13_01 2262102550Siwasaki 2263102550Siwasaki ACPI CA Core Subsystem: 2264102550Siwasaki 2265104470SiwasakiDuring ACPI initialization, the _SB_._INI method is now run if 2266104470Siwasakipresent. 2267102550Siwasaki 2268102550SiwasakiNotify handler fix - notifies are deferred until the parent 2269102550Siwasakimethod completes execution. This fixes the "mutex already 2270102550Siwasakiacquired" issue seen occasionally. 2271102550Siwasaki 2272104470SiwasakiPart of the "implicit conversion" rules in ACPI 2.0 have been 2273104470Siwasakifound to cause compatibility problems with existing ASL/AML. 2274104470SiwasakiThe convert "result-to-target-type" implementation has been 2275104470Siwasakiremoved for stores to method Args and Locals. Source operand 2276104470Siwasakiconversion is still fully implemented. Possible changes to 2277104470SiwasakiACPI 2.0 specification pending. 2278102550Siwasaki 2279104470SiwasakiFix to AcpiRsCalculatePciRoutingTableLength to return correct 2280104470Siwasakilength. 2281102550Siwasaki 2282102550SiwasakiFix for compiler warnings for 64-bit compiles. 2283102550Siwasaki 2284102550Siwasaki Linux: 2285102550Siwasaki 2286102550Siwasaki/proc output aligned for easier parsing. 2287102550Siwasaki 2288102550SiwasakiRelease-version compile problem fixed. 2289102550Siwasaki 2290104470SiwasakiNew kernel configuration options documented in Configure.help. 2291102550Siwasaki 2292102550SiwasakiIBM 600E - Fixed Sleep button may generate "Invalid <NULL> 2293102550Siwasakicontext" message. 2294102550Siwasaki 2295102550Siwasaki OSPM: 2296102550Siwasaki 2297102550SiwasakiPower resource driver integrated with bus manager. 2298102550Siwasaki 2299102550SiwasakiFixed kernel fault during active cooling for thermal zones. 2300102550Siwasaki 2301102550SiwasakiSource Code: 2302102550Siwasaki 2303102550SiwasakiThe source code tree has been restructured. 2304102550Siwasaki 2305102550Siwasaki 2306102550Siwasaki 2307102550Siwasaki------------------------------------------ 2308102550SiwasakiSummary of changes for this label: 03_02_01 2309102550Siwasaki 2310102550Siwasaki Linux OS Services Layer (OSL): 2311102550Siwasaki 2312102550SiwasakiMajor revision of all Linux-specific code. 2313102550Siwasaki 2314102550SiwasakiModularized all ACPI-specific drivers. 2315102550Siwasaki 2316102550SiwasakiAdded new thermal zone and power resource drivers. 2317102550Siwasaki 2318102550SiwasakiRevamped /proc interface (new functionality is under 2319102550Siwasaki/proc/acpi). 2320102550Siwasaki 2321102550SiwasakiNew kernel configuration options. 2322102550Siwasaki 2323102550Siwasaki Linux known issues: 2324102550Siwasaki 2325102550SiwasakiNew kernel configuration options not documented in 2326102550SiwasakiConfigure.help yet. 2327102550Siwasaki 2328102550SiwasakiModule dependencies not currently implemented. If used, they 2329102550Siwasakishould be loaded in this order: busmgr, power, ec, system, 2330102550Siwasakiprocessor, battery, ac_adapter, button, thermal. 2331102550Siwasaki 2332102550SiwasakiModules will not load if CONFIG_MODVERSION is set. 2333102550Siwasaki 2334102550SiwasakiIBM 600E - entering S5 may reboot instead of shutting down. 2335102550Siwasaki 2336104470SiwasakiIBM 600E - Sleep button may generate "Invalid <NULL> context" 2337104470Siwasakimessage. 2338102550Siwasaki 2339104470SiwasakiSome systems may fail with "execution mutex already acquired" 2340104470Siwasakimessage. 2341102550Siwasaki 2342102550Siwasaki ACPI CA Core Subsystem: 2343102550Siwasaki 2344102550SiwasakiAdded a new OSL Interface, AcpiOsGetThreadId. This was 2345104470Siwasakirequired for the deadlock detection code. Defined to return a 2346104470Siwasakinon-zero, 32-bit thread ID for the currently executing thread. 2347104470SiwasakiMay be a non-zero constant integer on single-thread systems. 2348102550Siwasaki 2349104470SiwasakiImplemented deadlock detection for internal subsystem mutexes. 2350104470SiwasakiWe may add conditional compilation for this code (debug only) 2351104470Siwasakilater. 2352102550Siwasaki 2353104470SiwasakiASL/AML Mutex object semantics are now fully supported. This 2354104470Siwasakiincludes multiple acquires/releases by owner and support for 2355104470Siwasakithe Mutex SyncLevel parameter. 2356102550Siwasaki 2357102550SiwasakiA new "Force Release" mechanism automatically frees all ASL 2358104470SiwasakiMutexes that have been acquired but not released when a thread 2359104470Siwasakiexits the interpreter. This forces conformance to the ACPI 2360104470Siwasakispec ("All mutexes must be released when an invocation exits") 2361104470Siwasakiand prevents deadlocked ASL threads. This mechanism can be 2362104470Siwasakiexpanded (later) to monitor other resource acquisitions if OEM 2363104470SiwasakiASL code continues to misbehave (which it will). 2364102550Siwasaki 2365104470SiwasakiSeveral new ACPI exception codes have been added for the Mutex 2366104470Siwasakisupport. 2367102550Siwasaki 2368104470SiwasakiRecursive method calls are now allowed and supported (the ACPI 2369104470Siwasakispec does in fact allow recursive method calls.) The number 2370104470Siwasakiof recursive calls is subject to the restrictions imposed by 2371104470Siwasakithe SERIALIZED method keyword and SyncLevel (ACPI 2.0) method 2372104470Siwasakiparameter. 2373102550Siwasaki 2374102550SiwasakiImplemented support for the SyncLevel parameter for control 2375102550Siwasakimethods (ACPI 2.0 feature) 2376102550Siwasaki 2377102550SiwasakiFixed a deadlock problem when multiple threads attempted to 2378102550Siwasakiuse the interpreter. 2379102550Siwasaki 2380102550SiwasakiFixed a problem where the string length of a String package 2381102550Siwasakielement was not always set in a package returned from 2382102550SiwasakiAcpiEvaluateObject. 2383102550Siwasaki 2384102550SiwasakiFixed a problem where the length of a String package element 2385102550Siwasakiwas not always included in the length of the overall package 2386102550Siwasakireturned from AcpiEvaluateObject. 2387102550Siwasaki 2388102550SiwasakiAdded external interfaces (Acpi*) to the ACPI debug memory 2389102550Siwasakimanager. This manager keeps a list of all outstanding 2390102550Siwasakiallocations, and can therefore detect memory leaks and 2391104470Siwasakiattempts to free memory blocks more than once. Useful for code 2392104470Siwasakisuch as the power manager, etc. May not be appropriate for 2393104470Siwasakidevice drivers. Performance with the debug code enabled is 2394104470Siwasakislow. 2395102550Siwasaki 2396102550SiwasakiThe ACPI Global Lock is now an optional hardware element. 2397102550Siwasaki 2398102550Siwasaki ASL Compiler Version X2015: 2399102550Siwasaki 2400102550SiwasakiIntegrated changes to allow the compiler to be generated on 2401102550Siwasakimultiple platforms. 2402102550Siwasaki 2403102550SiwasakiLinux makefile added to generate the compiler on Linux 2404102550Siwasaki 2405102550Siwasaki Source Code: 2406102550Siwasaki 2407102550SiwasakiAll platform-specific headers have been moved to their own 2408102550Siwasakisubdirectory, Include/Platform. 2409102550Siwasaki 2410102550SiwasakiNew source file added, Interpreter/ammutex.c 2411102550Siwasaki 2412102550SiwasakiNew header file, Include/acstruct.h 2413102550Siwasaki 2414102550Siwasaki Documentation: 2415102550Siwasaki 2416102550SiwasakiThe programmer reference has been updated for the following 2417102550Siwasakinew interfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate 2418102550SiwasakiAcpiFree 2419102550Siwasaki 2420102550Siwasaki ------------------------------------------ 2421102550SiwasakiSummary of changes for this label: 02_08_01 2422102550Siwasaki 2423102550SiwasakiCore ACPI CA Subsystem: Fixed a problem where an error was 2424104470Siwasakiincorrectly returned if the return resource buffer was larger 2425104470Siwasakithan the actual data (in the resource interfaces). 2426102550Siwasaki 2427102550SiwasakiReferences to named objects within packages are resolved to 2428104470Siwasakithe full pathname string before packages are returned directly 2429104470Siwasaki(via the AcpiEvaluateObject interface) or indirectly via the 2430104470Siwasakiresource interfaces. 2431102550Siwasaki 2432102550SiwasakiLinux OS Services Layer (OSL): 2433102550Siwasaki 2434102550SiwasakiImproved /proc battery interface. 2435102550Siwasaki 2436102550Siwasaki 2437104470SiwasakiAdded C-state debugging output and other miscellaneous fixes. 2438102550Siwasaki 2439102550SiwasakiASL Compiler Version X2014: 2440102550Siwasaki 2441102550SiwasakiAll defined method arguments can now be used as local 2442104470Siwasakivariables, including the ones that are not actually passed in 2443104470Siwasakias parameters. The compiler tracks initialization of the 2444102550Siwasakiarguments and issues an exception if they are used without 2445102550Siwasakiprior assignment (just like locals). 2446102550Siwasaki 2447104470SiwasakiThe -o option now specifies a filename prefix that is used for 2448104470Siwasakiall output files, including the AML output file. Otherwise, 2449104470Siwasakithe default behavior is as follows: 1) the AML goes to the 2450104470Siwasakifile specified in the DSDT. 2) all other output files use the 2451104470Siwasakiinput source filename as the base. 2452102550Siwasaki 2453102550Siwasaki ------------------------------------------ 2454102550SiwasakiSummary of changes for this label: 01_25_01 2455102550Siwasaki 2456102550SiwasakiCore ACPI CA Subsystem: Restructured the implementation of 2457102550Siwasakiobject store support within the interpreter. This includes 2458102550Siwasakisupport for the Store operator as well as any ASL operators 2459102550Siwasakithat include a target operand. 2460102550Siwasaki 2461102550SiwasakiPartially implemented support for Implicit Result-to-Target 2462102550Siwasakiconversion. This is when a result object is converted on the 2463104470Siwasakifly to the type of an existing target object. Completion of 2464104470Siwasakithis support is pending further analysis of the ACPI 2465102550Siwasakispecification concerning this matter. 2466102550Siwasaki 2467102550SiwasakiCPU-specific code has been removed from the subsystem 2468102550Siwasaki(hardware directory). 2469102550Siwasaki 2470102550SiwasakiNew Power Management Timer functions added 2471102550Siwasaki 2472102550SiwasakiLinux OS Services Layer (OSL): Moved system state transition 2473102550Siwasakicode to the core, fixed it, and modified Linux OSL 2474102550Siwasakiaccordingly. 2475102550Siwasaki 2476102550SiwasakiFixed C2 and C3 latency calculations. 2477102550Siwasaki 2478102550Siwasaki 2479104470SiwasakiWe no longer use the compilation date for the version message 2480104470Siwasakion initialization, but retrieve the version from 2481102550SiwasakiAcpiGetSystemInfo(). 2482102550Siwasaki 2483102550SiwasakiIncorporated for fix Sony VAIO machines. 2484102550Siwasaki 2485104470SiwasakiDocumentation: The Programmer Reference has been updated and 2486104470Siwasakireformatted. 2487102550Siwasaki 2488102550Siwasaki 2489102550SiwasakiASL Compiler: Version X2013: Fixed a problem where the line 2490102550Siwasakinumbering and error reporting could get out of sync in the 2491102550Siwasakipresence of multiple include files. 2492102550Siwasaki 2493102550Siwasaki ------------------------------------------ 2494102550SiwasakiSummary of changes for this label: 01_15_01 2495102550Siwasaki 2496102550SiwasakiCore ACPI CA Subsystem: 2497102550Siwasaki 2498102550SiwasakiImplemented support for type conversions in the execution of 2499104470Siwasakithe ASL Concatenate operator (The second operand is converted 2500104470Siwasakito match the type of the first operand before concatenation.) 2501102550Siwasaki 2502102550SiwasakiSupport for implicit source operand conversion is partially 2503102550Siwasakiimplemented. The ASL source operand types Integer, Buffer, 2504104470Siwasakiand String are freely interchangeable for most ASL operators 2505104470Siwasakiand are converted by the interpreter on the fly as required. 2506104470SiwasakiImplicit Target operand conversion (where the result is 2507104470Siwasakiconverted to the target type before storing) is not yet 2508104470Siwasakiimplemented. 2509102550Siwasaki 2510102550SiwasakiSupport for 32-bit and 64-bit BCD integers is implemented. 2511102550Siwasaki 2512102550SiwasakiProblem fixed where a field read on an aligned field could 2513102550Siwasakicause a read past the end of the field. 2514102550Siwasaki 2515102550SiwasakiNew exception, AE_AML_NO_RETURN_VALUE, is returned when a 2516102550Siwasakimethod does not return a value, but the caller expects one. 2517102550Siwasaki(The ASL compiler flags this as a warning.) 2518102550Siwasaki 2519102550SiwasakiASL Compiler: 2520102550Siwasaki 2521102550SiwasakiVersion X2011: 2522102550Siwasaki1. Static typechecking of all operands is implemented. This 2523102550Siwasakiprevents the use of invalid objects (such as using a Package 2524102550Siwasakiwhere an Integer is required) at compile time instead of at 2525102550Siwasakiinterpreter run-time. 2526102550Siwasaki2. The ASL source line is printed with ALL errors and 2527102550Siwasakiwarnings. 2528102550Siwasaki3. Bug fix for source EOF without final linefeed. 2529102550Siwasaki4. Debug option is split into a parse trace and a namespace 2530102550Siwasakitrace. 2531102550Siwasaki5. Namespace output option (-n) includes initial values for 2532102550Siwasakiintegers and strings. 2533102550Siwasaki6. Parse-only option added for quick syntax checking. 2534102550Siwasaki7. Compiler checks for duplicate ACPI name declarations 2535102550Siwasaki 2536102550SiwasakiVersion X2012: 2537102550Siwasaki1. Relaxed typechecking to allow interchangeability between 2538104470Siwasakistrings, integers, and buffers. These types are now converted 2539104470Siwasakiby the interpreter at runtime. 2540102550Siwasaki2. Compiler reports time taken by each internal subsystem in 2541102550Siwasakithe debug output file. 2542102550Siwasaki 2543102550Siwasaki 2544102550Siwasaki ------------------------------------------ 2545102550SiwasakiSummary of changes for this label: 12_14_00 2546102550Siwasaki 2547102550SiwasakiASL Compiler: 2548102550Siwasaki 2549104470SiwasakiThis is the first official release of the compiler. Since the 2550104470Siwasakicompiler requires elements of the Core Subsystem, this label 2551104470Siwasakisynchronizes everything. 2552102550Siwasaki 2553102550Siwasaki------------------------------------------ 2554102550SiwasakiSummary of changes for this label: 12_08_00 2555102550Siwasaki 2556102550SiwasakiFixed a problem where named references within the ASL 2557102550Siwasakidefinition of both OperationRegions and CreateXXXFields did 2558102550Siwasakinot work properly. The symptom was an AE_AML_OPERAND_TYPE 2559102550Siwasakiduring initialization of the region/field. This is similar 2560104470Siwasaki(but not related internally) to the problem that was fixed in 2561104470Siwasakithe last label. 2562102550Siwasaki 2563102550SiwasakiImplemented both 32-bit and 64-bit support for the BCD ASL 2564102550Siwasakifunctions ToBCD and FromBCD. 2565102550Siwasaki 2566102550SiwasakiUpdated all legal headers to include "2000" in the copyright 2567102550Siwasakiyears. 2568102550Siwasaki 2569102550Siwasaki ------------------------------------------ 2570102550SiwasakiSummary of changes for this label: 12_01_00 2571102550Siwasaki 2572102550SiwasakiFixed a problem where method invocations within the ASL 2573102550Siwasakidefinition of both OperationRegions and CreateXXXFields did 2574102550Siwasakinot work properly. The symptom was an AE_AML_OPERAND_TYPE 2575102550Siwasakiduring initialization of the region/field: 2576102550Siwasaki 2577102550Siwasaki nsinit-0209: AE_AML_OPERAND_TYPE while getting region 2578102550Siwasakiarguments [DEBG] ammonad-0284: Exec_monadic2_r/Not: bad 2579102550Siwasakioperand(s) (0x3005) 2580102550Siwasaki 2581102550SiwasakiFixed a problem where operators with more than one nested 2582104470Siwasakisubexpression would fail. The symptoms were varied, by mostly 2583104470SiwasakiAE_AML_OPERAND_TYPE errors. This was actually a rather 2584104470Siwasakiserious problem that has gone unnoticed until now. 2585102550Siwasaki 2586102550Siwasaki Subtract (Add (1,2), Multiply (3,4)) 2587102550Siwasaki 2588104470SiwasakiFixed a problem where AcpiGetHandle didn't quite get fixed in 2589104470Siwasakithe previous build (The prefix part of a relative path was 2590104470Siwasakihandled incorrectly). 2591102550Siwasaki 2592102550SiwasakiFixed a problem where Operation Region initialization failed 2593102550Siwasakiif the operation region name was a "namepath" instead of a 2594102550Siwasakisimple "nameseg". Symptom was an AE_NO_OPERAND error. 2595102550Siwasaki 2596102550SiwasakiFixed a problem where an assignment to a local variable via 2597102550Siwasakithe indirect RefOf mechanism only worked for the first such 2598102550Siwasakiassignment. Subsequent assignments were ignored. 2599102550Siwasaki 2600102550Siwasaki ------------------------------------------ 2601102550SiwasakiSummary of changes for this label: 11_15_00 2602102550Siwasaki 2603104470SiwasakiACPI 2.0 table support with backwards support for ACPI 1.0 and 2604104470Siwasakithe 0.71 extensions. Note: although we can read ACPI 2.0 BIOS 2605104470Siwasakitables, the AML interpreter does NOT have support for the new 2606104470Siwasaki2.0 ASL grammar terms at this time. 2607102550Siwasaki 2608104470SiwasakiAll ACPI hardware access is via the GAS structures in the ACPI 2609104470Siwasaki2.0 FADT. 2610102550Siwasaki 2611104470SiwasakiAll physical memory addresses across all platforms are now 64 2612104470Siwasakibits wide. Logical address width remains dependent on the 2613102550Siwasakiplatform (i.e., "void *"). 2614102550Siwasaki 2615102550SiwasakiAcpiOsMapMemory interface changed to a 64-bit physical 2616102550Siwasakiaddress. 2617102550Siwasaki 2618102550SiwasakiThe AML interpreter integer size is now 64 bits, as per the 2619102550SiwasakiACPI 2.0 specification. 2620102550Siwasaki 2621104470SiwasakiFor backwards compatibility with ACPI 1.0, ACPI tables with a 2622104470Siwasakirevision number less than 2 use 32-bit integers only. 2623102550Siwasaki 2624104470SiwasakiFixed a problem where the evaluation of OpRegion operands did 2625104470Siwasakinot always resolve them to numbers properly. 2626102550Siwasaki 2627102550Siwasaki------------------------------------------ 2628102550SiwasakiSummary of changes for this label: 10_20_00 2629102550Siwasaki 2630102550SiwasakiFix for CBN_._STA issue. This fix will allow correct access 2631102550Siwasakito CBN_ OpRegions when the _STA returns 0x8. 2632102550Siwasaki 2633104470SiwasakiSupport to convert ACPI constants (Ones, Zeros, One) to actual 2634104470Siwasakivalues before a package object is returned 2635102550Siwasaki 2636104470SiwasakiFix for method call as predicate to if/while construct causing 2637104470Siwasakiincorrect if/while behavior 2638102550Siwasaki 2639104470SiwasakiFix for Else block package lengths sometimes calculated wrong 2640104470Siwasaki(if block > 63 bytes) 2641102550Siwasaki 2642102550SiwasakiFix for Processor object length field, was always zero 2643102550Siwasaki 2644102550SiwasakiTable load abort if FACP sanity check fails 2645102550Siwasaki 2646102550SiwasakiFix for problem with Scope(name) if name already exists 2647102550Siwasaki 2648102550SiwasakiWarning emitted if a named object referenced cannot be found 2649102550Siwasaki(resolved) during method execution. 2650102550Siwasaki 2651102550Siwasaki 2652102550Siwasaki 2653102550Siwasaki 2654102550Siwasaki 2655102550Siwasaki------------------------------------------ 2656102550SiwasakiSummary of changes for this label: 9_29_00 2657102550Siwasaki 2658102550SiwasakiNew table initialization interfaces: AcpiInitializeSubsystem 2659102550Siwasakino longer has any parameters AcpiFindRootPointer - Find the 2660102550SiwasakiRSDP (if necessary) AcpiLoadTables (RSDP) - load all tables 2661104470Siwasakifound at RSDP->RSDT Obsolete Interfaces AcpiLoadFirmwareTables 2662104470Siwasaki- replaced by AcpiLoadTables 2663102550Siwasaki 2664104470SiwasakiNote: These interface changes require changes to all existing 2665104470SiwasakiOSDs 2666102550Siwasaki 2667102550SiwasakiThe PCI_Config default address space handler is always 2668102550Siwasakiinstalled at the root namespace object. 2669102550Siwasaki 2670102550Siwasaki------------------------------------------- 2671102550SiwasakiSummary of changes for this label: 09_15_00 2672102550Siwasaki 2673102550SiwasakiThe new initialization architecture is implemented. New 2674102550Siwasakiinterfaces are: AcpiInitializeSubsystem (replaces 2675102550SiwasakiAcpiInitialize) AcpiEnableSubsystem Obsolete Interfaces: 2676102550SiwasakiAcpiLoadNamespace (Namespace is automatically loaded when a 2677102550Siwasakitable is loaded) 2678102550Siwasaki 2679104470SiwasakiThe ACPI_OPERAND_OBJECT has been optimized to shrink its size 2680104470Siwasakifrom 52 bytes to 32 bytes. There is usually one of these for 2681104470Siwasakievery namespace object, so the memory savings is significant. 2682102550Siwasaki 2683102550SiwasakiImplemented just-in-time evaluation of the CreateField 2684102550Siwasakioperators. 2685102550Siwasaki 2686102550SiwasakiBug fixes for IA-64 support have been integrated. 2687102550Siwasaki 2688102550SiwasakiAdditional code review comments have been implemented 2689102550Siwasaki 2690104470SiwasakiThe so-called "third pass parse" has been replaced by a final 2691104470Siwasakiwalk through the namespace to initialize all operation regions 2692104470Siwasaki(address spaces) and fields that have not yet been initialized 2693104470Siwasakiduring the execution of the various _INI and REG methods. 2694102550Siwasaki 2695102550SiwasakiNew file - namespace/nsinit.c 2696102550Siwasaki 2697102550Siwasaki------------------------------------------- 2698102550SiwasakiSummary of changes for this label: 09_01_00 2699102550Siwasaki 2700104470SiwasakiNamespace manager data structures have been reworked to change 2701104470Siwasakithe primary object from a table to a single object. This has 2702104470Siwasakiresulted in dynamic memory savings of 3X within the namespace 2703104470Siwasakiand 2X overall in the ACPI CA subsystem. 2704102550Siwasaki 2705102550SiwasakiFixed problem where the call to AcpiEvFindPciRootBuses was 2706102550Siwasakiinadvertently left commented out. 2707102550Siwasaki 2708104470SiwasakiReduced the warning count when generating the source with the 2709104470SiwasakiGCC compiler. 2710102550Siwasaki 2711102550SiwasakiRevision numbers added to each module header showing the 2712104470SiwasakiSourceSafe version of the file. Please refer to this version 2713104470Siwasakinumber when giving us feedback or comments on individual 2714104470Siwasakimodules. 2715102550Siwasaki 2716102550SiwasakiThe main object types within the subsystem have been renamed 2717102550Siwasakito clarify their purpose: 2718102550Siwasaki 2719102550SiwasakiACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT 2720102550SiwasakiACPI_GENERIC_OP -> ACPI_PARSE_OBJECT 2721102550SiwasakiACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE 2722102550Siwasaki 2723102550SiwasakiNOTE: no changes to the initialization sequence are included 2724102550Siwasakiin this label. 2725102550Siwasaki 2726102550Siwasaki------------------------------------------- 2727102550SiwasakiSummary of changes for this label: 08_23_00 2728102550Siwasaki 2729102550SiwasakiFixed problem where TerminateControlMethod was being called 2730102550Siwasakimultiple times per method 2731102550Siwasaki 2732102550SiwasakiFixed debugger problem where single stepping caused a 2733102550Siwasakisemaphore to be oversignalled 2734102550Siwasaki 2735104470SiwasakiImproved performance through additional parse object caching - 2736104470Siwasakiadded ACPI_EXTENDED_OP type 2737102550Siwasaki 2738102550Siwasaki------------------------------------------- 2739102550SiwasakiSummary of changes for this label: 08_10_00 2740102550Siwasaki 2741102550SiwasakiParser/Interpreter integration: Eliminated the creation of 2742102550Siwasakicomplete parse trees for ACPI tables and control methods. 2743104470SiwasakiInstead, parse subtrees are created and then deleted as soon 2744104470Siwasakias they are processed (Either entered into the namespace or 2745104470Siwasakiexecuted by the interpreter). This reduces the use of dynamic 2746104470Siwasakikernel memory significantly. (about 10X) 2747102550Siwasaki 2748102550SiwasakiException codes broken into classes and renumbered. Be sure 2749104470Siwasakito recompile all code that includes acexcep.h. Hopefully we 2750104470Siwasakiwon't have to renumber the codes again now that they are 2751102550Siwasakisplit into classes (environment, programmer, AML code, ACPI 2752102550Siwasakitable, and internal). 2753102550Siwasaki 2754104470SiwasakiFixed some additional alignment issues in the Resource Manager 2755104470Siwasakisubcomponent 2756102550Siwasaki 2757102550SiwasakiImplemented semaphore tracking in the AcpiExec utility, and 2758102550Siwasakifixed several places where mutexes/semaphores were being 2759102550Siwasakiunlocked without a corresponding lock operation. There are 2760102550Siwasakino known semaphore or mutex "leaks" at this time. 2761102550Siwasaki 2762104470SiwasakiFixed the case where an ASL Return operator is used to return 2763104470Siwasakian unnamed package. 2764102550Siwasaki 2765102550Siwasaki------------------------------------------- 2766102550SiwasakiSummary of changes for this label: 07_28_00 2767102550Siwasaki 2768102550SiwasakiFixed a problem with the way addresses were calculated in 2769102550SiwasakiAcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This 2770102550Siwasakiproblem manifested itself when a Field was created with 2771102550SiwasakiWordAccess or DwordAccess, but the field unit defined within 2772102550Siwasakithe Field was less than a Word or Dword. 2773102550Siwasaki 2774102550SiwasakiFixed a problem in AmlDumpOperands() module's loop to pull 2775104470Siwasakioperands off of the operand stack to display information. The 2776104470Siwasakiproblem manifested itself as a TLB error on 64-bit systems 2777104470Siwasakiwhen accessing an operand stack with two or more operands. 2778102550Siwasaki 2779102550SiwasakiFixed a problem with the PCI configuration space handlers 2780102550Siwasakiwhere context was getting confused between accesses. This 2781102550Siwasakirequired a change to the generic address space handler and 2782102550Siwasakiaddress space setup definitions. Handlers now get both a 2783104470Siwasakiglobal handler context (this is the one passed in by the user 2784104470Siwasakiwhen executing AcpiInstallAddressSpaceHandler() and a 2785102550Siwasakispecific region context that is unique to each region (For 2786102550Siwasakiexample, the _ADR, _SEG and _BBN values associated with a 2787102550Siwasakispecific region). The generic function definitions have 2788102550Siwasakichanged to the following: 2789102550Siwasaki 2790102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 2791104470SiwasakiFunction, UINT32 Address, UINT32 BitWidth, UINT32 *Value, void 2792104470Siwasaki*HandlerContext, // This used to be void *Context void 2793102550Siwasaki*RegionContext); // This is an additional parameter 2794102550Siwasaki 2795102550Siwasakitypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE 2796102550SiwasakiRegionHandle, UINT32 Function, void *HandlerContext, void 2797102550Siwasaki**RegionContext); // This used to be **ReturnContext 2798102550Siwasaki 2799102550Siwasaki------------------------------------------- 2800102550SiwasakiSummary of changes for this label: 07_21_00 2801102550Siwasaki 2802102550SiwasakiMajor file consolidation and rename. All files within the 2803102550Siwasakiinterpreter have been renamed as well as most header files. 2804102550SiwasakiThis was done to prevent collisions with existing files in 2805102550Siwasakithe host OSs -- filenames such as "config.h" and "global.h" 2806102550Siwasakiseem to be quite common. The VC project files have been 2807102550Siwasakiupdated. All makefiles will require modification. 2808102550Siwasaki 2809102550SiwasakiThe parser/interpreter integration continues in Phase 5 with 2810102550Siwasakithe implementation of a complete 2-pass parse (the AML is 2811102550Siwasakiparsed twice) for each table; This avoids the construction 2812102550Siwasakiof a huge parse tree and therefore reduces the amount of 2813104470Siwasakidynamic memory required by the subsystem. Greater use of the 2814104470Siwasakiparse object cache means that performance is unaffected. 2815102550Siwasaki 2816102550SiwasakiMany comments from the two code reviews have been rolled in. 2817102550Siwasaki 2818102550SiwasakiThe 64-bit alignment support is complete. 2819102550Siwasaki 2820102550Siwasaki------------------------------------------- 2821102550SiwasakiSummary of changes for this label: 06_30_00 2822102550Siwasaki 2823102550SiwasakiWith a nod and a tip of the hat to the technology of 2824102550Siwasakiyesteryear, we've added support in the source code for 80 2825104470Siwasakicolumn output devices. The code is now mostly constrained to 2826104470Siwasaki80 columns or less to support environments and editors that 1) 2827104470Siwasakicannot display or print more than 80 characters on a single 2828104470Siwasakiline, and 2) cannot disable line wrapping. 2829102550Siwasaki 2830104470SiwasakiA major restructuring of the namespace data structure has been 2831104470Siwasakicompleted. The result is 1) cleaner and more 2832102550Siwasakiunderstandable/maintainable code, and 2) a significant 2833102550Siwasakireduction in the dynamic memory requirement for each named 2834102550SiwasakiACPI object (almost half). 2835102550Siwasaki 2836102550Siwasaki------------------------------------------- 2837102550SiwasakiSummary of changes for this label: 06_23_00 2838102550Siwasaki 2839104470SiwasakiLinux support has been added. In order to obtain approval to 2840104470Siwasakiget the ACPI CA subsystem into the Linux kernel, we've had to 2841104470Siwasakimake quite a few changes to the base subsystem that will 2842104470Siwasakiaffect all users (all the changes are generic and OS- 2843102550Siwasakiindependent). The effects of these global changes have been 2844104470Siwasakisomewhat far reaching. Files have been merged and/or renamed 2845104470Siwasakiand interfaces have been renamed. The major changes are 2846104470Siwasakidescribed below. 2847102550Siwasaki 2848102550SiwasakiOsd* interfaces renamed to AcpiOs* to eliminate namespace 2849102550Siwasakipollution/confusion within our target kernels. All OSD 2850102550Siwasakiinterfaces must be modified to match the new naming 2851102550Siwasakiconvention. 2852102550Siwasaki 2853102550SiwasakiFiles merged across the subsystem. A number of the smaller 2854102550Siwasakisource and header files have been merged to reduce the file 2855104470Siwasakicount and increase the density of the existing files. There 2856104470Siwasakiare too many to list here. In general, makefiles that call 2857104470Siwasakiout individual files will require rebuilding. 2858102550Siwasaki 2859104470SiwasakiInterpreter files renamed. All interpreter files now have the 2860104470Siwasakiprefix am* instead of ie* and is*. 2861102550Siwasaki 2862104470SiwasakiHeader files renamed: The acapi.h file is now acpixf.h. The 2863104470Siwasakiacpiosd.h file is now acpiosxf.h. We are removing references 2864104470Siwasakito the acronym "API" since it is somewhat windowsy. The new 2865104470Siwasakiname is "external interface" or xface or xf in the 2866104470Siwasakifilenames.j 2867102550Siwasaki 2868102550Siwasaki 2869102550SiwasakiAll manifest constants have been forced to upper case (some 2870102550Siwasakiwere mixed case.) Also, the string "ACPI_" has been 2871102550Siwasakiprepended to many (not all) of the constants, typedefs, and 2872102550Siwasakistructs. 2873102550Siwasaki 2874102550SiwasakiThe globals "DebugLevel" and "DebugLayer" have been renamed 2875102550Siwasaki"AcpiDbgLevel" and "AcpiDbgLayer" respectively. 2876102550Siwasaki 2877102550SiwasakiAll other globals within the subsystem are now prefixed with 2878102550Siwasaki"AcpiGbl_" Internal procedures within the subsystem are now 2879102550Siwasakiprefixed with "Acpi" (with only a few exceptions). The 2880104470Siwasakioriginal two-letter abbreviation for the subcomponent remains 2881104470Siwasakiafter "Acpi" - for example, CmCallocate became 2882102550SiwasakiAcpiCmCallocate. 2883102550Siwasaki 2884102550SiwasakiAdded a source code translation/conversion utility. Used to 2885102550Siwasakigenerate the Linux source code, it can be modified to 2886102550Siwasakigenerate other types of source as well. Can also be used to 2887102550Siwasakicleanup existing source by removing extraneous spaces and 2888102550Siwasakiblank lines. Found in tools/acpisrc/* 2889102550Siwasaki 2890102550SiwasakiOsdUnMapMemory was renamed to OsdUnmapMemory and then 2891102550SiwasakiAcpiOsUnmapMemory. (UnMap became Unmap). 2892102550Siwasaki 2893102550SiwasakiA "MaxUnits" parameter has been added to 2894104470SiwasakiAcpiOsCreateSemaphore. When set to one, this indicates that 2895104470Siwasakithe caller wants to use the semaphore as a mutex, not a 2896102550Siwasakicounting semaphore. ACPI CA uses both types. However, 2897102550Siwasakiimplementers of this call may want to use different OS 2898104470Siwasakiprimitives depending on the type of semaphore requested. For 2899104470Siwasakiexample, some operating systems provide separate "mutex" and 2900104470Siwasaki"semaphore" interfaces - where the mutex interface is much 2901104470Siwasakifaster because it doesn't have all the overhead of a full 2902104470Siwasakisemaphore implementation. 2903102550Siwasaki 2904104470SiwasakiFixed a deadlock problem where a method that accesses the PCI 2905104470Siwasakiaddress space can block forever if it is the first access to 2906104470Siwasakithe space. 2907102550Siwasaki 2908102550Siwasaki------------------------------------------- 2909102550SiwasakiSummary of changes for this label: 06_02_00 2910102550Siwasaki 2911102550SiwasakiSupport for environments that cannot handle unaligned data 2912102550Siwasakiaccesses (e.g. firmware and OS environments devoid of 2913102550Siwasakialignment handler technology namely SAL/EFI and the IA-64 2914102550SiwasakiLinux kernel) has been added (via configurable macros) in 2915102550Siwasakithese three areas: - Transfer of data from the raw AML byte 2916102550Siwasakistream is done via byte moves instead of word/dword/qword 2917104470Siwasakimoves. - External objects are aligned within the user buffer, 2918104470Siwasakiincluding package elements (sub-objects). - Conversion of 2919104470Siwasakiname strings to UINT32 Acpi Names is now done byte-wise. 2920102550Siwasaki 2921102550SiwasakiThe Store operator was modified to mimic Microsoft's 2922102550Siwasakiimplementation when storing to a Buffer Field. 2923102550Siwasaki 2924102550SiwasakiAdded a check of the BM_STS bit before entering C3. 2925102550Siwasaki 2926102550SiwasakiThe methods subdirectory has been obsoleted and removed. A 2927102550Siwasakinew file, cmeval.c subsumes the functionality. 2928102550Siwasaki 2929102550SiwasakiA 16-bit (DOS) version of AcpiExec has been developed. The 2930102550Siwasakimakefile is under the acpiexec directory. 2931