History log of /src/sys/external/bsd/acpica/dist/compiler/aslutils.c |
Revision | | Date | Author | Comments |
1.35 |
| 24-Aug-2025 |
christos | merge our changes into 20250807
|
1.34 |
| 24-Feb-2025 |
christos | merge conflicts between 2024-08-27 and 2024-12-12
|
1.33 |
| 01-Sep-2023 |
christos | branches: 1.33.6; merge conflicts between 20230628 and 20221020
|
1.32 |
| 27-Aug-2022 |
christos | merge conflicts between acpica-20211217 and acpica-20220331
|
1.31 |
| 18-Dec-2021 |
christos | merge changes from acpica-20210930 to acpica-20211217
|
1.30 |
| 28-Oct-2021 |
christos | merge conflicts between 2021-06-04 and 2021-09-30
|
1.29 |
| 06-Jul-2021 |
christos | merge changes for acpica-20210604
|
1.28 |
| 03-Apr-2021 |
christos | branches: 1.28.2; Merge local changes with acpica-20210331
|
1.27 |
| 27-Nov-2020 |
christos | branches: 1.27.2; merge conflicts
|
1.26 |
| 28-Mar-2020 |
christos | branches: 1.26.4; merge conflicts
|
1.25 |
| 14-Dec-2019 |
christos | merge conflicts
|
1.24 |
| 15-Oct-2019 |
christos | merge conflicts
|
1.23 |
| 29-Apr-2019 |
christos | merge conflicts
|
1.22 |
| 05-Jan-2019 |
christos | - merge conflicts - change default debug level to normal; the evaluation trace is too noisy
|
1.21 |
| 05-May-2018 |
christos | branches: 1.21.2; merge acpica 20180427
|
1.20 |
| 07-Apr-2018 |
christos | Merge conflicts; STA methods and fields are not present anymore.
|
1.19 |
| 12-Nov-2017 |
christos | branches: 1.19.2; merge conflicts
|
1.18 |
| 15-Sep-2017 |
christos | merge conflicts
|
1.17 |
| 06-Feb-2017 |
christos | Remove __DATE__! Intel really likes non-reprodible builds!
|
1.16 |
| 25-Jan-2017 |
christos | merge conflicts
|
1.15 |
| 11-Nov-2016 |
christos | branches: 1.15.2; Adjust to new acpica
|
1.14 |
| 04-May-2016 |
christos | branches: 1.14.2; merge new acpica
|
1.13 |
| 09-Jan-2016 |
christos | merge new acpica
|
1.12 |
| 18-Aug-2015 |
christos | merge conflicts
|
1.11 |
| 09-May-2015 |
christos | CID 1256503: Handle memory leak
|
1.10 |
| 13-Apr-2015 |
christos | resolve conflicts.
|
1.9 |
| 25-Oct-2014 |
christos | branches: 1.9.2; merge conflicts
|
1.8 |
| 22-Mar-2014 |
christos | kill sprintf
|
1.7 |
| 18-Jan-2014 |
apb | Use ACPI_DATE instead of __DATE__ in a version string that ends up in the iasl executable. ACPI_DATE is defined in sys/external/bsd/acpica/dist/include/acapps.h.
|
1.6 |
| 27-Dec-2013 |
christos | resolve conflicts
|
1.5 |
| 09-Feb-2013 |
christos | branches: 1.5.2; CVS/979999: missing va_end()
|
1.4 |
| 28-Jun-2011 |
jruoho | branches: 1.4.2; 1.4.12; Merge ACPICA 20110623.
|
1.3 |
| 17-Feb-2011 |
jruoho | branches: 1.3.2; 1.3.4; 1.3.8; Merge ACPICA 20110211.
|
1.2 |
| 17-Feb-2011 |
jruoho | Apply our local patches.
|
1.1 |
| 17-Feb-2011 |
jruoho | branches: 1.1.1; Initial revision
|
1.1.1.28 |
| 24-Aug-2025 |
christos | Import 20250807 (previous was 20241212)
|
1.1.1.27 |
| 24-Feb-2025 |
christos | Import new acpica-2024-12-12; previous one was 2024-08-27
|
1.1.1.26 |
| 01-Sep-2023 |
christos | Import acpica-20230628 (last was 20221020)
|
1.1.1.25 |
| 27-Aug-2022 |
christos | Import acpica-2022-03-31
|
1.1.1.24 |
| 28-Oct-2021 |
christos | 30 September 2021. Summary of changes for version 20210930:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
Hardware: Avoid evaluating methods too early during system resume. During wakeup from system-wide sleep states, AcpiGetSleepTypeData() is called and it tries to get memory from the OS in order to evaluate a control method, but if KFENCE is enabled in the Linux kernel, the memory allocation attempt causes an IRQ work to be queued and a self-IPI to be sent to the CPU running the code which requires the memory controller to be ready, so if that happens too early in the wakeup path, it doesn't work.
Prevent that from taking place by calling AcpiGetSleepTypeData() for S0 upfront, when preparing to enter a given sleep state, and saving the data obtained by it for later use during system wakeup.
Added a new _OSI string, "Windows 2020". Posted by superm1.
2) iASL Compiler/Disassembler and ACPICA tools:
iASL compiler: Updated the check for usage of _CRS, _DIS, _PRS, and _SRS objects: New/latest rules: Under a Device Object: 1) If _PRS is present, must have _CRS and _SRS 2) If _SRS is present, must have _PRS (_PRS requires _CRS and _SRS) 3) If _DIS is present, must have _SRS (_SRS requires _PRS, _PRS requires _CRS and _SRS) 4) If _SRS is present, probably should have a _DIS (Remark only)
iASL table disassembler: Added disassembly support for the NHLT ACPI table. Note: support for Vendor-defined microphone arrays and SNR extensions are not supported at this time -- mostly due to a lack of example tables. Actual compiler support for NHLT is forthcoming.
Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity. It uses the same subtable structure as the existing Generic Initiator Affinity type.
Added the flag for online capable in the MADT, introduced in ACPI 6.3. Posted by superm1.
3) ACPICA documentation: Updated the legal info (that appears at the start of the Documents) to clarify distribution rights that are granted.
30 July 2021. Summary of changes for version 20210730:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
2) iASL Compiler/Disassembler and ACPICA tools:
iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects (July 2021). Under the Device Object: 1) If _DIS is present, must have a _CRS and _SRS 2) If _PRS is present, must have a _CRS, _DIS, and _SRS 3) If _SRS is present, must have a _CRS and _DIS A warning will be issued for each of these cases. Note: For existing ASL/projects, these warnings may be disabled by specifying this on the command line: "-vw 3141"
iASL Table Disassembler/Table compiler: Fix for WPBT table with no command-line arguments. Handle the case where the Command-line Arguments table field does not exist (zero).
Headers: Add new DBG2 Serial Port Subtypes The Microsoft Debug Port Table 2 (DBG2) specification revision September 21, 2020 comprises additional Serial Port Subtypes [1]. Reflect that in the actbl1.h header file. Submitted by: semihalf-wojtas-marcin
iASL: Add full support for the AEST table (data compiler) Includes support in the table compiler and the disassembler.
Add PRMT module header to facilitate parsing. This structure is used in to parse PRMT in other Operating Systems that relies on using subtable headers in order to parse ACPI tables. Although the PRMT doesn't have "subtables" it has a list of module information structures that act as subtables.
iASL: Table disassembler: Add missing strings to decode subtable types. Includes the MADT and CEDT tables.
|
1.1.1.23 |
| 06-Jul-2021 |
christos | Import acpica-20210604
|
1.1.1.22 |
| 03-Apr-2021 |
christos | 31 March 2021. Summary of changes for version 20210331:
This release is available at https://acpica.org/downloads, and includes all ACPI 6.4 support
1) ACPICA kernel-resident subsystem: ACPI 6.4: iASL: deprecate DDBHandleObj keyword Always create namespace nodes using AcpiNsCreateNode(). ACPICA is allocating an object using kmalloc(), but then frees it using kmem_cache_free(<"Acpi-Namespace" kmem_cache>). This is wrong. Fixed a race condition in generic serial bus operation region handler. Fixed by Hans de Goede.
2) iASL Compiler/Disassembler and ACPICA tools:
ACPI 6.4: NFIT: add Location Cookie field ACPI 6.4: HMAT: add new fields/flags ACPI 6.4: Add new flags in SRAT ACPI 6.4: add SDEV secure access components ACPI 6.4: add Csi2Bus resource template ACPI 6.4: add support for PHAT table ACPI 6.4: add support for PMTT table Add disassembly support for the IVRS table. Compilation of the table is not yet complete. Fixed a potential infinite loop due to type mismatch. The for-loop is using a UINT8 counter and comparing the upper limit against a UINT32 AslGbl_ExpectedMessagesIndex maximum. In the case where AslGbl_ExpectedMessagesIndex is > 255 the counter i will wrap around to zero and the loop will never exit. I suspect the AslGbl_ExpectedMessagesIndex is never that high, but fixing this does future proof the code and cleans up static analysis warnings.Colin King.
iASL/TableCompiler: update it with IORT table E.b revision changes. From shamiali2008. iASL/TableCompiler: Add compilation support for the VIOT table. Signed-off-by: Jean-Philippe Brucker. iASL/TableCompiler: Add compilation support for CEDT table. Also, update the CEDT template.
|
1.1.1.21 |
| 27-Nov-2020 |
christos | 13 November 2020. Summary of changes for version 20201113:
This release is available at https://acpica.org/downloads
1) ACPICA kernel-resident subsystem:
Interpreter: fixed a memory leak by using use existing buffer in _HID repair. There was a memory leak that occurred when a _CID object is defined as a package containing string objects. When _CID is checked for any possible repairs, it calls a helper function to repair _HID (because _CID basically contains multiple _HID entries). The _HID repair function assumes that string objects are standalone objects that are not contained inside of any packages. The _HID repair function replaced the string object with a brand new object and attempted to delete the old object by decrementing the reference count of the old object. Strings inside of packages have a reference count of 2 so the _HID repair function leaves this object in a dangling state and causes a memory leak. Instead of allocating a brand new object and removing the old object, use the existing object when repairing the _HID object.
Added function trace macros to improve namespace debugging. The namespace repair mechanism does not have function tracing macros. Add several trace macros to improve debuggability.
Handle "orphan" _REG methods for GPIO OpRegions. Before this change AcpiEvExecuteRegMethods() had special handling to handle "orphan" (no matching OpRegion declared) _REG methods for EC nodes. On Intel Cherry Trail devices there are 2 possible ACPI OpRegions for accessing GPIOs. The standard GeneralPurposeIo OpRegion and the Cherry Trail - specific UserDefined 0x9X OpRegions. Having 2 different types of OpRegions leads to potential issues with checks for OpRegion availability, or in other words checks if _REG has been called for the OpRegion which the ACPI code wants to use. Except for the "orphan" EC handling, ACPICA core does not call _REG on an ACPI node which does not define an OpRegion matching the type being registered; and the reference design DSDT, from which most Cherry Trail DSDTs are derived, does not define GeneralPurposeIo, nor UserDefined(0x93) OpRegions for the GPO2 (UID 3) device, because no pins were assigned ACPI controlled functions in the reference design. Together this leads to the perfect storm, at least on the Cherry Trail based Medion Akayo E1239T. This design does use a GPO2 pin from its ACPI code and has added the Cherry Trail specific UserDefined(0x93) opregion to its GPO2 ACPI node to access this pin. But it uses a "has _REG been called" availability check for the standard GeneralPurposeIo OpRegion. This clearly is a bug in the DSDT, but this does work under Windows. This issue leads to the intel vbtn driver reporting the device always being in tablet-mode at boot, even if it is in laptop mode. Which in turn causes userspace to ignore touchpad events. So in other words, this issue causes the touchpad to not work at boot. This change fixes this by extending the "orphan" _REG method handling to also apply to GPIO address-space handlers.
2) iASL Compiler/Disassembler and ACPICA tools:
iASL: Added more info to namespace dump file (-ln option). In a separate section of the dump file (after the main namespace dump), emit the full pathname for each namespace node, its type, and the ASL filename and line number where it is declared.
AcpiHelp: Added an option to display/decode iASL exceptions. Option is: -x [Hex Value] where "Hex Value" is the iASL exception code. If Hex Value is omitted, all iASL exceptions are displayed.
iASL: Use StringLiteral instead of StringData for some ASL macros. The use of the stringData rule allows for some "string" oriented opcodes (Such as ToString, ToHexString, etc.) None of which make sense with the macros in question. This change modifies the StringData part of the rule for these macros to a simple string literal - thus disallowing the use of ToString, ToHexString, etc. The following ASL operators (macros) are affected: EisaId Fprintf Printf ToUuid Unicode Note: The MS compiler requires the use of string literals for these operators also.
iASL: Added a remark for an unknown UUID: ASL_MSG_UUID_NOT_FOUND. Search the list of "known" UUIDs for the input to the ToUUID macro.
Added 5 new UUIDs to the known UUID table. All related to NVDIMM and the NFIT table.
|
1.1.1.20 |
| 28-Mar-2020 |
christos |
|
1.1.1.19 |
| 14-Dec-2019 |
christos |
|
1.1.1.18 |
| 15-Oct-2019 |
christos |
|
1.1.1.17 |
| 29-Apr-2019 |
christos |
|
1.1.1.16 |
| 05-Jan-2019 |
christos | 13 December 2018. Summary of changes for version 20181213:
1) ACPICA Kernel-resident Subsystem:
Fixed some buffer length issues with the GenericSerialBus, related to two of the bidirectional protocols: AttribRawProcessBytes and AttribRawBytes, which are rarely seen in the field. For these, the LEN field of the ASL buffer is now ignored. Hans de Goede
Implemented a new object evaluation trace mechanism for control methods and data objects. This includes nested control methods. It is particularly useful for examining the ACPI execution during system initialization since the output is relatively terse. The flag below enables the output of the trace via the ACPI_DEBUG_PRINT_RAW interface: #define ACPI_LV_EVALUATION 0x00080000
Examples: Enter evaluation : _SB.PCI0._INI (Method) Exit evaluation : _SB.PCI0._INI Enter evaluation : _OSI (Method) Exit evaluation : _OSI Enter evaluation : _SB.PCI0.TEST (Method) Nested method call : _SB.PCI0.NST1 Exit nested method : _SB.PCI0.NST1 Exit evaluation : _SB.PCI0.TEST
Added two recently-defined _OSI strings. See https://docs.microsoft.com/en-us/windows-hardware/drivers/acpi/winacpi- osi. "Windows 2018" "Windows 2018.2"
Update for buffer-to-string conversions via the ToHexString ASL operator. A "0x" is now prepended to each of the hex values in the output string. This provides compatibility with other ACPI implementations. The ACPI specification is somewhat vague on this issue. Example output string after conversion: "0x01,0x02,0x03,0x04,0x05,0x06"
Return a run-time error for TermArg expressions within individual package elements. Although this is technically supported by the ASL grammar, other ACPI implementations do not support this either. Also, this fixes a fault if this type of construct is ever encountered (it never has been).
2) iASL Compiler/Disassembler and Tools:
iASL: Implemented a new compile option (-ww) that will promote individual warnings and remarks to errors. This is intended to enhance the firmware build process.
AcpiExec: Implemented a new command-line option (-eo) to support the new object evaluation trace mechanism described above.
Disassembler: Added support to disassemble OEMx tables as AML/ASL tables instead of a "unknown table" message.
AcpiHelp: Improved support for the "special" predefined names such as _Lxx, _Exx, _EJx, _T_x, etc. For these, any legal hex value can now be used for "xx" and "x".
|
1.1.1.15 |
| 04-May-2018 |
christos |
|
1.1.1.14 |
| 07-Apr-2018 |
christos |
|
1.1.1.13 |
| 12-Nov-2017 |
christos |
|
1.1.1.12 |
| 15-Sep-2017 |
christos |
|
1.1.1.11 |
| 25-Jan-2017 |
christos | One more time in the right place...
|
1.1.1.10 |
| 11-Nov-2016 |
christos | Import acpica-20160930:
|
1.1.1.9 |
| 04-May-2016 |
christos | 22 April 2016. Summary of changes for version 20160422:
1) ACPICA kernel-resident subsystem:
Fixed a regression in the GAS (generic address structure) arbitrary bit support in AcpiHwRead/AcpiHwWrite. Problem could cause incorrect behavior and incorrect return values. Lv Zheng. ACPICA BZ 1270.
ACPI 6.0: Added support for new/renamed resource macros. One new argument was added to each of these macros, and the original name has been deprecated. The AML disassembler will always disassemble to the new names. Support for the new macros was added to iASL, disassembler, resource manager, and the acpihelp utility. ACPICA BZ 1274.
I2cSerialBus -> I2cSerialBusV2 SpiSerialBus -> SpiSerialBusV2 UartSerialBus -> UartSerialBusV2
ACPI 6.0: Added support for a new integer field that was appended to the package object returned by the _BIX method. This adds iASL compile-time and AML runtime error checking. ACPICA BZ 1273.
ACPI 6.1: Added support for a new PCCT subtable, "HW-Reduced Comm Subspace Type2" (Headers, Disassembler, and data table compiler).
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: 137.4K Code, 52.6K Data, 190.0K Total Debug Version: 201.5K Code, 82.2K Data, 283.7K Total Previous Release: Non-Debug Version: 137.1K Code, 51.5K Data, 188.6K Total Debug Version: 201.0K Code, 82.0K Data, 283.0K Total
2) iASL Compiler/Disassembler and Tools:
iASL: Implemented an ASL grammar extension to allow/enable executable "module-level code" to be created and executed under the various operators that create new scopes. This type of AML code is already supported in all known AML interpreters, and the grammar change will appear in the next version of the ACPI specification. Simplifies the conditional runtime creation of named objects under these object types:
Device PowerResource Processor Scope ThermalZone
iASL: Implemented a new ASL extension, a "For" loop macro to add greater ease-of-use to the ASL language. The syntax is similar to the corresponding C operator, and is implemented with the existing AML While opcode -- thus requiring no changes to existing AML interpreters.
For (Initialize, Predicate, Update) {TermList}
Grammar: ForTerm := For ( Initializer // Nothing | TermArg => ComputationalData Predicate // Nothing | TermArg => ComputationalData Update // Nothing | TermArg => ComputationalData ) {TermList}
iASL: The _HID/_ADR detection and validation has been enhanced to search under conditionals in order to allow these objects to be conditionally created at runtime.
iASL: Fixed several issues with the constant folding feature. The improvement allows better detection and resolution of statements that can be folded at compile time. ACPICA BZ 1266.
iASL/Disassembler: Fixed a couple issues with the Else{If{}...} conversion to the ASL ElseIf operator where incorrect ASL code could be generated.
iASL/Disassembler: Fixed a problem with the ASL+ code disassembly where sometimes an extra (and extraneous) set of parentheses were emitted for some combinations of operators. Although this did not cause any problems with recompilation of the disassembled code, it made the code more difficult to read. David Box. ACPICA BZ 1231.
iASL: Changed to ignore the unreferenced detection for predefined names of resource descriptor elements, when the resource descriptor is created/defined within a control method.
iASL: Disassembler: Fix a possible fault with externally declared Buffer objects.
|
1.1.1.8 |
| 09-Jan-2016 |
christos | import new acpica:
|
1.1.1.7 |
| 18-Aug-2015 |
christos |
|
1.1.1.6 |
| 13-Apr-2015 |
christos |
|
1.1.1.5 |
| 25-Oct-2014 |
christos |
|
1.1.1.4 |
| 27-Dec-2013 |
christos | import new acpica
|
1.1.1.3 |
| 28-Jun-2011 |
jruoho | Import ACPICA 20110623.
Selected changes since 20110211 include, among other things, fixes to _PRW parsing, fix to a regression with the Load() operator, improvements in NULL package element removal, support for "spurious" global lock interrupts, execution of orphaned _REG methods under acpiec(4), and smaller iasl(8) improvements.
|
1.1.1.2 |
| 17-Feb-2011 |
jruoho | Import 20110211.
|
1.1.1.1 |
| 17-Feb-2011 |
jruoho | Reimport ACPICA 20100528 to a new location.
|
1.3.8.2 |
| 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.3.8.1 |
| 17-Feb-2011 |
jruoho | file aslutils.c was added on branch jruoho-x86intr on 2011-06-06 09:08:51 +0000
|
1.3.4.2 |
| 05-Mar-2011 |
rmind | sync with head
|
1.3.4.1 |
| 17-Feb-2011 |
rmind | file aslutils.c was added on branch rmind-uvmplock on 2011-03-05 20:54:25 +0000
|
1.3.2.2 |
| 17-Feb-2011 |
bouyer | Sync with HEAD
|
1.3.2.1 |
| 17-Feb-2011 |
bouyer | file aslutils.c was added on branch bouyer-quota2 on 2011-02-17 12:00:20 +0000
|
1.4.12.3 |
| 03-Dec-2017 |
jdolecek | update from HEAD
|
1.4.12.2 |
| 20-Aug-2014 |
tls | Rebase to HEAD as of a few days ago.
|
1.4.12.1 |
| 25-Feb-2013 |
tls | resync with head
|
1.4.2.1 |
| 22-May-2014 |
yamt | sync with head.
for a reference, the tree before this commit was tagged as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid a limitation of cvs. ("Protocol error: too many arguments")
|
1.5.2.1 |
| 18-May-2014 |
rmind | sync with head
|
1.9.2.7 |
| 28-Aug-2017 |
skrll | Sync with HEAD
|
1.9.2.6 |
| 05-Feb-2017 |
skrll | Sync with HEAD
|
1.9.2.5 |
| 05-Dec-2016 |
skrll | Sync with HEAD
|
1.9.2.4 |
| 29-May-2016 |
skrll | Sync with HEAD
|
1.9.2.3 |
| 19-Mar-2016 |
skrll | Sync with HEAD
|
1.9.2.2 |
| 22-Sep-2015 |
skrll | Sync with HEAD
|
1.9.2.1 |
| 06-Jun-2015 |
skrll | Sync with HEAD
|
1.14.2.2 |
| 20-Mar-2017 |
pgoyette | Sync with HEAD
|
1.14.2.1 |
| 07-Jan-2017 |
pgoyette | Sync with HEAD. (Note that most of these changes are simply $NetBSD$ tag issues.)
|
1.15.2.1 |
| 21-Apr-2017 |
bouyer | Sync with HEAD
|
1.19.2.3 |
| 18-Jan-2019 |
pgoyette | Synch with HEAD
|
1.19.2.2 |
| 21-May-2018 |
pgoyette | Sync with HEAD
|
1.19.2.1 |
| 16-Apr-2018 |
pgoyette | Sync with HEAD, resolve some conflicts
|
1.21.2.2 |
| 13-Apr-2020 |
martin | Mostly merge changes from HEAD upto 20200411
|
1.21.2.1 |
| 10-Jun-2019 |
christos | Sync with HEAD
|
1.26.4.2 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.26.4.1 |
| 14-Dec-2020 |
thorpej | Sync w/ HEAD.
|
1.27.2.1 |
| 03-Apr-2021 |
thorpej | Sync with HEAD.
|
1.28.2.1 |
| 01-Aug-2021 |
thorpej | Sync with HEAD.
|
1.33.6.1 |
| 02-Aug-2025 |
perseant | Sync with HEAD
|