| 226 September 2014. Summary of changes for version 20140926: 3 41) ACPICA kernel-resident subsystem: 5 6Updated the GPIO operation region handler interface (GeneralPurposeIo). 7In order to support GPIO Connection objects with multiple pins, along 8with the related Field objects, the following changes to the interface 9have been made: The Address is now defined to be the offset in bits of 10the field unit from the previous invocation of a Connection. It can be 11viewed as a "Pin Number Index" into the connection resource descriptor. 12The BitWidth is the exact bit width of the field. It is usually one bit, 13but not always. See the ACPICA reference guide (section 8.8.6.2.1) for 14additional information and examples. 15 16GPE support: During ACPICA/GPE initialization, ensure that all GPEs with 17corresponding _Lxx/_Exx methods are disabled (they may have been enabled 18by the firmware), so that they cannot fire until they are enabled via 19AcpiUpdateAllGpes. Rafael J. Wysocki. 20 21Added a new return flag for the Event/GPE status interfaces -- 22AcpiGetEventStatus and AcpiGetGpeStatus. The new 23ACPI_EVENT_FLAGS_HAS_HANDLER flag is used to indicate that the event or 24GPE currently has a handler associated with it, and can thus actually 25affect the system. Lv Zheng. 26 27Example Code and Data Size: These are the sizes for the OS-independent 28acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 29debug version of the code includes the debug output trace mechanism and 30has a much larger code and data size. 31 32 Current Release: 33 Non-Debug Version: 99.1K Code, 27.3K Data, 126.4K Total 34 Debug Version: 192.8K Code, 79.9K Data, 272.7K Total 35 Previous Release: 36 Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total 37 Debug Version: 192.1K Code, 79.8K Data, 271.9K Total 38 392) iASL Compiler/Disassembler and Tools: 40 41iASL: Fixed a memory allocation/free regression introduced in 20140828 42that could cause the compiler to crash. This was introduced inadvertently 43during the effort to eliminate compiler memory leaks. ACPICA BZ 1111, 441113. 45 46iASL: Removed two error messages that have been found to create false 47positives, until they can be fixed and fully validated (ACPICA BZ 1112): 481) Illegal forward reference within a method 492) Illegal reference across two methods 50 51iASL: Implemented a new option (-lm) to create a hardware mapping file 52that summarizes all GPIO, I2C, SPI, and UART connections. This option 53works for both the compiler and disassembler. See the iASL compiler user 54guide for additional information and examples (section 6.4.6). 55 56AcpiDump: Added support for the version 1 (ACPI 1.0) RSDP in addition to 57version 2. This corrects the AE_BAD_HEADER exception seen on systems with 58a version 1 RSDP. Lv Zheng ACPICA BZ 1097. 59 60AcpiExec: For Unix versions, don't attempt to put STDIN into raw mode 61unless STDIN is actually a terminal. Assists with batch-mode processing. 62ACPICA BZ 1114. 63 64Disassembler/AcpiHelp: Added another large group of recognized _HID 65values. 66 67 68---------------------------------------- 6928 August 2014. Summary of changes for version 20140828: 70 711) ACPICA kernel-resident subsystem: 72 73Fixed a problem related to the internal use of the Timer() operator where 74a 64-bit divide could cause an attempted link to a double-precision math 75library. This divide is not actually necessary, so the code was 76restructured to eliminate it. Lv Zheng. 77 78ACPI 5.1: Added support for the runtime validation of the _DSD package 79(similar to the iASL support). 80 81ACPI 5.1/Headers: Added support for the GICC affinity subtable to the 82SRAT table. Hanjun Guo <hanjun.guo@linaro.org>. 83 84Example Code and Data Size: These are the sizes for the OS-independent 85acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 86debug version of the code includes the debug output trace mechanism and 87has a much larger code and data size. 88 89 Current Release: 90 Non-Debug Version: 98.8K Code, 27.3K Data, 126.1K Total 91 Debug Version: 192.1K Code, 79.8K Data, 271.9K Total 92 Previous Release: 93 Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total1 94 Debug Version: 192.0K Code, 79.7K Data, 271.7K Total 95 962) iASL Compiler/Disassembler and Tools: 97 98AcpiExec: Fixed a problem on unix systems where the original terminal 99state was not always properly restored upon exit. Seen when using the -v 100option. ACPICA BZ 1104. 101 102iASL: Fixed a problem with the validation of the ranges/length within the 103Memory24 resource descriptor. There was a boundary condition when the 104range was equal to the (length -1) caused by the fact that these values 105are defined in 256-byte blocks, not bytes. ACPICA BZ 1098 106 107Disassembler: Fixed a problem with the GpioInt descriptor interrupt 108polarity 109flags. The flags are actually 2 bits, not 1, and the "ActiveBoth" keyword 110is 111now supported properly. 112 113ACPI 5.1: Added the GICC affinity subtable to the SRAT table. Supported 114in the disassembler, data table compiler, and table template generator. 115 116iASL: Added a requirement for Device() objects that one of either a _HID 117or _ADR must exist within the scope of a Device, as per the ACPI 118specification. Remove a similar requirement that was incorrectly in place 119for the _DSD object. 120 121iASL: Added error detection for illegal named references within control 122methods that would cause runtime failures. Now trapped as errors are: 1) 123References to objects within a non-parent control method. 2) Forward 124references (within a method) -- for control methods, AML interpreters use 125a one-pass parse of control methods. ACPICA BZ 1008. 126 127iASL: Added error checking for dependencies related to the _PSx power 128methods. ACPICA BZ 1029. 1291) For _PS0, one of these must exist within the same scope: _PS1, _PS2, 130_PS3. 1312) For _PS1, _PS2, and PS3: A _PS0 object must exist within the same 132scope. 133 134iASL and table compiler: Cleanup miscellaneous memory leaks by fully 135deploying the existing object and string caches and adding new caches for 136the table compiler. 137 138iASL: Split the huge parser source file into multiple subfiles to improve 139manageability. Generation now requires the M4 macro preprocessor, which 140is part of the Bison distribution on both unix and windows platforms. 141 142AcpiSrc: Fixed and removed all extraneous warnings generated during 143entire ACPICA source code scan and/or conversion. 144 145 146---------------------------------------- 147 14824 July 2014. Summary of changes for version 20140724: 149 150The ACPI 5.1 specification has been released and is available at: 151http://uefi.org/specs/access 152 153 1540) ACPI 5.1 support in ACPICA: 155 156ACPI 5.1 is fully supported in ACPICA as of this release. 157 158New predefined names. Support includes iASL and runtime ACPICA 159validation. 160 _CCA (Cache Coherency Attribute). 161 _DSD (Device-Specific Data). David Box. 162 163Modifications to existing ACPI tables. Support includes headers, iASL 164Data Table compiler, disassembler, and the template generator. 165 FADT - New fields and flags. Graeme Gregory. 166 GTDT - One new subtable and new fields. Tomasz Nowicki. 167 MADT - Two new subtables. Tomasz Nowicki. 168 PCCT - One new subtable. 169 170Miscellaneous. 171 New notification type for System Resource Affinity change events. 172 173 1741) ACPICA kernel-resident subsystem: 175 176Fixed a regression introduced in 20140627 where a fault can happen during 177the deletion of Alias AML namespace objects. The problem affected both 178the core ACPICA and the ACPICA tools including iASL and AcpiExec. 179 180Implemented a new GPE public interface, AcpiMarkGpeForWake. Provides a 181simple mechanism to enable wake GPEs that have no associated handler or 182control method. Rafael Wysocki. 183 184Updated the AcpiEnableGpe interface to disallow the enable if there is no 185handler or control method associated with the particular GPE. This will 186help avoid meaningless GPEs and even GPE floods. Rafael Wysocki. 187 188Updated GPE handling and dispatch by disabling the GPE before clearing 189the status bit for edge-triggered GPEs. Lv Zheng. 190 191Added Timer() support to the AML Debug object. The current timer value is 192now displayed with each invocation of (Store to) the debug object to 193enable simple generation of execution times for AML code (method 194execution for example.) ACPICA BZ 1093. 195 196Example Code and Data Size: These are the sizes for the OS-independent 197acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 198debug version of the code includes the debug output trace mechanism and 199has a much larger code and data size. 200 201 Current Release: 202 Non-Debug Version: 98.7K Code, 27.3K Data, 126.0K Total 203 Debug Version: 192.0K Code, 79.7K Data, 271.7K Total 204 Previous Release: 205 Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total 206 Debug Version: 191.7K Code, 79.6K Data, 271.3K Total 207 208 2092) iASL Compiler/Disassembler and Tools: 210 211Fixed an issue with the recently added local printf implementation, 212concerning width/precision specifiers that could cause incorrect output. 213Lv Zheng. ACPICA BZ 1094. 214 215Disassembler: Added support to detect buffers that contain UUIDs and 216disassemble them to an invocation of the ToUUID operator. Also emit 217commented descriptions of known ACPI-related UUIDs. 218 219AcpiHelp: Added support to display known ACPI-related UUIDs. New option, 220-u. Adds three new files. 221 222iASL: Update table compiler and disassembler for DMAR table changes that 223were introduced in September 2013. With assistance by David Woodhouse. 224 225---------------------------------------- 22627 June 2014. Summary of changes for version 20140627: 227 2281) ACPICA kernel-resident subsystem: 229 230Formatted Output: Implemented local versions of standard formatted output 231utilities such as printf, etc. Over time, it has been discovered that 232there are in fact many portability issues with printf, and the addition 233of this feature will fix/prevent these issues once and for all. Some 234known issues are summarized below: 235 2361) Output of 64-bit values is not portable. For example, UINT64 is %ull 237for the Linux kernel and is %uI64 for some MSVC versions. 2382) Invoking printf consistently in a manner that is portable across both 23932-bit and 64-bit platforms is difficult at best in many situations. 2403) The output format for pointers varies from system to system (leading 241zeros especially), and leads to inconsistent output from ACPICA across 242platforms. 2434) Certain platform-specific printf formats may conflict with ACPICA use. 2445) If there is no local C library available, ACPICA now has local support 245for printf. 246 247-- To address these printf issues in a complete manner, ACPICA now 248directly implements a small subset of printf format specifiers, only 249those that it requires. Adds a new file, utilities/utprint.c. Lv Zheng. 250 251Implemented support for ACPICA generation within the EFI environment. 252Initially, the AcpiDump utility is supported in the UEFI shell 253environment. Lv Zheng. 254 255Added a new external interface, AcpiLogError, to improve ACPICA 256portability. This allows the host to redirect error messages from the 257ACPICA utilities. Lv Zheng. 258 259Added and deployed new OSL file I/O interfaces to improve ACPICA 260portability: 261 AcpiOsOpenFile 262 AcpiOsCloseFile 263 AcpiOsReadFile 264 AcpiOsWriteFile 265 AcpiOsGetFileOffset 266 AcpiOsSetFileOffset 267There are C library implementations of these functions in the new file 268service_layers/oslibcfs.c -- however, the functions can be implemented by 269the local host in any way necessary. Lv Zheng. 270 271Implemented a mechanism to disable/enable ACPI table checksum validation 272at runtime. This can be useful when loading tables very early during OS 273initialization when it may not be possible to map the entire table in 274order to compute the checksum. Lv Zheng. 275 276Fixed a buffer allocation issue for the Generic Serial Bus support. 277Originally, a fixed buffer length was used. This change allows for 278variable-length buffers based upon the protocol indicated by the field 279access attributes. Reported by Lan Tianyu. Lv Zheng. 280 281Fixed a problem where an object detached from a namespace node was not 282properly terminated/cleared and could cause a circular list problem if 283reattached. ACPICA BZ 1063. David Box. 284 285Fixed a possible recursive lock acquisition in hwregs.c. Rakib Mullick. 286 287Fixed a possible memory leak in an error return path within the function 288AcpiUtCopyIobjectToIobject. ACPICA BZ 1087. Colin Ian King. 289 290Example Code and Data Size: These are the sizes for the OS-independent 291acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 292debug version of the code includes the debug output trace mechanism and 293has a much larger code and data size. 294 295 Current Release: 296 Non-Debug Version: 98.7K Code, 27.2K Data, 125.9K Total 297 Debug Version: 191.7K Code, 79.6K Data, 271.3K Total 298 Previous Release: 299 Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total 300 Debug Version: 189.5K Code, 79.7K Data, 269.2K Total 301 302 3032) iASL Compiler/Disassembler and Tools: 304 305Disassembler: Add dump of ASCII equivalent text within a comment at the 306end of each line of the output for the Buffer() ASL operator. 307 308AcpiDump: Miscellaneous changes: 309 Fixed repetitive table dump in -n mode. 310 For older EFI platforms, use the ACPI 1.0 GUID during RSDP search if 311the ACPI 2.0 GUID fails. 312 313iASL: Fixed a problem where the compiler could fault if incorrectly given 314an acpidump output file as input. ACPICA BZ 1088. David Box. 315 316AcpiExec/AcpiNames: Fixed a problem where these utilities could fault if 317they are invoked without any arguments. 318 319Debugger: Fixed a possible memory leak in an error return path. ACPICA BZ 3201086. Colin Ian King. 321 322Disassembler: Cleaned up a block of code that extracts a parent Op 323object. Added a comment that explains that the parent is guaranteed to be 324valid in this case. ACPICA BZ 1069. 325 326---------------------------------------- 32724 April 2014. Summary of changes for version 20140424: 328 3291) ACPICA kernel-resident subsystem: 330 331Implemented support to skip/ignore NULL address entries in the RSDT/XSDT. 332Some of these tables are known to contain a trailing NULL entry. Lv 333Zheng. 334 335Removed an extraneous error message for the case where there are a large 336number of system GPEs (> 124). This was the "32-bit FADT register is too 337long to convert to GAS struct" message, which is irrelevant for GPEs 338since the GPEx_BLK_LEN fields of the FADT are always used instead of the 339(limited capacity) GAS bit length. Also, several changes to ensure proper 340support for GPE numbers > 255, where some "GPE number" fields were 8-bits 341internally. 342 343Implemented and deployed additional configuration support for the public 344ACPICA external interfaces. Entire classes of interfaces can now be 345easily modified or configured out, replaced by stubbed inline functions 346by default. Lv Zheng. 347 348Moved all public ACPICA runtime configuration globals to the public 349ACPICA external interface file for convenience. Also, removed some 350obsolete/unused globals. See the file acpixf.h. Lv Zheng. 351 352Documentation: Added a new section to the ACPICA reference describing the 353maximum number of GPEs that can be supported by the FADT-defined GPEs in 354block zero and one. About 1200 total. See section 4.4.1 of the ACPICA 355reference. 356 357Example Code and Data Size: These are the sizes for the OS-independent 358acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 359debug version of the code includes the debug output trace mechanism and 360has a much larger code and data size. 361 362 Current Release: 363 Non-Debug Version: 96.8K Code, 27.2K Data, 124.0K Total 364 Debug Version: 189.5K Code, 79.7K Data, 269.2K Total 365 Previous Release: 366 Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total 367 Debug Version: 189.7K Code, 79.5K Data, 269.2K Total 368 369 3702) iASL Compiler/Disassembler and Tools: 371 372iASL and disassembler: Add full support for the LPIT table (Low Power 373Idle Table). Includes support in the disassembler, data table compiler, 374and template generator. 375 376AcpiDump utility: 3771) Add option to force the use of the RSDT (over the XSDT). 3782) Improve validation of the RSDP signature (use 8 chars instead of 4). 379 380iASL: Add check for predefined packages that are too large. For 381predefined names that contain subpackages, check if each subpackage is 382too large. (Check for too small already exists.) 383 384Debugger: Updated the GPE command (which simulates a GPE by executing the 385GPE code paths in ACPICA). The GPE device is now optional, and defaults 386to the GPE 0/1 FADT-defined blocks. 387 388Unix application OSL: Update line-editing support. Add additional error 389checking and take care not to reset terminal attributes on exit if they 390were never set. This should help guarantee that the terminal is always 391left in the previous state on program exit. 392 393---------------------------------------- 39425 March 2014. Summary of changes for version 20140325: 395 3961) ACPICA kernel-resident subsystem: 397 398Updated the auto-serialize feature for control methods. This feature 399automatically serializes all methods that create named objects in order 400to prevent runtime errors. The update adds support to ignore the 401currently executing AML SyncLevel when invoking such a method, in order 402to prevent disruption of any existing SyncLevel priorities that may exist 403in the AML code. Although the use of SyncLevels is relatively rare, this 404change fixes a regression where an AE_AML_MUTEX_ORDER exception can 405appear on some machines starting with the 20140214 release. 406 407Added a new external interface to allow the host to install ACPI tables 408very early, before the namespace is even created. AcpiInstallTable gives 409the host additional flexibility for ACPI table management. Tables can be 410installed directly by the host as if they had originally appeared in the 411XSDT/RSDT. Installed tables can be SSDTs or other ACPI data tables 412(anything except the DSDT and FACS). Adds a new file, tbdata.c, along 413with additional internal restructuring and cleanup. See the ACPICA 414Reference for interface details. Lv Zheng. 415 416Added validation of the checksum for all incoming dynamically loaded 417tables (via external interfaces or via AML Load/LoadTable operators). Lv 418Zheng. 419 420Updated the use of the AcpiOsWaitEventsComplete interface during Notify 421and GPE handler removal. Restructured calls to eliminate possible race 422conditions. Lv Zheng. 423 424Added a warning for the use/execution of the ASL/AML Unload (table) 425operator. This will help detect and identify machines that use this 426operator if and when it is ever used. This operator has never been seen 427in the field and the usage model and possible side-effects of the drastic 428runtime action of a full table removal are unknown. 429 430Reverted the use of #pragma push/pop which was introduced in the 20140214 431release. It appears that push and pop are not implemented by enough 432compilers to make the use of this feature feasible for ACPICA at this 433time. However, these operators may be deployed in a future ACPICA 434release. 435 436Added the missing EXPORT_SYMBOL macros for the install and remove SCI 437handler interfaces. 438 439Source code generation: 4401) Disabled the use of the "strchr" macro for the gcc-specific 441generation. For some versions of gcc, this macro can periodically expose 442a compiler bug which in turn causes compile-time error(s). 4432) Added support for PPC64 compilation. Colin Ian King. 444 445Example Code and Data Size: These are the sizes for the OS-independent 446acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 447debug version of the code includes the debug output trace mechanism and 448has a much larger code and data size. 449 450 Current Release: 451 Non-Debug Version: 97.0K Code, 27.2K Data, 124.2K Total 452 Debug Version: 189.7K Code, 79.5K Data, 269.2K Total 453 Previous Release: 454 Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total 455 Debug Version: 188.6K Code, 79.0K Data, 267.6K Total 456 457 4582) iASL Compiler/Disassembler and Tools: 459 460Disassembler: Added several new features to improve the readability of 461the resulting ASL code. Extra information is emitted within comment 462fields in the ASL code: 4631) Known _HID/_CID values are decoded to descriptive text. 4642) Standard values for the Notify() operator are decoded to descriptive 465text. 4663) Target operands are expanded to full pathnames (in a comment) when 467possible. 468 469Disassembler: Miscellaneous updates for extern() handling: 4701) Abort compiler if file specified by -fe option does not exist. 4712) Silence unnecessary warnings about argument count mismatches. 4723) Update warning messages concerning unresolved method externals. 4734) Emit "UnknownObj" keyword for externals whose type cannot be 474determined. 475 476AcpiHelp utility: 4771) Added the -a option to display both the ASL syntax and the AML 478encoding for an input ASL operator. This effectively displays all known 479information about an ASL operator with one AcpiHelp invocation. 4802) Added substring match support (similar to a wildcard) for the -i 481(_HID/PNP IDs) option. 482 483iASL/Disassembler: Since this tool does not yet support execution on big- 484endian machines, added detection of endianness and an error message if 485execution is attempted on big-endian. Support for big-endian within iASL 486is a feature that is on the ACPICA to-be-done list. 487 488AcpiBin utility: 4891) Remove option to extract binary files from an acpidump; this function 490is made obsolete by the AcpiXtract utility. 4912) General cleanup of open files and allocated buffers. 492 493---------------------------------------- 49414 February 2014. Summary of changes for version 20140214: 495 4961) ACPICA kernel-resident subsystem: 497 498Implemented a new mechanism to proactively prevent problems with ill- 499behaved reentrant control methods that create named ACPI objects. This 500behavior is illegal as per the ACPI specification, but is nonetheless 501frequently seen in the field. Previously, this could lead to an 502AE_ALREADY_EXISTS exception if the method was actually entered by more 503than one thread. This new mechanism detects such methods at table load 504time and marks them "serialized" to prevent reentrancy. A new global 505option, AcpiGbl_AutoSerializeMethods, has been added to disable this 506feature if desired. This mechanism and global option obsoletes and 507supersedes the previous AcpiGbl_SerializeAllMethods option. 508 509Added the "Windows 2013" string to the _OSI support. ACPICA will now 510respond TRUE to _OSI queries with this string. It is the stated policy of 511ACPICA to add new strings to the _OSI support as soon as possible after 512they are defined. See the full ACPICA _OSI policy which has been added to 513the utilities/utosi.c file. 514 515Hardened/updated the _PRT return value auto-repair code: 5161) Do not abort the repair on a single subpackage failure, continue to 517check all subpackages. 5182) Add check for the minimum subpackage length (4). 5193) Properly handle extraneous NULL package elements. 520 521Added support to avoid the possibility of infinite loops when traversing 522object linked lists. Never allow an infinite loop, even in the face of 523corrupted object lists. 524 525ACPICA headers: Deployed the use of #pragma pack(push) and #pragma 526pack(pop) directives to ensure that the ACPICA headers are independent of 527compiler settings or other host headers. 528 529Example Code and Data Size: These are the sizes for the OS-independent 530acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 531debug version of the code includes the debug output trace mechanism and 532has a much larger code and data size. 533 534 Current Release: 535 Non-Debug Version: 96.5K Code, 27.2K Data, 123.7K Total 536 Debug Version: 188.6K Code, 79.0K Data, 267.6K Total 537 Previous Release: 538 Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total 539 Debug Version: 187.5K Code, 78.3K Data, 265.8K Total 540 541 5422) iASL Compiler/Disassembler and Tools: 543 544iASL/Table-compiler: Fixed a problem with support for the SPMI table. The 545first reserved field was incorrectly forced to have a value of zero. This 546change correctly forces the field to have a value of one. ACPICA BZ 1081. 547 548Debugger: Added missing support for the "Extra" and "Data" subobjects 549when displaying object data. 550 551Debugger: Added support to display entire object linked lists when 552displaying object data. 553 554iASL: Removed the obsolete -g option to obtain ACPI tables from the 555Windows registry. This feature has been superseded by the acpidump 556utility. 557 558---------------------------------------- 55914 January 2014. Summary of changes for version 20140114: 560 5611) ACPICA kernel-resident subsystem: 562 563Updated all ACPICA copyrights and signons to 2014. Added the 2014 564copyright to all module headers and signons, including the standard Linux 565header. This affects virtually every file in the ACPICA core subsystem, 566iASL compiler, all ACPICA utilities, and the test suites. 567 568Improved parameter validation for AcpiInstallGpeBlock. Added the 569following checks: 5701) The incoming device handle refers to type ACPI_TYPE_DEVICE. 5712) There is not already a GPE block attached to the device. 572Likewise, with AcpiRemoveGpeBlock, ensure that the incoming object is a 573device. 574 575Correctly support "references" in the ACPI_OBJECT. This change fixes the 576support to allow references (namespace nodes) to be passed as arguments 577to control methods via the evaluate object interface. This is probably 578most useful for testing purposes, however. 579 580Improved support for 32/64 bit physical addresses in printf()-like 581output. This change improves the support for physical addresses in printf 582debug statements and other output on both 32-bit and 64-bit hosts. It 583consistently outputs the appropriate number of bytes for each host. The 584%p specifier is unsatisfactory since it does not emit uniform output on 585all hosts/clib implementations (on some, leading zeros are not supported, 586leading to difficult-to-read output). 587 588Example Code and Data Size: These are the sizes for the OS-independent 589acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 590debug version of the code includes the debug output trace mechanism and 591has a much larger code and data size. 592 593 Current Release: 594 Non-Debug Version: 96.2K Code, 27.0K Data, 123.2K Total 595 Debug Version: 187.5K Code, 78.3K Data, 265.8K Total 596 Previous Release: 597 Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total 598 Debug Version: 185.6K Code, 77.3K Data, 262.9K Total 599 600 6012) iASL Compiler/Disassembler and Tools: 602 603iASL: Fix a possible fault when using the Connection() operator. Fixes a 604problem if the parent Field definition for the Connection operator refers 605to an operation region that does not exist. ACPICA BZ 1064. 606 607AcpiExec: Load of local test tables is now optional. The utility has the 608capability to load some various tables to test features of ACPICA. 609However, there are enough of them that the output of the utility became 610confusing. With this change, only the required local tables are displayed 611(RSDP, XSDT, etc.) along with the actual tables loaded via the command 612line specification. This makes the default output simler and easier to 613understand. The -el command line option restores the original behavior 614for testing purposes. 615 616AcpiExec: Added support for overlapping operation regions. This change 617expands the simulation of operation regions by supporting regions that 618overlap within the given address space. Supports SystemMemory and 619SystemIO. ASLTS test suite updated also. David Box. ACPICA BZ 1031. 620 621AcpiExec: Added region handler support for PCI_Config and EC spaces. This 622allows AcpiExec to simulate these address spaces, similar to the current 623support for SystemMemory and SystemIO. 624 625Debugger: Added new command to read/write/compare all namespace objects. 626The command "test objects" will exercise the entire namespace by writing 627new values to each data object, and ensuring that the write was 628successful. The original value is then restored and verified. 629 630Debugger: Added the "test predefined" command. This change makes this 631test public and puts it under the new "test" command. The test executes 632each and every predefined name within the current namespace. 633 634---------------------------------------- 63518 December 2013. Summary of changes for version 20131218: 636 637Global note: The ACPI 5.0A specification was released this month. There 638are no changes needed for ACPICA since this release of ACPI is an 639errata/clarification release. The specification is available at 640acpi.info. 641 642 6431) ACPICA kernel-resident subsystem: 644 645Added validation of the XSDT root table if it is present. Some older 646platforms contain an XSDT that is ill-formed or otherwise invalid (such 647as containing some or all entries that are NULL pointers). This change 648adds a new function to validate the XSDT before actually using it. If the 649XSDT is found to be invalid, ACPICA will now automatically fall back to 650using the RSDT instead. Original implementation by Zhao Yakui. Ported to 651ACPICA and enhanced by Lv Zheng and Bob Moore. 652 653Added a runtime option to ignore the XSDT and force the use of the RSDT. 654This change adds a runtime option that will force ACPICA to use the RSDT 655instead of the XSDT (AcpiGbl_DoNotUseXsdt). Although the ACPI spec 656requires that an XSDT be used instead of the RSDT, the XSDT has been 657found to be corrupt or ill-formed on some machines. Lv Zheng. 658 659Added a runtime option to favor 32-bit FADT register addresses over the 66064-bit addresses. This change adds an option to favor 32-bit FADT 661addresses when there is a conflict between the 32-bit and 64-bit versions 662of the same register. The default behavior is to use the 64-bit version 663in accordance with the ACPI specification. This can now be overridden via 664the AcpiGbl_Use32BitFadtAddresses flag. ACPICA BZ 885. Lv Zheng. 665 666During the change above, the internal "Convert FADT" and "Verify FADT" 667functions have been merged to simplify the code, making it easier to 668understand and maintain. ACPICA BZ 933. 669 670Improve exception reporting and handling for GPE block installation. 671Return an actual status from AcpiEvGetGpeXruptBlock and don't clobber the 672status when exiting AcpiEvInstallGpeBlock. ACPICA BZ 1019. 673 674Added helper macros to extract bus/segment numbers from the HEST table. 675This change adds two macros to extract the encoded bus and segment 676numbers from the HEST Bus field - ACPI_HEST_BUS and ACPI_HEST_SEGMENT. 677Betty Dall <betty.dall@hp.com> 678 679Removed the unused ACPI_FREE_BUFFER macro. This macro is no longer used 680by ACPICA. It is not a public macro, so it should have no effect on 681existing OSV code. Lv Zheng. 682 683Example Code and Data Size: These are the sizes for the OS-independent 684acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 685debug version of the code includes the debug output trace mechanism and 686has a much larger code and data size. 687 688 Current Release: 689 Non-Debug Version: 96.1K Code, 27.0K Data, 123.1K Total 690 Debug Version: 185.6K Code, 77.3K Data, 262.9K Total 691 Previous Release: 692 Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total 693 Debug Version: 185.1K Code, 77.2K Data, 262.3K Total 694 695 6962) iASL Compiler/Disassembler and Tools: 697 698Disassembler: Improved pathname support for emitted External() 699statements. This change adds full pathname support for external names 700that have been resolved internally by the inclusion of additional ACPI 701tables (via the iASL -e option). Without this change, the disassembler 702can emit multiple externals for the same object, or it become confused 703when the Scope() operator is used on an external object. Overall, greatly 704improves the ability to actually recompile the emitted ASL code when 705objects a referenced across multiple ACPI tables. Reported by Michael 706Tsirkin (mst@redhat.com). 707 708Tests/ASLTS: Updated functional control suite to execute with no errors. 709David Box. Fixed several errors related to the testing of the interpreter 710slack mode. Lv Zheng. 711 712iASL: Added support to detect names that are declared within a control 713method, but are unused (these are temporary names that are only valid 714during the time the method is executing). A remark is issued for these 715cases. ACPICA BZ 1022. 716 717iASL: Added full support for the DBG2 table. Adds full disassembler, 718table compiler, and template generator support for the DBG2 table (Debug 719Port 2 table). 720 721iASL: Added full support for the PCCT table, update the table definition. 722Updates the PCCT table definition in the actbl3.h header and adds table 723compiler and template generator support. 724 725iASL: Added an option to emit only error messages (no warnings/remarks). 726The -ve option will enable only error messages, warnings and remarks are 727suppressed. This can simplify debugging when only the errors are 728important, such as when an ACPI table is disassembled and there are many 729warnings and remarks -- but only the actual errors are of real interest. 730 731Example ACPICA code (source/tools/examples): Updated the example code so 732that it builds to an actual working program, not just example code. Added 733ACPI tables and execution of an example control method in the DSDT. Added 734makefile support for Unix generation. 735 736---------------------------------------- 73715 November 2013. Summary of changes for version 20131115: 738 739This release is available at https://acpica.org/downloads 740 741 7421) ACPICA kernel-resident subsystem: 743 744Resource Manager: Fixed loop termination for the "get AML length" 745function. The loop previously had an error termination on a NULL resource 746pointer, which can never happen since the loop simply increments a valid 747resource pointer. This fix changes the loop to terminate with an error on 748an invalid end-of-buffer condition. The problem can be seen as an 749infinite loop by callers to AcpiSetCurrentResources with an invalid or 750corrupted resource descriptor, or a resource descriptor that is missing 751an END_TAG descriptor. Reported by Dan Carpenter 752<dan.carpenter@oracle.com>. Lv Zheng, Bob Moore. 753 754Table unload and ACPICA termination: Delete all attached data objects 755during namespace node deletion. This fix updates namespace node deletion 756to delete the entire list of attached objects (attached via 757AcpiAttachObject) instead of just one of the attached items. ACPICA BZ 7581024. Tomasz Nowicki (tomasz.nowicki@linaro.org). 759 760ACPICA termination: Added support to delete all objects attached to the 761root namespace node. This fix deletes any and all objects that have been 762attached to the root node via AcpiAttachData. Previously, none of these 763objects were deleted. Reported by Tomasz Nowicki. ACPICA BZ 1026. 764 765Debug output: Do not emit the function nesting level for the in-kernel 766build. The nesting level is really only useful during a single-thread 767execution. Therefore, only enable this output for the AcpiExec utility. 768Also, only emit the thread ID when executing under AcpiExec (Context 769switches are still always detected and a message is emitted). ACPICA BZ 770972. 771 772Example Code and Data Size: These are the sizes for the OS-independent 773acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 774debug version of the code includes the debug output trace mechanism and 775has a much larger code and data size. 776 777 Current Release: 778 Non-Debug Version: 95.9K Code, 27.0K Data, 122.9K Total 779 Debug Version: 185.1K Code, 77.2K Data, 262.3K Total 780 Previous Release: 781 Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total 782 Debug Version: 185.2K Code, 77.2K Data, 262.4K Total 783 784 7852) iASL Compiler/Disassembler and Tools: 786 787AcpiExec/Unix-OSL: Use <termios.h> instead of <termio.h>. This is the 788correct portable POSIX header for terminal control functions. 789 790Disassembler: Fixed control method invocation issues related to the use 791of the CondRefOf() operator. The problem is seen in the disassembly where 792control method invocations may not be disassembled properly if the 793control method name has been used previously as an argument to CondRefOf. 794The solution is to not attempt to emit an external declaration for the 795CondRefOf target (it is not necessary in the first place). This prevents 796disassembler object type confusion. ACPICA BZ 988. 797 798Unix Makefiles: Added an option to disable compiler optimizations and the 799_FORTIFY_SOURCE flag. Some older compilers have problems compiling ACPICA 800with optimizations (reportedly, gcc 4.4 for example). This change adds a 801command line option for make (NOOPT) that disables all compiler 802optimizations and the _FORTIFY_SOURCE compiler flag. The default 803optimization is -O2 with the _FORTIFY_SOURCE flag specified. ACPICA BZ 8041034. Lv Zheng, Bob Moore. 805 806Tests/ASLTS: Added options to specify individual test cases and modes. 807This allows testers running aslts.sh to optionally specify individual 808test modes and test cases. Also added an option to disable the forced 809generation of the ACPICA tools from source if desired. Lv Zheng. 810 811---------------------------------------- 81227 September 2013. Summary of changes for version 20130927: 813 814This release is available at https://acpica.org/downloads 815 816 8171) ACPICA kernel-resident subsystem: 818 819Fixed a problem with store operations to reference objects. This change 820fixes a problem where a Store operation to an ArgX object that contained 821a 822reference to a field object did not complete the automatic dereference 823and 824then write to the actual field object. Instead, the object type of the 825field object was inadvertently changed to match the type of the source 826operand. The new behavior will actually write to the field object (buffer 827field or field unit), thus matching the correct ACPI-defined behavior. 828 829Implemented support to allow the host to redefine individual OSL 830prototypes. This change enables the host to redefine OSL prototypes found 831in the acpiosxf.h file. This allows the host to implement OSL interfaces 832with a macro or inlined function. Further, it allows the host to add any 833additional required modifiers such as __iomem, __init, __exit, etc., as 834necessary on a per-interface basis. Enables maximum flexibility for the 835OSL interfaces. Lv Zheng. 836 837Hardcoded the access width for the FADT-defined reset register. The ACPI 838specification requires the reset register width to be 8 bits. ACPICA now 839hardcodes the width to 8 and ignores the FADT width value. This provides 840compatibility with other ACPI implementations that have allowed BIOS code 841with bad register width values to go unnoticed. Matthew Garett, Bob 842Moore, 843Lv Zheng. 844 845Changed the position/use of the ACPI_PRINTF_LIKE macro. This macro is 846used 847in the OSL header (acpiosxf). The change modifies the position of this 848macro in each instance where it is used (AcpiDebugPrint, etc.) to avoid 849build issues if the OSL defines the implementation of the interface to be 850an inline stub function. Lv Zheng. 851 852Deployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA 853initialization interfaces. This change adds a new macro for the main init 854and terminate external interfaces in order to support hosts that require 855additional or different processing for these functions. Changed from 856ACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv 857Zheng, Bob Moore. 858 859Cleaned up the memory allocation macros for configurability. In the 860common 861case, the ACPI_ALLOCATE and related macros now resolve directly to their 862respective AcpiOs* OSL interfaces. Two options: 8631) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by 864default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define. 8652) For AcpiExec (and for debugging), the macros can optionally be 866resolved 867to the local ACPICA interfaces that track each allocation (local tracking 868is used to immediately detect memory leaks). 869Lv Zheng. 870 871Simplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel 872to predefine this macro to either TRUE or FALSE during the system build. 873 874Replaced __FUNCTION_ with __func__ in the gcc-specific header. 875 876Example Code and Data Size: These are the sizes for the OS-independent 877acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The 878debug version of the code includes the debug output trace mechanism and 879has a much larger code and data size. 880 881 Current Release: 882 Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total 883 Debug Version: 185.2K Code, 77.2K Data, 262.4K Total 884 Previous Release: 885 Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total 886 Debug Version: 184.4K Code, 76.8K Data, 261.2K Total 887 888 8892) iASL Compiler/Disassembler and Tools: 890 891iASL: Implemented wildcard support for the -e option. This simplifies use 892when there are many SSDTs that must be included to resolve external 893method 894declarations. ACPICA BZ 1041. Example: 895 iasl -e ssdt*.dat -d dsdt.dat 896 897AcpiExec: Add history/line-editing for Unix/Linux systems. This change 898adds a portable module that implements full history and limited line 899editing for Unix and Linux systems. It does not use readline() due to 900portability issues. Instead it uses the POSIX termio interface to put the 901terminal in raw input mode so that the various special keys can be 902trapped 903(such as up/down-arrow for history support and left/right-arrow for line 904editing). Uses the existing debugger history mechanism. ACPICA BZ 1036. 905 906AcpiXtract: Add support to handle (ignore) "empty" lines containing only 907one or more spaces. This provides compatible with early or different 908versions of the AcpiDump utility. ACPICA BZ 1044. 909 910AcpiDump: Do not ignore tables that contain only an ACPI table header. 911Apparently, some BIOSs create SSDTs that contain an ACPI table header but 912no other data. This change adds support to dump these tables. Any tables 913shorter than the length of an ACPI table header remain in error (an error 914message is emitted). Reported by Yi Li. 915 916Debugger: Echo actual command along with the "unknown command" message. 917 918----------------------------------------
|