From owner-svn-src-head@FreeBSD.ORG Fri Jul 26 21:34:10 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2E7BD8F6; Fri, 26 Jul 2013 21:34:10 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 17B7D218E; Fri, 26 Jul 2013 21:34:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r6QLYAk2035708; Fri, 26 Jul 2013 21:34:10 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r6QLYAJO035706; Fri, 26 Jul 2013 21:34:10 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201307262134.r6QLYAJO035706@svn.freebsd.org> From: Jung-uk Kim Date: Fri, 26 Jul 2013 21:34:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r253690 - in head/sys/contrib/dev/acpica: . common compiler components/executer components/hardware components/namespace components/tables components/utilities include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Jul 2013 21:34:10 -0000 Author: jkim Date: Fri Jul 26 21:34:09 2013 New Revision: 253690 URL: http://svnweb.freebsd.org/changeset/base/253690 Log: Merge ACPICA 20130725. Modified: head/sys/contrib/dev/acpica/changes.txt (contents, props changed) head/sys/contrib/dev/acpica/common/dmextern.c head/sys/contrib/dev/acpica/common/getopt.c head/sys/contrib/dev/acpica/compiler/asloffset.c head/sys/contrib/dev/acpica/compiler/asloperands.c head/sys/contrib/dev/acpica/compiler/asloptions.c head/sys/contrib/dev/acpica/compiler/dttemplate.c head/sys/contrib/dev/acpica/components/executer/exoparg1.c head/sys/contrib/dev/acpica/components/hardware/hwtimer.c head/sys/contrib/dev/acpica/components/namespace/nspredef.c head/sys/contrib/dev/acpica/components/namespace/nswalk.c head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c head/sys/contrib/dev/acpica/components/tables/tbfadt.c head/sys/contrib/dev/acpica/components/tables/tbxfroot.c head/sys/contrib/dev/acpica/components/utilities/utglobal.c head/sys/contrib/dev/acpica/components/utilities/utosi.c head/sys/contrib/dev/acpica/components/utilities/utxface.c head/sys/contrib/dev/acpica/include/acglobal.h head/sys/contrib/dev/acpica/include/aclocal.h head/sys/contrib/dev/acpica/include/acnamesp.h head/sys/contrib/dev/acpica/include/acpixf.h head/sys/contrib/dev/acpica/include/actables.h head/sys/contrib/dev/acpica/include/actypes.h head/sys/contrib/dev/acpica/include/acutils.h Directory Properties: head/sys/contrib/dev/acpica/ (props changed) head/sys/contrib/dev/acpica/common/ (props changed) head/sys/contrib/dev/acpica/compiler/ (props changed) head/sys/contrib/dev/acpica/components/debugger/ (props changed) head/sys/contrib/dev/acpica/components/disassembler/ (props changed) head/sys/contrib/dev/acpica/components/dispatcher/ (props changed) head/sys/contrib/dev/acpica/components/events/ (props changed) head/sys/contrib/dev/acpica/components/executer/ (props changed) head/sys/contrib/dev/acpica/components/hardware/ (props changed) head/sys/contrib/dev/acpica/components/namespace/ (props changed) head/sys/contrib/dev/acpica/components/parser/ (props changed) head/sys/contrib/dev/acpica/components/resources/ (props changed) head/sys/contrib/dev/acpica/components/tables/ (props changed) head/sys/contrib/dev/acpica/components/utilities/ (props changed) head/sys/contrib/dev/acpica/include/ (props changed) head/sys/contrib/dev/acpica/os_specific/ (props changed) Modified: head/sys/contrib/dev/acpica/changes.txt ============================================================================== --- head/sys/contrib/dev/acpica/changes.txt Fri Jul 26 21:25:18 2013 (r253689) +++ head/sys/contrib/dev/acpica/changes.txt Fri Jul 26 21:34:09 2013 (r253690) @@ -1,4 +1,76 @@ ---------------------------------------- +25 July 2013. Summary of changes for version 20130725: + +1) ACPICA kernel-resident subsystem: + +Fixed a problem with the DerefOf operator where references to FieldUnits +and BufferFields incorrectly returned the parent object, not the actual +value of the object. After this change, a dereference of a FieldUnit +reference results in a read operation on the field to get the value, and +likewise, the appropriate BufferField value is extracted from the target +buffer. + +Fixed a problem where the _WAK method could cause a fault under these +circumstances: 1) Interpreter slack mode was not enabled, and 2) the _WAK +method returned no value. The problem is rarely seen because most kernels +run ACPICA in slack mode. + +For the DerefOf operator, a fatal error now results if an attempt is made +to dereference a reference (created by the Index operator) to a NULL +package element. Provides compatibility with other ACPI implementations, +and this behavior will be added to a future version of the ACPI +specification. + +The ACPI Power Management Timer (defined in the FADT) is now optional. +This provides compatibility with other ACPI implementations and will +appear in the next version of the ACPI specification. If there is no PM +Timer on the platform, AcpiGetTimer returns AE_SUPPORT. An address of +zero in the FADT indicates no PM timer. + +Implemented a new interface for _OSI support, AcpiUpdateInterfaces. This +allows the host to globally enable/disable all vendor strings, all +feature strings, or both. Intended to be primarily used for debugging +purposes only. Lv Zheng. + +Expose the collected _OSI data to the host via a global variable. This +data tracks the highest level vendor ID that has been invoked by the BIOS +so that the host (and potentially ACPICA itself) can change behaviors +based upon the age of the BIOS. + +Example Code and Data Size: These are the sizes for the OS-independent +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The +debug version of the code includes the debug output trace mechanism and +has a much larger code and data size. + + Current Release: + Non-Debug Version: 96.2K Code, 27.1K Data, 123.3K Total + Debug Version: 184.4K Code, 76.8K Data, 261.2K Total + Previous Release: + Non-Debug Version: 95.9K Code, 26.9K Data, 122.8K Total + Debug Version: 184.1K Code, 76.7K Data, 260.8K Total + + +2) iASL Compiler/Disassembler and Tools: + +iASL: Created the following enhancements for the -so option (create +offset table): +1)Add offsets for the last nameseg in each namepath for every supported +object type +2)Add support for Processor, Device, Thermal Zone, and Scope objects +3)Add the actual AML opcode for the parent object of every supported +object type +4)Add support for the ZERO/ONE/ONES AML opcodes for integer objects + +Disassembler: Emit all unresolved external symbols in a single block. +These are external references to control methods that could not be +resolved, and thus, the disassembler had to make a guess at the number of +arguments to parse. + +iASL: The argument to the -T option (create table template) is now +optional. If not specified, the default table is a DSDT, typically the +most common case. + +---------------------------------------- 26 June 2013. Summary of changes for version 20130626: 1) ACPICA kernel-resident subsystem: @@ -65,12 +137,14 @@ longer executed properly because of a me initialized correctly. ACPICA BZ 1016. Tomasz Nowicki . -Fixed a possible problem with the new extended sleep registers in the ACPI +Fixed a possible problem with the new extended sleep registers in the +ACPI 5.0 FADT. Do not use these registers (even if populated) unless the HW- reduced bit is set in the FADT (as per the ACPI specification). ACPICA BZ 1020. Lv Zheng. -Implemented return value repair code for _CST predefined objects: Sort the +Implemented return value repair code for _CST predefined objects: Sort +the list and detect/remove invalid entries. ACPICA BZ 890. Lv Zheng. Implemented a debug-only option to disable loading of SSDTs from the @@ -87,7 +161,8 @@ BZ 1013. 4) Clear debug buffer global on termination to prevent possible multiple delete. ACPICA BZ 1010. -Standardized all switch() blocks across the entire source base. After many +Standardized all switch() blocks across the entire source base. After +many years, different formatting for switch() had crept in. This change makes the formatting of every switch block identical. ACPICA BZ 997. Chao Guan. @@ -118,7 +193,8 @@ has a much larger code and data size. 2) iASL Compiler/Disassembler and Tools: New utility: Implemented an easily portable version of the acpidump -utility to extract ACPI tables from the system (or a file) in an ASCII hex +utility to extract ACPI tables from the system (or a file) in an ASCII +hex dump format. The top-level code implements the various command line options, file I/O, and table dump routines. To port to a new host, only three functions need to be implemented to get tables -- since this @@ -152,7 +228,8 @@ iASL: Added control method and package s iASL: issue a remark if a non-serialized method creates named objects. If a thread blocks within the method for any reason, and another thread -enters the method, the method will fail because an attempt will be made to +enters the method, the method will fail because an attempt will be made +to create the same (named) object twice. In this case, issue a remark that the method should be marked serialized. NOTE: may become a warning later. ACPICA BZ 909. @@ -165,10 +242,13 @@ ACPICA BZ 909. Fixed a possible buffer overrun during some rare but specific field unit read operations. This overrun can only happen if the DSDT version is 1 -- meaning that all AML integers are 32 bits -- and the field length is -between 33 and 55 bits long. During the read, an internal buffer object is -created for the field unit because the field is larger than an integer (32 +between 33 and 55 bits long. During the read, an internal buffer object +is +created for the field unit because the field is larger than an integer +(32 bits). However, in this case, the buffer will be incorrectly written -beyond the end because the buffer length is less than the internal minimum +beyond the end because the buffer length is less than the internal +minimum of 64 bits (8 bytes) long. The buffer will be either 5, 6, or 7 bytes long, but a full 8 bytes will be written. @@ -220,7 +300,8 @@ has a much larger code and data size. 2) iASL Compiler/Disassembler and Tools: AcpiExec: Added installation of a handler for the SystemCMOS address -space. This prevents control method abort if a method accesses this space. +space. This prevents control method abort if a method accesses this +space. AcpiExec: Added support for multiple EC devices, and now install EC operation region handler(s) at the actual EC device instead of the @@ -235,7 +316,8 @@ AcpiExec installs a handler for every po Debugger: Enhanced the "handlers" command to display non-root handlers. This change enhances the handlers command to display handlers associated with individual devices throughout the namespace, in addition to the -currently supported display of handlers associated with the root namespace +currently supported display of handlers associated with the root +namespace node. ASL Test Suite: Several test suite errors have been identified and @@ -264,7 +346,8 @@ return from this interface. Handles a po ACPI_WAIT_FOREVER is modified by the host to be a value less than "forever". Jung-uk Kim. -Predefined name support: Add allowed/required argument type information to +Predefined name support: Add allowed/required argument type information +to the master predefined info table. This change adds the infrastructure to enable typechecking on incoming arguments for all predefined methods/objects. It does not actually contain the code that will fully @@ -287,10 +370,12 @@ has a much larger code and data size. 2) iASL Compiler/Disassembler and Tools: -iASL: Implemented a new option to simplify the development of ACPI-related +iASL: Implemented a new option to simplify the development of ACPI- +related BIOS code. Adds support for a new "offset table" output file. The -so option will create a C table containing the AML table offsets of various -named objects in the namespace so that BIOS code can modify them easily at +named objects in the namespace so that BIOS code can modify them easily +at boot time. This can simplify BIOS runtime code by eliminating expensive searches for "magic values", enhancing boot times and adding greater reliability. With assistance from Lee Hamel. @@ -324,11 +409,13 @@ names table (above). Fixed a possible regression on some hosts: Reinstated the safe return macros (return_ACPI_STATUS, etc.) that ensure that the argument is evaluated only once. Although these macros are not needed for the ACPICA -code itself, they are often used by ACPI-related host device drivers where +code itself, they are often used by ACPI-related host device drivers +where the safe feature may be necessary. Fixed several issues related to the ACPI 5.0 reduced hardware support -(SOC): Now ensure that if the platform declares itself as hardware-reduced +(SOC): Now ensure that if the platform declares itself as hardware- +reduced via the FADT, the following functions become NOOPs (and always return AE_OK) because ACPI is always enabled by definition on these machines: AcpiEnable @@ -341,13 +428,15 @@ predefined name return values. Both of t the related device drivers that invoke these methods: 1) For the _STR and _MLS names, automatically repair/convert an ASCII string to a Unicode buffer. -2) For the _CRS, _PRS, and _DMA names, return a resource descriptor with a +2) For the _CRS, _PRS, and _DMA names, return a resource descriptor with +a lone end tag descriptor in the following cases: A Return(0) was executed, a null buffer was returned, or no object at all was returned (non-slack mode only). Adds a new file, nsconvert.c ACPICA BZ 998. Bob Moore, Lv Zheng. -Resource Manager: Added additional code to prevent possible infinite loops +Resource Manager: Added additional code to prevent possible infinite +loops while traversing corrupted or ill-formed resource template buffers. Check for zero-length resource descriptors in all code that loops through resource templates (the length field is used to index through the @@ -388,7 +477,8 @@ iASL: Implemented compile-time validatio predefined names. This new feature validates static package objects returned by the various predefined names defined to return packages. Both object types and package lengths are validated, for both parent packages -and sub-packages, if any. The code is similar in structure and behavior to +and sub-packages, if any. The code is similar in structure and behavior +to the runtime repair mechanism within the AML interpreter and uses the existing predefined name information table. Adds a new file, aslprepkg.c. ACPICA BZ 938. @@ -405,7 +495,8 @@ assumes zero method arguments in these c actual number of arguments without resolution/definition of the method). Debugger: Added support to display all resources with a single command. -Invocation of the resources command with no arguments will now display all +Invocation of the resources command with no arguments will now display +all resources within the current namespace. AcpiHelp: Added descriptive text for each ACPICA exception code displayed @@ -418,8 +509,10 @@ via the -e option. Updated the AcpiGetSleepTypeData interface: Allow the \_Sx methods to return either 1 or 2 integers. Although the ACPI spec defines the \_Sx -objects to return a package containing one integer, most BIOS code returns -two integers and the previous code reflects that. However, we also need to +objects to return a package containing one integer, most BIOS code +returns +two integers and the previous code reflects that. However, we also need +to support BIOS code that actually implements to the ACPI spec, and this change reflects this. @@ -463,12 +556,15 @@ attempt to flush data to the output file This can cause an infinite loop as the max error count code essentially keeps calling itself. -iASL/Disassembler: Added an option (-in) to ignore NOOP opcodes/operators. +iASL/Disassembler: Added an option (-in) to ignore NOOP +opcodes/operators. Implemented for both the compiler and the disassembler. Often, the NOOP -opcode is used as padding for packages that are changed dynamically by the +opcode is used as padding for packages that are changed dynamically by +the BIOS. When disassembled and recompiled, these NOOPs will cause syntax errors. This option causes the disassembler to ignore all NOOP opcodes -(0xA3), and it also causes the compiler to ignore all ASL source code NOOP +(0xA3), and it also causes the compiler to ignore all ASL source code +NOOP statements as well. Debugger: Enhanced the Sleep command to execute all sleep states. This @@ -499,7 +595,8 @@ the existing share bit. Reported by Aaro Interpreter: Fix Store() when an implicit conversion is not possible. For example, in the cases such as a store of a string to an existing package object, implement the store as a CopyObject(). This is a small departure -from the ACPI specification which states that the control method should be +from the ACPI specification which states that the control method should +be aborted in this case. However, the ASLTS suite depends on this behavior. Performance improvement for the various FUNCTION_TRACE and DEBUG_PRINT @@ -538,15 +635,18 @@ iASL: Disallow a method call as argument This change tracks an errata to the ACPI 5.0 document. The AML grammar will not allow the interpreter to differentiate between a method and a method invocation when these are used as an argument to the ObjectType -operator. The ACPI specification change is to disallow a method invocation +operator. The ACPI specification change is to disallow a method +invocation (UserTerm) for the ObjectType operator. Finish support for the TPM2 and CSRT tables in the headers, table compiler, and disassembler. Unix user-space OSL: Fix a problem with WaitSemaphore where the timeout -always expires immediately if the semaphore is not available. The original -code was using a relative-time timeout, but sem_timedwait requires the use +always expires immediately if the semaphore is not available. The +original +code was using a relative-time timeout, but sem_timedwait requires the +use of an absolute time. iASL: Added a remark if the Timer() operator is used within a 32-bit @@ -566,14 +666,18 @@ been updated. Implemented a performance enhancement for ACPI/AML Package objects. This change greatly increases the performance of Package objects within the -interpreter. It changes the processing of reference counts for packages by +interpreter. It changes the processing of reference counts for packages +by optimizing for the most common case where the package sub-objects are -either Integers, Strings, or Buffers. Increases the overall performance of -the ASLTS test suite by 1.5X (Increases the Slack Mode performance by 2X.) +either Integers, Strings, or Buffers. Increases the overall performance +of +the ASLTS test suite by 1.5X (Increases the Slack Mode performance by +2X.) Chao Guan. ACPICA BZ 943. Implemented and deployed common macros to extract flag bits from resource -descriptors. Improves readability and maintainability of the code. Fixes a +descriptors. Improves readability and maintainability of the code. Fixes +a problem with the UART serial bus descriptor for the number of data bits flags (was incorrectly 2 bits, should be 3). @@ -607,14 +711,17 @@ carats (^). ACPICA BZ 984. Debugger: Completed a major update for the Disassemble command. This command was out-of-date and did not properly disassemble control -methods that had any reasonable complexity. This fix brings the command up +methods that had any reasonable complexity. This fix brings the command +up to the same level as the rest of the disassembler. Adds one new file, dmdeferred.c, which is existing code that is now common with the main disassembler and the debugger disassemble command. ACPICA MZ 978. iASL: Moved the parser entry prototype to avoid a duplicate declaration. -Newer versions of Bison emit this prototype, so moved the prototype out of -the iASL header to where it is actually used in order to avoid a duplicate +Newer versions of Bison emit this prototype, so moved the prototype out +of +the iASL header to where it is actually used in order to avoid a +duplicate declaration. iASL/Tools: Standardized use of the stream I/O functions: @@ -622,7 +729,8 @@ iASL/Tools: Standardized use of the stre 2) Ensure proper order of size/count arguments for fread/fwrite 3) Use test of (Actual != Requested) after all fwrite, and most fread 4) Standardize I/O error messages -Improves reliability and maintainability of the code. Bob Moore, Lv Zheng. +Improves reliability and maintainability of the code. Bob Moore, Lv +Zheng. ACPICA BZ 981. Disassembler: Prevent duplicate External() statements. During generation @@ -744,7 +852,8 @@ ACPICA BZ 846. Makefiles: Completely removed the obsolete "Linux" makefiles under -acpica/generate/linux. These makefiles are obsolete and have been replaced +acpica/generate/linux. These makefiles are obsolete and have been +replaced by the generic unix makefiles under acpica/generate/unix. @@ -783,7 +892,8 @@ that is a named object. This change fixe iASL: Fixed a regression where the AML file is not deleted on errors. The AML -output file should be deleted if there are any errors during the compiler. +output file should be deleted if there are any errors during the +compiler. The only exception is if the -f (force output) option is used. ACPICA BZ 974. @@ -838,7 +948,8 @@ ACPICA BZ 969. Implemented support for complex bit-packed buffers returned from the _PLD (Physical Location of Device) predefined method. Adds a new external -interface, AcpiDecodePldBuffer that parses the buffer into a more usable C +interface, AcpiDecodePldBuffer that parses the buffer into a more usable +C structure. Note: C Bitfields cannot be used for this type of predefined structure since the memory layout of individual bitfields is not defined by @@ -853,7 +964,8 @@ during execution of module-level ASL code (code that is executed at table load time.) Lin Ming. -Added the Windows8/Server2012 string for the _OSI method. This change adds +Added the Windows8/Server2012 string for the _OSI method. This change +adds a new _OSI string, "Windows 2012" for both Windows 8 and Windows Server 2012. @@ -870,14 +982,16 @@ GPE support: Removed an extraneous param internal GPE functions. Tang Feng. Removed the linux makefiles from the unix packages. The generate/linux -makefiles are obsolete and have been removed from the unix tarball release +makefiles are obsolete and have been removed from the unix tarball +release packages. The replacement makefiles are under generate/unix, and there is a top-level makefile under the main acpica directory. ACPICA BZ 967, 912. Updates for Unix makefiles: 1) Add -D_FORTIFY_SOURCE=2 for gcc generation. Arjan van de Ven. -2) Update linker flags (move to end of command line) for AcpiExec utility. +2) Update linker flags (move to end of command line) for AcpiExec +utility. Guan Chao. Split ACPICA initialization functions to new file, utxfinit.c. Split from @@ -901,13 +1015,15 @@ much larger code and data size. iASL: Fixed a problem with constant folding for fixed-length constant expressions. The constant-folding code was not being invoked for constant -expressions that allow the use of type 3/4/5 opcodes to generate constants +expressions that allow the use of type 3/4/5 opcodes to generate +constants for expressions such as ByteConstExpr, WordConstExpr, etc. This could result in the generation of invalid AML bytecode. ACPICA BZ 970. iASL: Fixed a generation issue on newer versions of Bison. Newer versions -apparently automatically emit some of the necessary externals. This change +apparently automatically emit some of the necessary externals. This +change handles these versions in order to eliminate generation warnings. Disassembler: Added support to decode the DBG2 and CSRT ACPI tables. @@ -925,7 +1041,8 @@ AE_BAD_PARAMETER was always returned. 1) ACPICA Kernel-resident Subsystem: Fixed a possible fault in the return package object repair code. Fixes a -problem that can occur when a lone package object is wrapped with an outer +problem that can occur when a lone package object is wrapped with an +outer package object in order to force conformance to the ACPI specification. Can affect these predefined names: _ALR, _MLS, _PSS, _TRT, _TSS, _PRT, _HPX, @@ -969,14 +1086,16 @@ table and FADT errors. Additional deployment to be completed as appropriate in the future. The associated conditional macros are ACPI_BIOS_ERROR and -ACPI_BIOS_WARNING. See the ACPICA reference for additional details. ACPICA +ACPI_BIOS_WARNING. See the ACPICA reference for additional details. +ACPICA BZ 843. Implicit notify support: ensure that no memory allocation occurs within a critical region. This fix moves a memory allocation outside of the time that a -spinlock is held. Fixes issues on systems that do not allow this behavior. +spinlock is held. Fixes issues on systems that do not allow this +behavior. Jung-uk Kim. Split exception code utilities and tables into a new file, @@ -1029,7 +1148,8 @@ generates a runtime device notification in the absence of a BIOS-provided GPE control method (_Lxx/_Exx) or a host-installed handler for the GPE. Implicit notify is -provided by ACPICA for Windows compatibility, and is a workaround for BIOS +provided by ACPICA for Windows compatibility, and is a workaround for +BIOS AML code errors. See the description of the AcpiSetupGpeForWake interface in the @@ -1068,9 +1188,11 @@ etc.) AcpiSrc: Fixed several long-standing Linux code translation issues. Argument -descriptions in function headers are now translated properly to lower case +descriptions in function headers are now translated properly to lower +case and -underscores. ACPICA BZ 961. Also fixes translation problems such as these: +underscores. ACPICA BZ 961. Also fixes translation problems such as +these: (old -> new) i_aSL -> iASL 00-7_f -> 00-7F @@ -1112,7 +1234,8 @@ additional information. ACPICA BZ 868. ACPI Tables: Added a new error message for a possible overflow failure during -the conversion of FADT 32-bit legacy register addresses to internal common +the conversion of FADT 32-bit legacy register addresses to internal +common 64- bit GAS structure representation. The GAS has a one-byte "bit length" field, @@ -1149,7 +1272,8 @@ correct External statement. Disassembler: Several additional fixes for the External() statement generation related to some ASL operators. Also, order the External() statements -alphabetically in the disassembler output. Fixes the External() generation +alphabetically in the disassembler output. Fixes the External() +generation for the Create* field, Alias, and Scope operators: 1) Create* buffer field operators - fix type mismatch warning on @@ -1173,7 +1297,8 @@ condition. iASL: Implemented some changes to enhance the IDE support (-vi option.) Error -and Warning messages are now correctly recognized for both the source code +and Warning messages are now correctly recognized for both the source +code browser and the global error and warning counts. ---------------------------------------- @@ -1182,13 +1307,15 @@ browser and the global error and warning 1) ACPICA Core Subsystem: -Implemented support for multiple notify handlers. This change adds support +Implemented support for multiple notify handlers. This change adds +support to allow multiple system and device notify handlers on Device, Thermal Zone, and Processor objects. This can simplify the host OS notification implementation. -Also re-worked and restructured the entire notify support code to simplify +Also re-worked and restructured the entire notify support code to +simplify handler installation, handler removal, notify event queuing, and notify dispatch to handler(s). Note: there can still only be two global notify handlers - one for system notifies and one for device notifies. There are @@ -1229,7 +1356,8 @@ resource tags within resource descriptor StartDependent* descriptor. Reported by Petr Vandrovec. ACPICA BZ 949. -iASL and Preprocessor: Implemented full support for the #line directive to +iASL and Preprocessor: Implemented full support for the #line directive +to correctly track original source file line numbers through the .i preprocessor output file - for error and warning messages. @@ -1250,7 +1378,8 @@ ASL Test Suite (ASLTS): Reduce iASL warn Update for resource descriptor offset fix above. Update/cleanup error output routines. Enable and send iASL errors/warnings to an error logfile -(error.txt). Send all other iASL output to a logfile (compiler.txt). Fixed +(error.txt). Send all other iASL output to a logfile (compiler.txt). +Fixed several extraneous "unrecognized operator" messages. ---------------------------------------- @@ -1260,7 +1389,8 @@ several extraneous "unrecognized operato 1) ACPICA Core Subsystem: Enhanced the sleep/wake interfaces to optionally execute the _GTS method -(Going To Sleep) and the _BFS method (Back From Sleep). Windows apparently +(Going To Sleep) and the _BFS method (Back From Sleep). Windows +apparently does not execute these methods, and therefore these methods are often untested. It has been seen on some systems where the execution of these methods causes errors and also prevents the machine from entering S5. It @@ -1281,8 +1411,10 @@ early. The local FADT table length cannot be set to the common length until the original length has been examined. There is code that checks the table length -and sets various fields appropriately. This can affect older machines with -early FADT versions. For example, this can cause inadvertent writes to the +and sets various fields appropriately. This can affect older machines +with +early FADT versions. For example, this can cause inadvertent writes to +the CST_CNT register. Julian Anastasov. Fixed a mapping issue related to a physical table override. Use the @@ -1295,10 +1427,12 @@ Thomas Renninger, Bob Moore. Enhanced the automatic return-object repair code: Repair a common problem with -predefined methods that are defined to return a variable-length Package of +predefined methods that are defined to return a variable-length Package +of sub-objects. If there is only one sub-object, some BIOS ASL code mistakenly -simply returns the single object instead of a Package with one sub-object. +simply returns the single object instead of a Package with one sub- +object. This new support will repair this error by wrapping a Package object around the original object, creating the correct and expected Package with one @@ -1393,7 +1527,8 @@ method. Some machines require that the G method is executed. Thomas Renninger. -c) In AcpiLeaveSleepState, now always clear the WAK_STS (wake status) bit. +c) In AcpiLeaveSleepState, now always clear the WAK_STS (wake status) +bit. Some BIOS code assumes that WAK_STS will be cleared on resume and use it to determine whether the system is rebooting or resuming. Matthew Garrett. @@ -1429,7 +1564,8 @@ build of ACPICA that supports only the A model. See the ACPICA reference for details. ACPICA BZ 942. This option removes about -10% of the code and 5% of the static data, and the following hardware ACPI +10% of the code and 5% of the static data, and the following hardware +ACPI features become unavailable: PM Event and Control registers SCI interrupt (and handler) @@ -1442,7 +1578,8 @@ features become unavailable: Updated the unix tarball directory structure to match the ACPICA git source tree. This ensures that the generic unix makefiles work properly (in -generate/unix). Also updated the Linux makefiles to match. ACPICA BZ 867. +generate/unix). Also updated the Linux makefiles to match. ACPICA BZ +867. Updated the return value of the _REV predefined method to integer value 5 to @@ -1493,7 +1630,8 @@ the ACPICA reference for additional details. Adds one new file, utilities/utaddress.c. Lin Ming, Bob Moore. -Fixed several issues with the ACPI 5.0 FADT support: Add the sleep Control +Fixed several issues with the ACPI 5.0 FADT support: Add the sleep +Control and Status registers, update the ACPI 5.0 flags, and update internal data structures to handle an FADT larger than 256 bytes. The size of the ACPI @@ -1551,7 +1689,8 @@ summarized below. Reduced Hardware Support: ------------------------- -This support allows for ACPI systems without the usual ACPI hardware. This +This support allows for ACPI systems without the usual ACPI hardware. +This support is enabled by a flag in the revision 5 FADT. If it is set, ACPICA will not attempt to initialize or use any of the usual ACPI hardware. Note, @@ -1571,7 +1710,8 @@ ACPI Tables: ------------ All new tables and updates to existing tables are fully supported in the -ACPICA headers (for use by device drivers), the disassembler, and the iASL +ACPICA headers (for use by device drivers), the disassembler, and the +iASL Data Table Compiler. ACPI 5.0 defines these new tables: BGRT /* Boot Graphics Resource Table */ @@ -1597,7 +1737,8 @@ The new operation region Space IDs are: Resource Descriptors: --------------------- -All new ASL resource descriptors are fully supported by the iASL compiler, +All new ASL resource descriptors are fully supported by the iASL +compiler, the ASL/AML disassembler, and the ACPICA runtime Resource Manager code (including @@ -1615,15 +1756,18 @@ ASL/AML Operators, New and Modified: One new operator is added, the Connection operator, which is used to associate -a GeneralPurposeIo or GenericSerialBus resource descriptor with individual +a GeneralPurposeIo or GenericSerialBus resource descriptor with +individual field objects within an operation region. Several new protocols are associated with the AccessAs operator. All are fully supported by the iASL compiler, disassembler, and runtime ACPICA AML interpreter: - Connection // Declare Field Connection attributes + Connection // Declare Field Connection +attributes AccessAs: AttribBytes (n) // Read/Write N-Bytes Protocol - AccessAs: AttribRawBytes (n) // Raw Read/Write N-Bytes Protocol + AccessAs: AttribRawBytes (n) // Raw Read/Write N-Bytes +Protocol AccessAs: AttribRawProcessBytes (n) // Raw Process Call Protocol RawDataBuffer // Data type for Vendor Data fields @@ -1658,7 +1802,8 @@ drivers and other host OS services: AcpiAcquireMutex and AcpiReleaseMutex: These interfaces allow the host OS to acquire and release AML mutexes that are defined in the DSDT/SSDT tables -provided by the BIOS. They are intended to be used in conjunction with the +provided by the BIOS. They are intended to be used in conjunction with +the ACPI 5.0 _DLM (Device Lock Method) in order to provide transaction-level mutual exclusion with the AML code/interpreter. @@ -1705,7 +1850,8 @@ Non-ACPI 5.0 changes for this release: 1) ACPICA Core Subsystem: -Fix a problem with operation region declarations where a failure can occur +Fix a problem with operation region declarations where a failure can +occur if the region name and an argument that evaluates to an object (such as the region address) are in different namespace scopes. Lin Ming, ACPICA BZ @@ -1757,7 +1903,8 @@ now allowed after every grammar e iASL: Fixed some possible aliasing warnings during generation. ACPICA BZ 923. -Disassembler: Fix problem with disassembly of the DataTableRegion operator +Disassembler: Fix problem with disassembly of the DataTableRegion +operator where an inadvertent "Unhandled deferred opcode" message could be generated. @@ -1785,15 +1932,18 @@ Support for ACPI 5.0 in ACPICA has been will be released at the same time that ACPI 5.0 is officially released. -The ACPI 5.0 specification is on track for release in the next few months. +The ACPI 5.0 specification is on track for release in the next few +months. 1) ACPICA Core Subsystem: Fixed a problem where the maximum sleep time for the Sleep() operator was -intended to be limited to two seconds, but was inadvertently limited to 20 +intended to be limited to two seconds, but was inadvertently limited to +20 seconds instead. -Linux and Unix makefiles: Added header file dependencies to ensure correct +Linux and Unix makefiles: Added header file dependencies to ensure +correct generation of ACPICA core code and utilities. Also simplified the makefiles considerably through the use of the vpath variable to specify search @@ -1806,8 +1956,10 @@ iASL: Implemented support to check the a created to access named Resource Descriptor fields. For example, if a resource field is -defined to be two bits, a warning is issued if a CreateXxxxField() is used -with an incorrect bit length. This is implemented for all current resource +defined to be two bits, a warning is issued if a CreateXxxxField() is +used +with an incorrect bit length. This is implemented for all current +resource descriptor names. ACPICA BZ 930. Disassembler: Fixed a byte ordering problem with the output of 24-bit and @@ -1829,13 +1981,15 @@ AML output). Includes listings, hex file iASL: Added -G option to the table compiler to allow the compilation of custom -ACPI tables. The only part of a table that is required is the standard 36- +ACPI tables. The only part of a table that is required is the standard +36- byte ACPI header. AcpiXtract: Ported to the standard ACPICA environment (with ACPICA headers), -which also adds correct 64-bit support. Also, now all output filenames are +which also adds correct 64-bit support. Also, now all output filenames +are completely lower case. AcpiExec: Ignore any non-AML tables (tables other than DSDT or SSDT) when @@ -1844,7 +1998,8 @@ exception is an FADT. This also fixes a load non-AML tables. ACPICA BZ 932. -AcpiHelp: Added the AccessAs and Offset operators. Fixed a problem where a +AcpiHelp: Added the AccessAs and Offset operators. Fixed a problem where +a missing table terminator could cause a fault when using the -p option. AcpiSrc: Fixed a possible divide-by-zero fault when generating file @@ -1875,7 +2030,8 @@ Updated the predefined name repair mecha _TSS return object if a _PSS object is present. We can only sort the _TSS return -package if there is no _PSS within the same scope. This is because if _PSS +package if there is no _PSS within the same scope. This is because if +_PSS is present, the ACPI specification dictates that the _TSS Power Dissipation field @@ -1887,9 +2043,11 @@ is. Reported by, and fixed with assistan Added an option to globally disable the control method return value validation -and repair. This runtime option can be used to disable return value repair +and repair. This runtime option can be used to disable return value +repair if -this is causing a problem on a particular machine. Also added an option to +this is causing a problem on a particular machine. Also added an option +to AcpiExec (-dr) to set this disable flag. All makefiles and project files: Major changes to improve generation of @@ -1935,11 +2093,13 @@ provides the following functionality: of arguments, and the return value data type. Find/display AML opcode name(s) -- with opcode, arguments, and grammar. - Decode/display AML opcode -- with opcode name, arguments, and grammar. + Decode/display AML opcode -- with opcode name, arguments, and +grammar. Service Layers: Make multi-thread support configurable. Conditionally compile -the multi-thread support so that threading libraries will not be linked if +the multi-thread support so that threading libraries will not be linked +if not necessary. The only tool that requires multi-thread support is AcpiExec. @@ -1972,7 +2132,8 @@ signature. Now, only allow SSDT, OEMx, a interpreter errors and kernel faults. So now, we once again allow only SSDT, OEMx, and now, also a null signature. (05/2011). -Added the missing _TDL predefined name to the global name list in order to +Added the missing _TDL predefined name to the global name list in order +to enable validation. Affects both the core ACPICA code and the iASL compiler. @@ -2039,11 +2200,14 @@ device even if there is no corresponding EmbeddedControl. Fixes a problem seen on some machines and apparently is compatible with Windows behavior. ACPICA BZ 875. -Added more predefined methods that are eligible for automatic NULL package -element removal. This change adds another group of predefined names to the +Added more predefined methods that are eligible for automatic NULL +package +element removal. This change adds another group of predefined names to +the list of names that can be repaired by having NULL package elements dynamically -removed. This group are those methods that return a single variable-length +removed. This group are those methods that return a single variable- +length package containing simple data types such as integers, buffers, strings. This includes: _ALx, _BCL, _CID,_ DOD, _EDL, _FIX, _PCL, _PLD, _PMD, _PRx, @@ -2082,7 +2246,8 @@ data size. iASL/DTC: Major update for new grammar features. Allow generic data types in -custom ACPI tables. Field names are now optional. Any line can be split to +custom ACPI tables. Field names are now optional. Any line can be split +to multiple lines using the continuation char (\). Large buffers now use line- continuation character(s) and no colon on the continuation lines. See the @@ -2108,7 +2273,8 @@ region declaration in the same scope. If useful since it probably won't be executed. ACPICA BZ 915. -iASL/DTC: Finish support for expression evaluation. Added a new expression +iASL/DTC: Finish support for expression evaluation. Added a new +expression parser that implements c-style operator precedence and parenthesization. ACPICA bugzilla @@ -2129,10 +2295,12 @@ AcpiXtract: Fix for RSDP and dynamic SSD "unusual" headers in the acpidump file. Update the header validation to support these -tables. Problem introduced in previous AcpiXtract version in the change to +tables. Problem introduced in previous AcpiXtract version in the change +to support "wrong checksum" error messages emitted by acpidump utility. -iASL: Add a * option to generate all template files (as a synonym for ALL) +iASL: Add a * option to generate all template files (as a synonym for +ALL) as in "iasl -T *" or "iasl -T ALL". @@ -2158,7 +2326,8 @@ root object was passed to the AcpiSetupG Implemented support for "spurious" Global Lock interrupts. On some systems, a -global lock interrupt can occur without the pending flag being set. Upon a +global lock interrupt can occur without the pending flag being set. Upon +a GL interrupt, we now ensure that a thread is actually waiting for the lock before @@ -2188,7 +2357,8 @@ header files, disassembler, table compil Moore, Lin Ming. -AcpiXtract: Correctly handle embedded comments and messages from AcpiDump. +AcpiXtract: Correctly handle embedded comments and messages from +AcpiDump. Apparently some or all versions of acpidump will occasionally emit a comment like @@ -2209,8 +2379,10 @@ for a user-defined address space. This i 1) ACPI CA Core Subsystem: -Added a mechanism to defer _REG methods for some early-installed handlers. -Most user handlers should be installed before call to AcpiEnableSubsystem. +Added a mechanism to defer _REG methods for some early-installed +handlers. +Most user handlers should be installed before call to +AcpiEnableSubsystem. However, Event handlers and region handlers should be installed after AcpiInitializeObjects. Override handlers for the "default" regions should be @@ -2222,15 +2394,18 @@ Implemented an optimization for GPE dete simply ignore GPE registers that contain no enabled GPEs -- there is no need to read the register since this information is available internally. This -becomes more important on machines with a large GPE space. ACPICA bugzilla +becomes more important on machines with a large GPE space. ACPICA +bugzilla 884. Lin Ming. Suggestion from Joe Liu. -Removed all use of the highly unreliable FADT revision field. The revision +Removed all use of the highly unreliable FADT revision field. The +revision number in the FADT has been found to be completely unreliable and cannot be trusted. Only the actual table length can be used to infer the version. This -change updates the ACPICA core and the disassembler so that both no longer +change updates the ACPICA core and the disassembler so that both no +longer even look at the FADT version and instead depend solely upon the FADT length. @@ -2278,7 +2453,8 @@ global handlers. installation status -- default or user-installed handler will be used. -iASL: Warn if reserved method incorrectly returns a value. Many predefined +iASL: Warn if reserved method incorrectly returns a value. Many +predefined names are defined such that they do not return a value. If implemented as a method, issue a warning if such a name explicitly returns a value. ACPICA @@ -2311,7 +2487,8 @@ a single screen, instead of help subcomm Fixed a race condition between method execution and namespace walks that can possibly cause a fault. The problem was apparently introduced in version -20100528 as a result of a performance optimization that reduces the number +20100528 as a result of a performance optimization that reduces the +number of namespace walks upon method exit by using the delete_namespace_subtree function instead of the delete_namespace_by_owner function used @@ -2323,7 +2500,8 @@ Fixed several issues and a possible faul method support. History: This support changes a method to "serialized" on the fly if the method generates an AE_ALREADY_EXISTS error, indicating the -possibility that it cannot handle reentrancy. This fix repairs a couple of +possibility that it cannot handle reentrancy. This fix repairs a couple +of issues seen in the field, especially on machines with many cores: 1) Delete method children only upon the exit of the last thread, @@ -2380,7 +2558,8 @@ much larger code and data size. iASL: Added generic data types to the Data Table compiler. Add "generic" data -types such as UINT32, String, Unicode, etc., to simplify the generation of +types such as UINT32, String, Unicode, etc., to simplify the generation +of platform-defined tables such as UEFI. Lin Ming. iASL: Added listing support for the Data Table Compiler. Adds listing @@ -2407,15 +2586,18 @@ a handful of new interfaces: One new file, evxfgpe.c to consolidate all external GPE interfaces. See the ACPICA Programmer Reference for full details and programming -information. See the new section 4.4 "General Purpose Event (GPE) Support" +information. See the new section 4.4 "General Purpose Event (GPE) +Support" for a full overview, and section 8.7 "ACPI General Purpose Event Management" -for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin Ming, +for programming details. ACPICA BZ 858,870,877. Matthew Garrett, Lin +Ming, Bob Moore, Rafael Wysocki. Implemented a new GPE feature for Windows compatibility, the "Implicit Wake -GPE Notify". This feature will automatically issue a Notify(2) on a device +GPE Notify". This feature will automatically issue a Notify(2) on a +device when a Wake GPE is received if there is no corresponding GPE method or handler. ACPICA BZ 870. *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***