changes.txt revision 126372
1117521Snjl---------------------------------------- 2198237Sjkim20 February 2004. Summary of changes for version 20040220: 3197104Sjkim 4197104Sjkim1) ACPI CA Core Subsystem: 5197104Sjkim 6197104SjkimImplemented execution of _SxD methods for Device objects in the 7197104SjkimGetObjectInfo interface. 8198237Sjkim 9198237SjkimFixed calls to _SST method to pass the correct arguments. 10198237Sjkim 11198237SjkimAdded a call to _SST on wake to restore to "working" state. 12198237Sjkim 13198237SjkimCheck for End-Of-Buffer failure case in the WalkResources 14198237Sjkiminterface. 15198237Sjkim 16198237SjkimIntegrated fix for 64-bit alignment issue in acglobal.h by moving 17198237Sjkimtwo structures to the beginning of the file. 18198237Sjkim 19198237SjkimAfter wake, clear GPE status register(s) before enabling GPEs. 20198237Sjkim 21198237SjkimAfter wake, clear/enable power button. (Perhaps we should 22198237Sjkimclear/enable all fixed events upon wake.) 23198237Sjkim 24198237SjkimFixed a couple of possible memory leaks in the Namespace manager. 25198237Sjkim 26198237SjkimIntegrated latest acnetbsd.h file. 27198237Sjkim 28198237Sjkim---------------------------------------- 29198237Sjkim11 February 2004. Summary of changes for version 20040211: 30198237Sjkim 31198237Sjkim1) ACPI CA Core Subsystem: 32198237Sjkim 33198237SjkimCompleted investigation and implementation of the call-by- 34198237Sjkimreference mechanism for control method arguments. 35198237Sjkim 36198237SjkimFixed a problem where a store of an object into an indexed 37198237Sjkimpackage could fail if the store occurs within a different method 38198237Sjkimthan the method that created the package. 39198237Sjkim 40198237SjkimFixed a problem where the ToDecimal operator could return 41198237Sjkimincorrect results. 42198237Sjkim 43198237SjkimFixed a problem where the CopyObject operator could fail on some 44198237Sjkimof the more obscure objects (e.g., Reference objects.) 45198237Sjkim 46198237SjkimImproved the output of the Debug object to display buffer, 47198237Sjkimpackage, and index objects. 48198237Sjkim 49198237SjkimFixed a problem where constructs of the form "RefOf (ArgX)" did 50198237Sjkimnot return the expected result. 51198237Sjkim 52198237SjkimAdded permanent ACPI_REPORT_ERROR macros for all instances of the 53198237SjkimACPI_AML_INTERNAL exception. 54198237Sjkim 55198237SjkimIntegrated latest version of acfreebsd.h 56198237Sjkim 57198237Sjkim---------------------------------------- 58198237Sjkim16 January 2004. Summary of changes for version 20040116: 59198237Sjkim 60198237SjkimThe purpose of this release is primarily to update the copyright 61198237Sjkimyears in each module, thus causing a huge number of diffs. There 62198237Sjkimare a few small functional changes, however. 63198237Sjkim 64198237Sjkim1) ACPI CA Core Subsystem: 65198237Sjkim 66198237SjkimImproved error messages when there is a problem finding one or 67197104Sjkimmore of the required base ACPI tables 68197104Sjkim 69197104SjkimReintroduced the definition of APIC_HEADER in actbl.h 70197104Sjkim 71197104SjkimChanged definition of MADT_ADDRESS_OVERRIDE to 64 bits (actbl.h) 72197104Sjkim 73197104SjkimRemoved extraneous reference to NewObj in dsmthdat.c 74197104Sjkim 75197104Sjkim2) iASL compiler 76197104Sjkim 77197104SjkimFixed a problem introduced in December that disabled the correct 78197104Sjkimdisassembly of Resource Templates 79197104Sjkim 80197104Sjkim 81197104Sjkim---------------------------------------- 82197104Sjkim03 December 2003. Summary of changes for version 20031203: 83197104Sjkim 84197104Sjkim1) ACPI CA Core Subsystem: 85197104Sjkim 86197104SjkimChanged the initialization of Operation Regions during subsystem 87197104Sjkiminit to perform two entire walks of the ACPI namespace; The first 88197104Sjkimto initialize the regions themselves, the second to execute the 89197104Sjkim_REG methods. This fixed some interdependencies across _REG 90197104Sjkimmethods found on some machines. 91197104Sjkim 92197104SjkimFixed a problem where a Store(Local0, Local1) could simply update 93197104Sjkimthe object reference count, and not create a new copy of the 94197104Sjkimobject if the Local1 is uninitialized. 95197104Sjkim 96197104SjkimImplemented support for the _SST reserved method during sleep 97197104Sjkimtransitions. 98197104Sjkim 99197104SjkimImplemented support to clear the SLP_TYP and SLP_EN bits when 100197104Sjkimwaking up, this is apparently required by some machines. 101197104Sjkim 102197104SjkimWhen sleeping, clear the wake status only if SleepState is not 103197104SjkimS5. 104197104Sjkim 105197104SjkimFixed a problem in AcpiRsExtendedIrqResource() where an incorrect 106197104Sjkimpointer arithmetic advanced a string pointer too far. 107197104Sjkim 108197104SjkimFixed a problem in AcpiTbGetTablePtr() where a garbage pointer 109197104Sjkimcould be returned if the requested table has not been loaded. 110197104Sjkim 111197104SjkimWithin the support for IRQ resources, restructured the handling 112197104Sjkimof 113197104Sjkimthe active and edge/level bits. 114197104Sjkim 115197104SjkimFixed a few problems in AcpiPsxExecute() where memory could be 116197104Sjkimleaked under certain error conditions. 117197104Sjkim 118197104SjkimImproved error messages for the cases where the ACPI mode could 119197104Sjkimnot be entered. 120197104Sjkim 121197104SjkimCode and Data Size: Current and previous core subsystem library 122197104Sjkimsizes are shown below. These are the code and data sizes for the 123197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 124197104Sjkimthese values do not include any ACPI driver or OSPM code. The 125197104Sjkimdebug version of the code includes the debug output trace 126197104Sjkimmechanism and has a much larger code and data size. Note that 127197104Sjkimthese values will vary depending on the efficiency of the 128197104Sjkimcompiler 129197104Sjkimand the compiler options used during generation. 130197104Sjkim 131197104Sjkim Previous Release (20031029): 132197104Sjkim Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total 133197104Sjkim Debug Version: 158.3K Code, 65.0K Data, 223.3K Total 134197104Sjkim Current Release: 135197104Sjkim Non-Debug Version: 74.8K Code, 10.1K Data, 84.9K Total 136197104Sjkim Debug Version: 158.7K Code, 65.1K Data, 223.8K Total 137197104Sjkim 138197104Sjkim2) iASL Compiler/Disassembler: 139197104Sjkim 140197104SjkimImplemented a fix for the iASL disassembler where a bad index was 141197104Sjkimgenerated. This was most noticeable on 64-bit platforms 142197104Sjkim 143197104Sjkim 144197104Sjkim---------------------------------------- 145197104Sjkim29 October 2003. Summary of changes for version 20031029: 146197104Sjkim 147197104Sjkim1) ACPI CA Core Subsystem: 148197104Sjkim 149197104SjkimFixed a problem where a level-triggered GPE with an associated 150197104Sjkim_Lxx control method was incorrectly cleared twice. 151197104Sjkim 152197104SjkimFixed a problem with the Field support code where an access can 153197104Sjkimoccur beyond the end-of-region if the field is non-aligned but 154197104Sjkimextends to the very end of the parent region (resulted in an 155197104SjkimAE_AML_REGION_LIMIT exception.) 156197104Sjkim 157197104SjkimFixed a problem with ACPI Fixed Events where an RT Clock handler 158197104Sjkimwould not get invoked on an RTC event. The RTC event bitmasks 159197104Sjkimfor 160197104Sjkimthe PM1 registers were not being initialized properly. 161197104Sjkim 162197104SjkimImplemented support for executing _STA and _INI methods for 163197104SjkimProcessor objects. Although this is currently not part of the 164197104SjkimACPI specification, there is existing ASL code that depends on 165197104Sjkimthe 166197104Sjkiminit-time execution of these methods. 167197104Sjkim 168197104SjkimImplemented and deployed a GetDescriptorName function to decode 169197104Sjkimthe various types of internal descriptors. Guards against null 170197104Sjkimdescriptors during debug output also. 171197104Sjkim 172197104SjkimImplemented and deployed a GetNodeName function to extract the 4- 173197104Sjkimcharacter namespace node name. This function simplifies the 174197104Sjkimdebug 175197104Sjkimand error output, as well as guarding against null pointers 176197104Sjkimduring 177197104Sjkimoutput. 178197104Sjkim 179197104SjkimImplemented and deployed the ACPI_FORMAT_UINT64 helper macro to 180197104Sjkimsimplify the debug and error output of 64-bit integers. This 181197104Sjkimmacro replaces the HIDWORD and LODWORD macros for dumping these 182197104Sjkimintegers. 183197104Sjkim 184197104SjkimUpdated the implementation of the Stall() operator to only call 185197104SjkimAcpiOsStall(), and also return an error if the operand is larger 186197104Sjkimthan 255. This preserves the required behavior of not 187197104Sjkimrelinquishing the processor, as would happen if AcpiOsSleep() was 188197104Sjkimcalled for "long stalls". 189197104Sjkim 190197104SjkimConstructs of the form "Store(LocalX,LocalX)" where LocalX is not 191197104Sjkiminitialized are now treated as NOOPs. 192197104Sjkim 193197104SjkimCleaned up a handful of warnings during 64-bit generation. 194197104Sjkim 195197104SjkimFixed a reported error where and incorrect GPE number was passed 196197104Sjkimto the GPE dispatch handler. This value is only used for error 197197104Sjkimoutput, however. Used this opportunity to clean up and 198197104Sjkimstreamline 199197104Sjkimthe GPE dispatch code. 200197104Sjkim 201197104SjkimCode and Data Size: Current and previous core subsystem library 202197104Sjkimsizes are shown below. These are the code and data sizes for the 203197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 204197104Sjkimthese values do not include any ACPI driver or OSPM code. The 205197104Sjkimdebug version of the code includes the debug output trace 206197104Sjkimmechanism and has a much larger code and data size. Note that 207197104Sjkimthese values will vary depending on the efficiency of the 208197104Sjkimcompiler 209197104Sjkimand the compiler options used during generation. 210197104Sjkim 211197104Sjkim Previous Release (20031002): 212197104Sjkim Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total 213197104Sjkim Debug Version: 157.9K Code, 64.8K Data, 222.7K Total 214197104Sjkim Current Release: 215197104Sjkim Non-Debug Version: 74.4K Code, 10.1K Data, 84.5K Total 216197104Sjkim Debug Version: 158.3K Code, 65.0K Data, 223.3K Total 217197104Sjkim 218197104Sjkim 219197104Sjkim2) iASL Compiler/Disassembler: 220197104Sjkim 221197104SjkimUpdated the iASL compiler to return an error if the operand to 222197104Sjkimthe 223197104SjkimStall() operator is larger than 255. 224197104Sjkim 225197104Sjkim 226197104Sjkim---------------------------------------- 227197104Sjkim02 October 2003. Summary of changes for version 20031002: 228197104Sjkim 229197104Sjkim 230197104Sjkim1) ACPI CA Core Subsystem: 231197104Sjkim 232197104SjkimFixed a problem with Index Fields where the index was not 233197104Sjkimincremented for fields that require multiple writes to the 234197104Sjkimindex/data registers (Fields that are wider than the data 235197104Sjkimregister.) 236197104Sjkim 237197104SjkimFixed a problem with all Field objects where a write could go 238197104Sjkimbeyond the end-of-field if the field was larger than the access 239197104Sjkimgranularity and therefore required multiple writes to complete 240197104Sjkimthe 241197104Sjkimrequest. An extra write beyond the end of the field could happen 242197104Sjkiminadvertently. 243197104Sjkim 244197104SjkimFixed a problem with Index Fields where a BUFFER_OVERFLOW error 245197104Sjkimwould incorrectly be returned if the width of the Data Register 246197104Sjkimwas larger than the specified field access width. 247197104Sjkim 248197104SjkimCompleted fixes for LoadTable() and Unload() and verified their 249197104Sjkimoperation. Implemented full support for the "DdbHandle" object 250197104Sjkimthroughout the ACPI CA subsystem. 251197104Sjkim 252197104SjkimImplemented full support for the MADT and ECDT tables in the ACPI 253197104SjkimCA header files. Even though these tables are not directly 254197104Sjkimconsumed by ACPI CA, the header definitions are useful for ACPI 255197104Sjkimdevice drivers. 256197104Sjkim 257197104SjkimIntegrated resource descriptor fixes posted to the Linux ACPI 258197104Sjkimlist. This included checks for minimum descriptor length, and 259197104Sjkimsupport for trailing NULL strings within descriptors that have 260197104Sjkimoptional string elements. 261197104Sjkim 262197104SjkimCode and Data Size: Current and previous core subsystem library 263197104Sjkimsizes are shown below. These are the code and data sizes for the 264197104Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 265197104Sjkimthese values do not include any ACPI driver or OSPM code. The 266197104Sjkimdebug version of the code includes the debug output trace 267197104Sjkimmechanism and has a much larger code and data size. Note that 268197104Sjkimthese values will vary depending on the efficiency of the 269197104Sjkimcompiler 270197104Sjkimand the compiler options used during generation. 271197104Sjkim 272197104Sjkim Previous Release (20030918): 273197104Sjkim Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total 274197104Sjkim Debug Version: 157.3K Code, 64.5K Data, 221.8K Total 275197104Sjkim Current Release: 276197104Sjkim Non-Debug Version: 74.1K Code, 9.7K Data, 83.8K Total 277197104Sjkim Debug Version: 157.9K Code, 64.8K Data, 222.7K Total 278197104Sjkim 279197104Sjkim 280193267Sjkim2) iASL Compiler: 281193267Sjkim 282193267SjkimImplemented detection of non-ASCII characters within the input 283193267Sjkimsource ASL file. This catches attempts to compile binary (AML) 284193267Sjkimfiles early in the compile, with an informative error message. 285193267Sjkim 286193267SjkimFixed a problem where the disassembler would fault if the output 287193267Sjkimfilename could not be generated or if the output file could not 288193267Sjkimbe 289193267Sjkimopened. 290193267Sjkim 291193267Sjkim---------------------------------------- 292193267Sjkim18 September 2003. Summary of changes for version 20030918: 293193267Sjkim 294193267Sjkim 295193267Sjkim1) ACPI CA Core Subsystem: 296193267Sjkim 297193267SjkimFound and fixed a longstanding problem with the late execution of 298193267Sjkimthe various deferred AML opcodes (such as Operation Regions, 299193267SjkimBuffer Fields, Buffers, and Packages). If the name string 300193267Sjkimspecified for the name of the new object placed the object in a 301193267Sjkimscope other than the current scope, the initialization/execution 302193267Sjkimof the opcode failed. The solution to this problem was to 303193267Sjkimimplement a mechanism where the late execution of such opcodes 304193267Sjkimdoes not attempt to lookup/create the name a second time in an 305193267Sjkimincorrect scope. This fixes the "region size computed 306193267Sjkimincorrectly" problem. 307193267Sjkim 308193267SjkimFixed a call to AcpiHwRegisterWrite in hwregs.c that was causing 309193267Sjkima 310193267SjkimGlobal Lock AE_BAD_PARAMETER error. 311193267Sjkim 312193267SjkimFixed several 64-bit issues with prototypes, casting and data 313193267Sjkimtypes. 314193267Sjkim 315193267SjkimRemoved duplicate prototype from acdisasm.h 316193267Sjkim 317193267SjkimFixed an issue involving EC Operation Region Detach (Shaohua Li) 318193267Sjkim 319193267SjkimCode and Data Size: Current and previous core subsystem library 320193267Sjkimsizes are shown below. These are the code and data sizes for the 321193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 322193267Sjkimthese values do not include any ACPI driver or OSPM code. The 323193267Sjkimdebug version of the code includes the debug output trace 324193267Sjkimmechanism and has a much larger code and data size. Note that 325193267Sjkimthese values will vary depending on the efficiency of the 326193267Sjkimcompiler 327193267Sjkimand the compiler options used during generation. 328193267Sjkim 329193267Sjkim Previous Release: 330193267Sjkim Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total 331193267Sjkim Debug Version: 156.9K Code, 64.2K Data, 221.1K Total 332193267Sjkim Current Release: 333193267Sjkim Non-Debug Version: 73.9K Code, 9.7K Data, 83.6K Total 334193267Sjkim Debug Version: 157.3K Code, 64.5K Data, 221.8K Total 335193267Sjkim 336193267Sjkim 337193267Sjkim2) Linux: 338193267Sjkim 339193267SjkimFixed the AcpiOsSleep implementation in osunixxf.c to pass the 340193267Sjkimcorrect sleep time in seconds. 341193267Sjkim 342193267Sjkim---------------------------------------- 343193267Sjkim14 July 2003. Summary of changes for version 20030619: 344193267Sjkim 345193267Sjkim1) ACPI CA Core Subsystem: 346193267Sjkim 347193267SjkimParse SSDTs in order discovered, as opposed to reverse order 348193267Sjkim(Hrvoje Habjanic) 349193267Sjkim 350193267SjkimFixes from FreeBSD and NetBSD. (Frank van der Linden, Thomas 351193267SjkimKlausner, 352193267Sjkim Nate Lawson) 353193267Sjkim 354193267Sjkim 355193267Sjkim2) Linux: 356193267Sjkim 357193267SjkimDynamically allocate SDT list (suggested by Andi Kleen) 358193267Sjkim 359193267Sjkimproc function return value cleanups (Andi Kleen) 360193267Sjkim 361193267SjkimCorrectly handle NMI watchdog during long stalls (Andrew Morton) 362193267Sjkim 363193267SjkimMake it so acpismp=force works (reported by Andrew Morton) 364193267Sjkim 365193267Sjkim 366193267Sjkim---------------------------------------- 367193267Sjkim19 June 2003. Summary of changes for version 20030619: 368193267Sjkim 369193267Sjkim1) ACPI CA Core Subsystem: 370193267Sjkim 371193267SjkimFix To/FromBCD, eliminating the need for an arch-specific 372193267Sjkim#define. 373193267Sjkim 374193267SjkimDo not acquire a semaphore in the S5 shutdown path. 375193267Sjkim 376193267SjkimFix ex_digits_needed for 0. (Takayoshi Kochi) 377193267Sjkim 378193267SjkimFix sleep/stall code reversal. (Andi Kleen) 379193267Sjkim 380193267SjkimRevert a change having to do with control method calling 381193267Sjkimsemantics. 382193267Sjkim 383193267Sjkim2) Linux: 384193267Sjkim 385193267Sjkimacpiphp update (Takayoshi Kochi) 386193267Sjkim 387193267SjkimExport acpi_disabled for sonypi (Stelian Pop) 388193267Sjkim 389193267SjkimMention acpismp=force in config help 390193267Sjkim 391193267SjkimRe-add acpitable.c and acpismp=force. This improves backwards 392193267Sjkimcompatibility and also cleans up the code to a significant 393193267Sjkimdegree. 394193267Sjkim 395193267SjkimAdd ASUS Value-add driver (Karol Kozimor and Julien Lerouge) 396193267Sjkim 397193267Sjkim---------------------------------------- 398193267Sjkim22 May 2003. Summary of changes for version 20030522: 399193267Sjkim 400193267Sjkim1) ACPI CA Core Subsystem: 401193267Sjkim 402193267SjkimFound and fixed a reported problem where an AE_NOT_FOUND error 403193267Sjkimoccurred occasionally during _BST evaluation. This turned out to 404193267Sjkimbe an Owner ID allocation issue where a called method did not get 405193267Sjkima new ID assigned to it. Eventually, (after 64k calls), the 406193267SjkimOwner 407193267SjkimID UINT16 would wraparound so that the ID would be the same as 408193267Sjkimthe 409193267Sjkimcaller's and the called method would delete the caller's 410193267Sjkimnamespace. 411193267Sjkim 412193267SjkimImplemented extended error reporting for control methods that are 413193267Sjkimaborted due to a run-time exception. Output includes the exact 414193267SjkimAML instruction that caused the method abort, a dump of the 415193267Sjkimmethod 416193267Sjkimlocals and arguments at the time of the abort, and a trace of all 417193267Sjkimnested control method calls. 418193267Sjkim 419193267SjkimModified the interpreter to allow the creation of buffers of zero 420193267Sjkimlength from the AML code. Implemented new code to ensure that no 421193267Sjkimattempt is made to actually allocate a memory buffer (of length 422193267Sjkimzero) - instead, a simple buffer object with a NULL buffer 423193267Sjkimpointer 424193267Sjkimand length zero is created. A warning is no longer issued when 425193267Sjkimthe AML attempts to create a zero-length buffer. 426193267Sjkim 427193267SjkimImplemented a workaround for the "leading asterisk issue" in 428193267Sjkim_HIDs, _UIDs, and _CIDs in the AML interpreter. One leading 429193267Sjkimasterisk is automatically removed if present in any HID, UID, or 430193267SjkimCID strings. The iASL compiler will still flag this asterisk as 431193267Sjkiman error, however. 432193267Sjkim 433193267SjkimImplemented full support for _CID methods that return a package 434193267Sjkimof 435193267Sjkimmultiple CIDs (Compatible IDs). The AcpiGetObjectInfo() 436193267Sjkiminterface 437193267Sjkimnow additionally returns a device _CID list if present. This 438193267Sjkimrequired a change to the external interface in order to pass an 439193267SjkimACPI_BUFFER object as a parameter since the _CID list is of 440193267Sjkimvariable length. 441193267Sjkim 442193267SjkimFixed a problem with the new AE_SAME_HANDLER exception where 443193267Sjkimhandler initialization code did not know about this exception. 444193267Sjkim 445193267SjkimCode and Data Size: Current and previous core subsystem library 446193267Sjkimsizes are shown below. These are the code and data sizes for the 447193267Sjkimacpica.lib produced by the Microsoft Visual C++ 6.0 compiler, and 448193267Sjkimthese values do not include any ACPI driver or OSPM code. The 449193267Sjkimdebug version of the code includes the debug output trace 450193267Sjkimmechanism and has a much larger code and data size. Note that 451193267Sjkimthese values will vary depending on the efficiency of the 452193267Sjkimcompiler 453193267Sjkimand the compiler options used during generation. 454193267Sjkim 455193267Sjkim Previous Release (20030509): 456193267Sjkim Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total 457193267Sjkim Debug Version: 156.1K Code, 63.9K Data, 220.0K Total 458193267Sjkim Current Release: 459193267Sjkim Non-Debug Version: 73.7K Code, 9.7K Data, 83.4K Total 460193267Sjkim Debug Version: 156.9K Code, 64.2K Data, 221.1K Total 461193267Sjkim 462193267Sjkim 463193267Sjkim2) Linux: 464193267Sjkim 465193267SjkimFixed a bug in which we would reinitialize the ACPI interrupt 466193267Sjkimafter it was already working, thus disabling all ACPI and the 467193267SjkimIRQs 468193267Sjkimfor any other device sharing the interrupt. (Thanks to Stian 469193267SjkimJordet) 470193267Sjkim 471193267SjkimToshiba driver update (John Belmonte) 472193267Sjkim 473193267SjkimReturn only 0 or 1 for our interrupt handler status (Andrew 474193267SjkimMorton) 475193267Sjkim 476193267Sjkim 477193267Sjkim3) iASL Compiler: 478193267Sjkim 479193267SjkimFixed a reported problem where multiple (nested) ElseIf() 480193267Sjkimstatements were not handled correctly by the compiler, resulting 481193267Sjkimin incorrect warnings and incorrect AML code. This was a problem 482193267Sjkimin both the ASL parser and the code generator. 483193267Sjkim 484193267Sjkim 485193267Sjkim4) Documentation: 486193267Sjkim 487193267SjkimAdded changes to existing interfaces, new exception codes, and 488193267Sjkimnew 489193267Sjkimtext concerning reference count object management versus garbage 490193267Sjkimcollection. 491193267Sjkim 492193267Sjkim---------------------------------------- 493193267Sjkim09 May 2003. Summary of changes for version 20030509. 494193267Sjkim 495193267Sjkim 496193267Sjkim1) ACPI CA Core Subsystem: 497193267Sjkim 498193267SjkimChanged the subsystem initialization sequence to hold off 499193267Sjkiminstallation of address space handlers until the hardware has 500193267Sjkimbeen 501193267Sjkiminitialized and the system has entered ACPI mode. This is 502193267Sjkimbecause 503193267Sjkimthe installation of space handlers can cause _REG methods to be 504193267Sjkimrun. Previously, the _REG methods could potentially be run 505193267Sjkimbefore 506193267SjkimACPI mode was enabled. 507193267Sjkim 508193267SjkimFixed some memory leak issues related to address space handler 509193267Sjkimand 510193267Sjkimnotify handler installation. There were some problems with the 511193267Sjkimreference count mechanism caused by the fact that the handler 512193267Sjkimobjects are shared across several namespace objects. 513193267Sjkim 514193267SjkimFixed a reported problem where reference counts within the 515193267Sjkimnamespace were not properly updated when named objects created by 516193267Sjkimmethod execution were deleted. 517193267Sjkim 518193267SjkimFixed a reported problem where multiple SSDTs caused a deletion 519193267Sjkimissue during subsystem termination. Restructured the table data 520193267Sjkimstructures to simplify the linked lists and the related code. 521193267Sjkim 522193267SjkimFixed a problem where the table ID associated with secondary 523193267Sjkimtables (SSDTs) was not being propagated into the namespace 524193267Sjkimobjects 525193267Sjkimcreated by those tables. This would only present a problem for 526193267Sjkimtables that are unloaded at run-time, however. 527193267Sjkim 528193267SjkimUpdated AcpiOsReadable and AcpiOsWritable to use the ACPI_SIZE 529193267Sjkimtype as the length parameter (instead of UINT32). 530193267Sjkim 531193267SjkimSolved a long-standing problem where an ALREADY_EXISTS error 532193267Sjkimappears on various systems. This problem could happen when there 533193267Sjkimare multiple PCI_Config operation regions under a single PCI root 534193267Sjkimbus. This doesn't happen very frequently, but there are some 535193267Sjkimsystems that do this in the ASL. 536193267Sjkim 537193267SjkimFixed a reported problem where the internal DeleteNode function 538193267Sjkimwas incorrectly handling the case where a namespace node was the 539193267Sjkimfirst in the parent's child list, and had additional peers (not 540193267Sjkimthe only child, but first in the list of children.) 541193267Sjkim 542193267SjkimCode and Data Size: Current core subsystem library sizes are 543193267Sjkimshown 544193267Sjkimbelow. These are the code and data sizes for the acpica.lib 545193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 546193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 547193267Sjkimversion of the code includes the debug output trace mechanism and 548193267Sjkimhas a much larger code and data size. Note that these values 549193267Sjkimwill 550193267Sjkimvary depending on the efficiency of the compiler and the compiler 551193267Sjkimoptions used during generation. 552193267Sjkim 553193267Sjkim Previous Release 554193267Sjkim Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total 555193267Sjkim Debug Version: 156.1K Code, 63.6K Data, 219.7K Total 556193267Sjkim Current Release: 557193267Sjkim Non-Debug Version: 73.4K Code, 9.7K Data, 83.1K Total 558193267Sjkim Debug Version: 156.1K Code, 63.9K Data, 220.0K Total 559193267Sjkim 560193267Sjkim 561193267Sjkim2) Linux: 562193267Sjkim 563193267SjkimAllow ":" in OS override string (Ducrot Bruno) 564193267Sjkim 565193267SjkimKobject fix (Greg KH) 566193267Sjkim 567193267Sjkim 568193267Sjkim3 iASL Compiler/Disassembler: 569193267Sjkim 570193267SjkimFixed a problem in the generation of the C source code files (AML 571193267Sjkimis emitted in C source statements for BIOS inclusion) where the 572193267SjkimAscii dump that appears within a C comment at the end of each 573193267Sjkimline 574193267Sjkimcould cause a compile time error if the AML sequence happens to 575193267Sjkimhave an open comment or close comment sequence embedded. 576193267Sjkim 577193267Sjkim 578193267Sjkim---------------------------------------- 579193267Sjkim24 April 2003. Summary of changes for version 20030424. 580193267Sjkim 581193267Sjkim 582193267Sjkim1) ACPI CA Core Subsystem: 583193267Sjkim 584193267SjkimSupport for big-endian systems has been implemented. Most of the 585193267Sjkimsupport has been invisibly added behind big-endian versions of 586193267Sjkimthe 587193267SjkimACPI_MOVE_* macros. 588193267Sjkim 589193267SjkimFixed a problem in AcpiHwDisableGpeBlock() and 590193267SjkimAcpiHwClearGpeBlock() where an incorrect offset was passed to the 591193267Sjkimlow level hardware write routine. The offset parameter was 592193267Sjkimactually eliminated from the low level read/write routines 593193267Sjkimbecause 594193267Sjkimthey had become obsolete. 595193267Sjkim 596193267SjkimFixed a problem where a handler object was deleted twice during 597193267Sjkimthe removal of a fixed event handler. 598193267Sjkim 599193267Sjkim 600193267Sjkim2) Linux: 601193267Sjkim 602193267SjkimA fix for SMP systems with link devices was contributed by 603193267SjkimCompaq's Dan Zink. 604193267Sjkim 605193267Sjkim(2.5) Return whether we handled the interrupt in our IRQ handler. 606193267Sjkim(Linux ISRs no longer return void, so we can propagate the 607193267Sjkimhandler 608193267Sjkimreturn value from the ACPI CA core back to the OS.) 609193267Sjkim 610193267Sjkim 611193267Sjkim3) Documentation: 612193267Sjkim 613193267SjkimThe ACPI CA Programmer Reference has been updated to reflect new 614193267Sjkiminterfaces and changes to existing interfaces. 615193267Sjkim 616193267Sjkim---------------------------------------- 617193267Sjkim28 March 2003. Summary of changes for version 20030328. 618193267Sjkim 619193267Sjkim1) ACPI CA Core Subsystem: 620193267Sjkim 621193267SjkimThe GPE Block Device support has been completed. New interfaces 622193267Sjkimare AcpiInstallGpeBlock and AcpiRemoveGpeBlock. The Event 623193267Sjkiminterfaces (enable, disable, clear, getstatus) have been split 624193267Sjkiminto separate interfaces for Fixed Events and General Purpose 625193267SjkimEvents (GPEs) in order to support GPE Block Devices properly. 626193267Sjkim 627193267SjkimFixed a problem where the error message "Failed to acquire 628193267Sjkimsemaphore" would appear during operations on the embedded 629193267Sjkimcontroller (EC). 630193267Sjkim 631193267SjkimCode and Data Size: Current core subsystem library sizes are 632193267Sjkimshown 633193267Sjkimbelow. These are the code and data sizes for the acpica.lib 634193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 635193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 636193267Sjkimversion of the code includes the debug output trace mechanism and 637193267Sjkimhas a much larger code and data size. Note that these values 638193267Sjkimwill 639193267Sjkimvary depending on the efficiency of the compiler and the compiler 640193267Sjkimoptions used during generation. 641193267Sjkim 642193267Sjkim Previous Release 643193267Sjkim Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total 644193267Sjkim Debug Version: 154.0K Code, 63.4K Data, 217.4K Total 645193267Sjkim Current Release: 646193267Sjkim Non-Debug Version: 73.7K Code, 9.5K Data, 83.2K Total 647193267Sjkim Debug Version: 156.1K Code, 63.6K Data, 219.7K Total 648193267Sjkim 649193267Sjkim 650193267Sjkim---------------------------------------- 651193267Sjkim28 February 2003. Summary of changes for version 20030228. 652193267Sjkim 653193267Sjkim 654193267Sjkim1) ACPI CA Core Subsystem: 655193267Sjkim 656193267SjkimThe GPE handling and dispatch code has been completely overhauled 657193267Sjkimin preparation for support of GPE Block Devices (ID ACPI0006). 658193267SjkimThis affects internal data structures and code only; there should 659193267Sjkimbe no differences visible externally. One new file has been 660193267Sjkimadded, evgpeblk.c 661193267Sjkim 662193267SjkimThe FADT fields GPE0_BLK_LEN and GPE1_BLK_LEN are now the only 663193267Sjkimfields that are used to determine the GPE block lengths. The 664193267SjkimREGISTER_BIT_WIDTH field of the X_GPEx_BLK extended address 665193267Sjkimstructures are ignored. This is per the ACPI specification but 666193267Sjkimit 667193267Sjkimisn't very clear. The full 256 Block 0/1 GPEs are now supported 668193267Sjkim(the use of REGISTER_BIT_WIDTH limited the number of GPEs to 669193267Sjkim128). 670193267Sjkim 671193267SjkimIn the SCI interrupt handler, removed the read of the PM1_CONTROL 672193267Sjkimregister to look at the SCI_EN bit. On some machines, this read 673193267Sjkimcauses an SMI event and greatly slows down SCI events. (This may 674193267Sjkimin fact be the cause of slow battery status response on some 675193267Sjkimsystems.) 676193267Sjkim 677193267SjkimFixed a problem where a store of a NULL string to a package 678193267Sjkimobject 679193267Sjkimcould cause the premature deletion of the object. This was seen 680193267Sjkimduring execution of the battery _BIF method on some systems, 681193267Sjkimresulting in no battery data being returned. 682193267Sjkim 683193267SjkimAdded AcpiWalkResources interface to simplify parsing of resource 684193267Sjkimlists. 685193267Sjkim 686193267SjkimCode and Data Size: Current core subsystem library sizes are 687193267Sjkimshown 688193267Sjkimbelow. These are the code and data sizes for the acpica.lib 689193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 690193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 691193267Sjkimversion of the code includes the debug output trace mechanism and 692193267Sjkimhas a much larger code and data size. Note that these values 693193267Sjkimwill 694193267Sjkimvary depending on the efficiency of the compiler and the compiler 695193267Sjkimoptions used during generation. 696193267Sjkim 697193267Sjkim Previous Release 698193267Sjkim Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total 699193267Sjkim Debug Version: 153.0K Code, 62.9K Data, 215.9K Total 700193267Sjkim Current Release: 701193267Sjkim Non-Debug Version: 72.3K Code, 9.5K Data, 81.8K Total 702193267Sjkim Debug Version: 154.0K Code, 63.4K Data, 217.4K Total 703193267Sjkim 704193267Sjkim 705193267Sjkim2) Linux 706193267Sjkim 707193267SjkimS3 fixes (Ole Rohne) 708193267Sjkim 709193267SjkimUpdate ACPI PHP driver with to use new acpi_walk_resource API 710193267Sjkim(Bjorn Helgaas) 711193267Sjkim 712193267SjkimAdd S4BIOS support (Pavel Machek) 713193267Sjkim 714193267SjkimMap in entire table before performing checksum (John Stultz) 715193267Sjkim 716193267SjkimExpand the mem= cmdline to allow the specification of reserved 717193267Sjkimand 718193267SjkimACPI DATA blocks (Pavel Machek) 719193267Sjkim 720193267SjkimNever use ACPI on VISWS 721193267Sjkim 722193267SjkimFix derive_pci_id (Ducrot Bruno, Alvaro Lopez) 723193267Sjkim 724193267SjkimRevert a change that allowed P_BLK lengths to be 4 or 5. This is 725193267Sjkimcausing us to think that some systems support C2 when they really 726193267Sjkimdon't. 727193267Sjkim 728193267SjkimDo not count processor objects for non-present CPUs (Thanks to 729193267SjkimDominik Brodowski) 730193267Sjkim 731193267Sjkim 732193267Sjkim3) iASL Compiler: 733193267Sjkim 734193267SjkimFixed a problem where ASL include files could not be found and 735193267Sjkimopened. 736193267Sjkim 737193267SjkimAdded support for the _PDC reserved name. 738193267Sjkim 739193267Sjkim 740193267Sjkim---------------------------------------- 741193267Sjkim22 January 2003. Summary of changes for version 20030122. 742193267Sjkim 743193267Sjkim 744193267Sjkim1) ACPI CA Core Subsystem: 745193267Sjkim 746193267SjkimAdded a check for constructs of the form: Store (Local0, Local0) 747193267Sjkimwhere Local0 is not initialized. Apparently, some BIOS 748193267Sjkimprogrammers believe that this is a NOOP. Since this store 749193267Sjkimdoesn't 750193267Sjkimdo anything anyway, the new prototype behavior will ignore this 751193267Sjkimerror. This is a case where we can relax the strict checking in 752193267Sjkimthe interpreter in the name of compatibility. 753193267Sjkim 754193267Sjkim 755193267Sjkim2) Linux 756193267Sjkim 757193267SjkimThe AcpiSrc Source Conversion Utility has been released with the 758193267SjkimLinux package for the first time. This is the utility that is 759193267Sjkimused to convert the ACPI CA base source code to the Linux 760193267Sjkimversion. 761193267Sjkim 762193267Sjkim(Both) Handle P_BLK lengths shorter than 6 more gracefully 763193267Sjkim 764193267Sjkim(Both) Move more headers to include/acpi, and delete an unused 765193267Sjkimheader. 766193267Sjkim 767193267Sjkim(Both) Move drivers/acpi/include directory to include/acpi 768193267Sjkim 769193267Sjkim(Both) Boot functions don't use cmdline, so don't pass it around 770193267Sjkim 771193267Sjkim(Both) Remove include of unused header (Adrian Bunk) 772193267Sjkim 773193267Sjkim(Both) acpiphp.h includes both linux/acpi.h and acpi_bus.h. Since 774193267Sjkimthe 775193267Sjkimformer now also includes the latter, acpiphp.h only needs the 776193267Sjkimone, 777193267Sjkimnow. 778193267Sjkim 779193267Sjkim(2.5) Make it possible to select method of bios restoring after 780193267SjkimS3 781193267Sjkimresume. [=> no more ugly ifdefs] (Pavel Machek) 782193267Sjkim 783193267Sjkim(2.5) Make proc write interfaces work (Pavel Machek) 784193267Sjkim 785193267Sjkim(2.5) Properly init/clean up in cpufreq/acpi (Dominik Brodowski) 786193267Sjkim 787193267Sjkim(2.5) Break out ACPI Perf code into its own module, under cpufreq 788193267Sjkim(Dominik Brodowski) 789193267Sjkim 790193267Sjkim(2.4) S4BIOS support (Ducrot Bruno) 791193267Sjkim 792193267Sjkim(2.4) Fix acpiphp_glue.c for latest ACPI struct changes (Sergio 793193267SjkimVisinoni) 794193267Sjkim 795193267Sjkim 796193267Sjkim3) iASL Compiler: 797193267Sjkim 798193267SjkimAdded support to disassemble SSDT and PSDTs. 799193267Sjkim 800193267SjkimImplemented support to obtain SSDTs from the Windows registry if 801193267Sjkimavailable. 802193267Sjkim 803193267Sjkim 804193267Sjkim---------------------------------------- 805193267Sjkim09 January 2003. Summary of changes for version 20030109. 806193267Sjkim 807193267Sjkim1) ACPI CA Core Subsystem: 808193267Sjkim 809193267SjkimChanged the behavior of the internal Buffer-to-String conversion 810193267Sjkimfunction. The current ACPI specification states that the 811193267Sjkimcontents 812193267Sjkimof the buffer are "converted to a string of two-character 813193267Sjkimhexadecimal numbers, each separated by a space". Unfortunately, 814193267Sjkimthis definition is not backwards compatible with existing ACPI 815193267Sjkim1.0 816193267Sjkimimplementations (although the behavior was not defined in the 817193267SjkimACPI 818193267Sjkim1.0 specification). The new behavior simply copies data from the 819193267Sjkimbuffer to the string until a null character is found or the end 820193267Sjkimof 821193267Sjkimthe buffer is reached. The new String object is always null 822193267Sjkimterminated. This problem was seen during the generation of _BIF 823193267Sjkimbattery data where incorrect strings were returned for battery 824193267Sjkimtype, etc. This will also require an errata to the ACPI 825193267Sjkimspecification. 826193267Sjkim 827193267SjkimRenamed all instances of NATIVE_UINT and NATIVE_INT to 828193267SjkimACPI_NATIVE_UINT and ACPI_NATIVE_INT, respectively. 829193267Sjkim 830193267SjkimCopyright in all module headers (both Linux and non-Linux) has be 831193267Sjkimupdated to 2003. 832193267Sjkim 833193267SjkimCode and Data Size: Current core subsystem library sizes are 834193267Sjkimshown 835193267Sjkimbelow. These are the code and data sizes for the acpica.lib 836193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 837193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 838193267Sjkimversion of the code includes the debug output trace mechanism and 839193267Sjkimhas a much larger code and data size. Note that these values 840193267Sjkimwill 841193267Sjkimvary depending on the efficiency of the compiler and the compiler 842193267Sjkimoptions used during generation. 843193267Sjkim 844193267Sjkim Previous Release 845193267Sjkim Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total 846193267Sjkim Debug Version: 153.0K Code, 62.9K Data, 215.9K Total 847193267Sjkim Current Release: 848193267Sjkim Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total 849193267Sjkim Debug Version: 153.0K Code, 62.9K Data, 215.9K Total 850193267Sjkim 851193267Sjkim 852193267Sjkim2) Linux 853193267Sjkim 854193267SjkimFixed an oops on module insertion/removal (Matthew Tippett) 855193267Sjkim 856193267Sjkim(2.4) Fix to handle dynamic size of mp_irqs (Joerg Prante) 857193267Sjkim 858193267Sjkim(2.5) Replace pr_debug (Randy Dunlap) 859193267Sjkim 860193267Sjkim(2.5) Remove usage of CPUFREQ_ALL_CPUS (Dominik Brodowski) 861193267Sjkim 862193267Sjkim(Both) Eliminate spawning of thread from timer callback, in favor 863193267Sjkimof schedule_work() 864193267Sjkim 865193267Sjkim(Both) Show Lid status in /proc (Zdenek OGAR Skalak) 866193267Sjkim 867193267Sjkim(Both) Added define for Fixed Function HW region (Matthew Wilcox) 868193267Sjkim 869193267Sjkim(Both) Add missing statics to button.c (Pavel Machek) 870193267Sjkim 871193267SjkimSeveral changes have been made to the source code translation 872193267Sjkimutility that generates the Linux Code in order to make the code 873193267Sjkimmore "Linux-like": 874193267Sjkim 875193267SjkimAll typedefs on structs and unions have been removed in keeping 876193267Sjkimwith the Linux coding style. 877193267Sjkim 878193267SjkimRemoved the non-Linux SourceSafe module revision number from each 879193267Sjkimmodule header. 880193267Sjkim 881193267SjkimCompleted major overhaul of symbols to be lowercased for linux. 882193267SjkimDoubled the number of symbols that are lowercased. 883193267Sjkim 884193267SjkimFixed a problem where identifiers within procedure headers and 885193267Sjkimwithin quotes were not fully lower cased (they were left with a 886193267Sjkimstarting capital.) 887193267Sjkim 888193267SjkimSome C macros whose only purpose is to allow the generation of 16- 889193267Sjkimbit code are now completely removed in the Linux code, increasing 890193267Sjkimreadability and maintainability. 891193267Sjkim 892193267Sjkim---------------------------------------- 893193267Sjkim 894193267Sjkim12 December 2002. Summary of changes for version 20021212. 895193267Sjkim 896193267Sjkim 897193267Sjkim1) ACPI CA Core Subsystem: 898193267Sjkim 899193267SjkimFixed a problem where the creation of a zero-length AML Buffer 900193267Sjkimwould cause a fault. 901193267Sjkim 902193267SjkimFixed a problem where a Buffer object that pointed to a static 903193267SjkimAML 904193267Sjkimbuffer (in an ACPI table) could inadvertently be deleted, causing 905193267Sjkimmemory corruption. 906193267Sjkim 907193267SjkimFixed a problem where a user buffer (passed in to the external 908193267SjkimACPI CA interfaces) could be overwritten if the buffer was too 909193267Sjkimsmall to complete the operation, causing memory corruption. 910193267Sjkim 911193267SjkimFixed a problem in the Buffer-to-String conversion code where a 912193267Sjkimstring of length one was always returned, regardless of the size 913193267Sjkimof the input Buffer object. 914193267Sjkim 915193267SjkimRemoved the NATIVE_CHAR data type across the entire source due to 916193267Sjkimlack of need and lack of consistent use. 917193267Sjkim 918193267SjkimCode and Data Size: Current core subsystem library sizes are 919193267Sjkimshown 920193267Sjkimbelow. These are the code and data sizes for the acpica.lib 921193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 922193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 923193267Sjkimversion of the code includes the debug output trace mechanism and 924193267Sjkimhas a much larger code and data size. Note that these values 925193267Sjkimwill 926193267Sjkimvary depending on the efficiency of the compiler and the compiler 927193267Sjkimoptions used during generation. 928193267Sjkim 929193267Sjkim Previous Release 930193267Sjkim Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total 931193267Sjkim Debug Version: 152.7K Code, 62.7K Data, 215.4K Total 932193267Sjkim Current Release: 933193267Sjkim Non-Debug Version: 72.0K Code, 9.5K Data, 81.5K Total 934193267Sjkim Debug Version: 153.0K Code, 62.9K Data, 215.9K Total 935193267Sjkim 936193267Sjkim 937193267Sjkim---------------------------------------- 938193267Sjkim05 December 2002. Summary of changes for version 20021205. 939193267Sjkim 940193267Sjkim1) ACPI CA Core Subsystem: 941193267Sjkim 942193267SjkimFixed a problem where a store to a String or Buffer object could 943193267Sjkimcause corruption of the DSDT if the object type being stored was 944193267Sjkimthe same as the target object type and the length of the object 945193267Sjkimbeing stored was equal to or smaller than the original (existing) 946193267Sjkimtarget object. This was seen to cause corruption of battery _BIF 947193267Sjkimbuffers if the _BIF method modified the buffer on the fly. 948193267Sjkim 949193267SjkimFixed a problem where an internal error was generated if a 950193267Sjkimcontrol 951193267Sjkimmethod invocation was used in an OperationRegion, Buffer, or 952193267SjkimPackage declaration. This was caused by the deferred parsing of 953193267Sjkimthe control method and thus the deferred creation of the internal 954193267Sjkimmethod object. The solution to this problem was to create the 955193267Sjkiminternal method object at the moment the method is encountered in 956193267Sjkimthe first pass - so that subsequent references to the method will 957193267Sjkimable to obtain the required parameter count and thus properly 958193267Sjkimparse the method invocation. This problem presented itself as an 959193267SjkimAE_AML_INTERNAL during the pass 1 parse phase during table load. 960193267Sjkim 961193267SjkimFixed a problem where the internal String object copy routine did 962193267Sjkimnot always allocate sufficient memory for the target String 963193267Sjkimobject 964193267Sjkimand caused memory corruption. This problem was seen to cause 965193267Sjkim"Allocation already present in list!" errors as memory allocation 966193267Sjkimbecame corrupted. 967193267Sjkim 968193267SjkimImplemented a new function for the evaluation of namespace 969193267Sjkimobjects 970193267Sjkimthat allows the specification of the allowable return object 971193267Sjkimtypes. This simplifies a lot of code that checks for a return 972193267Sjkimobject of one or more specific objects returned from the 973193267Sjkimevaluation (such as _STA, etc.) This may become and external 974193267Sjkimfunction if it would be useful to ACPI-related drivers. 975193267Sjkim 976193267SjkimCompleted another round of prefixing #defines with "ACPI_" for 977193267Sjkimclarity. 978193267Sjkim 979193267SjkimCompleted additional code restructuring to allow more modular 980193267Sjkimlinking for iASL compiler and AcpiExec. Several files were split 981193267Sjkimcreating new files. New files: nsparse.c dsinit.c evgpe.c 982193267Sjkim 983193267SjkimImplemented an abort mechanism to terminate an executing control 984193267Sjkimmethod via the AML debugger. This feature is useful for 985193267Sjkimdebugging 986193267Sjkimcontrol methods that depend (wait) for specific hardware 987193267Sjkimresponses. 988193267Sjkim 989193267SjkimCode and Data Size: Current core subsystem library sizes are 990193267Sjkimshown 991193267Sjkimbelow. These are the code and data sizes for the acpica.lib 992193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 993193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 994193267Sjkimversion of the code includes the debug output trace mechanism and 995193267Sjkimhas a much larger code and data size. Note that these values 996193267Sjkimwill 997193267Sjkimvary depending on the efficiency of the compiler and the compiler 998193267Sjkimoptions used during generation. 999193267Sjkim 1000193267Sjkim Previous Release 1001193267Sjkim Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 1002193267Sjkim Debug Version: 152.9K Code, 63.3K Data, 216.2K Total 1003193267Sjkim Current Release: 1004193267Sjkim Non-Debug Version: 72.1K Code, 9.5K Data, 81.6K Total 1005193267Sjkim Debug Version: 152.7K Code, 62.7K Data, 215.4K Total 1006193267Sjkim 1007193267Sjkim 1008193267Sjkim2) iASL Compiler/Disassembler 1009193267Sjkim 1010193267SjkimFixed a compiler code generation problem for "Interrupt" Resource 1011193267SjkimDescriptors. If specified in the ASL, the optional "Resource 1012193267SjkimSource Index" and "Resource Source" fields were not inserted into 1013193267Sjkimthe correct location within the AML resource descriptor, creating 1014193267Sjkiman invalid descriptor. 1015193267Sjkim 1016193267SjkimFixed a disassembler problem for "Interrupt" resource 1017193267Sjkimdescriptors. 1018193267SjkimThe optional "Resource Source Index" and "Resource Source" fields 1019193267Sjkimwere ignored. 1020193267Sjkim 1021193267Sjkim 1022193267Sjkim---------------------------------------- 1023193267Sjkim22 November 2002. Summary of changes for version 20021122. 1024193267Sjkim 1025193267Sjkim 1026193267Sjkim1) ACPI CA Core Subsystem: 1027193267Sjkim 1028193267SjkimFixed a reported problem where an object stored to a Method Local 1029193267Sjkimor Arg was not copied to a new object during the store - the 1030193267Sjkimobject pointer was simply copied to the Local/Arg. This caused 1031193267Sjkimall subsequent operations on the Local/Arg to also affect the 1032193267Sjkimoriginal source of the store operation. 1033193267Sjkim 1034193267SjkimFixed a problem where a store operation to a Method Local or Arg 1035193267Sjkimwas not completed properly if the Local/Arg contained a reference 1036193267Sjkim(from RefOf) to a named field. The general-purpose store-to- 1037193267Sjkimnamespace-node code is now used so that this case is handled 1038193267Sjkimautomatically. 1039193267Sjkim 1040193267SjkimFixed a problem where the internal object copy routine would 1041193267Sjkimcause 1042193267Sjkima protection fault if the object being copied was a Package and 1043193267Sjkimcontained either 1) a NULL package element or 2) a nested sub- 1044193267Sjkimpackage. 1045193267Sjkim 1046193267SjkimFixed a problem with the GPE initialization that resulted from an 1047193267Sjkimambiguity in the ACPI specification. One section of the 1048193267Sjkimspecification states that both the address and length of the GPE 1049193267Sjkimblock must be zero if the block is not supported. Another 1050193267Sjkimsection 1051193267Sjkimimplies that only the address need be zero if the block is not 1052193267Sjkimsupported. The code has been changed so that both the address 1053193267Sjkimand 1054193267Sjkimthe length must be non-zero to indicate a valid GPE block (i.e., 1055193267Sjkimif either the address or the length is zero, the GPE block is 1056193267Sjkiminvalid.) 1057193267Sjkim 1058193267SjkimCode and Data Size: Current core subsystem library sizes are 1059193267Sjkimshown 1060193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1061193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1062193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1063193267Sjkimversion of the code includes the debug output trace mechanism and 1064193267Sjkimhas a much larger code and data size. Note that these values 1065193267Sjkimwill 1066193267Sjkimvary depending on the efficiency of the compiler and the compiler 1067193267Sjkimoptions used during generation. 1068193267Sjkim 1069193267Sjkim Previous Release 1070193267Sjkim Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total 1071193267Sjkim Debug Version: 152.7K Code, 63.2K Data, 215.5K Total 1072193267Sjkim Current Release: 1073193267Sjkim Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 1074193267Sjkim Debug Version: 152.9K Code, 63.3K Data, 216.2K Total 1075193267Sjkim 1076193267Sjkim 1077193267Sjkim2) Linux 1078193267Sjkim 1079193267SjkimCleaned up EC driver. Exported an external EC read/write 1080193267Sjkiminterface. By going through this, other drivers (most notably 1081193267Sjkimsonypi) will be able to serialize access to the EC. 1082193267Sjkim 1083193267Sjkim 1084193267Sjkim3) iASL Compiler/Disassembler 1085193267Sjkim 1086193267SjkimImplemented support to optionally generate include files for both 1087193267SjkimASM and C (the -i switch). This simplifies BIOS development by 1088193267Sjkimautomatically creating include files that contain external 1089193267Sjkimdeclarations for the symbols that are created within the 1090193267Sjkim(optionally generated) ASM and C AML source files. 1091193267Sjkim 1092193267Sjkim 1093193267Sjkim---------------------------------------- 1094193267Sjkim15 November 2002. Summary of changes for version 20021115. 1095193267Sjkim 1096193267Sjkim1) ACPI CA Core Subsystem: 1097193267Sjkim 1098193267SjkimFixed a memory leak problem where an error during resolution of 1099193267Sjkimmethod arguments during a method invocation from another method 1100193267Sjkimfailed to cleanup properly by deleting all successfully resolved 1101193267Sjkimargument objects. 1102193267Sjkim 1103193267SjkimFixed a problem where the target of the Index() operator was not 1104193267Sjkimcorrectly constructed if the source object was a package. This 1105193267Sjkimproblem has not been detected because the use of a target operand 1106193267Sjkimwith Index() is very rare. 1107193267Sjkim 1108193267SjkimFixed a problem with the Index() operator where an attempt was 1109193267Sjkimmade to delete the operand objects twice. 1110193267Sjkim 1111193267SjkimFixed a problem where an attempt was made to delete an operand 1112193267Sjkimtwice during execution of the CondRefOf() operator if the target 1113193267Sjkimdid not exist. 1114193267Sjkim 1115193267SjkimImplemented the first of perhaps several internal create object 1116193267Sjkimfunctions that create and initialize a specific object type. 1117193267SjkimThis 1118193267Sjkimconsolidates duplicated code wherever the object is created, thus 1119193267Sjkimshrinking the size of the subsystem. 1120193267Sjkim 1121193267SjkimImplemented improved debug/error messages for errors that occur 1122193267Sjkimduring nested method invocations. All executing method pathnames 1123193267Sjkimare displayed (with the error) as the call stack is unwound - 1124193267Sjkimthus 1125193267Sjkimsimplifying debug. 1126193267Sjkim 1127193267SjkimFixed a problem introduced in the 10/02 release that caused 1128193267Sjkimpremature deletion of a buffer object if a buffer was used as an 1129193267SjkimASL operand where an integer operand is required (Thus causing an 1130193267Sjkimimplicit object conversion from Buffer to Integer.) The change 1131193267Sjkimin 1132193267Sjkimthe 10/02 release was attempting to fix a memory leak (albeit 1133193267Sjkimincorrectly.) 1134193267Sjkim 1135193267SjkimCode and Data Size: Current core subsystem library sizes are 1136193267Sjkimshown 1137193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1138193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1139193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1140193267Sjkimversion of the code includes the debug output trace mechanism and 1141193267Sjkimhas a much larger code and data size. Note that these values 1142193267Sjkimwill 1143193267Sjkimvary depending on the efficiency of the compiler and the compiler 1144193267Sjkimoptions used during generation. 1145193267Sjkim 1146193267Sjkim Previous Release 1147193267Sjkim Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total 1148193267Sjkim Debug Version: 153.1K Code, 63.3K Data, 216.4K Total 1149193267Sjkim Current Release: 1150193267Sjkim Non-Debug Version: 71.3K Code, 9.0K Data, 80.3K Total 1151193267Sjkim Debug Version: 152.7K Code, 63.2K Data, 215.5K Total 1152193267Sjkim 1153193267Sjkim 1154193267Sjkim2) Linux 1155193267Sjkim 1156193267SjkimChanged the implementation of the ACPI semaphores to use down() 1157193267Sjkiminstead of down_interruptable(). It is important that the 1158193267Sjkimexecution of ACPI control methods not be interrupted by signals. 1159193267SjkimMethods must run to completion, or the system may be left in an 1160193267Sjkimunknown/unstable state. 1161193267Sjkim 1162193267SjkimFixed a compilation error when CONFIG_SOFTWARE_SUSPEND is not 1163193267Sjkimset. 1164193267Sjkim(Shawn Starr) 1165193267Sjkim 1166193267Sjkim 1167193267Sjkim3) iASL Compiler/Disassembler 1168193267Sjkim 1169193267Sjkim 1170193267SjkimChanged the default location of output files. All output files 1171193267Sjkimare now placed in the current directory by default instead of in 1172193267Sjkimthe directory of the source file. This change may affect some 1173193267Sjkimexisting makefiles, but it brings the behavior of the compiler in 1174193267Sjkimline with other similar tools. The location of the output files 1175193267Sjkimcan be overridden with the -p command line switch. 1176193267Sjkim 1177193267Sjkim 1178193267Sjkim---------------------------------------- 1179193267Sjkim11 November 2002. Summary of changes for version 20021111. 1180193267Sjkim 1181193267Sjkim 1182193267Sjkim0) ACPI Specification 2.0B is released and is now available at: 1183193267Sjkimhttp://www.acpi.info/index.html 1184193267Sjkim 1185193267Sjkim 1186193267Sjkim1) ACPI CA Core Subsystem: 1187193267Sjkim 1188193267SjkimImplemented support for the ACPI 2.0 SMBus Operation Regions. 1189193267SjkimThis includes the early detection and handoff of the request to 1190193267Sjkimthe SMBus region handler (avoiding all of the complex field 1191193267Sjkimsupport code), and support for the bidirectional return packet 1192193267Sjkimfrom an SMBus write operation. This paves the way for the 1193193267Sjkimdevelopment of SMBus drivers in each host operating system. 1194193267Sjkim 1195193267SjkimFixed a problem where the semaphore WAIT_FOREVER constant was 1196193267Sjkimdefined as 32 bits, but must be 16 bits according to the ACPI 1197193267Sjkimspecification. This had the side effect of causing ASL 1198193267SjkimMutex/Event timeouts even though the ASL code requested a wait 1199193267Sjkimforever. Changed all internal references to the ACPI timeout 1200193267Sjkimparameter to 16 bits to prevent future problems. Changed the 1201193267Sjkimname 1202193267Sjkimof WAIT_FOREVER to ACPI_WAIT_FOREVER. 1203193267Sjkim 1204193267SjkimCode and Data Size: Current core subsystem library sizes are 1205193267Sjkimshown 1206193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1207193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1208193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1209193267Sjkimversion of the code includes the debug output trace mechanism and 1210193267Sjkimhas a much larger code and data size. Note that these values 1211193267Sjkimwill 1212193267Sjkimvary depending on the efficiency of the compiler and the compiler 1213193267Sjkimoptions used during generation. 1214193267Sjkim 1215193267Sjkim Previous Release 1216193267Sjkim Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 1217193267Sjkim Debug Version: 152.3K Code, 63.0K Data, 215.3K Total 1218193267Sjkim Current Release: 1219193267Sjkim Non-Debug Version: 71.9K Code, 9.1K Data, 81.0K Total 1220193267Sjkim Debug Version: 153.1K Code, 63.3K Data, 216.4K Total 1221193267Sjkim 1222193267Sjkim 1223193267Sjkim2) Linux 1224193267Sjkim 1225193267SjkimModule loading/unloading fixes (John Cagle) 1226193267Sjkim 1227193267Sjkim 1228193267Sjkim3) iASL Compiler/Disassembler 1229193267Sjkim 1230193267SjkimAdded support for the SMBBlockProcessCall keyword (ACPI 2.0) 1231193267Sjkim 1232193267SjkimImplemented support for the disassembly of all SMBus protocol 1233193267Sjkimkeywords (SMBQuick, SMBWord, etc.) 1234193267Sjkim 1235193267Sjkim---------------------------------------- 1236193267Sjkim01 November 2002. Summary of changes for version 20021101. 1237193267Sjkim 1238193267Sjkim 1239193267Sjkim1) ACPI CA Core Subsystem: 1240193267Sjkim 1241193267SjkimFixed a problem where platforms that have a GPE1 block but no 1242193267SjkimGPE0 1243193267Sjkimblock were not handled correctly. This resulted in a "GPE 1244193267Sjkimoverlap" error message. GPE0 is no longer required. 1245193267Sjkim 1246193267SjkimRemoved code added in the previous release that inserted nodes 1247193267Sjkiminto the namespace in alphabetical order. This caused some side- 1248193267Sjkimeffects on various machines. The root cause of the problem is 1249193267Sjkimstill under investigation since in theory, the internal ordering 1250193267Sjkimof the namespace nodes should not matter. 1251193267Sjkim 1252193267Sjkim 1253193267SjkimEnhanced error reporting for the case where a named object is not 1254193267Sjkimfound during control method execution. The full ACPI namepath 1255193267Sjkim(name reference) of the object that was not found is displayed in 1256193267Sjkimthis case. 1257193267Sjkim 1258193267SjkimNote: as a result of the overhaul of the namespace object types 1259193267Sjkimin 1260193267Sjkimthe previous release, the namespace nodes for the predefined 1261193267Sjkimscopes (_TZ, _PR, etc.) are now of the type ACPI_TYPE_LOCAL_SCOPE 1262193267Sjkiminstead of ACPI_TYPE_ANY. This simplifies the namespace 1263193267Sjkimmanagement code but may affect code that walks the namespace tree 1264193267Sjkimlooking for specific object types. 1265193267Sjkim 1266193267SjkimCode and Data Size: Current core subsystem library sizes are 1267193267Sjkimshown 1268193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1269193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1270193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1271193267Sjkimversion of the code includes the debug output trace mechanism and 1272193267Sjkimhas a much larger code and data size. Note that these values 1273193267Sjkimwill 1274193267Sjkimvary depending on the efficiency of the compiler and the compiler 1275193267Sjkimoptions used during generation. 1276193267Sjkim 1277193267Sjkim Previous Release 1278193267Sjkim Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total 1279193267Sjkim Debug Version: 151.7K Code, 62.4K Data, 214.1K Total 1280193267Sjkim Current Release: 1281193267Sjkim Non-Debug Version: 71.4K Code, 9.0K Data, 80.4K Total 1282193267Sjkim Debug Version: 152.3K Code, 63.0K Data, 215.3K Total 1283193267Sjkim 1284193267Sjkim 1285193267Sjkim2) Linux 1286193267Sjkim 1287193267SjkimFixed a problem introduced in the previous release where the 1288193267SjkimProcessor and Thermal objects were not recognized and installed 1289193267Sjkimin 1290193267Sjkim/proc. This was related to the scope type change described 1291193267Sjkimabove. 1292193267Sjkim 1293193267Sjkim 1294193267Sjkim3) iASL Compiler/Disassembler 1295193267Sjkim 1296193267SjkimImplemented the -g option to get all of the required ACPI tables 1297193267Sjkimfrom the registry and save them to files (Windows version of the 1298193267Sjkimcompiler only.) The required tables are the FADT, FACS, and 1299193267SjkimDSDT. 1300193267Sjkim 1301193267SjkimAdded ACPI table checksum validation during table disassembly in 1302193267Sjkimorder to catch corrupted tables. 1303193267Sjkim 1304193267Sjkim 1305193267Sjkim---------------------------------------- 1306193267Sjkim22 October 2002. Summary of changes for version 20021022. 1307193267Sjkim 1308193267Sjkim1) ACPI CA Core Subsystem: 1309193267Sjkim 1310193267SjkimImplemented a restriction on the Scope operator that the target 1311193267Sjkimmust already exist in the namespace at the time the operator is 1312193267Sjkimencountered (during table load or method execution). In other 1313193267Sjkimwords, forward references are not allowed and Scope() cannot 1314193267Sjkimcreate a new object. This changes the previous behavior where the 1315193267Sjkiminterpreter would create the name if not found. This new 1316193267Sjkimbehavior 1317193267Sjkimcorrectly enables the search-to-root algorithm during namespace 1318193267Sjkimlookup of the target name. Because of this upsearch, this fixes 1319193267Sjkimthe known Compaq _SB_.OKEC problem and makes both the AML 1320193267Sjkiminterpreter and iASL compiler compatible with other ACPI 1321193267Sjkimimplementations. 1322193267Sjkim 1323193267SjkimCompleted a major overhaul of the internal ACPI object types for 1324193267Sjkimthe ACPI Namespace and the associated operand objects. Many of 1325193267Sjkimthese types had become obsolete with the introduction of the two- 1326193267Sjkimpass namespace load. This cleanup simplifies the code and makes 1327193267Sjkimthe entire namespace load mechanism much clearer and easier to 1328193267Sjkimunderstand. 1329193267Sjkim 1330193267SjkimImproved debug output for tracking scope opening/closing to help 1331193267Sjkimdiagnose scoping issues. The old scope name as well as the new 1332193267Sjkimscope name are displayed. Also improved error messages for 1333193267Sjkimproblems with ASL Mutex objects and error messages for GPE 1334193267Sjkimproblems. 1335193267Sjkim 1336193267SjkimCleaned up the namespace dump code, removed obsolete code. 1337193267Sjkim 1338193267SjkimAll string output (for all namespace/object dumps) now uses the 1339193267Sjkimcommon ACPI string output procedure which handles escapes 1340193267Sjkimproperly 1341193267Sjkimand does not emit non-printable characters. 1342193267Sjkim 1343193267SjkimFixed some issues with constants in the 64-bit version of the 1344193267Sjkimlocal C library (utclib.c) 1345193267Sjkim 1346193267Sjkim 1347193267Sjkim2) Linux 1348193267Sjkim 1349193267SjkimEC Driver: No longer attempts to acquire the Global Lock at 1350193267Sjkiminterrupt level. 1351193267Sjkim 1352193267Sjkim 1353193267Sjkim3) iASL Compiler/Disassembler 1354193267Sjkim 1355193267SjkimImplemented ACPI 2.0B grammar change that disallows all Type 1 1356193267Sjkimand 1357193267Sjkim2 opcodes outside of a control method. This means that the 1358193267Sjkim"executable" operators (versus the "namespace" operators) cannot 1359193267Sjkimbe used at the table level; they can only be used within a 1360193267Sjkimcontrol 1361193267Sjkimmethod. 1362193267Sjkim 1363193267SjkimImplemented the restriction on the Scope() operator where the 1364193267Sjkimtarget must already exist in the namespace at the time the 1365193267Sjkimoperator is encountered (during ASL compilation). In other words, 1366193267Sjkimforward references are not allowed and Scope() cannot create a 1367193267Sjkimnew 1368193267Sjkimobject. This makes the iASL compiler compatible with other ACPI 1369193267Sjkimimplementations and makes the Scope() implementation adhere to 1370193267Sjkimthe 1371193267SjkimACPI specification. 1372193267Sjkim 1373193267SjkimFixed a problem where namepath optimization for the Alias 1374193267Sjkimoperator 1375193267Sjkimwas optimizing the wrong path (of the two namepaths.) This 1376193267Sjkimcaused 1377193267Sjkima "Missing alias link" error message. 1378193267Sjkim 1379193267SjkimFixed a problem where an "unknown reserved name" warning could be 1380193267Sjkimincorrectly generated for names like "_SB" when the trailing 1381193267Sjkimunderscore is not used in the original ASL. 1382193267Sjkim 1383193267SjkimFixed a problem where the reserved name check did not handle 1384193267SjkimNamePaths with multiple NameSegs correctly. The first nameseg of 1385193267Sjkimthe NamePath was examined instead of the last NameSeg. 1386193267Sjkim 1387193267Sjkim 1388193267Sjkim---------------------------------------- 1389193267Sjkim 1390193267Sjkim02 October 2002. Summary of changes for this release. 1391193267Sjkim 1392193267Sjkim 1393193267Sjkim1) ACPI CA Core Subsystem version 20021002: 1394193267Sjkim 1395193267SjkimFixed a problem where a store/copy of a string to an existing 1396193267Sjkimstring did not always set the string length properly in the 1397193267SjkimString 1398193267Sjkimobject. 1399193267Sjkim 1400193267SjkimFixed a reported problem with the ToString operator where the 1401193267Sjkimbehavior was identical to the ToHexString operator instead of 1402193267Sjkimjust 1403193267Sjkimsimply converting a raw buffer to a string data type. 1404193267Sjkim 1405193267SjkimFixed a problem where CopyObject and the other "explicit" 1406193267Sjkimconversion operators were not updating the internal namespace 1407193267Sjkimnode 1408193267Sjkimtype as part of the store operation. 1409193267Sjkim 1410193267SjkimFixed a memory leak during implicit source operand conversion 1411193267Sjkimwhere the original object was not deleted if it was converted to 1412193267Sjkima 1413193267Sjkimnew object of a different type. 1414193267Sjkim 1415193267SjkimEnhanced error messages for all problems associated with 1416193267Sjkimnamespace 1417193267Sjkimlookups. Common procedure generates and prints the lookup name 1418193267Sjkimas 1419193267Sjkimwell as the formatted status. 1420193267Sjkim 1421193267SjkimCompleted implementation of a new design for the Alias support 1422193267Sjkimwithin the namespace. The existing design did not handle the 1423193267Sjkimcase 1424193267Sjkimwhere a new object was assigned to one of the two names due to 1425193267Sjkimthe 1426193267Sjkimuse of an explicit conversion operator, resulting in the two 1427193267Sjkimnames 1428193267Sjkimpointing to two different objects. The new design simply points 1429193267Sjkimthe Alias name to the original name node - not to the object. 1430193267SjkimThis results in a level of indirection that must be handled in 1431193267Sjkimthe 1432193267Sjkimname resolution mechanism. 1433193267Sjkim 1434193267SjkimCode and Data Size: Current core subsystem library sizes are 1435193267Sjkimshown 1436193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1437193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1438193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1439193267Sjkimversion of the code includes the debug output trace mechanism and 1440193267Sjkimhas a larger code and data size. Note that these values will 1441193267Sjkimvary 1442193267Sjkimdepending on the efficiency of the compiler and the compiler 1443193267Sjkimoptions used during generation. 1444193267Sjkim 1445193267Sjkim Previous Release 1446193267Sjkim Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 1447193267Sjkim Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 1448193267Sjkim Current Release: 1449193267Sjkim Non-Debug Version: 70.7K Code, 8.6K Data, 79.3K Total 1450193267Sjkim Debug Version: 151.7K Code, 62.4K Data, 214.1K Total 1451193267Sjkim 1452193267Sjkim 1453193267Sjkim2) Linux 1454193267Sjkim 1455193267SjkimInitialize thermal driver's timer before it is used. (Knut 1456193267SjkimNeumann) 1457193267Sjkim 1458193267SjkimAllow handling negative celsius values. (Kochi Takayoshi) 1459193267Sjkim 1460193267SjkimFix thermal management and make trip points. R/W (Pavel Machek) 1461193267Sjkim 1462193267SjkimFix /proc/acpi/sleep. (P. Christeas) 1463193267Sjkim 1464193267SjkimIA64 fixes. (David Mosberger) 1465193267Sjkim 1466193267SjkimFix reversed logic in blacklist code. (Sergio Monteiro Basto) 1467193267Sjkim 1468193267SjkimReplace ACPI_DEBUG define with ACPI_DEBUG_OUTPUT. (Dominik 1469193267SjkimBrodowski) 1470193267Sjkim 1471193267Sjkim 1472193267Sjkim3) iASL Compiler/Disassembler 1473193267Sjkim 1474193267SjkimClarified some warning/error messages. 1475193267Sjkim 1476193267Sjkim 1477193267Sjkim---------------------------------------- 1478193267Sjkim18 September 2002. Summary of changes for this release. 1479193267Sjkim 1480193267Sjkim 1481193267Sjkim1) ACPI CA Core Subsystem version 20020918: 1482193267Sjkim 1483193267SjkimFixed a reported problem with reference chaining (via the Index() 1484193267Sjkimand RefOf() operators) in the ObjectType() and SizeOf() 1485193267Sjkimoperators. 1486193267SjkimThe definition of these operators includes the dereferencing of 1487193267Sjkimall chained references to return information on the base object. 1488193267Sjkim 1489193267SjkimFixed a problem with stores to indexed package elements - the 1490193267Sjkimexisting code would not complete the store if an "implicit 1491193267Sjkimconversion" was not performed. In other words, if the existing 1492193267Sjkimobject (package element) was to be replaced completely, the code 1493193267Sjkimdidn't handle this case. 1494193267Sjkim 1495193267SjkimRelaxed typechecking on the ASL "Scope" operator to allow the 1496193267Sjkimtarget name to refer to an object of type Integer, String, or 1497193267SjkimBuffer, in addition to the scoping object types (Device, 1498193267Sjkimpredefined Scopes, Processor, PowerResource, and ThermalZone.) 1499193267SjkimThis allows existing AML code that has workarounds for a bug in 1500193267SjkimWindows to function properly. A warning is issued, however. 1501193267SjkimThis 1502193267Sjkimaffects both the AML interpreter and the iASL compiler. Below is 1503193267Sjkiman example of this type of ASL code: 1504193267Sjkim 1505193267Sjkim Name(DEB,0x00) 1506193267Sjkim Scope(DEB) 1507193267Sjkim { 1508193267Sjkim 1509193267SjkimFixed some reported problems with 64-bit integer support in the 1510193267Sjkimlocal implementation of C library functions (clib.c) 1511193267Sjkim 1512193267Sjkim 1513193267Sjkim2) Linux 1514193267Sjkim 1515193267SjkimUse ACPI fix map region instead of IOAPIC region, since it is 1516193267Sjkimundefined in non-SMP. 1517193267Sjkim 1518193267SjkimEnsure that the SCI has the proper polarity and trigger, even on 1519193267Sjkimsystems that do not have an interrupt override entry in the MADT. 1520193267Sjkim 1521193267Sjkim2.5 big driver reorganization (Pat Mochel) 1522193267Sjkim 1523193267SjkimUse early table mapping code from acpitable.c (Andi Kleen) 1524193267Sjkim 1525193267SjkimNew blacklist entries (Andi Kleen) 1526193267Sjkim 1527193267SjkimBlacklist improvements. Split blacklist code out into a separate 1528193267Sjkimfile. Move checking the blacklist to very early. Previously, we 1529193267Sjkimwould use ACPI tables, and then halfway through init, check the 1530193267Sjkimblacklist -- too late. Now, it's early enough to completely fall- 1531193267Sjkimback to non-ACPI. 1532193267Sjkim 1533193267Sjkim 1534193267Sjkim3) iASL Compiler/Disassembler version 20020918: 1535193267Sjkim 1536193267SjkimFixed a problem where the typechecking code didn't know that an 1537193267Sjkimalias could point to a method. In other words, aliases were not 1538193267Sjkimbeing dereferenced during typechecking. 1539193267Sjkim 1540193267Sjkim 1541193267Sjkim---------------------------------------- 1542193267Sjkim29 August 2002. Summary of changes for this release. 1543193267Sjkim 1544193267Sjkim1) ACPI CA Core Subsystem Version 20020829: 1545193267Sjkim 1546193267SjkimIf the target of a Scope() operator already exists, it must be an 1547193267Sjkimobject type that actually opens a scope -- such as a Device, 1548193267SjkimMethod, Scope, etc. This is a fatal runtime error. Similar 1549193267Sjkimerror 1550193267Sjkimcheck has been added to the iASL compiler also. 1551193267Sjkim 1552193267SjkimTightened up the namespace load to disallow multiple names in the 1553193267Sjkimsame scope. This previously was allowed if both objects were of 1554193267Sjkimthe same type. (i.e., a lookup was the same as entering a new 1555193267Sjkimname). 1556193267Sjkim 1557193267Sjkim 1558193267Sjkim2) Linux 1559193267Sjkim 1560193267SjkimEnsure that the ACPI interrupt has the proper trigger and 1561193267Sjkimpolarity. 1562193267Sjkim 1563193267Sjkimlocal_irq_disable is extraneous. (Matthew Wilcox) 1564193267Sjkim 1565193267SjkimMake "acpi=off" actually do what it says, and not use the ACPI 1566193267Sjkiminterpreter *or* the tables. 1567193267Sjkim 1568193267SjkimAdded arch-neutral support for parsing SLIT and SRAT tables 1569193267Sjkim(Kochi 1570193267SjkimTakayoshi) 1571193267Sjkim 1572193267Sjkim 1573193267Sjkim3) iASL Compiler/Disassembler Version 20020829: 1574193267Sjkim 1575193267SjkimImplemented namepath optimization for name declarations. For 1576193267Sjkimexample, a declaration like "Method (\_SB_.ABCD)" would get 1577193267Sjkimoptimized to "Method (ABCD)" if the declaration is within the 1578193267Sjkim\_SB_ scope. This optimization is in addition to the named 1579193267Sjkimreference path optimization first released in the previous 1580193267Sjkimversion. This would seem to complete all possible optimizations 1581193267Sjkimfor namepaths within the ASL/AML. 1582193267Sjkim 1583193267SjkimIf the target of a Scope() operator already exists, it must be an 1584193267Sjkimobject type that actually opens a scope -- such as a Device, 1585193267SjkimMethod, Scope, etc. 1586193267Sjkim 1587193267SjkimImplemented a check and warning for unreachable code in the same 1588193267Sjkimblock below a Return() statement. 1589193267Sjkim 1590193267SjkimFixed a problem where the listing file was not generated if the 1591193267Sjkimcompiler aborted if the maximum error count was exceeded (200). 1592193267Sjkim 1593193267SjkimFixed a problem where the typechecking of method return values 1594193267Sjkimwas 1595193267Sjkimbroken. This includes the check for a return value when the 1596193267Sjkimmethod is invoked as a TermArg (a return value is expected.) 1597193267Sjkim 1598193267SjkimFixed a reported problem where EOF conditions during a quoted 1599193267Sjkimstring or comment caused a fault. 1600193267Sjkim 1601193267Sjkim 1602193267Sjkim---------------------------------------- 1603193267Sjkim15 August 2002. Summary of changes for this release. 1604193267Sjkim 1605193267Sjkim1) ACPI CA Core Subsystem Version 20020815: 1606193267Sjkim 1607193267SjkimFixed a reported problem where a Store to a method argument that 1608193267Sjkimcontains a reference did not perform the indirect store 1609193267Sjkimcorrectly. 1610193267SjkimThis problem was created during the conversion to the new 1611193267Sjkimreference object model - the indirect store to a method argument 1612193267Sjkimcode was not updated to reflect the new model. 1613193267Sjkim 1614193267SjkimReworked the ACPI mode change code to better conform to ACPI 2.0, 1615193267Sjkimhandle corner cases, and improve code legibility (Kochi 1616193267SjkimTakayoshi) 1617193267Sjkim 1618193267SjkimFixed a problem with the pathname parsing for the carat (^) 1619193267Sjkimprefix. The heavy use of the carat operator by the new namepath 1620193267Sjkimoptimization in the iASL compiler uncovered a problem with the 1621193267SjkimAML 1622193267Sjkiminterpreter handling of this prefix. In the case where one or 1623193267Sjkimmore carats precede a single nameseg, the nameseg was treated as 1624193267Sjkimstandalone and the search rule (to root) was inadvertently 1625193267Sjkimapplied. This could cause both the iASL compiler and the 1626193267Sjkiminterpreter to find the wrong object or to miss the error that 1627193267Sjkimshould occur if the object does not exist at that exact pathname. 1628193267Sjkim 1629193267SjkimFound and fixed the problem where the HP Pavilion DSDT would not 1630193267Sjkimload. This was a relatively minor tweak to the table loading 1631193267Sjkimcode 1632193267Sjkim(a problem caused by the unexpected encounter with a method 1633193267Sjkiminvocation not within a control method), but it does not solve 1634193267Sjkimthe 1635193267Sjkimoverall issue of the execution of AML code at the table level. 1636193267SjkimThis investigation is still ongoing. 1637193267Sjkim 1638193267SjkimCode and Data Size: Current core subsystem library sizes are 1639193267Sjkimshown 1640193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1641193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1642193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1643193267Sjkimversion of the code includes the debug output trace mechanism and 1644193267Sjkimhas a larger code and data size. Note that these values will 1645193267Sjkimvary 1646193267Sjkimdepending on the efficiency of the compiler and the compiler 1647193267Sjkimoptions used during generation. 1648193267Sjkim 1649193267Sjkim Previous Release 1650193267Sjkim Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 1651193267Sjkim Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 1652193267Sjkim Current Release: 1653193267Sjkim Non-Debug Version: 69.6K Code, 8.3K Data, 77.9K Total 1654193267Sjkim Debug Version: 150.0K Code, 61.7K Data, 211.7K Total 1655193267Sjkim 1656193267Sjkim 1657193267Sjkim2) Linux 1658193267Sjkim 1659193267SjkimRemove redundant slab.h include (Brad Hards) 1660193267Sjkim 1661193267SjkimFix several bugs in thermal.c (Herbert Nachtnebel) 1662193267Sjkim 1663193267SjkimMake CONFIG_ACPI_BOOT work properly (Pavel Machek) 1664193267Sjkim 1665193267SjkimChange acpi_system_suspend to use updated irq functions (Pavel 1666193267SjkimMachek) 1667193267Sjkim 1668193267SjkimExport acpi_get_firmware_table (Matthew Wilcox) 1669193267Sjkim 1670193267SjkimUse proper root proc entry for ACPI (Kochi Takayoshi) 1671193267Sjkim 1672193267SjkimFix early-boot table parsing (Bjorn Helgaas) 1673193267Sjkim 1674193267Sjkim 1675193267Sjkim3) iASL Compiler/Disassembler 1676193267Sjkim 1677193267SjkimReworked the compiler options to make them more consistent and to 1678193267Sjkimuse two-letter options where appropriate. We were running out of 1679193267Sjkimsensible letters. This may break some makefiles, so check the 1680193267Sjkimcurrent options list by invoking the compiler with no parameters. 1681193267Sjkim 1682193267SjkimCompleted the design and implementation of the ASL namepath 1683193267Sjkimoptimization option for the compiler. This option optimizes all 1684193267Sjkimreferences to named objects to the shortest possible path. The 1685193267Sjkimfirst attempt tries to utilize a single nameseg (4 characters) 1686167802Sjkimand 1687167802Sjkimthe "search-to-root" algorithm used by the interpreter. If that 1688167802Sjkimcannot be used (because either the name is not in the search path 1689167802Sjkimor there is a conflict with another object with the same name), 1690193267Sjkimthe pathname is optimized using the carat prefix (usually a 1691193267Sjkimshorter string than specifying the entire path from the root.) 1692193267Sjkim 1693193267SjkimImplemented support to obtain the DSDT from the Windows registry 1694193267Sjkim(when the disassembly option is specified with no input file). 1695193267SjkimAdded this code as the implementation for AcpiOsTableOverride in 1696193267Sjkimthe Windows OSL. Migrated the 16-bit code (used in the AcpiDump 1697167802Sjkimutility) to scan memory for the DSDT to the AcpiOsTableOverride 1698193267Sjkimfunction in the DOS OSL to make the disassembler truly OS 1699193267Sjkimindependent. 1700193267Sjkim 1701193267SjkimImplemented a new option to disassemble and compile in one step. 1702193267SjkimWhen used without an input filename, this option will grab the 1703193267SjkimDSDT from the local machine, disassemble it, and compile it in 1704193267Sjkimone 1705193267Sjkimstep. 1706193267Sjkim 1707193267SjkimAdded a warning message for invalid escapes (a backslash followed 1708193267Sjkimby any character other than the allowable escapes). This catches 1709167802Sjkimthe quoted string error "\_SB_" (which should be "\\_SB_" ). 1710193267SjkimAlso, there are numerous instances in the ACPI specification 1711193267Sjkimwhere 1712193267Sjkimthis error occurs. 1713193267Sjkim 1714193267SjkimAdded a compiler option to disable all optimizations. This is 1715167802Sjkimbasically the "compatibility mode" because by using this option, 1716193267Sjkimthe AML code will come out exactly the same as other ASL 1717193267Sjkimcompilers. 1718193267Sjkim 1719167802SjkimAdded error messages for incorrectly ordered dependent resource 1720193267Sjkimfunctions. This includes: missing EndDependentFn macro at end of 1721193267Sjkimdependent resource list, nested dependent function macros (both 1722167802Sjkimstart and end), and missing StartDependentFn macro. These are 1723193267Sjkimcommon errors that should be caught at compile time. 1724193267Sjkim 1725193267SjkimImplemented _OSI support for the disassembler and compiler. _OSI 1726167802Sjkimmust be included in the namespace for proper disassembly (because 1727193267Sjkimthe disassembler must know the number of arguments.) 1728193267Sjkim 1729167802SjkimAdded an "optimization" message type that is optional (off by 1730193267Sjkimdefault). This message is used for all optimizations - including 1731193267Sjkimconstant folding, integer optimization, and namepath 1732193267Sjkimoptimization. 1733193267Sjkim 1734167802Sjkim---------------------------------------- 1735167802Sjkim25 July 2002. Summary of changes for this release. 1736167802Sjkim 1737167802Sjkim 1738167802Sjkim1) ACPI CA Core Subsystem Version 20020725: 1739167802Sjkim 1740167802SjkimThe AML Disassembler has been enhanced to produce compilable ASL 1741167802Sjkimcode and has been integrated into the iASL compiler (see below) 1742167802Sjkimas 1743167802Sjkimwell as the single-step disassembly for the AML debugger and the 1744167802Sjkimdisassembler for the AcpiDump utility. All ACPI 2.0A opcodes, 1745167802Sjkimresource templates and macros are fully supported. The 1746167802Sjkimdisassembler has been tested on over 30 different AML files, 1747193267Sjkimproducing identical AML when the resulting disassembled ASL file 1748193267Sjkimis recompiled with the same ASL compiler. 1749193267Sjkim 1750167802SjkimModified the Resource Manager to allow zero interrupts and zero 1751193267Sjkimdma channels during the GetCurrentResources call. This was 1752193267Sjkimcausing problems on some platforms. 1753193267Sjkim 1754167802SjkimAdded the AcpiOsRedirectOutput interface to the OSL to simplify 1755193267Sjkimoutput redirection for the AcpiOsPrintf and AcpiOsVprintf 1756193267Sjkiminterfaces. 1757193267Sjkim 1758193267SjkimCode and Data Size: Current core subsystem library sizes are 1759167802Sjkimshown 1760167802Sjkimbelow. These are the code and data sizes for the acpica.lib 1761167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1762167802Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1763167802Sjkimversion of the code includes the debug output trace mechanism and 1764167802Sjkimhas a larger code and data size. Note that these values will 1765167802Sjkimvary 1766167802Sjkimdepending on the efficiency of the compiler and the compiler 1767167802Sjkimoptions used during generation. 1768167802Sjkim 1769167802Sjkim Previous Release 1770167802Sjkim Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 1771167802Sjkim Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 1772193267Sjkim Current Release: 1773193267Sjkim Non-Debug Version: 69.1K Code, 8.2K Data, 77.3K Total 1774193267Sjkim Debug Version: 149.4K Code, 61.6K Data, 211.0K Total 1775193267Sjkim 1776193267Sjkim 1777167802Sjkim2) Linux 1778193267Sjkim 1779193267SjkimFixed a panic in the EC driver (Dominik Brodowski) 1780193267Sjkim 1781193267SjkimImplemented checksum of the R/XSDT itself during Linux table scan 1782167802Sjkim(Richard Schaal) 1783193267Sjkim 1784193267Sjkim 1785167802Sjkim3) iASL compiler 1786167802Sjkim 1787193267SjkimThe AML disassembler is integrated into the compiler. The "-d" 1788193267Sjkimoption invokes the disassembler to completely disassemble an 1789193267Sjkiminput AML file, producing as output a text ASL file with the 1790167802Sjkimextension ".dsl" (to avoid name collisions with existing .asl 1791193267Sjkimsource files.) A future enhancement will allow the disassembler 1792193267Sjkimto obtain the BIOS DSDT from the registry under Windows. 1793193267Sjkim 1794193267SjkimFixed a problem with the VendorShort and VendorLong resource 1795193267Sjkimdescriptors where an invalid AML sequence was created. 1796167802Sjkim 1797167802SjkimImplemented a fix for BufferData term in the ASL parser. It was 1798167802Sjkiminadvertently defined twice, allowing invalid syntax to pass and 1799167802Sjkimcausing reduction conflicts. 1800167802Sjkim 1801167802SjkimFixed a problem where the Ones opcode could get converted to a 1802167802Sjkimvalue of zero if "Ones" was used where a byte, word or dword 1803167802Sjkimvalue 1804167802Sjkimwas expected. The 64-bit value is now truncated to the correct 1805167802Sjkimsize with the correct value. 1806193267Sjkim 1807193267Sjkim 1808167802Sjkim---------------------------------------- 1809167802Sjkim02 July 2002. Summary of changes for this release. 1810167802Sjkim 1811167802Sjkim 1812167802Sjkim1) ACPI CA Core Subsystem Version 20020702: 1813167802Sjkim 1814193267SjkimThe Table Manager code has been restructured to add several new 1815193267Sjkimfeatures. Tables that are not required by the core subsystem 1816193267Sjkim(other than the FADT, DSDT, FACS, PSDTs, etc.) are no longer 1817193267Sjkimvalidated in any way and are returned from AcpiGetFirmwareTable 1818167802Sjkimif 1819193267Sjkimrequested. The AcpiOsTableOverride interface is now called for 1820193267Sjkimeach table that is loaded by the subsystem in order to allow the 1821167802Sjkimhost to override any table it chooses. Previously, only the DSDT 1822193267Sjkimcould be overridden. Added one new files, tbrsdt.c and 1823193267Sjkimtbgetall.c. 1824193267Sjkim 1825167802SjkimFixed a problem with the conversion of internal package objects 1826193267Sjkimto 1827167802Sjkimexternal objects (when a package is returned from a control 1828193267Sjkimmethod.) The return buffer length was set to zero instead of the 1829193267Sjkimproper length of the package object. 1830167802Sjkim 1831193267SjkimFixed a reported problem with the use of the RefOf and DeRefOf 1832193267Sjkimoperators when passing reference arguments to control methods. A 1833193267Sjkimnew type of Reference object is used internally for references 1834167802Sjkimproduced by the RefOf operator. 1835193267Sjkim 1836193267SjkimAdded additional error messages in the Resource Manager to 1837193267Sjkimexplain 1838193267SjkimAE_BAD_DATA errors when they occur during resource parsing. 1839167802Sjkim 1840167802SjkimSplit the AcpiEnableSubsystem into two primitives to enable a 1841167802Sjkimfiner granularity initialization sequence. These two calls 1842167802Sjkimshould 1843167802Sjkimbe called in this order: AcpiEnableSubsystem (flags), 1844167802SjkimAcpiInitializeObjects (flags). The flags parameter remains the 1845167802Sjkimsame. 1846167802Sjkim 1847167802Sjkim 1848167802Sjkim2) Linux 1849167802Sjkim 1850193267SjkimUpdated the ACPI utilities module to understand the new style of 1851193267Sjkimfully resolved package objects that are now returned from the 1852167802Sjkimcore 1853193267Sjkimsubsystem. This eliminates errors of the form: 1854193267Sjkim 1855167802Sjkim ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PPB_._PRT] 1856167802Sjkim acpi_utils-0430 [145] acpi_evaluate_reference: 1857167802Sjkim Invalid element in package (not a device reference) 1858167802Sjkim 1859167802SjkimThe method evaluation utility uses the new buffer allocation 1860167802Sjkimscheme instead of calling AcpiEvaluate Object twice. 1861193267Sjkim 1862193267SjkimAdded support for ECDT. This allows the use of the Embedded 1863193267SjkimController before the namespace has been fully initialized, which 1864193267Sjkimis necessary for ACPI 2.0 support, and for some laptops to 1865193267Sjkiminitialize properly. (Laptops using ECDT are still rare, so only 1866193267Sjkimlimited testing was performed of the added functionality.) 1867167802Sjkim 1868193267SjkimFixed memory leaks in the EC driver. 1869193267Sjkim 1870193267SjkimEliminated a brittle code structure in acpi_bus_init(). 1871167802Sjkim 1872193267SjkimEliminated the acpi_evaluate() helper function in utils.c. It is 1873193267Sjkimno longer needed since acpi_evaluate_object can optionally 1874193267Sjkimallocate memory for the return object. 1875193267Sjkim 1876167802SjkimImplemented fix for keyboard hang when getting battery readings 1877193267Sjkimon 1878193267Sjkimsome systems (Stephen White) 1879193267Sjkim 1880193267SjkimPCI IRQ routing update (Dominik Brodowski) 1881193267Sjkim 1882193267SjkimFix an ifdef to allow compilation on UP with LAPIC but no IOAPIC 1883193267Sjkimsupport 1884167802Sjkim 1885193267Sjkim---------------------------------------- 1886193267Sjkim11 June 2002. Summary of changes for this release. 1887193267Sjkim 1888167802Sjkim 1889193267Sjkim1) ACPI CA Core Subsystem Version 20020611: 1890193267Sjkim 1891167802SjkimFixed a reported problem where constants such as Zero and One 1892193267Sjkimappearing within _PRT packages were not handled correctly within 1893193267Sjkimthe resource manager code. Originally reported against the ASL 1894193267Sjkimcompiler because the code generator now optimizes integers to 1895193267Sjkimtheir minimal AML representation (i.e. AML constants if 1896167802Sjkimpossible.) 1897167802SjkimThe _PRT code now handles all AML constant opcodes correctly 1898167802Sjkim(Zero, One, Ones, Revision). 1899167802Sjkim 1900167802SjkimFixed a problem with the Concatenate operator in the AML 1901167802Sjkiminterpreter where a buffer result object was incorrectly marked 1902167802Sjkimas 1903167802Sjkimnot fully evaluated, causing a run-time error of AE_AML_INTERNAL. 1904167802Sjkim 1905167802SjkimAll package sub-objects are now fully resolved before they are 1906193267Sjkimreturned from the external ACPI interfaces. This means that name 1907193267Sjkimstrings are resolved to object handles, and constant operators 1908167802Sjkim(Zero, One, Ones, Revision) are resolved to Integers. 1909167802Sjkim 1910167802SjkimImplemented immediate resolution of the AML Constant opcodes 1911167802Sjkim(Zero, One, Ones, Revision) to Integer objects upon detection 1912167802Sjkimwithin the AML stream. This has simplified and reduced the 1913167802Sjkimgenerated code size of the subsystem by eliminating about 10 1914193267Sjkimswitch statements for these constants (which previously were 1915193267Sjkimcontained in Reference objects.) The complicating issues are 1916193267Sjkimthat 1917167802Sjkimthe Zero opcode is used as a "placeholder" for unspecified 1918193267Sjkimoptional target operands and stores to constants are defined to 1919193267Sjkimbe 1920193267Sjkimno-ops. 1921193267Sjkim 1922167802SjkimCode and Data Size: Current core subsystem library sizes are 1923193267Sjkimshown 1924193267Sjkimbelow. These are the code and data sizes for the acpica.lib 1925167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 1926193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 1927193267Sjkimversion of the code includes the debug output trace mechanism and 1928193267Sjkimhas a larger code and data size. Note that these values will 1929193267Sjkimvary 1930167802Sjkimdepending on the efficiency of the compiler and the compiler 1931167802Sjkimoptions used during generation. 1932167802Sjkim 1933167802Sjkim Previous Release 1934167802Sjkim Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 1935167802Sjkim Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 1936167802Sjkim Current Release: 1937167802Sjkim Non-Debug Version: 68.7K Code, 7.4K Data, 76.1K Total 1938167802Sjkim Debug Version: 142.9K Code, 58.7K Data, 201.6K Total 1939167802Sjkim 1940167802Sjkim 1941193267Sjkim2) Linux 1942193267Sjkim 1943193267SjkimAdded preliminary support for obtaining _TRA data for PCI root 1944193267Sjkimbridges (Bjorn Helgaas). 1945167802Sjkim 1946193267Sjkim 1947193267Sjkim3) iASL Compiler Version X2046: 1948167802Sjkim 1949193267SjkimFixed a problem where the "_DDN" reserved name was defined to be 1950193267Sjkima 1951193267Sjkimcontrol method with one argument. There are no arguments, and 1952193267Sjkim_DDN does not have to be a control method. 1953167802Sjkim 1954193267SjkimFixed a problem with the Linux version of the compiler where the 1955193267Sjkimsource lines printed with error messages were the wrong lines. 1956167802SjkimThis turned out to be the "LF versus CR/LF" difference between 1957167802SjkimWindows and Unix. This appears to be the longstanding issue 1958167802Sjkimconcerning listing output and error messages. 1959167802Sjkim 1960167802SjkimFixed a problem with the Linux version of compiler where opcode 1961167802Sjkimnames within error messages were wrong. This was caused by a 1962193267Sjkimslight difference in the output of the Flex tool on Linux versus 1963193267SjkimWindows. 1964193267Sjkim 1965193267SjkimFixed a problem with the Linux compiler where the hex output 1966193267Sjkimfiles 1967193267Sjkimcontained some garbage data caused by an internal buffer overrun. 1968193267Sjkim 1969167802Sjkim 1970193267Sjkim---------------------------------------- 1971193267Sjkim17 May 2002. Summary of changes for this release. 1972193267Sjkim 1973193267Sjkim 1974193267Sjkim1) ACPI CA Core Subsystem Version 20020517: 1975167802Sjkim 1976193267SjkimImplemented a workaround to an BIOS bug discovered on the HP 1977193267SjkimOmniBook where the FADT revision number and the table size are 1978167802Sjkiminconsistent (ACPI 2.0 revision vs. ACPI 1.0 table size). The 1979193267Sjkimnew 1980193267Sjkimbehavior is to fallback to using only the ACPI 1.0 fields of the 1981193267SjkimFADT if the table is too small to be a ACPI 2.0 table as claimed 1982167802Sjkimby the revision number. Although this is a BIOS bug, this is a 1983193267Sjkimcase where the workaround is simple enough and with no side 1984193267Sjkimeffects, so it seemed prudent to add it. A warning message is 1985193267Sjkimissued, however. 1986167802Sjkim 1987193267SjkimImplemented minimum size checks for the fixed-length ACPI tables 1988193267Sjkim- 1989193267Sjkim- the FADT and FACS, as well as consistency checks between the 1990193267Sjkimrevision number and the table size. 1991167802Sjkim 1992167802SjkimFixed a reported problem in the table override support where the 1993167802Sjkimnew table pointer was incorrectly treated as a physical address 1994167802Sjkiminstead of a logical address. 1995167802Sjkim 1996167802SjkimEliminated the use of the AE_AML_ERROR exception and replaced it 1997167802Sjkimwith more descriptive codes. 1998167802Sjkim 1999167802SjkimFixed a problem where an exception would occur if an ASL Field 2000167802Sjkimwas 2001167802Sjkimdefined with no named Field Units underneath it (used by some 2002193267Sjkimindex fields). 2003193267Sjkim 2004193267SjkimCode and Data Size: Current core subsystem library sizes are 2005193267Sjkimshown 2006167802Sjkimbelow. These are the code and data sizes for the acpica.lib 2007193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2008193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2009167802Sjkimversion of the code includes the debug output trace mechanism and 2010193267Sjkimhas a larger code and data size. Note that these values will 2011193267Sjkimvary 2012167802Sjkimdepending on the efficiency of the compiler and the compiler 2013193267Sjkimoptions used during generation. 2014193267Sjkim 2015167802Sjkim Previous Release 2016193267Sjkim Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 2017193267Sjkim Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 2018167802Sjkim Current Release: 2019193267Sjkim Non-Debug Version: 69.3K Code, 7.4K Data, 76.7K Total 2020193267Sjkim Debug Version: 143.8K Code, 58.8K Data, 202.6K Total 2021193267Sjkim 2022167802Sjkim 2023193267Sjkim 2024193267Sjkim2) Linux 2025167802Sjkim 2026167802SjkimMuch work done on ACPI init (MADT and PCI IRQ routing support). 2027167802Sjkim(Paul D. and Dominik Brodowski) 2028167802Sjkim 2029167802SjkimFix PCI IRQ-related panic on boot (Sam Revitch) 2030167802Sjkim 2031167802SjkimSet BM_ARB_DIS when entering a sleep state (Ducrot Bruno) 2032193267Sjkim 2033167802SjkimFix "MHz" typo (Dominik Brodowski) 2034167802Sjkim 2035167802SjkimFix RTC year 2000 issue (Dominik Brodowski) 2036193267Sjkim 2037193267SjkimPreclude multiple button proc entries (Eric Brunet) 2038167802Sjkim 2039193267SjkimMoved arch-specific code out of include/platform/aclinux.h 2040193267Sjkim 2041193267Sjkim3) iASL Compiler Version X2044: 2042167802Sjkim 2043193267SjkimImplemented error checking for the string used in the EISAID 2044193267Sjkimmacro 2045167802Sjkim(Usually used in the definition of the _HID object.) The code 2046193267Sjkimnow 2047193267Sjkimstrictly enforces the PnP format - exactly 7 characters, 3 2048167802Sjkimuppercase letters and 4 hex digits. 2049193267Sjkim 2050193267SjkimIf a raw string is used in the definition of the _HID object 2051193267Sjkim(instead of the EISAID macro), the string must contain all 2052193267Sjkimalphanumeric characters (e.g., "*PNP0011" is not allowed because 2053167802Sjkimof the asterisk.) 2054167802Sjkim 2055167802SjkimImplemented checking for invalid use of ACPI reserved names for 2056167802Sjkimmost of the name creation operators (Name, Device, Event, Mutex, 2057167802SjkimOperationRegion, PowerResource, Processor, and ThermalZone.) 2058167802SjkimPreviously, this check was only performed for control methods. 2059167802Sjkim 2060167802SjkimImplemented an additional check on the Name operator to emit an 2061167802Sjkimerror if a reserved name that must be implemented in ASL as a 2062167802Sjkimcontrol method is used. We know that a reserved name must be a 2063167802Sjkimmethod if it is defined with input arguments. 2064167802Sjkim 2065167802SjkimThe warning emitted when a namespace object reference is not 2066167802Sjkimfound 2067167802Sjkimduring the cross reference phase has been changed into an error. 2068167802SjkimThe "External" directive should be used for names defined in 2069167802Sjkimother 2070167802Sjkimmodules. 2071193267Sjkim 2072193267Sjkim 2073193267Sjkim4) Tools and Utilities 2074193267Sjkim 2075193267SjkimThe 16-bit tools (adump16 and aexec16) have been regenerated and 2076193267Sjkimtested. 2077167802Sjkim 2078167802SjkimFixed a problem with the output of both acpidump and adump16 2079167802Sjkimwhere 2080193267Sjkimthe indentation of closing parentheses and brackets was not 2081193267Sjkimaligned properly with the parent block. 2082167802Sjkim 2083167802Sjkim 2084167802Sjkim---------------------------------------- 2085167802Sjkim03 May 2002. Summary of changes for this release. 2086167802Sjkim 2087193267Sjkim 2088193267Sjkim1) ACPI CA Core Subsystem Version 20020503: 2089193267Sjkim 2090193267SjkimAdded support a new OSL interface that allows the host operating 2091193267Sjkimsystem software to override the DSDT found in the firmware - 2092167802SjkimAcpiOsTableOverride. With this interface, the OSL can examine 2093167802Sjkimthe 2094167802Sjkimversion of the firmware DSDT and replace it with a different one 2095193267Sjkimif desired. 2096193267Sjkim 2097193267SjkimAdded new external interfaces for accessing ACPI registers from 2098193267Sjkimdevice drivers and other system software - AcpiGetRegister and 2099193267SjkimAcpiSetRegister. This was simply an externalization of the 2100193267Sjkimexisting AcpiHwBitRegister interfaces. 2101193267Sjkim 2102193267SjkimFixed a regression introduced in the previous build where the 2103193267SjkimASL/AML CreateField operator always returned an error, 2104193267Sjkim"destination must be a NS Node". 2105193267Sjkim 2106193267SjkimExtended the maximum time (before failure) to successfully enable 2107193267SjkimACPI mode to 3 seconds. 2108193267Sjkim 2109193267SjkimCode and Data Size: Current core subsystem library sizes are 2110193267Sjkimshown 2111167802Sjkimbelow. These are the code and data sizes for the acpica.lib 2112167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2113167802Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2114193267Sjkimversion of the code includes the debug output trace mechanism and 2115193267Sjkimhas a larger code and data size. Note that these values will 2116193267Sjkimvary 2117193267Sjkimdepending on the efficiency of the compiler and the compiler 2118193267Sjkimoptions used during generation. 2119193267Sjkim 2120193267Sjkim Previous Release 2121193267Sjkim Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 2122193267Sjkim Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 2123193267Sjkim Current Release: 2124193267Sjkim Non-Debug Version: 68.8K Code, 7.1K Data, 75.9K Total 2125193267Sjkim Debug Version: 142.9K Code, 58.4K Data, 201.3K Total 2126193267Sjkim 2127193267Sjkim 2128193267Sjkim2) Linux 2129193267Sjkim 2130193267SjkimEnhanced ACPI init code for SMP. We are now fully MPS and $PIR- 2131167802Sjkimfree. While 3 out of 4 of our in-house systems work fine, the 2132167802Sjkimlast 2133167802Sjkimone still hangs when testing the LAPIC timer. 2134167802Sjkim 2135167802SjkimRenamed many files in 2.5 kernel release to omit "acpi_" from the 2136193267Sjkimname. 2137193267Sjkim 2138193267SjkimAdded warning on boot for Presario 711FR. 2139193267Sjkim 2140167802SjkimSleep improvements (Pavel Machek) 2141167802Sjkim 2142167802SjkimACPI can now be built without CONFIG_PCI enabled. 2143167802Sjkim 2144167802SjkimIA64: Fixed memory map functions (JI Lee) 2145167802Sjkim 2146167802Sjkim 2147167802Sjkim3) iASL Compiler Version X2043: 2148167802Sjkim 2149167802SjkimAdded support to allow the compiler to be integrated into the MS 2150167802SjkimVC++ development environment for one-button compilation of single 2151167802Sjkimfiles or entire projects -- with error-to-source-line mapping. 2152167802Sjkim 2153167802SjkimImplemented support for compile-time constant folding for the 2154167802SjkimType3, Type4, and Type5 opcodes first defined in the ACPI 2.0 2155167802Sjkimspecification. This allows the ASL writer to use expressions 2156167802Sjkiminstead of Integer/Buffer/String constants in terms that must 2157167802Sjkimevaluate to constants at compile time and will also simplify the 2158193267Sjkimemitted AML in any such sub-expressions that can be folded 2159193267Sjkim(evaluated at compile-time.) This increases the size of the 2160193267Sjkimcompiler significantly because a portion of the ACPI CA AML 2161193267Sjkiminterpreter is included within the compiler in order to pre- 2162193267Sjkimevaluate constant expressions. 2163167802Sjkim 2164167802Sjkim 2165193267SjkimFixed a problem with the "Unicode" ASL macro that caused the 2166193267Sjkimcompiler to fault. (This macro is used in conjunction with the 2167193267Sjkim_STR reserved name.) 2168193267Sjkim 2169193267SjkimImplemented an AML opcode optimization to use the Zero, One, and 2170193267SjkimOnes opcodes where possible to further reduce the size of integer 2171167802Sjkimconstants and thus reduce the overall size of the generated AML 2172193267Sjkimcode. 2173193267Sjkim 2174193267SjkimImplemented error checking for new reserved terms for ACPI 2175193267Sjkimversion 2176167802Sjkim2.0A. 2177193267Sjkim 2178193267SjkimImplemented the -qr option to display the current list of ACPI 2179193267Sjkimreserved names known to the compiler. 2180193267Sjkim 2181193267SjkimImplemented the -qc option to display the current list of ASL 2182193267Sjkimoperators that are allowed within constant expressions and can 2183167802Sjkimtherefore be folded at compile time if the operands are 2184193267Sjkimconstants. 2185193267Sjkim 2186193267Sjkim 2187193267Sjkim4) Documentation 2188193267Sjkim 2189167802SjkimUpdated the Programmer's Reference for new interfaces, data 2190167802Sjkimtypes, 2191193267Sjkimand memory allocation model options. 2192193267Sjkim 2193167802SjkimUpdated the iASL Compiler User Reference to apply new format and 2194193267Sjkimadd information about new features and options. 2195193267Sjkim 2196193267Sjkim---------------------------------------- 2197193267Sjkim19 April 2002. Summary of changes for this release. 2198167802Sjkim 2199167802Sjkim1) ACPI CA Core Subsystem Version 20020419: 2200167802Sjkim 2201167802SjkimThe source code base for the Core Subsystem has been completely 2202167802Sjkimcleaned with PC-lint (FlexLint) for both 32-bit and 64-bit 2203167802Sjkimversions. The Lint option files used are included in the 2204167802Sjkim/acpi/generate/lint directory. 2205167802Sjkim 2206167802SjkimImplemented enhanced status/error checking across the entire 2207167802SjkimHardware manager subsystem. Any hardware errors (reported from 2208167802Sjkimthe OSL) are now bubbled up and will abort a running control 2209167802Sjkimmethod. 2210167802Sjkim 2211167802SjkimFixed a problem where the per-ACPI-table integer width (32 or 64) 2212167802Sjkimwas stored only with control method nodes, causing a fault when 2213167802Sjkimnon-control method code was executed during table loading. The 2214167802Sjkimsolution implemented uses a global variable to indicate table 2215167802Sjkimwidth across the entire ACPI subsystem. Therefore, ACPI CA does 2216193267Sjkimnot support mixed integer widths across different ACPI tables 2217193267Sjkim(DSDT, SSDT). 2218193267Sjkim 2219193267SjkimFixed a problem where NULL extended fields (X fields) in an ACPI 2220193267Sjkim2.0 ACPI FADT caused the table load to fail. Although the 2221167802Sjkimexisting ACPI specification is a bit fuzzy on this topic, the new 2222193267Sjkimbehavior is to fall back on a ACPI 1.0 field if the corresponding 2223193267SjkimACPI 2.0 X field is zero (even though the table revision 2224193267Sjkimindicates 2225167802Sjkima full ACPI 2.0 table.) The ACPI specification will be updated 2226193267Sjkimto 2227193267Sjkimclarify this issue. 2228193267Sjkim 2229193267SjkimFixed a problem with the SystemMemory operation region handler 2230167802Sjkimwhere memory was always accessed byte-wise even if the AML- 2231193267Sjkimspecified access width was larger than a byte. This caused 2232193267Sjkimproblems on systems with memory-mapped I/O. Memory is now 2233193267Sjkimaccessed with the width specified. On systems that do not 2234193267Sjkimsupport 2235193267Sjkimnon-aligned transfers, a check is made to guarantee proper 2236167802Sjkimaddress 2237193267Sjkimalignment before proceeding in order to avoid an AML-caused 2238193267Sjkimalignment fault within the kernel. 2239193267Sjkim 2240167802Sjkim 2241193267SjkimFixed a problem with the ExtendedIrq resource where only one byte 2242193267Sjkimof the 4-byte Irq field was extracted. 2243193267Sjkim 2244193267SjkimFixed the AcpiExDigitsNeeded() procedure to support _UID. This 2245167802Sjkimfunction was out of date and required a rewrite. 2246167802Sjkim 2247193267SjkimCode and Data Size: Current core subsystem library sizes are 2248167802Sjkimshown 2249167802Sjkimbelow. These are the code and data sizes for the acpica.lib 2250167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2251193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2252193267Sjkimversion of the code includes the debug output trace mechanism and 2253193267Sjkimhas a larger code and data size. Note that these values will 2254193267Sjkimvary 2255193267Sjkimdepending on the efficiency of the compiler and the compiler 2256167802Sjkimoptions used during generation. 2257193267Sjkim 2258193267Sjkim Previous Release 2259193267Sjkim Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 2260193267Sjkim Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 2261167802Sjkim Current Release: 2262193267Sjkim Non-Debug Version: 68.5K Code, 7.0K Data, 75.5K Total 2263193267Sjkim Debug Version: 142.4K Code, 58.3K Data, 200.7K Total 2264193267Sjkim 2265193267Sjkim 2266167802Sjkim2) Linux 2267167802Sjkim 2268167802SjkimPCI IRQ routing fixes (Dominik Brodowski) 2269167802Sjkim 2270167802Sjkim 2271167802Sjkim3) iASL Compiler Version X2042: 2272167802Sjkim 2273167802SjkimImplemented an additional compile-time error check for a field 2274167802Sjkimunit whose size + minimum access width would cause a run-time 2275167802Sjkimaccess beyond the end-of-region. Previously, only the field size 2276167802Sjkimitself was checked. 2277167802Sjkim 2278193267SjkimThe Core subsystem and iASL compiler now share a common parse 2279193267Sjkimobject in preparation for compile-time evaluation of the type 2280167802Sjkim3/4/5 ASL operators. 2281167802Sjkim 2282167802Sjkim 2283167802Sjkim---------------------------------------- 2284167802SjkimSummary of changes for this release: 03_29_02 2285167802Sjkim 2286193267Sjkim1) ACPI CA Core Subsystem Version 20020329: 2287193267Sjkim 2288193267SjkimImplemented support for late evaluation of TermArg operands to 2289167802SjkimBuffer and Package objects. This allows complex expressions to 2290193267Sjkimbe 2291193267Sjkimused in the declarations of these object types. 2292193267Sjkim 2293193267SjkimFixed an ACPI 1.0 compatibility issue when reading Fields. In 2294167802SjkimACPI 2295193267Sjkim1.0, if the field was larger than 32 bits, it was returned as a 2296193267Sjkimbuffer - otherwise it was returned as an integer. In ACPI 2.0, 2297193267Sjkimthe field is returned as a buffer only if the field is larger 2298193267Sjkimthan 2299193267Sjkim64 bits. The TableRevision is now considered when making this 2300193267Sjkimconversion to avoid incompatibility with existing ASL code. 2301193267Sjkim 2302167802SjkimImplemented logical addressing for AcpiOsGetRootPointer. This 2303193267Sjkimallows an RSDP with either a logical or physical address. With 2304193267Sjkimthis support, the host OS can now override all ACPI tables with 2305193267Sjkimone logical RSDP. Includes implementation of "typed" pointer 2306193267Sjkimsupport to allow a common data type for both physical and logical 2307193267Sjkimpointers internally. This required a change to the 2308167802SjkimAcpiOsGetRootPointer interface. 2309193267Sjkim 2310193267SjkimImplemented the use of ACPI 2.0 Generic Address Structures for 2311193267Sjkimall 2312193267SjkimGPE, Fixed Event, and PM Timer I/O. This allows the use of 2313193267Sjkimmemory 2314167802Sjkimmapped I/O for these ACPI features. 2315193267Sjkim 2316193267SjkimInitialization now ignores not only non-required tables (All 2317193267Sjkimtables other than the FADT, FACS, DSDT, and SSDTs), but also does 2318193267Sjkimnot validate the table headers of unrecognized tables. 2319167802Sjkim 2320193267SjkimFixed a problem where a notify handler could only be 2321193267Sjkiminstalled/removed on an object of type Device. All "notify" 2322193267Sjkimobjects are now supported -- Devices, Processor, Power, and 2323193267SjkimThermal. 2324167802Sjkim 2325167802SjkimRemoved most verbosity from the ACPI_DB_INFO debug level. Only 2326167802Sjkimcritical information is returned when this debug level is 2327167802Sjkimenabled. 2328167802Sjkim 2329167802SjkimCode and Data Size: Current core subsystem library sizes are 2330167802Sjkimshown 2331167802Sjkimbelow. These are the code and data sizes for the acpica.lib 2332167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2333167802Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2334167802Sjkimversion of the code includes the debug output trace mechanism and 2335167802Sjkimhas a larger code and data size. Note that these values will 2336167802Sjkimvary 2337167802Sjkimdepending on the efficiency of the compiler and the compiler 2338167802Sjkimoptions used during generation. 2339167802Sjkim 2340167802Sjkim Previous Release 2341167802Sjkim Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 2342193267Sjkim Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 2343193267Sjkim Current Release: 2344193267Sjkim Non-Debug Version: 66.6K Code, 6.5K Data, 73.1K Total 2345193267Sjkim Debug Version: 139.8K Code, 57.4K Data, 197.2K Total 2346193267Sjkim 2347193267Sjkim 2348167802Sjkim2) Linux: 2349193267Sjkim 2350193267SjkimThe processor driver (acpi_processor.c) now fully supports ACPI 2351193267Sjkim2.0-based processor performance control (e.g. Intel(R) 2352167802SjkimSpeedStep(TM) technology) Note that older laptops that only have 2353193267Sjkimthe Intel "applet" interface are not supported through this. The 2354193267Sjkim'limit' and 'performance' interface (/proc) are fully functional. 2355193267Sjkim[Note that basic policy for controlling performance state 2356167802Sjkimtransitions will be included in the next version of ospmd.] The 2357167802Sjkimidle handler was modified to more aggressively use C2, and PIIX4 2358193267Sjkimerrata handling underwent a complete overhaul (big thanks to 2359167802SjkimDominik Brodowski). 2360167802Sjkim 2361193267SjkimAdded support for ACPI-PCI device binding (acpi_pci_root.c). _ADR- 2362167802Sjkimbased devices in the ACPI namespace are now dynamically bound 2363193267Sjkim(associated) with their PCI counterparts (e.g. PCI1->01:00.0). 2364193267SjkimThis allows, among other things, ACPI to resolve bus numbers for 2365167802Sjkimsubordinate PCI bridges. 2366193267Sjkim 2367193267SjkimEnhanced PCI IRQ routing to get the proper bus number for _PRT 2368193267Sjkimentries defined underneath PCI bridges. 2369193267Sjkim 2370167802SjkimAdded IBM 600E to bad bios list due to invalid _ADR value for 2371167802SjkimPIIX4 PCI-ISA bridge, resulting in improper PCI IRQ routing. 2372167802Sjkim 2373167802SjkimIn the process of adding full MADT support (e.g. IOAPIC) for IA32 2374167802Sjkim(acpi.c, mpparse.c) -- stay tuned. 2375167802Sjkim 2376167802SjkimAdded back visual differentiation between fixed-feature and 2377167802Sjkimcontrol-method buttons in dmesg. Buttons are also subtyped (e.g. 2378167802Sjkimbutton/power/PWRF) to simplify button identification. 2379167802Sjkim 2380167802SjkimWe no longer use -Wno-unused when compiling debug. Please ignore 2381193267Sjkimany "_THIS_MODULE defined but not used" messages. 2382193267Sjkim 2383167802SjkimCan now shut down the system using "magic sysrq" key. 2384167802Sjkim 2385193267Sjkim 2386193267Sjkim3) iASL Compiler version 2041: 2387193267Sjkim 2388167802SjkimFixed a problem where conversion errors for hex/octal/decimal 2389167802Sjkimconstants were not reported. 2390167802Sjkim 2391167802SjkimImplemented a fix for the General Register template Address 2392167802Sjkimfield. 2393167802SjkimThis field was 8 bits when it should be 64. 2394167802Sjkim 2395193267SjkimFixed a problem where errors/warnings were no longer being 2396193267Sjkimemitted 2397193267Sjkimwithin the listing output file. 2398167802Sjkim 2399193267SjkimImplemented the ACPI 2.0A restriction on ACPI Table Signatures to 2400193267Sjkimexactly 4 characters, alphanumeric only. 2401193267Sjkim 2402167802Sjkim 2403193267Sjkim 2404193267Sjkim 2405193267Sjkim---------------------------------------- 2406193267SjkimSummary of changes for this release: 03_08_02 2407193267Sjkim 2408167802Sjkim 2409167802Sjkim1) ACPI CA Core Subsystem Version 20020308: 2410193267Sjkim 2411193267SjkimFixed a problem with AML Fields where the use of the "AccessAny" 2412167802Sjkimkeyword could cause an interpreter error due to attempting to 2413167802Sjkimread 2414193267Sjkimor write beyond the end of the parent Operation Region. 2415193267Sjkim 2416193267SjkimFixed a problem in the SystemMemory Operation Region handler 2417193267Sjkimwhere 2418167802Sjkiman attempt was made to map memory beyond the end of the region. 2419193267SjkimThis was the root cause of the "AE_ERROR" and "AE_NO_MEMORY" 2420167802Sjkimerrors on some Linux systems. 2421167802Sjkim 2422193267SjkimFixed a problem where the interpreter/namespace "search to root" 2423193267Sjkimalgorithm was not functioning for some object types. Relaxed the 2424193267Sjkiminternal restriction on the search to allow upsearches for all 2425167802Sjkimexternal object types as well as most internal types. 2426193267Sjkim 2427193267Sjkim 2428193267Sjkim2) Linux: 2429193267Sjkim 2430167802SjkimWe now use safe_halt() macro versus individual calls to sti | 2431167802Sjkimhlt. 2432167802Sjkim 2433167802SjkimWriting to the processor limit interface should now work. "echo 2434167802Sjkim1" 2435167802Sjkimwill increase the limit, 2 will decrease, and 0 will reset to the 2436167802Sjkimdefault. 2437167802Sjkim 2438167802Sjkim 2439167802Sjkim3) ASL compiler: 2440167802Sjkim 2441193267SjkimFixed segfault on Linux version. 2442193267Sjkim 2443193267Sjkim 2444193267Sjkim---------------------------------------- 2445167802SjkimSummary of changes for this release: 02_25_02 2446167802Sjkim 2447193267Sjkim1) ACPI CA Core Subsystem: 2448193267Sjkim 2449193267Sjkim 2450167802SjkimFixed a problem where the GPE bit masks were not initialized 2451167802Sjkimproperly, causing erratic GPE behavior. 2452167802Sjkim 2453167802SjkimImplemented limited support for multiple calling conventions. 2454167802SjkimThe 2455167802Sjkimcode can be generated with either the VPL (variable parameter 2456193267Sjkimlist, or "C") convention, or the FPL (fixed parameter list, or 2457193267Sjkim"Pascal") convention. The core subsystem is about 3.4% smaller 2458193267Sjkimwhen generated with FPL. 2459193267Sjkim 2460193267Sjkim 2461193267Sjkim2) Linux 2462193267Sjkim 2463193267SjkimRe-add some /proc/acpi/event functionality that was lost during 2464193267Sjkimthe rewrite 2465193267Sjkim 2466167802SjkimResolved issue with /proc events for fixed-feature buttons 2467193267Sjkimshowing 2468193267Sjkimup as the system device. 2469193267Sjkim 2470167802SjkimFixed checks on C2/C3 latencies to be inclusive of maximum 2471193267Sjkimvalues. 2472193267Sjkim 2473193267SjkimReplaced AE_ERRORs in acpi_osl.c with more specific error codes. 2474167802Sjkim 2475193267SjkimChanged ACPI PRT option from "pci=noacpi-routing" to "pci=noacpi" 2476193267Sjkim 2477193267SjkimFixed limit interface & usage to fix bugs with passive cooling 2478193267Sjkimhysterisis. 2479167802Sjkim 2480167802SjkimRestructured PRT support. 2481167802Sjkim 2482167802Sjkim 2483167802Sjkim---------------------------------------- 2484167802SjkimSummary of changes for this label: 02_14_02 2485167802Sjkim 2486167802Sjkim 2487167802Sjkim1) ACPI CA Core Subsystem: 2488167802Sjkim 2489167802SjkimImplemented support in AcpiLoadTable to allow loading of FACS and 2490167802SjkimFADT tables. 2491193267Sjkim 2492193267SjkimSuport for the now-obsolete interim 0.71 64-bit ACPI tables has 2493193267Sjkimbeen removed. All 64-bit platforms should be migrated to the 2494193267SjkimACPI 2495193267Sjkim2.0 tables. The actbl71.h header has been removed from the 2496167802Sjkimsource 2497193267Sjkimtree. 2498193267Sjkim 2499193267SjkimAll C macros defined within the subsystem have been prefixed with 2500193267Sjkim"ACPI_" to avoid collision with other system include files. 2501193267Sjkim 2502193267SjkimRemoved the return value for the two AcpiOsPrint interfaces, 2503167802Sjkimsince 2504193267Sjkimit is never used and causes lint warnings for ignoring the return 2505193267Sjkimvalue. 2506193267Sjkim 2507193267SjkimAdded error checking to all internal mutex acquire and release 2508167802Sjkimcalls. Although a failure from one of these interfaces is 2509167802Sjkimprobably a fatal system error, these checks will cause the 2510167802Sjkimimmediate abort of the currently executing method or interface. 2511167802Sjkim 2512167802SjkimFixed a problem where the AcpiSetCurrentResources interface could 2513167802Sjkimfault. This was a side effect of the deployment of the new 2514193267Sjkimmemory 2515193267Sjkimallocation model. 2516193267Sjkim 2517193267SjkimFixed a couple of problems with the Global Lock support 2518193267Sjkimintroduced 2519193267Sjkimin the last major build. The "common" (1.0/2.0) internal FACS 2520167802Sjkimwas 2521167802Sjkimbeing overwritten with the FACS signature and clobbering the 2522193267SjkimGlobal Lock pointer. Also, the actual firmware FACS was being 2523193267Sjkimunmapped after construction of the "common" FACS, preventing 2524193267Sjkimaccess to the actual Global Lock field within it. The "common" 2525193267Sjkiminternal FACS is no longer installed as an actual ACPI table; it 2526167802Sjkimis used simply as a global. 2527193267Sjkim 2528193267SjkimCode and Data Size: Current core subsystem library sizes are 2529193267Sjkimshown 2530193267Sjkimbelow. These are the code and data sizes for the acpica.lib 2531167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2532193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2533193267Sjkimversion of the code includes the debug output trace mechanism and 2534193267Sjkimhas a larger code and data size. Note that these values will 2535193267Sjkimvary 2536167802Sjkimdepending on the efficiency of the compiler and the compiler 2537193267Sjkimoptions used during generation. 2538193267Sjkim 2539193267Sjkim Previous Release (02_07_01) 2540193267Sjkim Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total 2541193267Sjkim Debug Version: 136.9K Code, 56.4K Data, 193.3K Total 2542193267Sjkim Current Release: 2543167802Sjkim Non-Debug Version: 65.4K Code, 6.2K Data, 71.6K Total 2544167802Sjkim Debug Version: 138.0K Code, 56.6K Data, 194.6K Total 2545193267Sjkim 2546193267Sjkim 2547193267Sjkim2) Linux 2548193267Sjkim 2549193267SjkimUpdated Linux-specific code for core macro and OSL interface 2550167802Sjkimchanges described above. 2551193267Sjkim 2552193267SjkimImproved /proc/acpi/event. It now can be opened only once and has 2553193267Sjkimproper poll functionality. 2554167802Sjkim 2555193267SjkimFixed and restructured power management (acpi_bus). 2556193267Sjkim 2557193267SjkimOnly create /proc "view by type" when devices of that class 2558193267Sjkimexist. 2559167802Sjkim 2560193267SjkimFixed "charging/discharging" bug (and others) in acpi_battery. 2561193267Sjkim 2562193267SjkimImproved thermal zone code. 2563167802Sjkim 2564193267Sjkim 2565193267Sjkim3) ASL Compiler, version X2039: 2566193267Sjkim 2567193267Sjkim 2568193267SjkimImplemented the new compiler restriction on ASL String hex/octal 2569167802Sjkimescapes to non-null, ASCII values. An error results if an 2570167802Sjkiminvalid 2571167802Sjkimvalue is used. (This will require an ACPI 2.0 specification 2572167802Sjkimchange.) 2573167802Sjkim 2574167802SjkimAML object labels that are output to the optional C and ASM 2575167802Sjkimsource 2576167802Sjkimare now prefixed with both the ACPI table signature and table ID 2577167802Sjkimto help guarantee uniqueness within a large BIOS project. 2578167802Sjkim 2579167802Sjkim 2580193267Sjkim---------------------------------------- 2581193267SjkimSummary of changes for this label: 02_01_02 2582167802Sjkim 2583193267Sjkim1) ACPI CA Core Subsystem: 2584193267Sjkim 2585193267SjkimACPI 2.0 support is complete in the entire Core Subsystem and the 2586167802SjkimASL compiler. All new ACPI 2.0 operators are implemented and all 2587193267Sjkimother changes for ACPI 2.0 support are complete. With 2588193267Sjkimsimultaneous code and data optimizations throughout the 2589193267Sjkimsubsystem, 2590167802SjkimACPI 2.0 support has been implemented with almost no additional 2591193267Sjkimcost in terms of code and data size. 2592193267Sjkim 2593193267SjkimImplemented a new mechanism for allocation of return buffers. If 2594193267Sjkimthe buffer length is set to ACPI_ALLOCATE_BUFFER, the buffer will 2595193267Sjkimbe allocated on behalf of the caller. Consolidated all return 2596193267Sjkimbuffer validation and allocation to a common procedure. Return 2597193267Sjkimbuffers will be allocated via the primary OSL allocation 2598167802Sjkiminterface 2599167802Sjkimsince it appears that a separate pool is not needed by most 2600167802Sjkimusers. 2601167802SjkimIf a separate pool is required for these buffers, the caller can 2602167802Sjkimstill use the original mechanism and pre-allocate the buffer(s). 2603167802Sjkim 2604193267SjkimImplemented support for string operands within the DerefOf 2605193267Sjkimoperator. 2606193267Sjkim 2607193267SjkimRestructured the Hardware and Event managers to be table driven, 2608167802Sjkimsimplifying the source code and reducing the amount of generated 2609193267Sjkimcode. 2610193267Sjkim 2611193267SjkimSplit the common read/write low-level ACPI register bitfield 2612193267Sjkimprocedure into a separate read and write, simplifying the code 2613193267Sjkimconsiderably. 2614167802Sjkim 2615193267SjkimObsoleted the AcpiOsCallocate OSL interface. This interface was 2616193267Sjkimused only a handful of times and didn't have enough critical mass 2617193267Sjkimfor a separate interface. Replaced with a common calloc 2618193267Sjkimprocedure 2619167802Sjkimin the core. 2620193267Sjkim 2621193267SjkimFixed a reported problem with the GPE number mapping mechanism 2622193267Sjkimthat allows GPE1 numbers to be non-contiguous with GPE0. 2623193267SjkimReorganized the GPE information and shrunk a large array that was 2624167802Sjkimoriginally large enough to hold info for all possible GPEs (256) 2625167802Sjkimto simply large enough to hold all GPEs up to the largest GPE 2626193267Sjkimnumber on the machine. 2627193267Sjkim 2628193267SjkimFixed a reported problem with resource structure alignment on 64- 2629193267Sjkimbit platforms. 2630167802Sjkim 2631193267SjkimChanged the AcpiEnableEvent and AcpiDisableEvent external 2632193267Sjkiminterfaces to not require any flags for the common case of 2633193267Sjkimenabling/disabling a GPE. 2634193267Sjkim 2635193267SjkimImplemented support to allow a "Notify" on a Processor object. 2636167802Sjkim 2637193267SjkimMost TBDs in comments within the source code have been resolved 2638193267Sjkimand eliminated. 2639193267Sjkim 2640193267SjkimFixed a problem in the interpreter where a standalone parent 2641167802Sjkimprefix (^) was not handled correctly in the interpreter and 2642167802Sjkimdebugger. 2643167802Sjkim 2644167802SjkimRemoved obsolete and unnecessary GPE save/restore code. 2645167802Sjkim 2646167802SjkimImplemented Field support in the ASL Load operator. This allows 2647167802Sjkima 2648167802Sjkimtable to be loaded from a named field, in addition to loading a 2649167802Sjkimtable directly from an Operation Region. 2650167802Sjkim 2651167802SjkimImplemented timeout and handle support in the external Global 2652193267SjkimLock 2653193267Sjkiminterfaces. 2654193267Sjkim 2655193267SjkimFixed a problem in the AcpiDump utility where pathnames were no 2656167802Sjkimlonger being generated correctly during the dump of named 2657193267Sjkimobjects. 2658193267Sjkim 2659193267SjkimModified the AML debugger to give a full display of if/while 2660193267Sjkimpredicates instead of just one AML opcode at a time. (The 2661193267Sjkimpredicate can have several nested ASL statements.) The old 2662167802Sjkimmethod 2663193267Sjkimwas confusing during single stepping. 2664193267Sjkim 2665167802SjkimCode and Data Size: Current core subsystem library sizes are 2666193267Sjkimshown 2667193267Sjkimbelow. These are the code and data sizes for the acpica.lib 2668167802Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2669167802Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2670167802Sjkimversion of the code includes the debug output trace mechanism and 2671167802Sjkimhas a larger code and data size. Note that these values will 2672167802Sjkimvary 2673167802Sjkimdepending on the efficiency of the compiler and the compiler 2674193267Sjkimoptions used during generation. 2675193267Sjkim 2676193267Sjkim Previous Release (12_18_01) 2677193267Sjkim Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total 2678167802Sjkim Debug Version: 138.3K Code, 55.9K Data, 194.2K Total 2679193267Sjkim Current Release: 2680193267Sjkim Non-Debug Version: 65.2K Code, 6.2K Data, 71.4K Total 2681193267Sjkim Debug Version: 136.9K Code, 56.4K Data, 193.3K Total 2682193267Sjkim 2683167802Sjkim2) Linux 2684193267Sjkim 2685193267Sjkim Implemented fix for PIIX reverse throttling errata (Processor 2686193267Sjkimdriver) 2687193267Sjkim 2688167802SjkimAdded new Limit interface (Processor and Thermal drivers) 2689193267Sjkim 2690193267SjkimNew thermal policy (Thermal driver) 2691167802Sjkim 2692193267SjkimMany updates to /proc 2693193267Sjkim 2694193267SjkimBattery "low" event support (Battery driver) 2695193267Sjkim 2696167802SjkimSupports ACPI PCI IRQ routing (PCI Link and PCI root drivers) 2697193267Sjkim 2698193267SjkimIA32 - IA64 initialization unification, no longer experimental 2699193267Sjkim 2700167802SjkimMenuconfig options redesigned 2701193267Sjkim 2702193267Sjkim3) ASL Compiler, version X2037: 2703193267Sjkim 2704193267SjkimImplemented several new output features to simplify integration 2705193267Sjkimof 2706193267SjkimAML code into firmware: 1) Output the AML in C source code with 2707167802Sjkimlabels for each named ASL object. The original ASL source 2708167802Sjkimcode 2709167802Sjkimis interleaved as C comments. 2) Output the AML in ASM source 2710167802Sjkimcode 2711167802Sjkimwith labels and interleaved ASL source. 3) Output the AML in 2712167802Sjkimraw hex table form, in either C or ASM. 2713167802Sjkim 2714167802SjkimImplemented support for optional string parameters to the 2715167802SjkimLoadTable operator. 2716167802Sjkim 2717167802SjkimCompleted support for embedded escape sequences within string 2718193267Sjkimliterals. The compiler now supports all single character escapes 2719193267Sjkimas well as the Octal and Hex escapes. Note: the insertion of a 2720193267Sjkimnull byte into a string literal (via the hex/octal escape) causes 2721193267Sjkimthe string to be immediately terminated. A warning is issued. 2722193267Sjkim 2723167802SjkimFixed a problem where incorrect AML was generated for the case 2724167802Sjkimwhere an ASL namepath consists of a single parent prefix ( 2725167802Sjkim 2726167802Sjkim) with no trailing name segments. 2727167802Sjkim 2728167802SjkimThe compiler has been successfully generated with a 64-bit C 2729167802Sjkimcompiler. 2730193267Sjkim 2731193267Sjkim 2732193267Sjkim 2733193267Sjkim 2734167802Sjkim---------------------------------------- 2735193267SjkimSummary of changes for this label: 12_18_01 2736193267Sjkim 2737193267Sjkim1) Linux 2738167802Sjkim 2739193267SjkimEnhanced blacklist with reason and severity fields. Any table's 2740193267Sjkimsignature may now be used to identify a blacklisted system. 2741193267Sjkim 2742167802SjkimCall _PIC control method to inform the firmware which interrupt 2743193267Sjkimmodel the OS is using. Turn on any disabled link devices. 2744193267Sjkim 2745193267SjkimCleaned up busmgr /proc error handling (Andreas Dilger) 2746193267Sjkim 2747167802Sjkim 2) ACPI CA Core Subsystem: 2748193267Sjkim 2749193267SjkimImplemented ACPI 2.0 semantics for the "Break" operator (Exit 2750193267Sjkimfrom 2751193267Sjkimwhile loop) 2752193267Sjkim 2753167802SjkimCompleted implementation of the ACPI 2.0 "Continue", 2754193267Sjkim"ConcatenateResTemplate", "DataTableRegion", and "LoadTable" 2755193267Sjkimoperators. All new ACPI 2.0 operators are now implemented in 2756193267Sjkimboth 2757193267Sjkimthe ASL compiler and the AML interpreter. The only remaining 2758193267SjkimACPI 2759193267Sjkim2.0 task is support for the String data type in the DerefOf 2760167802Sjkimoperator. Fixed a problem with AcquireMutex where the status 2761167802Sjkimcode 2762167802Sjkimwas lost if the caller had to actually wait for the mutex. 2763167802Sjkim 2764167802SjkimIncreased the maximum ASL Field size from 64K bits to 4G bits. 2765167802Sjkim 2766167802SjkimCompleted implementation of the external Global Lock interfaces - 2767167802Sjkim- 2768167802SjkimAcpiAcquireGlobalLock and AcpiReleaseGlobalLock. The Timeout and 2769167802SjkimHandler parameters were added. 2770167802Sjkim 2771193267SjkimCompleted another pass at removing warnings and issues when 2772193267Sjkimcompiling with 64-bit compilers. The code now compiles cleanly 2773193267Sjkimwith the Intel 64-bit C/C++ compiler. Most notably, the pointer 2774193267Sjkimadd and subtract (diff) macros have changed considerably. 2775193267Sjkim 2776193267SjkimCreated and deployed a new ACPI_SIZE type that is 64-bits wide on 2777193267Sjkim64-bit platforms, 32-bits on all others. This type is used 2778193267Sjkimwherever memory allocation and/or the C sizeof() operator is 2779167802Sjkimused, 2780193267Sjkimand affects the OSL memory allocation interfaces AcpiOsAllocate 2781193267Sjkimand AcpiOsCallocate. 2782193267Sjkim 2783167802SjkimImplemented sticky user breakpoints in the AML debugger. 2784193267Sjkim 2785193267SjkimCode and Data Size: Current core subsystem library sizes are 2786167802Sjkimshown 2787193267Sjkimbelow. These are the code and data sizes for the acpica.lib 2788193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2789193267Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2790167802Sjkimversion of the code includes the debug output trace mechanism and 2791167802Sjkimhas a larger code and data size. Note that these values will vary 2792167802Sjkimdepending on the efficiency of the compiler and the compiler 2793167802Sjkimoptions used during generation. 2794167802Sjkim 2795167802Sjkim Previous Release (12_05_01) 2796193267Sjkim Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total 2797193267Sjkim Debug Version: 136.2K Code, 55.6K Data, 191.8K Total 2798193267Sjkim Current Release: 2799193267Sjkim Non-Debug Version: 66.1K Code, 5.5K Data, 71.6K Total 2800193267Sjkim Debug Version: 138.3K Code, 55.9K Data, 194.2K Total 2801193267Sjkim 2802167802Sjkim 3) ASL Compiler, version X2034: 2803193267Sjkim 2804193267SjkimNow checks for (and generates an error if detected) the use of a 2805193267SjkimBreak or Continue statement without an enclosing While statement. 2806193267Sjkim 2807167802SjkimSuccessfully generated the compiler with the Intel 64-bit C 2808193267Sjkimcompiler. 2809193267Sjkim 2810167802Sjkim ---------------------------------------- 2811193267SjkimSummary of changes for this label: 12_05_01 2812193267Sjkim 2813193267Sjkim 1) ACPI CA Core Subsystem: 2814193267Sjkim 2815193267SjkimThe ACPI 2.0 CopyObject operator is fully implemented. This 2816193267Sjkimoperator creates a new copy of an object (and is also used to 2817167802Sjkimbypass the "implicit conversion" mechanism of the Store 2818167802Sjkimoperator.) 2819167802Sjkim 2820167802SjkimThe ACPI 2.0 semantics for the SizeOf operator are fully 2821167802Sjkimimplemented. The change is that performing a SizeOf on a 2822167802Sjkimreference object causes an automatic dereference of the object to 2823167802Sjkimtha actual value before the size is evaluated. This behavior was 2824167802Sjkimundefined in ACPI 1.0. 2825167802Sjkim 2826167802SjkimThe ACPI 2.0 semantics for the Extended IRQ resource descriptor 2827167802Sjkimhave been implemented. The interrupt polarity and mode are now 2828193267Sjkimindependently set. 2829193267Sjkim 2830193267SjkimFixed a problem where ASL Constants (Zero, One, Ones, Revision) 2831167802Sjkimappearing in Package objects were not properly converted to 2832193267Sjkimintegers when the internal Package was converted to an external 2833193267Sjkimobject (via the AcpiEvaluateObject interface.) 2834167802Sjkim 2835167802SjkimFixed a problem with the namespace object deletion mechanism for 2836167802Sjkimobjects created by control methods. There were two parts to this 2837167802Sjkimproblem: 1) Objects created during the initialization phase 2838167802Sjkimmethod 2839167802Sjkimparse were not being deleted, and 2) The object owner ID 2840193267Sjkimmechanism 2841193267Sjkimto track objects was broken. 2842193267Sjkim 2843167802SjkimFixed a problem where the use of the ASL Scope operator within a 2844193267Sjkimcontrol method would result in an invalid opcode exception. 2845193267Sjkim 2846167802SjkimFixed a problem introduced in the previous label where the buffer 2847193267Sjkimlength required for the _PRT structure was not being returned 2848193267Sjkimcorrectly. 2849193267Sjkim 2850167802SjkimCode and Data Size: Current core subsystem library sizes are 2851193267Sjkimshown 2852193267Sjkimbelow. These are the code and data sizes for the acpica.lib 2853193267Sjkimproduced by the Microsoft Visual C++ 6.0 compiler, and these 2854167802Sjkimvalues do not include any ACPI driver or OSPM code. The debug 2855193267Sjkimversion of the code includes the debug output trace mechanism and 2856193267Sjkimhas a larger code and data size. Note that these values will 2857193267Sjkimvary 2858167802Sjkimdepending on the efficiency of the compiler and the compiler 2859193267Sjkimoptions used during generation. 2860193267Sjkim 2861167802Sjkim Previous Release (11_20_01) 2862167802Sjkim Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total 2863167802Sjkim Debug Version: 135.1K Code, 55.4K Data, 190.5K Total 2864193267Sjkim 2865193267Sjkim Current Release: 2866193267Sjkim Non-Debug Version: 64.7K Code, 5.3K Data, 70.0K Total 2867167802Sjkim Debug Version: 136.2K Code, 55.6K Data, 191.8K Total 2868193267Sjkim 2869193267Sjkim 2) Linux: 2870193267Sjkim 2871193267SjkimUpdated all files to apply cleanly against 2.4.16. 2872193267Sjkim 2873193267SjkimAdded basic PCI Interrupt Routing Table (PRT) support for IA32 2874193267Sjkim(acpi_pci.c), and unified the PRT code for IA32 and IA64. This 2875167802Sjkimversion supports both static and dyanmic PRT entries, but dynamic 2876167802Sjkimentries are treated as if they were static (not yet 2877167802Sjkimreconfigurable). Architecture- specific code to use this data is 2878167802Sjkimabsent on IA32 but should be available shortly. 2879167802Sjkim 2880167802SjkimChanged the initialization sequence to start the ACPI interpreter 2881167802Sjkim(acpi_init) prior to initialization of the PCI driver (pci_init) 2882167802Sjkimin init/main.c. This ordering is required to support PRT and 2883167802Sjkimfacilitate other (future) enhancement. A side effect is that the 2884167802SjkimACPI bus driver and certain device drivers can no longer be 2885167802Sjkimloaded 2886193267Sjkimas modules. 2887193267Sjkim 2888167802SjkimModified the 'make menuconfig' options to allow PCI Interrupt 2889167802SjkimRouting support to be included without the ACPI Bus and other 2890167802Sjkimdevice drivers. 2891167802Sjkim 2892167802Sjkim 3) ASL Compiler, version X2033: 2893167802Sjkim 2894193267SjkimFixed some issues with the use of the new CopyObject and 2895193267SjkimDataTableRegion operators. Both are fully functional. 2896193267Sjkim 2897193267Sjkim ---------------------------------------- 2898193267SjkimSummary of changes for this label: 11_20_01 2899167802Sjkim 2900167802Sjkim 20 November 2001. Summary of changes for this release. 2901193267Sjkim 2902193267Sjkim 1) ACPI CA Core Subsystem: 2903193267Sjkim 2904193267SjkimUpdated Index support to match ACPI 2.0 semantics. Storing a 2905193267SjkimInteger, String, or Buffer to an Index of a Buffer will store 2906193267Sjkimonly 2907167802Sjkimthe least-significant byte of the source to the Indexed buffer 2908193267Sjkimbyte. Multiple writes are not performed. 2909193267Sjkim 2910167802SjkimFixed a problem where the access type used in an AccessAs ASL 2911193267Sjkimoperator was not recorded correctly into the field object. 2912193267Sjkim 2913167802SjkimFixed a problem where ASL Event objects were created in a 2914193267Sjkimsignalled state. Events are now created in an unsignalled state. 2915193267Sjkim 2916193267SjkimThe internal object cache is now purged after table loading and 2917193267Sjkiminitialization to reduce the use of dynamic kernel memory -- on 2918167802Sjkimthe assumption that object use is greatest during the parse phase 2919167802Sjkimof the entire table (versus the run-time use of individual 2920193267Sjkimcontrol 2921193267Sjkimmethods.) 2922167802Sjkim 2923193267SjkimACPI 2.0 variable-length packages are now fully operational. 2924193267Sjkim 2925193267SjkimCode and Data Size: Code and Data optimizations have permitted 2926193267Sjkimnew 2927193267Sjkimfeature development with an actual reduction in the library size. 2928193267SjkimCurrent core subsystem library sizes are shown below. These are 2929193267Sjkimthe code and data sizes for the acpica.lib produced by the 2930167802SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not 2931167802Sjkiminclude 2932167802Sjkimany ACPI driver or OSPM code. The debug version of the code 2933167802Sjkimincludes the debug output trace mechanism and has a larger code 2934167802Sjkimand data size. Note that these values will vary depending on the 2935167802Sjkimefficiency of the compiler and the compiler options used during 2936167802Sjkimgeneration. 2937167802Sjkim 2938167802Sjkim Previous Release (11_09_01): 2939167802Sjkim Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total 2940167802Sjkim Debug Version: 134.5K Code, 55.4K Data, 189.9K Total 2941193267Sjkim 2942193267Sjkim Current Release: 2943167802Sjkim Non-Debug Version: 64.1K Code, 5.3K Data, 69.4K Total 2944167802Sjkim Debug Version: 135.1K Code, 55.4K Data, 190.5K Total 2945167802Sjkim 2946167802Sjkim 2) Linux: 2947167802Sjkim 2948167802SjkimEnhanced the ACPI boot-time initialization code to allow the use 2949193267Sjkimof Local APIC tables for processor enumeration on IA-32, and to 2950193267Sjkimpave the way for a fully MPS-free boot (on SMP systems) in the 2951193267Sjkimnear future. This functionality replaces 2952193267Sjkimarch/i386/kernel/acpitables.c, which was introduced in an earlier 2953193267Sjkim2.4.15-preX release. To enable this feature you must add 2954193267Sjkim"acpi_boot=on" to the kernel command line -- see the help entry 2955193267Sjkimfor CONFIG_ACPI_BOOT for more information. An IA-64 release is 2956193267Sjkimin 2957193267Sjkimthe works... 2958193267Sjkim 2959193267SjkimRestructured the configuration options to allow boot-time table 2960193267Sjkimparsing support without inclusion of the ACPI Interpreter (and 2961193267Sjkimother) code. 2962193267Sjkim 2963193267SjkimNOTE: This release does not include fixes for the reported 2964193267Sjkimevents, 2965193267Sjkimpower-down, and thermal passive cooling issues (coming soon). 2966167802Sjkim 2967193267Sjkim 3) ASL Compiler: 2968193267Sjkim 2969167802SjkimAdded additional typechecking for Fields within restricted access 2970193267SjkimOperation Regions. All fields within EC and CMOS regions must be 2971193267Sjkimdeclared with ByteAcc. All fields withing SMBus regions must be 2972193267Sjkimdeclared with the BufferAcc access type. 2973193267Sjkim 2974193267SjkimFixed a problem where the listing file output of control methods 2975193267Sjkimno longer interleaved the actual AML code with the ASL source 2976193267Sjkimcode. 2977167802Sjkim 2978167802Sjkim 2979167802Sjkim 2980167802Sjkim---------------------------------------- 2981167802SjkimSummary of changes for this label: 11_09_01 2982167802Sjkim 2983167802Sjkim1) ACPI CA Core Subsystem: 2984167802Sjkim 2985167802SjkimImplemented ACPI 2.0-defined support for writes to fields with a 2986167802SjkimBuffer, String, or Integer source operand that is smaller than 2987167802Sjkimthe 2988193267Sjkimtarget field. In these cases, the source operand is zero-extended 2989193267Sjkimto fill the target field. 2990167802Sjkim 2991167802SjkimFixed a problem where a Field starting bit offset (within the 2992167802Sjkimparent operation region) was calculated incorrectly if the 2993167802Sjkimalignment of the field differed from the access width. This 2994167802Sjkimaffected CreateWordField, CreateDwordField, CreateQwordField, and 2995167802Sjkimpossibly other fields that use the "AccessAny" keyword. 2996193267Sjkim 2997193267SjkimFixed a problem introduced in the 11_02_01 release where indirect 2998193267Sjkimstores through method arguments did not operate correctly. 2999193267Sjkim 3000193267Sjkim2) Linux: 3001167802Sjkim 3002193267SjkimImplemented boot-time ACPI table parsing support 3003193267Sjkim(CONFIG_ACPI_BOOT) for IA32 and IA64 UP/SMP systems. This code 3004193267Sjkimfacilitates the use of ACPI tables (e.g. MADT, SRAT) rather than 3005193267Sjkimlegacy BIOS interfaces (e.g. MPS) for the configuration of system 3006193267Sjkimprocessors, memory, and interrupts during setup_arch(). Note 3007167802Sjkimthat 3008167802Sjkimthis patch does not include the required architecture-specific 3009193267Sjkimchanges required to apply this information -- subsequent patches 3010193267Sjkimwill be posted for both IA32 and IA64 to achieve this. 3011193267Sjkim 3012167802SjkimAdded low-level sleep support for IA32 platforms, courtesy of Pat 3013193267SjkimMochel. This allows IA32 systems to transition to/from various 3014193267Sjkimsleeping states (e.g. S1, S3), although the lack of a centralized 3015167802Sjkimdriver model and power-manageable drivers will prevent its 3016193267Sjkim(successful) use on most systems. 3017193267Sjkim 3018193267SjkimRevamped the ACPI 'menuconfig' layout: created new "ACPI Support" 3019167802Sjkimsubmenu, unified IA32 and IA64 options, added new "Boot using 3020193267SjkimACPI 3021193267Sjkimtables" option, etc. 3022193267Sjkim 3023167802SjkimIncreased the default timeout for the EC driver from 1ms to 10ms 3024193267Sjkim(1000 cycles of 10us) to try to address AE_TIME errors during EC 3025193267Sjkimtransactions. 3026167802Sjkim 3027193267Sjkim ---------------------------------------- 3028193267SjkimSummary of changes for this label: 11_02_01 3029167802Sjkim 3030193267Sjkim1) ACPI CA Core Subsystem: 3031193267Sjkim 3032193267SjkimACPI 2.0 Support: Implemented ACPI 2.0 64-bit Field access 3033193267Sjkim(QWordAcc keyword). All ACPI 2.0 64-bit support is now 3034193267Sjkimimplemented. 3035193267Sjkim 3036193267SjkimOSL Interfaces: Several of the OSL (AcpiOs*) interfaces required 3037167802Sjkimchanges to support ACPI 2.0 Qword field access. Read/Write 3038167802SjkimPciConfiguration(), Read/Write Memory(), and Read/Write Port() 3039167802Sjkimnow 3040167802Sjkimaccept an ACPI_INTEGER (64 bits) as the value parameter. Also, 3041167802Sjkimthe value parameter for the address space handler interface is 3042167802Sjkimnow 3043167802Sjkiman ACPI_INTEGER. OSL implementations of these interfaces must 3044167802Sjkimnow 3045167802Sjkimhandle the case where the Width parameter is 64. 3046167802Sjkim 3047167802SjkimIndex Fields: Fixed a problem where unaligned bit assembly and 3048193267Sjkimdisassembly for IndexFields was not supported correctly. 3049193267Sjkim 3050167802SjkimIndex and Bank Fields: Nested Index and Bank Fields are now 3051167802Sjkimsupported. During field access, a check is performed to ensure 3052167802Sjkimthat the value written to an Index or Bank register is not out of 3053167802Sjkimthe range of the register. The Index (or Bank) register is 3054167802Sjkimwritten before each access to the field data. Future support will 3055167802Sjkiminclude allowing individual IndexFields to be wider than the 3056193267SjkimDataRegister width. 3057193267Sjkim 3058193267SjkimFields: Fixed a problem where the AML interpreter was incorrectly 3059193267Sjkimattempting to write beyond the end of a Field/OpRegion. This was 3060193267Sjkima boundary case that occurred when a DWORD field was written to a 3061193267SjkimBYTE access OpRegion, forcing multiple writes and causing the 3062193267Sjkiminterpreter to write one datum too many. 3063193267Sjkim 3064167802SjkimFields: Fixed a problem with Field/OpRegion access where the 3065193267Sjkimstarting bit address of a field was incorrectly calculated if the 3066193267Sjkimcurrent access type was wider than a byte (WordAcc, DwordAcc, or 3067193267SjkimQwordAcc). 3068167802Sjkim 3069193267SjkimFields: Fixed a problem where forward references to individual 3070193267SjkimFieldUnits (individual Field names within a Field definition) 3071167802Sjkimwere 3072193267Sjkimnot resolved during the AML table load. 3073193267Sjkim 3074167802SjkimFields: Fixed a problem where forward references from a Field 3075193267Sjkimdefinition to the parent Operation Region definition were not 3076193267Sjkimresolved during the AML table load. 3077193267Sjkim 3078193267SjkimFields: Duplicate FieldUnit names within a scope are now detected 3079193267Sjkimduring AML table load. 3080193267Sjkim 3081193267SjkimAcpi Interfaces: Fixed a problem where the AcpiGetName() 3082167802Sjkiminterface 3083167802Sjkimreturned an incorrect name for the root node. 3084167802Sjkim 3085167802SjkimCode and Data Size: Code and Data optimizations have permitted 3086167802Sjkimnew 3087167802Sjkimfeature development with an actual reduction in the library size. 3088167802SjkimCurrent core subsystem library sizes are shown below. These are 3089167802Sjkimthe code and data sizes for the acpica.lib produced by the 3090167802SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not 3091167802Sjkiminclude 3092167802Sjkimany ACPI driver or OSPM code. The debug version of the code 3093193267Sjkimincludes the debug output trace mechanism and has a larger code 3094193267Sjkimand data size. Note that these values will vary depending on the 3095193267Sjkimefficiency of the compiler and the compiler options used during 3096167802Sjkimgeneration. 3097193267Sjkim 3098193267Sjkim Previous Release (10_18_01): 3099193267Sjkim Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total 3100167802Sjkim Debug Version: 136.7K Code, 57.4K Data, 194.2K Total 3101167802Sjkim 3102167802Sjkim Current Release: 3103167802Sjkim Non-Debug Version: 63.7K Code, 5.2K Data, 68.9K Total 3104167802Sjkim Debug Version: 134.5K Code, 55.4K Data, 189.9K Total 3105167802Sjkim 3106193267Sjkim 2) Linux: 3107193267Sjkim 3108193267SjkimImproved /proc processor output (Pavel Machek) Re-added 3109193267SjkimMODULE_LICENSE("GPL") to all modules. 3110193267Sjkim 3111193267Sjkim 3) ASL Compiler version X2030: 3112167802Sjkim 3113193267SjkimDuplicate FieldUnit names within a scope are now detected and 3114193267Sjkimflagged as errors. 3115193267Sjkim 3116193267Sjkim 4) Documentation: 3117193267Sjkim 3118167802SjkimProgrammer Reference updated to reflect OSL and address space 3119193267Sjkimhandler interface changes described above. 3120193267Sjkim 3121167802Sjkim---------------------------------------- 3122193267SjkimSummary of changes for this label: 10_18_01 3123193267Sjkim 3124193267SjkimACPI CA Core Subsystem: 3125167802Sjkim 3126193267SjkimFixed a problem with the internal object reference count 3127193267Sjkimmechanism 3128193267Sjkimthat occasionally caused premature object deletion. This resolves 3129193267Sjkimall of the outstanding problem reports where an object is deleted 3130193267Sjkimin the middle of an interpreter evaluation. Although this 3131167802Sjkimproblem 3132193267Sjkimonly showed up in rather obscure cases, the solution to the 3133193267Sjkimproblem involved an adjustment of all reference counts involving 3134193267Sjkimobjects attached to namespace nodes. 3135193267Sjkim 3136167802SjkimFixed a problem with Field support in the interpreter where 3137193267Sjkimwriting to an aligned field whose length is an exact multiple (2 3138193267Sjkimor greater) of the field access granularity would cause an 3139167802Sjkimattempt 3140193267Sjkimto write beyond the end of the field. 3141193267Sjkim 3142193267SjkimThe top level AML opcode execution functions within the 3143193267Sjkiminterpreter have been renamed with a more meaningful and 3144193267Sjkimconsistent naming convention. The modules exmonad.c and 3145193267Sjkimexdyadic.c were eliminated. New modules are exoparg1.c, 3146193267Sjkimexoparg2.c, exoparg3.c, and exoparg6.c. 3147167802Sjkim 3148167802SjkimSupport for the ACPI 2.0 "Mid" ASL operator has been implemented. 3149167802Sjkim 3150167802SjkimFixed a problem where the AML debugger was causing some internal 3151167802Sjkimobjects to not be deleted during subsystem termination. 3152167802Sjkim 3153167802SjkimFixed a problem with the external AcpiEvaluateObject interface 3154167802Sjkimwhere the subsystem would fault if the named object to be 3155167802Sjkimevaluated refered to a constant such as Zero, Ones, etc. 3156167802Sjkim 3157167802SjkimFixed a problem with IndexFields and BankFields where the 3158193267Sjkimsubsystem would fault if the index, data, or bank registers were 3159193267Sjkimnot defined in the same scope as the field itself. 3160193267Sjkim 3161167802SjkimAdded printf format string checking for compilers that support 3162193267Sjkimthis feature. Corrected more than 50 instances of issues with 3163193267Sjkimformat specifiers within invocations of ACPI_DEBUG_PRINT 3164193267Sjkimthroughout the core subsystem code. 3165167802Sjkim 3166193267SjkimThe ASL "Revision" operator now returns the ACPI support level 3167193267Sjkimimplemented in the core - the value "2" since the ACPI 2.0 3168193267Sjkimsupport 3169167802Sjkimis more than 50% implemented. 3170167802Sjkim 3171167802SjkimEnhanced the output of the AML debugger "dump namespace" command 3172167802Sjkimto output in a more human-readable form. 3173167802Sjkim 3174167802SjkimCurrent core subsystem library code sizes are shown below. These 3175193267Sjkimare the code and data sizes for the acpica.lib produced by the 3176193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not 3177193267Sjkiminclude 3178193267Sjkimany ACPI driver or OSPM code. The debug version of the code 3179193267Sjkimincludes the full debug trace mechanism -- leading to a much 3180193267Sjkimlarger code and data size. Note that these values will vary 3181167802Sjkimdepending on the efficiency of the compiler and the compiler 3182193267Sjkimoptions used during generation. 3183193267Sjkim 3184193267Sjkim Previous Label (09_20_01): 3185167802Sjkim Non-Debug Version: 65K Code, 5K Data, 70K Total 3186193267Sjkim Debug Version: 138K Code, 58K Data, 196K Total 3187193267Sjkim 3188167802Sjkim This Label: 3189193267Sjkim 3190193267Sjkim Non-Debug Version: 63.9K Code, 5.1K Data, 69.0K Total 3191193267Sjkim Debug Version: 136.7K Code, 57.4K Data, 194.2K Total 3192193267Sjkim 3193167802SjkimLinux: 3194193267Sjkim 3195193267SjkimImplemented a "Bad BIOS Blacklist" to track machines that have 3196167802Sjkimknown ASL/AML problems. 3197193267Sjkim 3198193267SjkimEnhanced the /proc interface for the thermal zone driver and 3199193267Sjkimadded 3200193267Sjkimsupport for _HOT (the critical suspend trip point). The 'info' 3201193267Sjkimfile now includes threshold/policy information, and allows 3202193267Sjkimsetting 3203193267Sjkimof _SCP (cooling preference) and _TZP (polling frequency) values 3204167802Sjkimto the 'info' file. Examples: "echo tzp=5 > info" sets the 3205167802Sjkimpolling 3206167802Sjkimfrequency to 5 seconds, and "echo scp=1 > info" sets the cooling 3207167802Sjkimpreference to the passive/quiet mode (if supported by the ASL). 3208167802Sjkim 3209167802SjkimImplemented a workaround for a gcc bug that resuted in an OOPs 3210167802Sjkimwhen loading the control method battery driver. 3211167802Sjkim 3212167802Sjkim ---------------------------------------- 3213167802SjkimSummary of changes for this label: 09_20_01 3214167802Sjkim 3215193267Sjkim ACPI CA Core Subsystem: 3216193267Sjkim 3217167802SjkimThe AcpiEnableEvent and AcpiDisableEvent interfaces have been 3218193267Sjkimmodified to allow individual GPE levels to be flagged as wake- 3219193267Sjkimenabled (i.e., these GPEs are to remain enabled when the platform 3220193267Sjkimsleeps.) 3221193267Sjkim 3222167802SjkimThe AcpiEnterSleepState and AcpiLeaveSleepState interfaces now 3223193267Sjkimsupport wake-enabled GPEs. This means that upon entering the 3224193267Sjkimsleep state, all GPEs that are not wake-enabled are disabled. 3225193267SjkimWhen leaving the sleep state, these GPEs are reenabled. 3226193267Sjkim 3227167802SjkimA local double-precision divide/modulo module has been added to 3228193267Sjkimenhance portability to OS kernels where a 64-bit math library is 3229193267Sjkimnot available. The new module is "utmath.c". 3230193267Sjkim 3231167802SjkimSeveral optimizations have been made to reduce the use of CPU 3232193267Sjkimstack. Originally over 2K, the maximum stack usage is now below 3233193267Sjkim2K at 1860 bytes (1.82k) 3234167802Sjkim 3235167802SjkimFixed a problem with the AcpiGetFirmwareTable interface where the 3236151937Sjkimroot table pointer was not mapped into a logical address 3237151937Sjkimproperly. 3238151937Sjkim 3239151937SjkimFixed a problem where a NULL pointer was being dereferenced in 3240193267Sjkimthe 3241193267Sjkiminterpreter code for the ASL Notify operator. 3242193267Sjkim 3243193267SjkimFixed a problem where the use of the ASL Revision operator 3244151937Sjkimreturned an error. This operator now returns the current version 3245193267Sjkimof the ACPI CA core subsystem. 3246193267Sjkim 3247193267SjkimFixed a problem where objects passed as control method parameters 3248193267Sjkimto AcpiEvaluateObject were always deleted at method termination. 3249193267SjkimHowever, these objects may end up being stored into the namespace 3250151937Sjkimby the called method. The object reference count mechanism was 3251193267Sjkimapplied to these objects instead of a force delete. 3252193267Sjkim 3253193267SjkimFixed a problem where static strings or buffers (contained in the 3254151937SjkimAML code) that are declared as package elements within the ASL 3255193267Sjkimcode could cause a fault because the interpreter would attempt to 3256193267Sjkimdelete them. These objects are now marked with the "static 3257151937Sjkimobject" flag to prevent any attempt to delete them. 3258193267Sjkim 3259193267SjkimImplemented an interpreter optimization to use operands directly 3260193267Sjkimfrom the state object instead of extracting the operands to local 3261193267Sjkimvariables. This reduces stack use and code size, and improves 3262151937Sjkimperformance. 3263193267Sjkim 3264193267SjkimThe module exxface.c was eliminated as it was an unnecessary 3265193267Sjkimextra 3266193267Sjkimlayer of code. 3267193267Sjkim 3268193267SjkimCurrent core subsystem library code sizes are shown below. These 3269193267Sjkimare the code and data sizes for the acpica.lib produced by the 3270151937SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not 3271151937Sjkiminclude 3272151937Sjkimany ACPI driver or OSPM code. The debug version of the code 3273151937Sjkimincludes the full debug trace mechanism -- leading to a much 3274151937Sjkimlarger code and data size. Note that these values will vary 3275151937Sjkimdepending on the efficiency of the compiler and the compiler 3276151937Sjkimoptions used during generation. 3277151937Sjkim 3278151937Sjkim Non-Debug Version: 65K Code, 5K Data, 70K Total 3279167802Sjkim(Previously 69K) Debug Version: 138K Code, 58K Data, 196K 3280151937SjkimTotal (Previously 195K) 3281151937Sjkim 3282193267SjkimLinux: 3283193267Sjkim 3284193267SjkimSupport for ACPI 2.0 64-bit integers has been added. All ACPI 3285193267SjkimInteger objects are now 64 bits wide 3286193267Sjkim 3287193267SjkimAll Acpi data types and structures are now in lower case. Only 3288193267SjkimAcpi macros are upper case for differentiation. 3289193267Sjkim 3290151937Sjkim Documentation: 3291193267Sjkim 3292193267SjkimChanges to the external interfaces as described above. 3293193267Sjkim 3294151937Sjkim ---------------------------------------- 3295193267SjkimSummary of changes for this label: 08_31_01 3296193267Sjkim 3297151937Sjkim ACPI CA Core Subsystem: 3298193267Sjkim 3299193267SjkimA bug with interpreter implementation of the ASL Divide operator 3300151937Sjkimwas found and fixed. The implicit function return value (not the 3301151937Sjkimexplicit store operands) was returning the remainder instead of 3302151937Sjkimthe quotient. This was a longstanding bug and it fixes several 3303151937Sjkimknown outstanding issues on various platforms. 3304151937Sjkim 3305151937SjkimThe ACPI_DEBUG_PRINT and function trace entry/exit macros have 3306193267Sjkimbeen further optimized for size. There are 700 invocations of 3307193267Sjkimthe 3308193267SjkimDEBUG_PRINT macro alone, so each optimization reduces the size of 3309193267Sjkimthe debug version of the subsystem significantly. 3310193267Sjkim 3311193267SjkimA stack trace mechanism has been implemented. The maximum stack 3312193267Sjkimusage is about 2K on 32-bit platforms. The debugger command 3313193267Sjkim"stat 3314151937Sjkimstack" will display the current maximum stack usage. 3315193267Sjkim 3316193267SjkimAll public symbols and global variables within the subsystem are 3317193267Sjkimnow prefixed with the string "Acpi". This keeps all of the 3318151937Sjkimsymbols grouped together in a kernel map, and avoids conflicts 3319193267Sjkimwith other kernel subsystems. 3320193267Sjkim 3321193267SjkimMost of the internal fixed lookup tables have been moved into the 3322193267Sjkimcode segment via the const operator. 3323193267Sjkim 3324193267SjkimSeveral enhancements have been made to the interpreter to both 3325193267Sjkimreduce the code size and improve performance. 3326193267Sjkim 3327151937SjkimCurrent core subsystem library code sizes are shown below. These 3328193267Sjkimare the code and data sizes for the acpica.lib produced by the 3329193267SjkimMicrosoft Visual C++ 6.0 compiler, and these values do not 3330193267Sjkiminclude 3331193267Sjkimany ACPI driver or OSPM code. The debug version of the code 3332193267Sjkimincludes the full debug trace mechanism which contains over 700 3333151937Sjkiminvocations of the DEBUG_PRINT macro, 500 function entry macro 3334151937Sjkiminvocations, and over 900 function exit macro invocations -- 3335193267Sjkimleading to a much larger code and data size. Note that these 3336193267Sjkimvalues will vary depending on the efficiency of the compiler and 3337193267Sjkimthe compiler options used during generation. 3338151937Sjkim 3339193267Sjkim Non-Debug Version: 64K Code, 5K Data, 69K Total 3340193267SjkimDebug Version: 137K Code, 58K Data, 195K Total 3341193267Sjkim 3342193267Sjkim Linux: 3343193267Sjkim 3344193267SjkimImplemented wbinvd() macro, pending a kernel-wide definition. 3345193267Sjkim 3346151937SjkimFixed /proc/acpi/event to handle poll() and short reads. 3347151937Sjkim 3348151937Sjkim ASL Compiler, version X2026: 3349151937Sjkim 3350151937SjkimFixed a problem introduced in the previous label where the AML 3351151937Sjkimcode emitted for package objects produced packages with zero 3352151937Sjkimlength. 3353151937Sjkim 3354151937Sjkim ---------------------------------------- 3355151937SjkimSummary of changes for this label: 08_16_01 3356151937Sjkim 3357193267SjkimACPI CA Core Subsystem: 3358193267Sjkim 3359151937SjkimThe following ACPI 2.0 ASL operators have been implemented in the 3360151937SjkimAML interpreter (These are already supported by the Intel ASL 3361151937Sjkimcompiler): ToDecimalString, ToHexString, ToString, ToInteger, 3362151937Sjkimand 3363151937SjkimToBuffer. Support for 64-bit AML constants is implemented in the 3364151937SjkimAML parser, debugger, and disassembler. 3365193267Sjkim 3366193267SjkimThe internal memory tracking mechanism (leak detection code) has 3367193267Sjkimbeen upgraded to reduce the memory overhead (a separate tracking 3368151937Sjkimblock is no longer allocated for each memory allocation), and now 3369193267Sjkimsupports all of the internal object caches. 3370193267Sjkim 3371193267SjkimThe data structures and code for the internal object caches have 3372193267Sjkimbeen coelesced and optimized so that there is a single cache and 3373151937Sjkimmemory list data structure and a single group of functions that 3374193267Sjkimimplement generic cache management. This has reduced the code 3375193267Sjkimsize in both the debug and release versions of the subsystem. 3376151937Sjkim 3377193267SjkimThe DEBUG_PRINT macro(s) have been optimized for size and 3378193267Sjkimreplaced 3379151937Sjkimby ACPI_DEBUG_PRINT. The syntax for this macro is slightly 3380193267Sjkimdifferent, because it generates a single call to an internal 3381193267Sjkimfunction. This results in a savings of about 90 bytes per 3382193267Sjkiminvocation, resulting in an overall code and data savings of 3383193267Sjkimabout 3384193267Sjkim16% in the debug version of the subsystem. 3385193267Sjkim 3386193267Sjkim Linux: 3387151937Sjkim 3388151937SjkimFixed C3 disk corruption problems and re-enabled C3 on supporting 3389151937Sjkimmachines. 3390151937Sjkim 3391151937SjkimIntegrated low-level sleep code by Patrick Mochel. 3392151937Sjkim 3393151937SjkimFurther tweaked source code Linuxization. 3394151937Sjkim 3395151937SjkimOther minor fixes. 3396151937Sjkim 3397151937Sjkim ASL Compiler: 3398193267Sjkim 3399193267SjkimSupport for ACPI 2.0 variable length packages is fixed/completed. 3400193267Sjkim 3401151937SjkimFixed a problem where the optional length parameter for the ACPI 3402193267Sjkim2.0 ToString operator. 3403193267Sjkim 3404193267SjkimFixed multiple extraneous error messages when a syntax error is 3405193267Sjkimdetected within the declaration line of a control method. 3406193267Sjkim 3407151937Sjkim ---------------------------------------- 3408151937SjkimSummary of changes for this label: 07_17_01 3409151937Sjkim 3410151937SjkimACPI CA Core Subsystem: 3411151937Sjkim 3412151937SjkimAdded a new interface named AcpiGetFirmwareTable to obtain any 3413193267SjkimACPI table via the ACPI signature. The interface can be called 3414193267Sjkimat 3415193267Sjkimany time during kernel initialization, even before the kernel 3416193267Sjkimvirtual memory manager is initialized and paging is enabled. 3417193267SjkimThis 3418151937Sjkimallows kernel subsystems to obtain ACPI tables very early, even 3419193267Sjkimbefore the ACPI CA subsystem is initialized. 3420193267Sjkim 3421193267SjkimFixed a problem where Fields defined with the AnyAcc attribute 3422193267Sjkimcould be resolved to the incorrect address under the following 3423151937Sjkimconditions: 1) the field width is larger than 8 bits and 2) the 3424193267Sjkimparent operation region is not defined on a DWORD boundary. 3425193267Sjkim 3426193267SjkimFixed a problem where the interpreter is not being locked during 3427151937Sjkimnamespace initialization (during execution of the _INI control 3428193267Sjkimmethods), causing an error when an attempt is made to release it 3429193267Sjkimlater. 3430151937Sjkim 3431193267SjkimACPI 2.0 support in the AML Interpreter has begun and will be 3432193267Sjkimongoing throughout the rest of this year. In this label, The Mod 3433151937Sjkimoperator is implemented. 3434193267Sjkim 3435193267SjkimAdded a new data type to contain full PCI addresses named 3436151937SjkimACPI_PCI_ID. This structure contains the PCI Segment, Bus, 3437193267SjkimDevice, 3438193267Sjkimand Function values. 3439193267Sjkim 3440193267Sjkim Linux: 3441193267Sjkim 3442193267SjkimEnhanced the Linux version of the source code to change most 3443193267Sjkimcapitalized ACPI type names to lowercase. For example, all 3444151937Sjkiminstances of ACPI_STATUS are changed to acpi_status. This will 3445151937Sjkimresult in a large diff, but the change is strictly cosmetic and 3446151937Sjkimaligns the CA code closer to the Linux coding standard. 3447151937Sjkim 3448151937SjkimOSL Interfaces: 3449151937Sjkim 3450151937SjkimThe interfaces to the PCI configuration space have been changed 3451151937Sjkimto 3452151937Sjkimadd the PCI Segment number and to split the single 32-bit 3453151937Sjkimcombined 3454151937SjkimDeviceFunction field into two 16-bit fields. This was 3455193267Sjkimaccomplished by moving the four values that define an address in 3456193267SjkimPCI configuration space (segment, bus, device, and function) to 3457193267Sjkimthe new ACPI_PCI_ID structure. 3458151937Sjkim 3459193267SjkimThe changes to the PCI configuration space interfaces led to a 3460193267Sjkimreexamination of the complete set of address space access 3461193267Sjkiminterfaces for PCI, I/O, and Memory. The previously existing 18 3462151937Sjkiminterfaces have proven difficult to maintain (any small change 3463193267Sjkimmust be propagated across at least 6 interfaces) and do not 3464193267Sjkimeasily 3465151937Sjkimallow for future expansion to 64 bits if necessary. Also, on 3466193267Sjkimsome 3467151937Sjkimsystems, it would not be appropriate to demultiplex the access 3468193267Sjkimwidth (8, 16, 32,or 64) before calling the OSL if the 3469193267Sjkimcorresponding native OS interfaces contain a similar access width 3470151937Sjkimparameter. For these reasons, the 18 address space interfaces 3471151937Sjkimhave been replaced by these 6 new ones: 3472151937Sjkim 3473193267SjkimAcpiOsReadPciConfiguration 3474151937SjkimAcpiOsWritePciConfiguration 3475193267SjkimAcpiOsReadMemory 3476193267SjkimAcpiOsWriteMemory 3477193267SjkimAcpiOsReadPort 3478193267SjkimAcpiOsWritePort 3479193267Sjkim 3480193267SjkimAdded a new interface named AcpiOsGetRootPointer to allow the OSL 3481193267Sjkimto perform the platform and/or OS-specific actions necessary to 3482193267Sjkimobtain the ACPI RSDP table pointer. On IA-32 platforms, this 3483193267Sjkiminterface will simply call down to the CA core to perform the low- 3484193267Sjkimmemory search for the table. On IA-64, the RSDP is obtained from 3485193267SjkimEFI. Migrating this interface to the OSL allows the CA core to 3486193267Sjkimremain OS and platform independent. 3487193267Sjkim 3488193267SjkimAdded a new interface named AcpiOsSignal to provide a generic 3489193267Sjkim"function code and pointer" interface for various miscellaneous 3490193267Sjkimsignals and notifications that must be made to the host OS. The 3491193267Sjkimfirst such signals are intended to support the ASL Fatal and 3492151937SjkimBreakpoint operators. In the latter case, the AcpiOsBreakpoint 3493151937Sjkiminterface has been obsoleted. 3494151937Sjkim 3495151937SjkimThe definition of the AcpiFormatException interface has been 3496151937Sjkimchanged to simplify its use. The caller no longer must supply a 3497151937Sjkimbuffer to the call; A pointer to a const string is now returned 3498193267Sjkimdirectly. This allows the call to be easily used in printf 3499193267Sjkimstatements, etc. since the caller does not have to manage a local 3500151937Sjkimbuffer. 3501193267Sjkim 3502193267Sjkim 3503193267Sjkim ASL Compiler, Version X2025: 3504193267Sjkim 3505193267SjkimThe ACPI 2.0 Switch/Case/Default operators have been implemented 3506193267Sjkimand are fully functional. They will work with all ACPI 1.0 3507193267Sjkiminterpreters, since the operators are simply translated to 3508193267SjkimIf/Else 3509151937Sjkimpairs. 3510151937Sjkim 3511151937SjkimThe ACPI 2.0 ElseIf operator is implemented and will also work 3512151937Sjkimwith 1.0 interpreters, for the same reason. 3513151937Sjkim 3514151937SjkimImplemented support for ACPI 2.0 variable-length packages. These 3515193267Sjkimpackages have a separate opcode, and their size is determined by 3516193267Sjkimthe interpreter at run-time. 3517193267Sjkim 3518193267SjkimDocumentation The ACPI CA Programmer Reference has been updated 3519151937Sjkimto 3520193267Sjkimreflect the new interfaces and changes to existing interfaces. 3521193267Sjkim 3522193267Sjkim ------------------------------------------ 3523193267SjkimSummary of changes for this label: 06_15_01 3524151937Sjkim 3525193267Sjkim ACPI CA Core Subsystem: 3526193267Sjkim 3527193267SjkimFixed a problem where a DWORD-accessed field within a Buffer 3528193267Sjkimobject would get its byte address inadvertently rounded down to 3529151937Sjkimthe nearest DWORD. Buffers are always Byte-accessible. 3530151937Sjkim 3531193267Sjkim ASL Compiler, version X2024: 3532193267Sjkim 3533193267SjkimFixed a problem where the Switch() operator would either fault or 3534151937Sjkimhang the compiler. Note however, that the AML code for this ACPI 3535151937Sjkim2.0 operator is not yet implemented. 3536151937Sjkim 3537193267SjkimCompiler uses the new AcpiOsGetTimer interface to obtain compile 3538193267Sjkimtimings. 3539151937Sjkim 3540193267SjkimImplementation of the CreateField operator automatically converts 3541193267Sjkima reference to a named field within a resource descriptor from a 3542193267Sjkimbyte offset to a bit offset if required. 3543193267Sjkim 3544193267SjkimAdded some missing named fields from the resource descriptor 3545193267Sjkimsupport. These are the names that are automatically created by 3546193267Sjkimthe 3547151937Sjkimcompiler to reference fields within a descriptor. They are only 3548151937Sjkimvalid at compile time and are not passed through to the AML 3549151937Sjkiminterpreter. 3550151937Sjkim 3551151937SjkimResource descriptor named fields are now typed as Integers and 3552151937Sjkimsubject to compile-time typechecking when used in expressions. 3553151937Sjkim 3554151937Sjkim ------------------------------------------ 3555151937SjkimSummary of changes for this label: 05_18_01 3556151937Sjkim 3557151937Sjkim ACPI CA Core Subsystem: 3558193267Sjkim 3559193267SjkimFixed a couple of problems in the Field support code where bits 3560193267Sjkimfrom adjacent fields could be returned along with the proper 3561151937Sjkimfield 3562151937Sjkimbits. Restructured the field support code to improve performance, 3563151937Sjkimreadability and maintainability. 3564151937Sjkim 3565151937SjkimNew DEBUG_PRINTP macro automatically inserts the procedure name 3566151937Sjkiminto the output, saving hundreds of copies of procedure name 3567193267Sjkimstrings within the source, shrinking the memory footprint of the 3568193267Sjkimdebug version of the core subsystem. 3569193267Sjkim 3570193267Sjkim Source Code Structure: 3571193267Sjkim 3572193267SjkimThe source code directory tree was restructured to reflect the 3573193267Sjkimcurrent organization of the component architecture. Some files 3574193267Sjkimand directories have been moved and/or renamed. 3575151937Sjkim 3576193267Sjkim Linux: 3577193267Sjkim 3578193267SjkimFixed leaking kacpidpc processes. 3579193267Sjkim 3580193267SjkimFixed queueing event data even when /proc/acpi/event is not 3581193267Sjkimopened. 3582193267Sjkim 3583151937Sjkim ASL Compiler, version X2020: 3584193267Sjkim 3585193267SjkimMemory allocation performance enhancement - over 24X compile time 3586193267Sjkimimprovement on large ASL files. Parse nodes and namestring 3587193267Sjkimbuffers are now allocated from a large internal compiler buffer. 3588193267Sjkim 3589151937SjkimThe temporary .SRC file is deleted unless the "-s" option is 3590151937Sjkimspecified 3591193267Sjkim 3592193267SjkimThe "-d" debug output option now sends all output to the .DBG 3593193267Sjkimfile 3594193267Sjkiminstead of the console. 3595193267Sjkim 3596151937Sjkim"External" second parameter is now optional 3597193267Sjkim 3598193267Sjkim"ElseIf" syntax now properly allows the predicate 3599193267Sjkim 3600151937SjkimLast operand to "Load" now recognized as a Target operand 3601193267Sjkim 3602193267SjkimDebug object can now be used anywhere as a normal object. 3603151937Sjkim 3604193267SjkimResourceTemplate now returns an object of type BUFFER 3605193267Sjkim 3606193267SjkimEISAID now returns an object of type INTEGER 3607193267Sjkim 3608193267Sjkim"Index" now works with a STRING operand 3609193267Sjkim 3610193267Sjkim"LoadTable" now accepts optional parameters 3611151937Sjkim 3612151937Sjkim"ToString" length parameter is now optional 3613151937Sjkim 3614151937Sjkim"Interrupt (ResourceType," parse error fixed. 3615151937Sjkim 3616151937Sjkim"Register" with a user-defined region space parse error fixed 3617151937Sjkim 3618151937SjkimEscaped backslash at the end of a string ("\\") scan/parse error 3619151937Sjkimfixed 3620151937Sjkim 3621151937Sjkim"Revision" is now an object of type INTEGER. 3622151937Sjkim 3623151937Sjkim 3624193267Sjkim 3625193267Sjkim------------------------------------------ 3626193267SjkimSummary of changes for this label: 05_02_01 3627193267Sjkim 3628193267SjkimLinux: 3629193267Sjkim 3630151937Sjkim/proc/acpi/event now blocks properly. 3631193267Sjkim 3632193267SjkimRemoved /proc/sys/acpi. You can still dump your DSDT from 3633193267Sjkim/proc/acpi/dsdt. 3634193267Sjkim 3635193267Sjkim ACPI CA Core Subsystem: 3636151937Sjkim 3637193267SjkimFixed a problem introduced in the previous label where some of 3638193267Sjkimthe 3639193267Sjkim"small" resource descriptor types were not recognized. 3640151937Sjkim 3641193267SjkimImproved error messages for the case where an ASL Field is 3642193267Sjkimoutside 3643193267Sjkimthe range of the parent operation region. 3644193267Sjkim 3645151937Sjkim ASL Compiler, version X2018: 3646193267Sjkim 3647193267SjkimAdded error detection for ASL Fields that extend beyond the 3648151937Sjkimlength 3649193267Sjkimof the parent operation region (only if the length of the region 3650193267Sjkimis known at compile time.) This includes fields that have a 3651193267Sjkimminimum access width that is smaller than the parent region, and 3652193267Sjkimindividual field units that are partially or entirely beyond the 3653151937Sjkimextent of the parent. 3654151937Sjkim 3655151937Sjkim 3656151937Sjkim 3657151937Sjkim------------------------------------------ 3658193267SjkimSummary of changes for this label: 04_27_01 3659193267Sjkim 3660193267Sjkim ACPI CA Core Subsystem: 3661193267Sjkim 3662193267SjkimFixed a problem where the namespace mutex could be released at 3663193267Sjkimthe 3664193267Sjkimwrong time during execution of AcpiRemoveAddressSpaceHandler. 3665151937Sjkim 3666151937SjkimAdded optional thread ID output for debug traces, to simplify 3667151937Sjkimdebugging of multiple threads. Added context switch notification 3668151937Sjkimwhen the debug code realizes that a different thread is now 3669151937Sjkimexecuting ACPI code. 3670151937Sjkim 3671151937SjkimSome additional external data types have been prefixed with the 3672151937Sjkimstring "ACPI_" for consistency. This may effect existing code. 3673151937SjkimThe data types affected are the external callback typedefs - 3674151937Sjkime.g., 3675151937SjkimWALK_CALLBACK becomes ACPI_WALK_CALLBACK. 3676193267Sjkim 3677193267Sjkim Linux: 3678193267Sjkim 3679151937SjkimFixed an issue with the OSL semaphore implementation where a 3680151937Sjkimthread was waking up with an error from receiving a SIGCHLD 3681151937Sjkimsignal. 3682151937Sjkim 3683151937SjkimLinux version of ACPI CA now uses the system C library for string 3684151937Sjkimmanipulation routines instead of a local implementation. 3685193267Sjkim 3686193267SjkimCleaned up comments and removed TBDs. 3687193267Sjkim 3688193267Sjkim ASL Compiler, version X2017: 3689193267Sjkim 3690193267SjkimEnhanced error detection and reporting for all file I/O 3691193267Sjkimoperations. 3692151937Sjkim 3693151937Sjkim Documentation: 3694151937Sjkim 3695151937SjkimProgrammer Reference updated to version 1.06. 3696151937Sjkim 3697151937Sjkim 3698193267Sjkim 3699193267Sjkim------------------------------------------ 3700193267SjkimSummary of changes for this label: 04_13_01 3701193267Sjkim 3702193267Sjkim ACPI CA Core Subsystem: 3703151937Sjkim 3704151937SjkimRestructured support for BufferFields and RegionFields. 3705193267SjkimBankFields support is now fully operational. All known 32-bit 3706193267Sjkimlimitations on field sizes have been removed. Both BufferFields 3707193267Sjkimand (Operation) RegionFields are now supported by the same field 3708193267Sjkimmanagement code. 3709193267Sjkim 3710193267SjkimResource support now supports QWORD address and IO resources. The 3711151937Sjkim16/32/64 bit address structures and the Extended IRQ structure 3712193267Sjkimhave been changed to properly handle Source Resource strings. 3713193267Sjkim 3714193267SjkimA ThreadId of -1 is now used to indicate a "mutex not acquired" 3715193267Sjkimcondition internally and must never be returned by 3716151937SjkimAcpiOsThreadId. 3717193267SjkimThis reserved value was changed from 0 since Unix systems allow a 3718193267Sjkimthread ID of 0. 3719193267Sjkim 3720151937SjkimLinux: 3721167802Sjkim 3722193267SjkimDriver code reorganized to enhance portability 3723193267Sjkim 3724193267SjkimAdded a kernel configuration option to control ACPI_DEBUG 3725151937Sjkim 3726193267SjkimFixed the EC driver to honor _GLK. 3727193267Sjkim 3728193267SjkimASL Compiler, version X2016: 3729151937Sjkim 3730193267SjkimFixed support for the "FixedHw" keyword. Previously, the FixedHw 3731193267Sjkimaddress space was set to 0, not 0x7f as it should be. 3732193267Sjkim 3733193267Sjkim ------------------------------------------ 3734193267SjkimSummary of changes for this label: 03_13_01 3735193267Sjkim 3736193267Sjkim ACPI CA Core Subsystem: 3737151937Sjkim 3738151937SjkimDuring ACPI initialization, the _SB_._INI method is now run if 3739151937Sjkimpresent. 3740151937Sjkim 3741151937SjkimNotify handler fix - notifies are deferred until the parent 3742151937Sjkimmethod 3743151937Sjkimcompletes execution. This fixes the "mutex already acquired" 3744151937Sjkimissue seen occasionally. 3745151937Sjkim 3746151937SjkimPart of the "implicit conversion" rules in ACPI 2.0 have been 3747151937Sjkimfound to cause compatibility problems with existing ASL/AML. The 3748193267Sjkimconvert "result-to-target-type" implementation has been removed 3749193267Sjkimfor stores to method Args and Locals. Source operand conversion 3750193267Sjkimis still fully implemented. Possible changes to ACPI 2.0 3751193267Sjkimspecification pending. 3752151937Sjkim 3753193267SjkimFix to AcpiRsCalculatePciRoutingTableLength to return correct 3754193267Sjkimlength. 3755151937Sjkim 3756193267SjkimFix for compiler warnings for 64-bit compiles. 3757193267Sjkim 3758193267Sjkim Linux: 3759193267Sjkim 3760193267Sjkim/proc output aligned for easier parsing. 3761151937Sjkim 3762151937SjkimRelease-version compile problem fixed. 3763151937Sjkim 3764151937SjkimNew kernel configuration options documented in Configure.help. 3765151937Sjkim 3766151937SjkimIBM 600E - Fixed Sleep button may generate "Invalid <NULL> 3767193267Sjkimcontext" message. 3768193267Sjkim 3769193267Sjkim OSPM: 3770193267Sjkim 3771193267SjkimPower resource driver integrated with bus manager. 3772193267Sjkim 3773193267SjkimFixed kernel fault during active cooling for thermal zones. 3774151937Sjkim 3775193267SjkimSource Code: 3776193267Sjkim 3777193267SjkimThe source code tree has been restructured. 3778193267Sjkim 3779193267Sjkim 3780151937Sjkim 3781193267Sjkim------------------------------------------ 3782193267SjkimSummary of changes for this label: 03_02_01 3783193267Sjkim 3784193267Sjkim Linux OS Services Layer (OSL): 3785193267Sjkim 3786151937SjkimMajor revision of all Linux-specific code. 3787193267Sjkim 3788193267SjkimModularized all ACPI-specific drivers. 3789193267Sjkim 3790151937SjkimAdded new thermal zone and power resource drivers. 3791193267Sjkim 3792193267SjkimRevamped /proc interface (new functionality is under /proc/acpi). 3793151937Sjkim 3794193267SjkimNew kernel configuration options. 3795193267Sjkim 3796193267Sjkim Linux known issues: 3797193267Sjkim 3798193267SjkimNew kernel configuration options not documented in Configure.help 3799193267Sjkimyet. 3800193267Sjkim 3801151937Sjkim 3802151937SjkimModule dependencies not currently implemented. If used, they 3803151937Sjkimshould be loaded in this order: busmgr, power, ec, system, 3804151937Sjkimprocessor, battery, ac_adapter, button, thermal. 3805151937Sjkim 3806151937SjkimModules will not load if CONFIG_MODVERSION is set. 3807151937Sjkim 3808151937SjkimIBM 600E - entering S5 may reboot instead of shutting down. 3809151937Sjkim 3810151937SjkimIBM 600E - Sleep button may generate "Invalid <NULL> context" 3811151937Sjkimmessage. 3812193267Sjkim 3813193267SjkimSome systems may fail with "execution mutex already acquired" 3814193267Sjkimmessage. 3815193267Sjkim 3816193267Sjkim ACPI CA Core Subsystem: 3817193267Sjkim 3818151937SjkimAdded a new OSL Interface, AcpiOsGetThreadId. This was required 3819193267Sjkimfor the deadlock detection code. Defined to return a non-zero, 3820193267Sjkim32- 3821193267Sjkimbit thread ID for the currently executing thread. May be a non- 3822193267Sjkimzero constant integer on single-thread systems. 3823151937Sjkim 3824193267SjkimImplemented deadlock detection for internal subsystem mutexes. 3825193267SjkimWe 3826151937Sjkimmay add conditional compilation for this code (debug only) later. 3827193267Sjkim 3828193267SjkimASL/AML Mutex object semantics are now fully supported. This 3829193267Sjkimincludes multiple acquires/releases by owner and support for the 3830193267SjkimMutex SyncLevel parameter. 3831151937Sjkim 3832151937SjkimA new "Force Release" mechanism automatically frees all ASL 3833151937SjkimMutexes that have been acquired but not released when a thread 3834151937Sjkimexits the interpreter. This forces conformance to the ACPI spec 3835151937Sjkim("All mutexes must be released when an invocation exits") and 3836151937Sjkimprevents deadlocked ASL threads. This mechanism can be expanded 3837193267Sjkim(later) to monitor other resource acquisitions if OEM ASL code 3838193267Sjkimcontinues to misbehave (which it will). 3839151937Sjkim 3840193267SjkimSeveral new ACPI exception codes have been added for the Mutex 3841193267Sjkimsupport. 3842193267Sjkim 3843193267SjkimRecursive method calls are now allowed and supported (the ACPI 3844151937Sjkimspec does in fact allow recursive method calls.) The number of 3845193267Sjkimrecursive calls is subject to the restrictions imposed by the 3846193267SjkimSERIALIZED method keyword and SyncLevel (ACPI 2.0) method 3847193267Sjkimparameter. 3848193267Sjkim 3849193267SjkimImplemented support for the SyncLevel parameter for control 3850151937Sjkimmethods (ACPI 2.0 feature) 3851193267Sjkim 3852193267SjkimFixed a deadlock problem when multiple threads attempted to use 3853193267Sjkimthe interpreter. 3854193267Sjkim 3855151937SjkimFixed a problem where the string length of a String package 3856193267Sjkimelement was not always set in a package returned from 3857193267SjkimAcpiEvaluateObject. 3858193267Sjkim 3859193267SjkimFixed a problem where the length of a String package element was 3860151937Sjkimnot always included in the length of the overall package returned 3861193267Sjkimfrom AcpiEvaluateObject. 3862193267Sjkim 3863151937SjkimAdded external interfaces (Acpi*) to the ACPI debug memory 3864193267Sjkimmanager. This manager keeps a list of all outstanding 3865193267Sjkimallocations, and can therefore detect memory leaks and attempts 3866193267Sjkimto 3867193267Sjkimfree memory blocks more than once. Useful for code such as the 3868193267Sjkimpower manager, etc. May not be appropriate for device drivers. 3869193267SjkimPerformance with the debug code enabled is slow. 3870193267Sjkim 3871151937SjkimThe ACPI Global Lock is now an optional hardware element. 3872151937Sjkim 3873151937Sjkim ASL Compiler Version X2015: 3874151937Sjkim 3875151937SjkimIntegrated changes to allow the compiler to be generated on 3876151937Sjkimmultiple platforms. 3877151937Sjkim 3878151937SjkimLinux makefile added to generate the compiler on Linux 3879151937Sjkim 3880151937Sjkim Source Code: 3881151937Sjkim 3882193267SjkimAll platform-specific headers have been moved to their own 3883193267Sjkimsubdirectory, Include/Platform. 3884193267Sjkim 3885151937SjkimNew source file added, Interpreter/ammutex.c 3886193267Sjkim 3887193267SjkimNew header file, Include/acstruct.h 3888193267Sjkim 3889193267Sjkim Documentation: 3890193267Sjkim 3891151937SjkimThe programmer reference has been updated for the following new 3892193267Sjkiminterfaces: AcpiOsGetThreadId AcpiAllocate AcpiCallocate AcpiFree 3893193267Sjkim 3894151937Sjkim ------------------------------------------ 3895151937SjkimSummary of changes for this label: 02_08_01 3896151937Sjkim 3897151937SjkimCore ACPI CA Subsystem: Fixed a problem where an error was 3898151937Sjkimincorrectly returned if the return resource buffer was larger 3899151937Sjkimthan 3900193267Sjkimthe actual data (in the resource interfaces). 3901193267Sjkim 3902193267SjkimReferences to named objects within packages are resolved to the 3903151937Sjkimfull pathname string before packages are returned directly (via 3904193267Sjkimthe AcpiEvaluateObject interface) or indirectly via the resource 3905193267Sjkiminterfaces. 3906193267Sjkim 3907193267SjkimLinux OS Services Layer (OSL): 3908151937Sjkim 3909193267SjkimImproved /proc battery interface. 3910193267Sjkim 3911151937Sjkim 3912193267SjkimAdded C-state debugging output and other miscellaneous fixes. 3913193267Sjkim 3914193267SjkimASL Compiler Version X2014: 3915193267Sjkim 3916193267SjkimAll defined method arguments can now be used as local variables, 3917193267Sjkimincluding the ones that are not actually passed in as parameters. 3918193267SjkimThe compiler tracks initialization of the arguments and issues an 3919193267Sjkimexception if they are used without prior assignment (just like 3920193267Sjkimlocals). 3921193267Sjkim 3922151937SjkimThe -o option now specifies a filename prefix that is used for 3923193267Sjkimall 3924193267Sjkimoutput files, including the AML output file. Otherwise, the 3925193267Sjkimdefault behavior is as follows: 1) the AML goes to the file 3926193267Sjkimspecified in the DSDT. 2) all other output files use the input 3927193267Sjkimsource filename as the base. 3928193267Sjkim 3929193267Sjkim ------------------------------------------ 3930151937SjkimSummary of changes for this label: 01_25_01 3931151937Sjkim 3932151937SjkimCore ACPI CA Subsystem: Restructured the implementation of object 3933151937Sjkimstore support within the interpreter. This includes support for 3934151937Sjkimthe Store operator as well as any ASL operators that include a 3935151937Sjkimtarget operand. 3936151937Sjkim 3937151937SjkimPartially implemented support for Implicit Result-to-Target 3938151937Sjkimconversion. This is when a result object is converted on the fly 3939151937Sjkimto the type of an existing target object. Completion of this 3940151937Sjkimsupport is pending further analysis of the ACPI specification 3941193267Sjkimconcerning this matter. 3942193267Sjkim 3943193267SjkimCPU-specific code has been removed from the subsystem (hardware 3944151937Sjkimdirectory). 3945151937Sjkim 3946151937SjkimNew Power Management Timer functions added 3947151937Sjkim 3948151937SjkimLinux OS Services Layer (OSL): Moved system state transition code 3949151937Sjkimto the core, fixed it, and modified Linux OSL accordingly. 3950193267Sjkim 3951193267SjkimFixed C2 and C3 latency calculations. 3952151937Sjkim 3953193267Sjkim 3954193267SjkimWe no longer use the compilation date for the version message on 3955193267Sjkiminitialization, but retrieve the version from 3956151937SjkimAcpiGetSystemInfo(). 3957193267Sjkim 3958193267SjkimIncorporated for fix Sony VAIO machines. 3959151937Sjkim 3960193267SjkimDocumentation: The Programmer Reference has been updated and 3961193267Sjkimreformatted. 3962151937Sjkim 3963193267Sjkim 3964193267SjkimASL Compiler: Version X2013: Fixed a problem where the line 3965193267Sjkimnumbering and error reporting could get out of sync in the 3966151937Sjkimpresence of multiple include files. 3967193267Sjkim 3968193267Sjkim ------------------------------------------ 3969151937SjkimSummary of changes for this label: 01_15_01 3970193267Sjkim 3971193267SjkimCore ACPI CA Subsystem: 3972151937Sjkim 3973193267SjkimImplemented support for type conversions in the execution of the 3974193267SjkimASL Concatenate operator (The second operand is converted to 3975151937Sjkimmatch the type of the first operand before concatenation.) 3976151937Sjkim 3977151937SjkimSupport for implicit source operand conversion is partially 3978151937Sjkimimplemented. The ASL source operand types Integer, Buffer, and 3979151937SjkimString are freely interchangeable for most ASL operators and are 3980193267Sjkimconverted by the interpreter on the fly as required. Implicit 3981193267SjkimTarget operand conversion (where the result is converted to the 3982193267Sjkimtarget type before storing) is not yet implemented. 3983193267Sjkim 3984193267SjkimSupport for 32-bit and 64-bit BCD integers is implemented. 3985193267Sjkim 3986193267SjkimProblem fixed where a field read on an aligned field could cause 3987151937Sjkima 3988151937Sjkimread past the end of the field. 3989151937Sjkim 3990151937SjkimNew exception, AE_AML_NO_RETURN_VALUE, is returned when a method 3991151937Sjkimdoes not return a value, but the caller expects one. (The ASL 3992151937Sjkimcompiler flags this as a warning.) 3993151937Sjkim 3994151937SjkimASL Compiler: 3995151937Sjkim 3996167802SjkimVersion X2011: 3997151937Sjkim1. Static typechecking of all operands is implemented. This 3998151937Sjkimprevents the use of invalid objects (such as using a Package 3999193267Sjkimwhere 4000193267Sjkiman Integer is required) at compile time instead of at interpreter 4001193267Sjkimrun-time. 4002151937Sjkim2. The ASL source line is printed with ALL errors and warnings. 4003193267Sjkim3. Bug fix for source EOF without final linefeed. 4004193267Sjkim4. Debug option is split into a parse trace and a namespace 4005151937Sjkimtrace. 4006151937Sjkim5. Namespace output option (-n) includes initial values for 4007151937Sjkimintegers and strings. 4008151937Sjkim6. Parse-only option added for quick syntax checking. 4009151937Sjkim7. Compiler checks for duplicate ACPI name declarations 4010151937Sjkim 4011151937SjkimVersion X2012: 4012193267Sjkim1. Relaxed typechecking to allow interchangeability between 4013193267Sjkimstrings, integers, and buffers. These types are now converted by 4014193267Sjkimthe interpreter at runtime. 4015193267Sjkim2. Compiler reports time taken by each internal subsystem in the 4016193267Sjkimdebug output file. 4017151937Sjkim 4018151937Sjkim 4019193267Sjkim ------------------------------------------ 4020193267SjkimSummary of changes for this label: 12_14_00 4021193267Sjkim 4022193267SjkimASL Compiler: 4023193267Sjkim 4024193267SjkimThis is the first official release of the compiler. Since the 4025193267Sjkimcompiler requires elements of the Core Subsystem, this label 4026151937Sjkimsynchronizes everything. 4027193267Sjkim 4028193267Sjkim------------------------------------------ 4029193267SjkimSummary of changes for this label: 12_08_00 4030151937Sjkim 4031193267Sjkim 4032193267SjkimFixed a problem where named references within the ASL definition 4033193267Sjkimof both OperationRegions and CreateXXXFields did not work 4034193267Sjkimproperly. The symptom was an AE_AML_OPERAND_TYPE during 4035193267Sjkiminitialization of the region/field. This is similar (but not 4036193267Sjkimrelated internally) to the problem that was fixed in the last 4037193267Sjkimlabel. 4038193267Sjkim 4039151937SjkimImplemented both 32-bit and 64-bit support for the BCD ASL 4040193267Sjkimfunctions ToBCD and FromBCD. 4041193267Sjkim 4042193267SjkimUpdated all legal headers to include "2000" in the copyright 4043151937Sjkimyears. 4044193267Sjkim 4045193267Sjkim ------------------------------------------ 4046193267SjkimSummary of changes for this label: 12_01_00 4047151937Sjkim 4048193267SjkimFixed a problem where method invocations within the ASL 4049193267Sjkimdefinition 4050193267Sjkimof both OperationRegions and CreateXXXFields did not work 4051151937Sjkimproperly. The symptom was an AE_AML_OPERAND_TYPE during 4052193267Sjkiminitialization of the region/field: 4053193267Sjkim 4054193267Sjkim nsinit-0209: AE_AML_OPERAND_TYPE while getting region arguments 4055151937Sjkim[DEBG] ammonad-0284: Exec_monadic2_r/Not: bad operand(s) 4056193267Sjkim(0x3005) 4057193267Sjkim 4058193267SjkimFixed a problem where operators with more than one nested 4059193267Sjkimsubexpression would fail. The symptoms were varied, by mostly 4060193267SjkimAE_AML_OPERAND_TYPE errors. This was actually a rather serious 4061193267Sjkimproblem that has gone unnoticed until now. 4062193267Sjkim 4063151937Sjkim Subtract (Add (1,2), Multiply (3,4)) 4064151937Sjkim 4065151937SjkimFixed a problem where AcpiGetHandle didn't quite get fixed in the 4066151937Sjkimprevious build (The prefix part of a relative path was handled 4067151937Sjkimincorrectly). 4068151937Sjkim 4069151937SjkimFixed a problem where Operation Region initialization failed if 4070151937Sjkimthe operation region name was a "namepath" instead of a simple 4071151937Sjkim"nameseg". Symptom was an AE_NO_OPERAND error. 4072151937Sjkim 4073151937SjkimFixed a problem where an assignment to a local variable via the 4074193267Sjkimindirect RefOf mechanism only worked for the first such 4075193267Sjkimassignment. Subsequent assignments were ignored. 4076193267Sjkim 4077193267Sjkim ------------------------------------------ 4078151937SjkimSummary of changes for this label: 11_15_00 4079193267Sjkim 4080193267SjkimACPI 2.0 table support with backwards support for ACPI 1.0 and 4081193267Sjkimthe 4082151937Sjkim0.71 extensions. Note: although we can read ACPI 2.0 BIOS 4083193267Sjkimtables, 4084193267Sjkimthe AML interpreter does NOT have support for the new 2.0 ASL 4085193267Sjkimgrammar terms at this time. 4086151937Sjkim 4087193267SjkimAll ACPI hardware access is via the GAS structures in the ACPI 4088193267Sjkim2.0 4089193267SjkimFADT. 4090193267Sjkim 4091151937SjkimAll physical memory addresses across all platforms are now 64 4092193267Sjkimbits 4093193267Sjkimwide. Logical address width remains dependent on the platform 4094193267Sjkim(i.e., "void *"). 4095193267Sjkim 4096151937SjkimAcpiOsMapMemory interface changed to a 64-bit physical address. 4097193267Sjkim 4098193267SjkimThe AML interpreter integer size is now 64 bits, as per the ACPI 4099151937Sjkim2.0 specification. 4100193267Sjkim 4101193267SjkimFor backwards compatibility with ACPI 1.0, ACPI tables with a 4102193267Sjkimrevision number less than 2 use 32-bit integers only. 4103151937Sjkim 4104193267SjkimFixed a problem where the evaluation of OpRegion operands did not 4105193267Sjkimalways resolve them to numbers properly. 4106193267Sjkim 4107151937Sjkim------------------------------------------ 4108193267SjkimSummary of changes for this label: 10_20_00 4109193267Sjkim 4110151937SjkimFix for CBN_._STA issue. This fix will allow correct access to 4111193267SjkimCBN_ OpRegions when the _STA returns 0x8. 4112193267Sjkim 4113193267SjkimSupport to convert ACPI constants (Ones, Zeros, One) to actual 4114151937Sjkimvalues before a package object is returned 4115193267Sjkim 4116193267SjkimFix for method call as predicate to if/while construct causing 4117151937Sjkimincorrect if/while behavior 4118151937Sjkim 4119151937SjkimFix for Else block package lengths sometimes calculated wrong (if 4120151937Sjkimblock > 63 bytes) 4121151937Sjkim 4122151937SjkimFix for Processor object length field, was always zero 4123151937Sjkim 4124151937SjkimTable load abort if FACP sanity check fails 4125193267Sjkim 4126193267SjkimFix for problem with Scope(name) if name already exists 4127193267Sjkim 4128151937SjkimWarning emitted if a named object referenced cannot be found 4129193267Sjkim(resolved) during method execution. 4130193267Sjkim 4131193267Sjkim 4132151937Sjkim 4133193267Sjkim 4134193267Sjkim 4135193267Sjkim------------------------------------------ 4136151937SjkimSummary of changes for this label: 9_29_00 4137151937Sjkim 4138151937SjkimNew table initialization interfaces: AcpiInitializeSubsystem no 4139193267Sjkimlonger has any parameters AcpiFindRootPointer - Find the RSDP (if 4140193267Sjkimnecessary) AcpiLoadTables (RSDP) - load all tables found at RSDP- 4141151937Sjkim>RSDT Obsolete Interfaces AcpiLoadFirmwareTables - replaced by 4142193267SjkimAcpiLoadTables 4143193267Sjkim 4144151937SjkimNote: These interface changes require changes to all existing 4145151937SjkimOSDs 4146151937Sjkim 4147193267SjkimThe PCI_Config default address space handler is always installed 4148193267Sjkimat the root namespace object. 4149151937Sjkim 4150193267Sjkim------------------------------------------- 4151193267SjkimSummary of changes for this label: 09_15_00 4152193267Sjkim 4153193267SjkimThe new initialization architecture is implemented. New 4154193267Sjkiminterfaces are: AcpiInitializeSubsystem (replaces AcpiInitialize) 4155193267SjkimAcpiEnableSubsystem Obsolete Interfaces: AcpiLoadNamespace 4156193267Sjkim(Namespace is automatically loaded when a table is loaded) 4157151937Sjkim 4158151937SjkimThe ACPI_OPERAND_OBJECT has been optimized to shrink its size 4159151937Sjkimfrom 4160151937Sjkim52 bytes to 32 bytes. There is usually one of these for every 4161151937Sjkimnamespace object, so the memory savings is significant. 4162151937Sjkim 4163151937SjkimImplemented just-in-time evaluation of the CreateField operators. 4164151937Sjkim 4165151937SjkimBug fixes for IA-64 support have been integrated. 4166151937Sjkim 4167151937SjkimAdditional code review comments have been implemented 4168193267Sjkim 4169193267SjkimThe so-called "third pass parse" has been replaced by a final 4170151937Sjkimwalk 4171193267Sjkimthrough the namespace to initialize all operation regions 4172193267Sjkim(address 4173193267Sjkimspaces) and fields that have not yet been initialized during the 4174151937Sjkimexecution of the various _INI and REG methods. 4175193267Sjkim 4176193267SjkimNew file - namespace/nsinit.c 4177193267Sjkim 4178151937Sjkim------------------------------------------- 4179151937SjkimSummary of changes for this label: 09_01_00 4180151937Sjkim 4181151937SjkimNamespace manager data structures have been reworked to change 4182151937Sjkimthe 4183151937Sjkimprimary object from a table to a single object. This has 4184151937Sjkimresulted in dynamic memory savings of 3X within the namespace 4185193267Sjkimand 4186193267Sjkim2X overall in the ACPI CA subsystem. 4187193267Sjkim 4188193267SjkimFixed problem where the call to AcpiEvFindPciRootBuses was 4189193267Sjkiminadvertently left commented out. 4190193267Sjkim 4191193267SjkimReduced the warning count when generating the source with the GCC 4192151937Sjkimcompiler. 4193193267Sjkim 4194193267SjkimRevision numbers added to each module header showing the 4195193267SjkimSourceSafe version of the file. Please refer to this version 4196193267Sjkimnumber when giving us feedback or comments on individual modules. 4197193267Sjkim 4198193267SjkimThe main object types within the subsystem have been renamed to 4199151937Sjkimclarify their purpose: 4200193267Sjkim 4201193267SjkimACPI_INTERNAL_OBJECT -> ACPI_OPERAND_OBJECT 4202193267SjkimACPI_GENERIC_OP -> ACPI_PARSE_OBJECT 4203193267SjkimACPI_NAME_TABLE_ENTRY -> ACPI_NAMESPACE_NODE 4204193267Sjkim 4205151937SjkimNOTE: no changes to the initialization sequence are included in 4206193267Sjkimthis label. 4207193267Sjkim 4208193267Sjkim------------------------------------------- 4209193267SjkimSummary of changes for this label: 08_23_00 4210151937Sjkim 4211151937SjkimFixed problem where TerminateControlMethod was being called 4212193267Sjkimmultiple times per method 4213151937Sjkim 4214193267SjkimFixed debugger problem where single stepping caused a semaphore 4215151937Sjkimto 4216193267Sjkimbe oversignalled 4217151937Sjkim 4218193267SjkimImproved performance through additional parse object caching - 4219193267Sjkimadded ACPI_EXTENDED_OP type 4220193267Sjkim 4221193267Sjkim------------------------------------------- 4222193267SjkimSummary of changes for this label: 08_10_00 4223193267Sjkim 4224193267SjkimParser/Interpreter integration: Eliminated the creation of 4225151937Sjkimcomplete parse trees for ACPI tables and control methods. 4226151937SjkimInstead, parse subtrees are created and then deleted as soon as 4227151937Sjkimthey are processed (Either entered into the namespace or 4228151937Sjkimexecuted 4229151937Sjkimby the interpreter). This reduces the use of dynamic kernel 4230151937Sjkimmemory significantly. (about 10X) 4231151937Sjkim 4232151937SjkimException codes broken into classes and renumbered. Be sure to 4233151937Sjkimrecompile all code that includes acexcep.h. Hopefully we won't 4234151937Sjkimhave to renumber the codes again now that they are split into 4235151937Sjkimclasses (environment, programmer, AML code, ACPI table, and 4236193267Sjkiminternal). 4237193267Sjkim 4238193267SjkimFixed some additional alignment issues in the Resource Manager 4239151937Sjkimsubcomponent 4240193267Sjkim 4241193267SjkimImplemented semaphore tracking in the AcpiExec utility, and fixed 4242151937Sjkimseveral places where mutexes/semaphores were being unlocked 4243151937Sjkimwithout a corresponding lock operation. There are no known 4244151937Sjkimsemaphore or mutex "leaks" at this time. 4245151937Sjkim 4246151937SjkimFixed the case where an ASL Return operator is used to return an 4247151937Sjkimunnamed package. 4248193267Sjkim 4249193267Sjkim------------------------------------------- 4250193267SjkimSummary of changes for this label: 07_28_00 4251193267Sjkim 4252151937SjkimFixed a problem with the way addresses were calculated in 4253193267SjkimAcpiAmlReadFieldData() and AcpiAmlWriteFieldData(). This problem 4254193267Sjkimmanifested itself when a Field was created with WordAccess or 4255193267SjkimDwordAccess, but the field unit defined within the Field was 4256193267Sjkimless 4257151937Sjkimthan a Word or Dword. 4258193267Sjkim 4259193267SjkimFixed a problem in AmlDumpOperands() module's loop to pull 4260193267Sjkimoperands off of the operand stack to display information. The 4261193267Sjkimproblem manifested itself as a TLB error on 64-bit systems when 4262193267Sjkimaccessing an operand stack with two or more operands. 4263193267Sjkim 4264151937SjkimFixed a problem with the PCI configuration space handlers where 4265193267Sjkimcontext was getting confused between accesses. This required a 4266193267Sjkimchange to the generic address space handler and address space 4267193267Sjkimsetup definitions. Handlers now get both a global handler 4268193267Sjkimcontext 4269151937Sjkim(this is the one passed in by the user when executing 4270193267SjkimAcpiInstallAddressSpaceHandler() and a specific region context 4271193267Sjkimthat is unique to each region (For example, the _ADR, _SEG and 4272193267Sjkim_BBN values associated with a specific region). The generic 4273193267Sjkimfunction definitions have changed to the following: 4274151937Sjkim 4275193267Sjkimtypedef ACPI_STATUS (*ADDRESS_SPACE_HANDLER) ( UINT32 Function, 4276193267SjkimUINT32 Address, UINT32 BitWidth, UINT32 *Value, void 4277151937Sjkim*HandlerContext, // This used to be void *Context void 4278193267Sjkim*RegionContext); // This is an additional parameter 4279193267Sjkim 4280193267Sjkimtypedef ACPI_STATUS (*ADDRESS_SPACE_SETUP) ( ACPI_HANDLE 4281193267SjkimRegionHandle, UINT32 Function, void *HandlerContext, void 4282193267Sjkim**RegionContext); // This used to be **ReturnContext 4283193267Sjkim 4284193267Sjkim------------------------------------------- 4285151937SjkimSummary of changes for this label: 07_21_00 4286151937Sjkim 4287151937SjkimMajor file consolidation and rename. All files within the 4288151937Sjkiminterpreter have been renamed as well as most header files. 4289151937SjkimThis 4290151937Sjkimwas done to prevent collisions with existing files in the host 4291151937SjkimOSs -- filenames such as "config.h" and "global.h" seem to be 4292151937Sjkimquite common. The VC project files have been updated. All 4293151937Sjkimmakefiles will require modification. 4294151937Sjkim 4295193267SjkimThe parser/interpreter integration continues in Phase 5 with the 4296193267Sjkimimplementation of a complete 2-pass parse (the AML is parsed 4297193267Sjkimtwice) for each table; This avoids the construction of a huge 4298193267Sjkimparse tree and therefore reduces the amount of dynamic memory 4299193267Sjkimrequired by the subsystem. Greater use of the parse object cache 4300151937Sjkimmeans that performance is unaffected. 4301193267Sjkim 4302193267SjkimMany comments from the two code reviews have been rolled in. 4303193267Sjkim 4304151937SjkimThe 64-bit alignment support is complete. 4305193267Sjkim 4306193267Sjkim------------------------------------------- 4307193267SjkimSummary of changes for this label: 06_30_00 4308193267Sjkim 4309151937SjkimWith a nod and a tip of the hat to the technology of yesteryear, 4310193267Sjkimwe've added support in the source code for 80 column output 4311193267Sjkimdevices. The code is now mostly constrained to 80 columns or 4312193267Sjkimless to support environments and editors that 1) cannot display 4313193267Sjkimor print more than 80 characters on a single line, and 2) cannot 4314151937Sjkimdisable line wrapping. 4315151937Sjkim 4316151937SjkimA major restructuring of the namespace data structure has been 4317151937Sjkimcompleted. The result is 1) cleaner and more 4318193267Sjkimunderstandable/maintainable code, and 2) a significant reduction 4319193267Sjkimin the dynamic memory requirement for each named ACPI object 4320151937Sjkim(almost half). 4321151937Sjkim 4322151937Sjkim------------------------------------------- 4323193267SjkimSummary of changes for this label: 06_23_00 4324193267Sjkim 4325193267SjkimLinux support has been added. In order to obtain approval to get 4326193267Sjkimthe ACPI CA subsystem into the Linux kernel, we've had to make 4327193267Sjkimquite a few changes to the base subsystem that will affect all 4328193267Sjkimusers (all the changes are generic and OS- independent). The 4329193267Sjkimeffects of these global changes have been somewhat far reaching. 4330193267SjkimFiles have been merged and/or renamed and interfaces have been 4331193267Sjkimrenamed. The major changes are described below. 4332151937Sjkim 4333193267SjkimOsd* interfaces renamed to AcpiOs* to eliminate namespace 4334193267Sjkimpollution/confusion within our target kernels. All OSD 4335193267Sjkiminterfaces must be modified to match the new naming convention. 4336151937Sjkim 4337167802SjkimFiles merged across the subsystem. A number of the smaller 4338193267Sjkimsource 4339193267Sjkimand header files have been merged to reduce the file count and 4340193267Sjkimincrease the density of the existing files. There are too many 4341151937Sjkimto list here. In general, makefiles that call out individual 4342193267Sjkimfiles will require rebuilding. 4343193267Sjkim 4344193267SjkimInterpreter files renamed. All interpreter files now have the 4345193267Sjkimprefix am* instead of ie* and is*. 4346193267Sjkim 4347151937SjkimHeader files renamed: The acapi.h file is now acpixf.h. The 4348151937Sjkimacpiosd.h file is now acpiosxf.h. We are removing references to 4349193267Sjkimthe acronym "API" since it is somewhat windowsy. The new name is 4350193267Sjkim"external interface" or xface or xf in the filenames.j 4351193267Sjkim 4352193267Sjkim 4353151937SjkimAll manifest constants have been forced to upper case (some were 4354193267Sjkimmixed case.) Also, the string "ACPI_" has been prepended to 4355193267Sjkimmany 4356193267Sjkim(not all) of the constants, typedefs, and structs. 4357151937Sjkim 4358193267SjkimThe globals "DebugLevel" and "DebugLayer" have been renamed 4359193267Sjkim"AcpiDbgLevel" and "AcpiDbgLayer" respectively. 4360151937Sjkim 4361151937SjkimAll other globals within the subsystem are now prefixed with 4362151937Sjkim"AcpiGbl_" Internal procedures within the subsystem are now 4363193267Sjkimprefixed with "Acpi" (with only a few exceptions). The original 4364193267Sjkimtwo-letter abbreviation for the subcomponent remains after 4365193267Sjkim"Acpi" 4366193267Sjkim- for example, CmCallocate became AcpiCmCallocate. 4367193267Sjkim 4368193267SjkimAdded a source code translation/conversion utility. Used to 4369193267Sjkimgenerate the Linux source code, it can be modified to generate 4370151937Sjkimother types of source as well. Can also be used to cleanup 4371151937Sjkimexisting source by removing extraneous spaces and blank lines. 4372151937SjkimFound in tools/acpisrc/* 4373151937Sjkim 4374151937SjkimOsdUnMapMemory was renamed to OsdUnmapMemory and then 4375151937SjkimAcpiOsUnmapMemory. (UnMap became Unmap). 4376151937Sjkim 4377151937SjkimA "MaxUnits" parameter has been added to AcpiOsCreateSemaphore. 4378151937SjkimWhen set to one, this indicates that the caller wants to use the 4379151937Sjkimsemaphore as a mutex, not a counting semaphore. ACPI CA uses 4380151937Sjkimboth types. However, implementers of this call may want to use 4381193267Sjkimdifferent OS primitives depending on the type of semaphore 4382193267Sjkimrequested. For example, some operating systems provide separate 4383151937Sjkim"mutex" and "semaphore" interfaces - where the mutex interface 4384151937Sjkimis 4385151937Sjkimmuch faster because it doesn't have all the overhead of a full 4386193267Sjkimsemaphore implementation. 4387193267Sjkim 4388193267SjkimFixed a deadlock problem where a method that accesses the PCI 4389151937Sjkimaddress space can block forever if it is the first access to the 4390193267Sjkimspace. 4391193267Sjkim 4392151937Sjkim------------------------------------------- 4393193267SjkimSummary of changes for this label: 06_02_00 4394193267Sjkim 4395193267SjkimSupport for environments that cannot handle unaligned data 4396151937Sjkimaccesses (e.g. firmware and OS environments devoid of alignment 4397193267Sjkimhandler technology namely SAL/EFI and the IA-64 Linux kernel) 4398193267Sjkimhas 4399193267Sjkimbeen added (via configurable macros) in these three areas: - 4400193267SjkimTransfer of data from the raw AML byte stream is done via byte 4401193267Sjkimmoves instead of word/dword/qword moves. - External objects 4402193267Sjkimare 4403193267Sjkimaligned within the user buffer, including package elements (sub- 4404151937Sjkimobjects). - Conversion of name strings to UINT32 Acpi Names is 4405151937Sjkimnow 4406151937Sjkimdone byte-wise. 4407151937Sjkim 4408151937SjkimThe Store operator was modified to mimic Microsoft's 4409151937Sjkimimplementation when storing to a Buffer Field. 4410151937Sjkim 4411151937SjkimAdded a check of the BM_STS bit before entering C3. 4412151937Sjkim 4413151937SjkimThe methods subdirectory has been obsoleted and removed. A new 4414151937Sjkimfile, cmeval.c subsumes the functionality. 4415193267Sjkim 4416193267SjkimA 16-bit (DOS) version of AcpiExec has been developed. The 4417193267Sjkimmakefile is under the acpiexec directory. 4418151937Sjkim