From 30e8720f76b3731f93bea5c124b00f8ec7582efe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Wed, 7 Jun 2023 07:45:11 +0200 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 acpica revision fda1e8a0cbd29eb9647903187963aa22 --- .gitattributes | 23 + acpi_genl.tar.bz2 | 3 + acpi_validate | 201 ++++++ acpica-no-compiletime.patch | 46 ++ acpica-unix-20221020.tar_0.gz | 3 + acpica.changes | 880 +++++++++++++++++++++++++++ acpica.spec | 120 ++++ do_not_use_build_date_and_time.patch | 160 +++++ ec_access.c | 240 ++++++++ wmidump-20211011.tar.xz | 3 + wmidump_add_she_bang.patch | 14 + 11 files changed, 1693 insertions(+) create mode 100644 .gitattributes create mode 100644 acpi_genl.tar.bz2 create mode 100644 acpi_validate create mode 100644 acpica-no-compiletime.patch create mode 100644 acpica-unix-20221020.tar_0.gz create mode 100644 acpica.changes create mode 100644 acpica.spec create mode 100644 do_not_use_build_date_and_time.patch create mode 100644 ec_access.c create mode 100644 wmidump-20211011.tar.xz create mode 100644 wmidump_add_she_bang.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fecc750 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/acpi_genl.tar.bz2 b/acpi_genl.tar.bz2 new file mode 100644 index 0000000..8f6a2cd --- /dev/null +++ b/acpi_genl.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b459c51ca9696dac309f7d2bb34138edeebc9ab8ac021e18f293485268f796a +size 7050 diff --git a/acpi_validate b/acpi_validate new file mode 100644 index 0000000..40701bf --- /dev/null +++ b/acpi_validate @@ -0,0 +1,201 @@ +#!/bin/bash +# +# Copyright (c) 2012 SUSE Linux Products GmbH +# Thomas Renninger +# +# This program is free software; you can redistribute it and/or modify it +# under the terms and conditions of the GNU General Public License, +# version 2, as published by the Free Software Foundation. +# +# This program is distributed in the hope it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for +# more details. +# +# You should have received a copy of the GNU General Public License along with +# this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. +# + +OUTPUT_DIR="$PWD" +VERBOSE=0 +# Disable remarks and resource checks. The latter often/mostly generates +# false positive warnings. Can be overridden via -c option +COMPILE_OPTIONS="-sa -cr -vr -in" +DISASSEMBLE_OPTIONS="-in" +OUTPUT="/dev/null" +ACPIDUMP="" +MUST_BE_ROOT=1 + +function usage() +{ + echo "acpi_validate [ -o output_dir ] [ -v ] [ -a acpidump ]" + echo " [ -c compile_options ] [ -d disassemble_options ]" + echo + echo "This tool extracts, disassembles and recompiles ACPI BIOS tables." + echo "The disassembled files will be copied into the local or specified" + echo "output directory (-o option)." + echo + echo "The underlying iasl compiler verifies and may complain about" + echo "correctness of some of the BIOS tables." + echo "These can give a pointer to possible malfunction of the system." + echo + echo "If you think you found a bug in the iasl compiler or related tools," + echo "you can ask here for help: devel@acpica.org" + echo "You may also want to ask there if you are not sure whether it really" + echo "is a BIOS bug." + echo + echo "If you are sure you found a BIOS issue, complain to your hardware vendor." + echo "The iasl compiler typically provides a description of the warning/error in a way," + echo "so that BIOS authors can easily fix it." + echo + echo "Options" + echo " -o output_dir: Copy tables to this directory instead of local one" + echo " -v: : be more verbose" + echo " -a acpidump : Use this acpidump file" + echo " instead of the tables from the local machine" + echo " -d options : Pass iasl disassemble options" + echo " -c options : Pass iasl compile options" + echo " will override -sa -cr -vr (default options)" + echo " -h : Show help" + exit 1 +} + +while getopts hva:o:c:d: name ; do + case $name in + o) + OUTPUT_DIR="$OPTARG" + if [ ! -d "$OUTPUT_DIR" ];then + mkdir "$OUTPUT_DIR" + if [[ $? != 0 ]];then + echo "Cannot create directory $OUTPUT_DIR" + exit 1 + fi + elif [ ! -w "$OUTPUT_DIR" ];then + echo "Cannot write into directory $OUTPUT_DIR" + exit 1 + fi + + [[ $VERBOSE == 1 ]] && echo "Installing for architecture: $OUTPUT_DIR" + ;; + a) + ACPIDUMP="$OPTARG" + if [ ! -r "$ACPIDUMP" ];then + echo "$ACPIDUMP does not exist" + exit 1 + fi + [[ $VERBOSE == 1 ]] && echo "acpidump file: $ACPIDUMP" + MUST_BE_ROOT=0 + ;; + c) + COMPILE_OPTIONS="$OPTARG" + [[ $VERBOSE == 1 ]] && echo "Compile options: $COMPILE_OPTIONS" + ;; + c) + DISASSEMBLE_OPTIONS="$OPTARG" + [[ $VERBOSE == 1 ]] && echo "Disassemble options: $DISASSEMBLE_OPTIONS" + ;; + v) + VERBOSE=1 + OUTPUT="1" + ;; + ?) + usage + ;; + esac +done +shift $(($OPTIND -1)) + +if [[ $MUST_BE_ROOT == 1 ]] && [ "$(id -u)" != "0" ]; then + echo "This script must be run as root" + echo "(or use -a acpidump option and pass already dumped acpi tables)" + exit 1 +fi + +shopt -s nocasematch +TEMP_DIR=$(mktemp -d) +[[ $VERBOSE == 1 ]] && echo "Using temporary directory: $TEMP_DIR" + +if [ -r "$ACPIDUMP" ];then + cp "$ACPIDUMP" "$TEMP_DIR"/acpidump +fi + +pushd "$TEMP_DIR" >/dev/null + +mkdir log +mkdir err +if [ ! -r acpidump ];then + acpidump >acpidump +fi +acpixtract -a acpidump >&$OUTPUT 2>&1 + + +# ACPICA changed from uppercase to lowercase, try to find both: +SDTs=$(ls [SD]DST*.dat 2>/dev/null) +SDTs="${SDTs}$(ls [sd]sdt*.dat 2>/dev/null)" + +for file in *.dat;do + table=${file/.dat/} + # Enable case insensitive pattern matching + + case $file in + [DS]SDT*.dat | [sd]sdt*.dat) + # Use other [sd]sdt*.dat tables to reference possible + # external symbols. Pass the table itself for disassembling + # comma separted. + # For example you we have: + # dsdt.dat ssdt1 ssdt2.dat + # and the current table to disassemble is ssdt1.dat the + # command has to be: + # iasl -e dsdt.dat,ssdt2.dat -d ssdt1.dat + + # Get rid of the table which gets disassembled + # could have leading or trailing whitespace depending whether + # it is at the end or the beginning of the list + REF_TABLE_LIST=${SDTs/[[:space:]]$file/} + REF_TABLE_LIST=${REF_TABLE_LIST/$file[[:space:]]/} + # Convert the whitespace list into a comma separated one: + REF_TABLE_LIST=${REF_TABLE_LIST//[[:space:]]/,} + if [ "$REF_TABLE_LIST" != "" ];then + FINAL_DISASSEMBLE_OPTIONS="-e ${REF_TABLE_LIST} $DISASSEMBLE_OPTIONS" + else + FINAL_DISASSEMBLE_OPTIONS="$DISASSEMBLE_OPTIONS" + fi + echo "stdout and stderr of $file disassembling:" >log/${table}.log + [[ $VERBOSE == 1 ]] && echo "iasl $FINAL_DISASSEMBLE_OPTIONS -d $file 1>>log/${table}.log 2>&1" + iasl $FINAL_DISASSEMBLE_OPTIONS -d $file 1>>log/${table}.log 2>&1 + [[ $VERBOSE == 1 ]] && echo "iasl $COMPILE_OPTIONS ${table}.dsl 1>>log/${table}.log 2>>err/${table}.err" + iasl $COMPILE_OPTIONS ${table}.dsl 1>>log/${table}.log 2>>err/${table}.err + ;; + *.dat) + iasl -d $file 1>log/${table}.log 2>&1 + iasl -sa ${table}.dsl 1>log/${table}.log 2>err/${table}.err + ;; + esac +done + +# remove empty error files +rm $(find err -size 0) +ERR_TABLES=$(ls err) +ERR_TABLES=${ERR_TABLES//.err/} + +popd >/dev/null +cp -r "$TEMP_DIR"/* "$OUTPUT_DIR" + +if [[ $VERBOSE == 1 ]];then + echo "Temporary directory (undeleted): $TEMP_DIR" +else + rm -rf "$TEMP_DIR" +fi + +if [ "$ERR_TABLES" = "" ];then + echo "No errors or warnings detected" + exit 0 +else + echo "These tables have warnings or errors (details in "$OUTPUT_DIR"/err directory):" + for err in $ERR_TABLES;do + echo -n $err $'\t' + sed -n -e 's/Compilation complete. \(.* Errors, .* Warnings\).*/\1/p' "$OUTPUT_DIR"/log/$err.log + done + exit 1 +fi diff --git a/acpica-no-compiletime.patch b/acpica-no-compiletime.patch new file mode 100644 index 0000000..44b40de --- /dev/null +++ b/acpica-no-compiletime.patch @@ -0,0 +1,46 @@ +diff -ur acpica-unix-20200528.orig/source/compiler/aslcompile.c acpica-unix-20200528/source/compiler/aslcompile.c +--- acpica-unix-20200528.orig/source/compiler/aslcompile.c 2020-07-02 23:06:04.925335370 +0200 ++++ acpica-unix-20200528/source/compiler/aslcompile.c 2020-07-02 23:16:10.095860566 +0200 +@@ -648,8 +648,6 @@ + AslCompilerFileHeader ( + UINT32 FileId) + { +- char *NewTime; +- time_t Aclock; + char *Prefix = ""; + + +@@ -692,18 +690,10 @@ + + /* Compilation header with timestamp */ + +- Aclock = time (NULL); +- NewTime = ctime (&Aclock); +- + FlPrintFile (FileId, +- "%sCompilation of \"%s\" -", ++ "%sCompilation of \"%s\"\n", + Prefix, AslGbl_Files[ASL_FILE_INPUT].Filename); + +- if (NewTime) +- { +- FlPrintFile (FileId, " %s%s\n", NewTime, Prefix); +- } +- + switch (FileId) + { + case ASL_FILE_C_SOURCE_OUTPUT: +diff -ur acpica-unix-20200528.orig/source/compiler/aslutils.c acpica-unix-20200528/source/compiler/aslutils.c +--- acpica-unix-20200528.orig/source/compiler/aslutils.c 2020-07-02 23:06:04.929335334 +0200 ++++ acpica-unix-20200528/source/compiler/aslutils.c 2020-07-02 23:18:46.898454693 +0200 +@@ -595,8 +595,8 @@ + { + /* Compiler name and version number */ + +- FlPrintFile (FileId, "%s version %X [%s]\n\n", +- ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION, __DATE__); ++ FlPrintFile (FileId, "%s version %X\n\n", ++ ASL_COMPILER_NAME, (UINT32) ACPI_CA_VERSION); + } + + /* Summary of main input and output files */ diff --git a/acpica-unix-20221020.tar_0.gz b/acpica-unix-20221020.tar_0.gz new file mode 100644 index 0000000..1a35b9f --- /dev/null +++ b/acpica-unix-20221020.tar_0.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33a2e394aca0ca57d4018afe3da340dfad5eb45b1b9300e81dd595fda07cf1c5 +size 1920483 diff --git a/acpica.changes b/acpica.changes new file mode 100644 index 0000000..5b8ce72 --- /dev/null +++ b/acpica.changes @@ -0,0 +1,880 @@ +------------------------------------------------------------------- +Tue Dec 27 23:13:22 UTC 2022 - Ferdinand Thiessen + +- Update to version 20221020: + * Added support for FFH (Fixed Function Hardware) Operation Region + special context data. + * Reverted commit "executer/exsystem: Warn about sleeps greater than 10 ms." + Due to user complaints about valid sleeps greater than 10ms seen + in some existing machines -- generating lots of warnings. + * Do not touch VGA memory when EBDA < 1KiB. + * Check that EBDA pointer is in valid memory. + * Completed the existing partial support for the CDAT "table". + * Updated support for the IORT table - update to version E.e + * Added CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table + * iASL: Added CCEL table to both compiler/disassembler. + * iASL: NHLT table: Fixed compilation of optional undocumented fields + * iASL: Fix iASL compile error due to ACPI_TDEL_OFFSET. + +------------------------------------------------------------------- +Fri Oct 14 13:32:53 UTC 2022 - Thomas Renninger + +- This version includes CEDT table support as requested in feature + (SLE 15 SP5): + jsc#PED-201 + +------------------------------------------------------------------- +Thu Apr 21 21:02:11 UTC 2022 - Ferdinand Thiessen + +- Update bundled wmidump to latest upstream 2021-10-11: + * Add support for '//' comments + * Print object_id or notify_id based on ACPI_WMI_EVENT flag + object_id and notify_id member are in one union. It depends on + ACPI_WMI_EVENT flag which member is stored in this union. + So print only one member based on ACPI_WMI_EVENT flag. +- Add comment about origin of the wmidump sources + +------------------------------------------------------------------- +Wed Apr 20 20:02:38 UTC 2022 - Dirk Müller + +- update to 20220331: + For the ASL Sleep() operator, issue a warning if the sleep value is + greater than 10 Milliseconds. Quick boottime is important, so warn about + sleeps greater than 10 ms. Distribution Linux kernels reach initrd in 350 + ms, so excessive delays should be called out. 10 ms is chosen randomly, + but three of such delays would already make up ten percent of the + boottime. + + Namespace: Avoid attempting to walk the Namespace if the Namespace does + not exist. + + AML interpreter/iASL compiler: Add new Acpi 6.4 semantics for the + LoadTable and Load operators. DDB_HANDLE is gone, now loadtable returns a + pass/fail integer. Now load returns a pass/fail integer, as well as + storing the return value in an optional 2nd argument. + + Headers: Use uintptr_t and offsetof() in Linux kernel builds. To avoid + "performing pointer subtraction with a null pointer has undefined + behavior" compiler warnings, use uintptr_t and offsetof() that are always + available during Linux kernel builds to define ACPI_UINTPTR_T and the + ACPI_TO_INTEGER() and ACPI_OFFSET() macros when building the ACPICA code + in the Linux kernel. + + Added support for the Windows 11 _OSI string ("Windows 2021"). Submitted + by superm1. + + executer/exsystem: Inform users about ACPI spec violation for the Stall() + operator. Values greater than 100 microseconds violate the ACPI + specification, so warn users about it. From the ACPI Specification + version 6.2 Errata A, 19.6.128 *Stall (Stall for a Short Time)*: + The implementation of Stall is OS-specific, but must not relinquish + control of the processor. Because of this, delays longer than 100 + microseconds must use Sleep instead of Stall. + + Data Table Compiler/Disassembler: Add support for the APMT table - ARM + Performance Monitoring Unit table. Submitted by @bwicaksononv. + + Data Table Compiler/Disassembler: For MADT, add support for the OEM- + defined subtables (Types 0x80-0x7F). + + Data Table Compiler: Fixed a problem with support for the SDEV table, + where a subtable Length was not computed correctly. + + Data Table Compiler/Disassembler: Add/fix the CFMWS subtable to the CEDT + Acpi table support. + + Data Table Compiler/Disassembler: Fix a compile issue with the CEDT and + add template. Submitted by MasterDrogo. + + Data Table Compiler/Disassembler: NHLT Changes provided by Piotr Maziarz: + iASL/NHLT: Rename linux specific structures to DeviceInfo to improve + readability of the code. + iASL/NHLT: Fix parsing undocumented bytes at the end of Endpoint. + Undocumented bytes at the end of Endpoint Descriptor can be present + independently of Linux-specific structures. Their size can also vary. + iASL/NHLT: Treat TableTerminator as SpecificConfig. SpecificConfig has 4 + bytes of size and then an amount of bytes specified by size. All of the + terminators that I've seen had a size equal to 4, but theoretically it + can vary. + + iASL/AcpiExec: Use _exit instead of exit in signal handers (ctrl-C). + + iASL: Remove a remark due to excessive output. Removed a remark for + duplicate Offset() operators, due to a user complaint. + +------------------------------------------------------------------- +Sat Feb 5 14:39:59 UTC 2022 - Dario Faggioli + +- The package build fine on arches different than x86 and ARM. Drop + the ExclusiveArch. + +------------------------------------------------------------------- +Tue Oct 19 14:34:07 UTC 2021 - Ferdinand Thiessen + +- Update to version 20210930 + * ACPICA kernel-resident subsystem: + * Avoid evaluating methods too early during system resume. + * Added a new _OSI string, "Windows 2020". + * iASL Compiler/Disassembler and ACPICA tools: + * iASL compiler: Updated the check for usage of _CRS, _DIS, + _PRS, and _SRSobjects + * iASL table disassembler: Added disassembly support for the + NHLT ACPI table. + * Added a new subtable type for ACPI 6.4 SRAT Generic Port Affinity + * Added the flag for online capable in the MADT, introduced in + ACPI 6.3. +- Update to version 20210730: + * iASL Compiler/Disassembler and ACPICA tools: + * iasl: Check usage of _CRS, _DIS, _PRS, and _SRS objects + * 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 + * iASL: Add full support for the AEST table (data compiler) + * Add PRMT module header to facilitate parsing. + * Table disassembler: Add missing strings to decode subtable types. + +------------------------------------------------------------------- +Wed Jun 30 11:26:33 UTC 2021 - Ferdinand Thiessen + +- Update to version 20210604: + * ACPICA kernel-resident subsystem + * Cleaned up (delete) the context mutex during local address + handler object deletion. + * Fixed a memory leak caused by the _CID repair function. + * Add support for PlatformRtMechanism OperationRegion handler. + * Add a new utility function, AcpiUtConvertUuidToString. + * iASL Compiler/Disassembler and ACPICA tools: + * Added full support for the PRMT ACPI table + * Added full support for the BDAT ACPI table. + * Added full support for the RGRT ACPI table. + * Added full support for the SVKL ACPI table. + * Completed full support for the IVRS ACPI table. + * Added compiler support for IVRS, updated disassembler support + * Added a new utility, UtIsIdInteger, to determine if a + HID/CID is an integer or a string. + * Headers: Added more structs to the CEDT table + * ACPI 6.4: MADT: added Multiprocessor Wakeup Mailbox Structure. + +------------------------------------------------------------------- +Fri Apr 16 15:01:48 UTC 2021 - Ferdinand Thiessen + +- Update to version 20210331 + * ACPI 6.4 is now supported! + ACPICA kernel-resident subsystem: + * Always create namespace nodes. + * Fixed a race condition in generic serial bus operation region handler. + iASL Compiler/Disassembler and ACPICA tools: + * Add disassembly support for the IVRS table. + * Fixed a potential infinite loop due to type mismatch. + iASL/TableCompiler: + * update it with IORT table E.b revision changes. + * Add compilation support for the VIOT table. + * Add compilation support for CEDT table. + * Update of the CEDT template. + +------------------------------------------------------------------- +Tue Jan 5 20:40:38 UTC 2021 - Matthias Eliasson + +- Update to version 20210105 + ACPICA kernel-resident subsystem: + * Updated all copyrights to 2021. This affects all ACPICA source code + modules. + iASL Compiler/Disassembler and ACPICA tools: + * ASL test suite (ASLTS): Updated all copyrights to 2021. + * Tools and utilities: Updated all signon copyrights to 2021. + * iASL Table Compiler: Removed support for obsolete ACPI tables: VRTC, + MTMR. Al Stone. + +------------------------------------------------------------------- +Fri Jul 24 21:25:52 UTC 2020 - Matthias Eliasson + +- Update to version 20200717 + ACPICA kernel-resident subsystem: + * Do not increment OperationRegion reference counts for field units. Recent + server firmware has revealed that this reference count can overflow on + large servers that declare many field units (thousands) under the same + OperationRegion. This occurs because each field unit declaration will add + a reference count to the source OperationRegion. This release solves the + reference count overflow for OperationRegion objects by preventing + fieldUnits from incrementing their parent OperationRegion's reference + count. + * Replaced one-element arrays with flexible-arrays, which were introduced + in C99. + * Restored the readme file containing the directions for generation of + ACPICA from source on MSVC 2017. Updated the file for MSVC 2017. File is + located at: generate/msvc2017/readme.txt + iASL Compiler/Disassembler and ACPICA tools: + * iASL: Fixed a regression found in version 20200214. Prevent iASL from + emitting an extra byte of garbage data when control methods declared a + single parameter type without using braces. This extra byte is known to + cause a blue screen on the Windows AML interpreter. + * iASL: Made a change to allow external declarations to specify the type of + a named object even when some name segments are not defined. This change + allows the following ASL code to compile + (When DEV0 is not defined or not defined yet): + External (\_SB.DEV0.OBJ1, IntObj) + External (\_SB.DEV0, DeviceObj) + * iASL: Fixed a problem where method names in "Alias ()" statement could be + misinterpreted. They are now interpreted correctly as method invocations. + * iASL: capture a method parameter count (Within the Method info segment, + as well as the argument node) when using parameter type lists. + +------------------------------------------------------------------- +Thu Jul 2 21:45:10 UTC 2020 - Matthias Eliasson + +- Update to version 20200528 + ACPICA kernel-resident subsystem: + Removed old/obsolete Visual Studio files which were used to build the + Windows versions of the ACPICA tools. Since we have moved to Visual + Studio 2017, we are no longer supporting Visual Studio 2006 and 2009 + project files. The new subdirectory and solution file are located at: + acpica/generate/msvc2017/AcpiComponents.sln + iASL Compiler/Disassembler and ACPICA tools: + * iASL: added support for a new OperationRegion Address Space (subtype): + PlatformRtMechanism. Support for this new keyword is being released for + early prototyping. It will appear in the next release of the ACPI + specification. + * iASL: do not optimize the NameString parameter of the CondRefOf operator. + In the previous iASL compiler release, the NameString parameter of the + CondRefOf was optimized. There is evidence that some implementations of + the AML interpreter do not perform the recursive search-to-parent search + during the execution of the CondRefOf operator. Therefore, the CondRefOf + operator behaves differently when the NameString parameter is a single + name segment (a NameSeg) as opposed to a full NamePath (starting at the + root scope) or a NameString containing parent prefixes. + * iASL: Prevent an inadvertent remark message. This change prevents a + remark if within a control method the following exist: + 1) An Operation Region is defined, and + 2) A Field operator is defined that refers to the region. + This happens because at the top level, the Field operator does not + actually create a new named object, it simply references the operation + region. + * Removed support for the acpinames utility. The acpinames was a simple + utility used to populate and display the ACPI namespace without executing + any AML code. However, ACPICA now supports executable opcodes outside of + control methods. This means that executable AML opcodes such as If and + Store opcodes need to be executed during table load. Therefore, acpinames + would need to be updated to match the same behavior as the acpiexec + utility and since acpiexec can already dump the entire namespace (via the + 'namespace' command), we no longer have the need to maintain acpinames. + * In order to dump the contents of the ACPI namepsace using acpiexec, + execute the following command from the command line: + acpiexec -b "n" [aml files] +- Refresh parches + +------------------------------------------------------------------- +Mon Apr 27 19:33:25 UTC 2020 - Martin Liška + +- Enable -fcommon in CFLAGS and CXXFLAGS in order + to fix boo#1160383. + +------------------------------------------------------------------- +Thu Feb 6 08:19:10 UTC 2020 - trenn@suse.de + +- Add -fcommon as there are a lot re-definitions which lead to errors + and compile failures with gcc10 which enables -fno-common by default + bsc#1160383 - acpica fails with -fno-common + +------------------------------------------------------------------- +Mon Jan 20 09:28:08 UTC 2020 - Luigi Baldoni + +- Update to version 20200110 + +------------------------------------------------------------------- +Tue May 28 05:36:02 UTC 2019 - Jan Engelhardt + +- Use noun phrase in summary + +------------------------------------------------------------------- +Wed May 22 09:29:13 UTC 2019 - trenn@suse.de + +- Update to version 20190509 + Includes a fix that breaks VirtualBox + https://github.com/acpica/acpica/issues/462 + +------------------------------------------------------------------- +Mon Apr 8 14:28:59 UTC 2019 - trenn@suse.de + +- Update to version 20190405 +iASL: Implemented an enhanced multiple file compilation that combines +named objects from all input files to a single namespace. With this +feature, any unresolved external declarations as well as duplicate named +object declarations can be detected during compilation rather than +generating errors much later at runtime. The following commands are +examples that utilize this feature: + iasl dsdt.asl ssdt.asl + iasl dsdt.asl ssdt1.asl ssdt2.asl + iasl dsdt.asl ssdt*.asl +- Adjusted patch: +M acpica-no-compiletime.patch + +------------------------------------------------------------------- +Wed Mar 13 19:56:38 UTC 2019 - Matthias Eliasson + +- Update to version 20190215 + Support for ACPI specification version 6.3: + * Add PCC operation region support for the AML interpreter. This adds PCC + operation region support in the AML interpreter and a default handler for + acpiexec. The change also renames the PCC region address space keyword to + PlatformCommChannel. + * Support for new predefined methods _NBS, _NCH, _NIC, _NIH, and _NIG. + These methods provide OSPM with health information and device boot + status. + * PDTT: Add TriggerOrder to the PCC Identifier structure. The field value + defines if the trigger needs to be invoked by OSPM before or at the end + of kernel crash dump processing/handling operation. + * SRAT: Add Generic Affinity Structure subtable. This subtable in the SRAT + is used for describing devices such as heterogeneous processors, + accelerators, GPUs, and IO devices with integrated compute or DMA + engines. + * MADT: Add support for statistical profiling in GICC. Statistical + profiling extension (SPE) is an architecture-specific feature for ARM. + * MADT: Add online capable flag. If this bit is set, system hardware + supports enabling this processor during OS runtime. + * New Error Disconnect Recover Notification value. There are a number of + scenarios where system Firmware in collaboration with hardware may + disconnect one or more devices from the rest of the system for purposes + of error containment. Firmware can use this new notification value to + alert OSPM of such a removal. + * PPTT: New additional fields in Processor Structure Flags. These flags + provide more information about processor topology. + * NFIT/Disassembler: Change a field name from "Address Range" to "Region + Type". + * HMAT updates: make several existing fields to be reserved as well as + rename subtable 0 to "memory proximity domain attributes". + * GTDT: Add support for new GTDT Revision 3. This revision adds information + for the EL2 timer. + * iASL: Update the HMAT example template for new fields. + * iASL: Add support for the new revision of the GTDT (Rev 3). + ACPICA kernel-resident subsystem: + * AML Parser: fix the main AML parse loop to correctly skip erroneous + extended opcodes. AML opcodes come in two lengths: 1-byte opcodes and 2- + byte extended opcodes. If an error occurs during an AML table load, the + AML parser will continue loading the table by skipping the offending + opcode. This implements a "load table at any cost" philosophy. + iASL Compiler/Disassembler and Tools: + * iASL: Add checks for illegal object references, such as a reference + outside of method to an object within a method. Such an object is only + temporary. + * iASL: Emit error for creation of a zero-length operation region. Such a + region is rather pointless. If encountered, a runtime error is also + implemented in the interpeter. + * Debugger: Fix a possible fault with the "test objects" command. + * iASL: Makefile: support parent directory filenames containing embedded + spaces. + * iASL: Update the TPM2 template to revision 4. + * iASL: Add the ability to report specific warnings or remarks as errors. + * Disassembler: Disassemble OEMx tables as actual AML byte code. + Previously, these tables were treated as "unknown table". + * iASL: Add definition and disassembly for TPM2 revision 3. + * iASL: Add support for TPM2 rev 3 compilation. +- Refresh patches +- Run spec-cleaner + +------------------------------------------------------------------- +Mon Jul 2 13:51:16 UTC 2018 - trenn@suse.de + +- Update to 20180629 + Added changelog from mainline, installed into documentation path + +------------------------------------------------------------------- +Sat May 26 09:31:58 UTC 2018 - aloisio@gmx.com + +- Update to version 20180508 + ACPICA kernel-resident subsystem: + * Completed the new (recently deployed) package resolution + mechanism for the Load and LoadTable ASL/AML operators. This + fixes a regression that was introduced in version 20180209 + that could result in an AE_AML_INTERNAL exception during the + loading of a dynamic ACPI/AML table (SSDT) that contains + package objects. + iASL Compiler/Disassembler and Tools: + * AcpiDump and AcpiXtract: Implemented support for ACPI tables + larger than 1 MB. This change allows for table offsets within + the acpidump file to be up to 8 characters. These changes are + backwards compatible with existing acpidump files. + version 20180427 + ACPICA kernel-resident subsystem: + * Debugger: Added support for Package objects in the "Test + Objects" command. This command walks the entire namespace and + evaluates all named data objects (Integers, Strings, Buffers, + and now Packages). + * Improved error messages for the namespace root node. + Originally, the root was referred to by the confusing string + "\___". This has been replaced by "Namespace Root" for + clarification. + * Fixed a potential infinite loop in the AcpiRsDumpByteList + function. Colin Ian King . + iASL Compiler/Disassembler and Tools: + * iASL: Implemented support to detect and flag illegal forward + references. For compatibility with other ACPI implementations, + these references are now illegal at the root level of the DSDT + or SSDTs. Forward references have always been illegal within + control methods. This change should not affect existing + ASL/AML code because of the fact that these references + have always been illegal in the other ACPI implementation. + * iASL: Added error messages for the case where a table OEM ID + and OEM TABLE ID strings are longer than the ACPI-defined length. + Previously, these strings were simply silently truncated. + * iASL: Enhanced the -tc option (which creates an AML hex file + in C, suitable for import into a firmware project): + 1) Create a unique name for the table, to simplify use of + multiple SSDTs. + 2) Add a protection #ifdef in the file, similar to a .h + header file. With assistance from Sami Mujawar, + sami.mujawar@arm.com and Evan Lloyd, evan.lloyd@arm.com + * AcpiExec: Added a new option, -df, to disable the local + fault handler. This is useful during debugging, where it may + be desired to drop into a debugger on a fault. + +------------------------------------------------------------------- +Wed Apr 18 13:56:47 UTC 2018 - josef.moellers@suse.com + +- Upgrade to latest version 20180313 +- Update patches: + * acpica-no-compiletime.patch + * do_not_use_build_date_and_time.patch + +------------------------------------------------------------------- +Fri Jan 12 17:46:18 UTC 2018 - trenn@suse.de + +- Update to latest version 20180105 +D revert_62ca7996_build_date_and_time.patch +D revert_cdd3c612d4230bbb_build_date_and_time.patch +A do_not_use_build_date_and_time.patch +- pass --jobs from build service to make for much faster building + +------------------------------------------------------------------- +Fri Jan 12 10:06:04 UTC 2018 - josef.moellers@suse.com + +- Changed shebang path in wmidump_add_she_bang.patch + to /usr/bin/python3 + [bsc#1075687,wmidump_add_she_bang.patch] + +------------------------------------------------------------------- +Thu Dec 7 10:57:17 UTC 2017 - dimstar@opensuse.org + +- Escape the usage of %{VERSION} when calling out to rpm. + +------------------------------------------------------------------- +Tue Jun 13 11:56:36 UTC 2017 - trenn@suse.de + +- Update to version 20170531. + +------------------------------------------------------------------- +Wed Jan 25 15:35:03 UTC 2017 - trenn@suse.de + +- Update to version 20170119 (fate#322313). + +------------------------------------------------------------------- +Thu Jan 5 16:51:25 UTC 2017 - trenn@suse.de + +- Update to version 20161117 (fate#322313). +- __DATE__ __TIME__ macros added again mainline, revert them to avoid + constant build service rebuilding +*Add revert_62ca7996_build_date_and_time.patch +*Add revert_cdd3c612d4230bbb_build_date_and_time.patch + +------------------------------------------------------------------- +Fri Sep 16 16:06:19 UTC 2016 - dmueller@suse.com + +- enable build for ARM (needed for ovmf nowadays) + +------------------------------------------------------------------- +Mon Apr 25 13:29:06 UTC 2016 - trenn@suse.de + +- Update to version 20160422 + +------------------------------------------------------------------- +Sun Dec 6 15:47:00 UTC 2015 - p.drouand@gmail.com + +- Update to version 20151124 + * Fixed a possible regression for a previous update to FADT handling. The + FADT no longer has a fixed table ID, causing some issues with code that + was hardwired to a specific ID. Lv Zheng. + * Fixed a problem where the method auto-serialization could interfere with + the current SyncLevel. This change makes the auto-serialization support + transparent to the SyncLevel support and management. + * Removed support for the _SUB predefined name in AcpiGetObjectInfo. This + interface is intended for early access to the namespace during the + initial namespace device discovery walk. The _SUB method has been seen to + access operation regions in some cases, causing errors because the + operation regions are not fully initialized. + * AML Debugger: Fixed some issues with the terminate/quit/exit commands + that can cause faults. + * AML Debugger: Add thread ID support so that single-step mode only applies + * to the AML Debugger thread. This prevents runtime errors within some + kernels. + * Eliminated extraneous warnings from AcpiGetSleepTypeData. Since the _Sx + methods that are invoked by this interface are optional, removed warnings + emitted for the case where one or more of these methods do not exist. + ACPICA BZ 1208. + * Made a major pass through the entire ACPICA source code base to + standardize formatting that has diverged a bit over time. There are no + functional changes, but this will of course cause quite a few code + differences from the previous ACPICA release. + * 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. + * iASL/acpiexec/acpixtract/disassembler: Added support to allow multiple + definition blocks within a single ASL file and the resulting AML file. + Support for this type of file was also added to the various tools that + use binary AML files: acpiexec, acpixtract, and the AML disassembler. The + example code below shows two definition blocks within the same file: + + DefinitionBlock ("dsdt.aml", "DSDT", 2, "Intel", "Template", +0x12345678) + { + } + DefinitionBlock ("", "SSDT", 2, "Intel", "Template", 0xABCDEF01) + { + } + + * iASL: Enhanced typechecking for the Name() operator. All expressions for + the value of the named object must be reduced/folded to a single constant + at compile time, as per the ACPI specification (the AML definition of + Name()). + * iASL: Fixed some code indentation issues for the -ic and -ia options (C + and assembly headers). Now all emitted code correctly begins in column 1. + * iASL: Added an error message for an attempt to open a Scope() on an + object defined in an SSDT. The DSDT is always loaded into the namespace + first, so any attempt to open a Scope on an SSDT object will fail at + runtime. +- Remove acpica_remove_date_macro.patch; fixed on upstream release + +------------------------------------------------------------------- +Wed Nov 4 16:49:28 UTC 2015 - jslaby@suse.com + +- add support for kernel 4.3+ (boo#953599) + +------------------------------------------------------------------- +Sun Aug 16 13:11:48 UTC 2015 - p.drouand@gmail.com + +- Update to version 20150717 +- Use download Url as source +- Remove depreciated AUTHORS section + +------------------------------------------------------------------- +Tue Jun 30 10:00:37 UTC 2015 - dimstar@opensuse.org + +- Fix the logic to ignore errors when applying + acpica_remove_date_macro.patch: Kernel 4.1 has the patch, but we + do want to keep it around for projects building against older + kernels. + +------------------------------------------------------------------- +Fri Apr 24 08:58:34 UTC 2015 - trenn@suse.de + +- Update to acpica version 20150410 + +- Do not generate acpitools tarball from external kernel repo, but + use kernel-source package inside the build service. +*Added acpica_remove_date_macro.patch + -> This patch got mainline in kernel version 4.0 and can be removed + again at some point of time. + +------------------------------------------------------------------- +Mon Feb 2 23:43:34 UTC 2015 - schwab@suse.de + +- Enable on aarch64 + +------------------------------------------------------------------- +Wed Jul 30 16:58:47 UTC 2014 - trenn@suse.de + +- Update to version 20140724 + +------------------------------------------------------------------- +Fri Mar 28 20:46:25 CET 2014 - lchiquitto@suse.de + +- Include generate_acpi-tools_tarball.sh in the package's source. + +------------------------------------------------------------------- +Wed Mar 12 13:27:13 UTC 2014 - trenn@suse.de + +- Add acpi-tools tarball from kernel sources: tools/power/acpi + Use latest acpidump from there instead of acpica included one. + This fixes acpidump on latest kernels. +- Add script for easier retrieving of acpi-tools tarball from kernel sources. + +------------------------------------------------------------------- +Tue Mar 11 13:42:30 UTC 2014 - trenn@suse.de + +- Update to version 20140214 +- Replace $RPM_OPT_FLAGS with %{optflags} as suggested by tcech@suse.cz + +------------------------------------------------------------------- +Fri Mar 7 15:31:16 CET 2014 - ro@suse.de + +- set HOST for make to not blindly set the hostname + as compiler definition + +------------------------------------------------------------------- +Wed Jan 15 09:47:26 UTC 2014 - trenn@suse.de + +- Update to version 20140114 + Drop acpica-add_missing_examples_makefile.patch + -> already included mainlaine. + +------------------------------------------------------------------- +Thu Dec 19 08:27:31 UTC 2013 - trenn@suse.de + +- Update to version 20131218 + Add acpica-add_missing_examples_makefile.patch: They forgot to add a file + to the tarball. This patch adds it from git repo. + Drop acpica-fix_dots_in_path_for_p_option.patch: This patch is included + in the newly provided version tarball already. + +------------------------------------------------------------------- +Fri Dec 13 11:12:18 UTC 2013 - trenn@suse.de + +- Update to version 20131115 +- Explicitly add commit 04d10e3c1f41a776cbed96dce2326ee649b9a0f0 to fix + bnc#855050: + acpica-fix_dots_in_path_for_p_option.patch + +------------------------------------------------------------------- +Fri Aug 23 19:06:36 UTC 2013 - trenn@suse.de + +- Update to version 20130823 +- remove already integrated patch: + dmar-buf10.patch + +------------------------------------------------------------------- +Tue Jul 9 19:29:34 UTC 2013 - trenn@suse.de + +- Fix Source3 vs Source4 typo (acpi_validate was broken) + +------------------------------------------------------------------- +Fri May 24 13:27:25 UTC 2013 - trenn@suse.de + +- Update to version 20130517 + - remove acpidump tarball, it is now included in acpica main project + +------------------------------------------------------------------- +Fri May 17 10:11:01 UTC 2013 - trenn@suse.de + +- Update to version 20130418 + - remove already integreated patches: + acpica_make_CFLAGS_overridable + bob_noop.patch + - Add fix for DMAR table parsing issue: + https://bugs.acpica.org/show_bug.cgi?id=999 + +------------------------------------------------------------------- +Mon Jan 28 13:20:36 UTC 2013 - trenn@suse.de + +- Add wmidump/wmixtract tools for easy WMI (or other) GUID parsing + +------------------------------------------------------------------- +Wed Jan 23 16:12:38 UTC 2013 - trenn@suse.de + +- Fix tiny bug in acpi_validate which wrongly adds the file which + is to be compiled additionally to the external reference tables + list + +------------------------------------------------------------------- +Wed Jan 23 11:07:28 UTC 2013 - trenn@suse.de + +- Make use of -in (Ignore NoOp opcodes/operators) + to avoid false positive errors during compliation/disassembling + +------------------------------------------------------------------- +Tue Jan 15 12:55:46 UTC 2013 - trenn@suse.de + +- Update to version 20121018 + -> remove some patches that got integrated + -> Add one patch (bob_noop.patch) which will get integrated + mainline: Stop and bail out when max error (200) count is reached. + Introduce -in compile/disassemble option. + +------------------------------------------------------------------- +Wed Jan 9 01:05:33 UTC 2013 - trenn@suse.de + +- Add acpi_validate script for easy disassembling and re-compilation + of local ACPI tables or of an already existing acpidump file + +------------------------------------------------------------------- +Wed Nov 7 10:27:54 UTC 2012 - trenn@suse.de + +- Update to latest version 20121018. + -> one patch got accepted mainline -> removed. + +------------------------------------------------------------------- +Wed Sep 19 10:56:44 UTC 2012 - trenn@suse.de + +- Update to latest version 20120913 +- Add acpi_genl from http://www.lesswatts.org/projects/acpi/utilities.php + Can be used to check for ACPI events via netlink (since /proc/acpi/events is + is deprecated) +- Adjust to new Makefile layout + +------------------------------------------------------------------- +Sun May 20 10:06:24 UTC 2012 - trenn@suse.de + +- Update to latest version 20120518 + +------------------------------------------------------------------- +Tue Jan 3 11:02:28 UTC 2012 - cfarrell@suse.com + +- license update: GPL-2.0 + You added ec_access.c with a GPL-2.0 (only) license. Now the spec file + has to be updated to reflect this + +------------------------------------------------------------------- +Wed Dec 21 09:51:55 UTC 2011 - aj@suse.de + +- Clarify license, it's GPL-2.0+ (bnc#711299). + +------------------------------------------------------------------- +Thu Nov 24 16:33:44 UTC 2011 - trenn@suse.de + +- ACPICA version 20111123 released with full ACPI 5.0 support + Detailed changelog can be found here: + http://acpica.org/download/changes.txt + +------------------------------------------------------------------- +Wed Jun 29 19:40:28 UTC 2011 - trenn@suse.de + +- Fix build for 32 bit + +------------------------------------------------------------------- +Mon Jun 27 11:55:35 UTC 2011 - trenn@suse.de + +- Update to version 20110623 +- Fixed some "set but not used" errors and a link order issue + and sent patches upstream. +- Set "-Wno-unused-result" for some compilations -> too many + offenders to fix that all up. + +------------------------------------------------------------------- +Mon Jun 20 15:38:14 UTC 2011 - idonmez@novell.com + +- Add acpica-unix-const.patch: fix const correctness issue in + AslCompilererror, http://www.acpica.org/bugzilla/show_bug.cgi?id=923 + +------------------------------------------------------------------- +Wed Apr 27 09:32:02 UTC 2011 - idoenmez@novell.com + +- Add acpica-unix-20110316-gcc46.patch: fix compilation with gcc 4.6 + +------------------------------------------------------------------- +Sun Apr 17 03:37:25 UTC 2011 - crrodriguez@opensuse.org + +- Disable both build dates in this package and in + the files it generates as it both trigger either unneeded + republish of itself or other bigger packages like virtualbox +- Provides: iasl too. + +------------------------------------------------------------------- +Wed Mar 30 16:15:29 UTC 2011 - trenn@suse.de + +- Exchange selfmade patch with mainline one to fix build + +------------------------------------------------------------------- +Wed Mar 30 15:50:47 UTC 2011 - trenn@suse.de + +- Updated to acpica version 20110316 + Changes are listed in /usr/share/doc/packages/acpica/changes.txt +- Fixed dynamic acpi table extract via acpidump/acpixtract + by reverting acpica commit baab09e6857a427944068c5e599ea2ffb84f765b +- Fixed compile issue and submitted it mainline + +------------------------------------------------------------------- +Thu Feb 24 15:31:07 UTC 2011 - trenn@novell.com + +- Add possibility to see changes via new -s param: -r [ -s sleep ] + +------------------------------------------------------------------- +Fri Jan 14 15:01:06 UTC 2011 - trenn@novell.com + +- Remove stale acpidump patches + +------------------------------------------------------------------- +Fri Jan 14 10:51:30 UTC 2011 - trenn@novell.com + +- Get latest acpidump tool from Len's acpi pmtools: + * Also dump dynamically loaded SSDTs +- Build against its own headers instead of acpica headers + -> unfortunately acpidump is still not part of acpica and + adjusting things ourselves is too much overhead. + + + +------------------------------------------------------------------- +Thu Jan 13 14:46:00 UTC 2011 - trenn@novell.com + +- Update to version 20110112 + Changes are listed in /usr/share/doc/packages/acpica/changes.txt + +------------------------------------------------------------------- +Tue Oct 26 20:37:10 UTC 2010 - trenn@novell.com + +- Update to version 20100806 +- Added ec_access executable to be able to debug the Embedded + Controller together with CONFIG_ACPI_EC_DEBUGFS kernel .config + option + +------------------------------------------------------------------- +Sat Aug 7 06:39:44 UTC 2010 - trenn@novell.com + +- Update to version 20100806 + For details, see the changes.txt file in the package + changes.txt can now be found in + /usr/share/doc/packages/acpica/changes.txt + +------------------------------------------------------------------- +Sun Jul 4 18:31:49 UTC 2010 - trenn@novell.com + +- Update to version 20100702 + For details, see acpica-unix-20100702/changes.txt + +------------------------------------------------------------------- +Thu Apr 29 12:05:18 UTC 2010 - trenn@novell.com + +- Update to version 20100428 + +------------------------------------------------------------------- +Mon Mar 8 13:56:19 UTC 2010 - trenn@novell.com + +- Avoid (when compiling AML): + DSDT.dsl 10307: Name (_ADR, Zero) + Error 4080 - ^ Invalid object type for reserved name, + must be (Integer) + +------------------------------------------------------------------- +Fri Mar 5 12:22:59 UTC 2010 - trenn@novell.com + +- Updated to version 20100304 + Some ACPI 4.0 enhancements and a lot bug fixes and other + enhancements. See changes.txt in the sources for details + +------------------------------------------------------------------- +Wed Oct 14 11:13:29 CEST 2009 - trenn@suse.de + +- Updated to version 20091013 + Includes a bug fix to correctly disassmeble Unisys ES7000 tables + +------------------------------------------------------------------- +Wed Aug 26 21:47:35 CEST 2009 - meissner@suse.de + +- as-needed fix no longer necessary + +------------------------------------------------------------------- +Fri Jul 31 10:59:44 CEST 2009 - trenn@suse.de + +- Update to acpica version 20090730 + The ACPI 4.0 implementation for ACPICA is complete with this release. + +------------------------------------------------------------------- +Fri Jun 19 10:35:46 CEST 2009 - coolo@novell.com + +- disable as-needed for this package as it fails to build with it + +------------------------------------------------------------------- +Wed Apr 8 15:06:17 CEST 2009 - trenn@suse.de + +- Initial check-in: Version 20090320 + diff --git a/acpica.spec b/acpica.spec new file mode 100644 index 0000000..2641c6d --- /dev/null +++ b/acpica.spec @@ -0,0 +1,120 @@ +# +# spec file for package acpica +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%define src_dir acpica-unix-%{version} +%define kver %(rpm -q --qf '%%{VERSION}' kernel-source) +%define dmp_ver %{kver} +Name: acpica +Version: 20221020 +Release: 0 +Summary: A set of tools to display and debug BIOS ACPI tables +License: GPL-2.0-only +URL: https://acpica.org +Source: https://acpica.org/sites/acpica/files/%{src_dir}.tar_0.gz +Source1: ec_access.c +Source2: acpi_genl.tar.bz2 +Source3: acpi_validate +# https://xf.iksaif.net/dev/wmidump.html +Source4: wmidump-20211011.tar.xz +Patch1: acpica-no-compiletime.patch +Patch2: wmidump_add_she_bang.patch +Patch3: do_not_use_build_date_and_time.patch +BuildRequires: bison +BuildRequires: flex +BuildRequires: glibc-devel +BuildRequires: kernel-source >= 2.6.31 +BuildRequires: patch +Provides: iasl + +%description +The included tools share the same code as it is used in the ACPI +implementation of the kernel. The code of the acpica project is exactly +the same as the ACPI parser and interpreter code of the kernel and the +code gets synced regularly from the acpica project into the kernel. +E.g. if you identify bugs in the kernel's ACPI implementation it might +be easier to debug them in userspace if possible. If the bug is part of +the acpica code, it has to be submitted to the acpica project to get +merged into the mainline kernel sources. + +iasl compiles ASL (ACPI Source Language) into AML (ACPI Machine +Language). This AML is suitable for inclusion as a DSDT in system +firmware. It also can disassemble AML, for debugging purposes. + +%prep +%setup -q -n %{src_dir} -a 2 -a 4 +%autopatch -p1 +mkdir acpidump-%{dmp_ver} +cd acpidump-%{dmp_ver} +# acpitools (acpidump) from kernel sources: +# copy necessary files from kernel-source since we need to modify them +(cd %{_prefix}/src/linux ; tar -cf - COPYING CREDITS README tools include scripts Kbuild Makefile drivers/acpi lib) | tar -xf - + +%build +%global optflags %{optflags} -fcommon +export CFLAGS="%{optflags}" +export CXXFLAGS="%{optflags}" +cc %{SOURCE1} %{optflags} -o ec_access +%make_build -C acpi_genl CFLAGS="%{optflags}" +%make_build -C wmidump CFLAGS="%{optflags}" +%make_build OPT_CFLAGS="%{optflags} -fcommon" HOST="_LINUX" +cd acpidump-%{dmp_ver}/tools/power/acpi +if [ -f tools/acpidump/Makefile ]; then # 4.3+ + cd tools/acpidump/ +fi +%make_build EXTRA_CFLAGS="%{optflags} -fno-strict-aliasing" prefix=%{_prefix} all + +%install +install -Dm 755 %{SOURCE3} %{buildroot}%{_bindir}/acpi_validate +install -Dm 755 ec_access %{buildroot}%{_sbindir}/ec_access + +install -Dm 755 wmidump/wmidump %{buildroot}%{_bindir}/wmidump +install -Dm 755 wmidump/wmixtract.py %{buildroot}%{_bindir}/wmixtract +install -Dm 644 wmidump/README.md %{buildroot}/%{_docdir}/%{name}/README_wmidump.md + +install -Dm 755 acpi_genl/acpi_genl %{buildroot}%{_sbindir}/acpi_genl +install -Dm 644 acpi_genl/README %{buildroot}/%{_docdir}/%{name}/README_acpi_genl + +%make_install +# Latest acpidump is coming from kernel and not from acpica sources now. +rm -rf %{buildroot}%{_bindir}/acpidump +cd acpidump-%{dmp_ver}/tools/power/acpi +if [ -f tools/acpidump/Makefile ]; then # 4.3+ + cd tools/acpidump/ +fi +export WERROR=0 +make V=1 EXTRA_CFLAGS="%{optflags}" mandir=%{_mandir} prefix=%{_prefix} DESTDIR=%{buildroot} install install-man + +%files +%doc changes.txt +%doc %{_docdir}/%{name} +%{_bindir}/iasl +%{_bindir}/acpiexec +%{_bindir}/acpixtract +%{_bindir}/acpisrc +%{_bindir}/wmidump +%{_bindir}/wmixtract +%{_bindir}/acpibin +%{_bindir}/acpihelp +%{_bindir}/acpi_validate +%{_bindir}/acpiexamples +%{_sbindir}/acpidump +%{_sbindir}/acpi_genl +%{_sbindir}/ec_access +%{_mandir}/man8/acpidump.8%{?ext_man} + +%changelog diff --git a/do_not_use_build_date_and_time.patch b/do_not_use_build_date_and_time.patch new file mode 100644 index 0000000..273e53a --- /dev/null +++ b/do_not_use_build_date_and_time.patch @@ -0,0 +1,160 @@ +diff -ur acpica-unix-20200528.orig/source/compiler/asloptions.c acpica-unix-20200528/source/compiler/asloptions.c +--- acpica-unix-20200528.orig/source/compiler/asloptions.c 2020-07-02 23:06:04.929335334 +0200 ++++ acpica-unix-20200528/source/compiler/asloptions.c 2020-07-02 23:30:07.584425436 +0200 +@@ -875,12 +875,6 @@ + AslGbl_NoErrors = TRUE; + break; + +- case 'd': +- +- printf (ACPI_COMMON_SIGNON (ASL_COMPILER_NAME)); +- printf (ACPI_COMMON_BUILD_TIME); +- exit (0); +- + case 'e': + + /* Disable all warning/remark messages (errors only) */ +diff -ur acpica-unix-20200528.orig/source/include/acapps.h acpica-unix-20200528/source/include/acapps.h +--- acpica-unix-20200528.orig/source/include/acapps.h 2020-07-02 23:06:04.937335262 +0200 ++++ acpica-unix-20200528/source/include/acapps.h 2020-07-02 23:31:28.763710233 +0200 +@@ -188,9 +188,6 @@ + Prefix, ACPICA_COPYRIGHT, \ + Prefix + +-#define ACPI_COMMON_BUILD_TIME \ +- "Build date/time: %s %s\n", __DATE__, __TIME__ +- + /* Macros for usage messages */ + + #define ACPI_USAGE_HEADER(Usage) \ +diff -ur acpica-unix-20200528.orig/source/tools/acpibin/abmain.c acpica-unix-20200528/source/tools/acpibin/abmain.c +--- acpica-unix-20200528.orig/source/tools/acpibin/abmain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpibin/abmain.c 2020-07-02 23:33:01.750891018 +0200 +@@ -191,7 +191,6 @@ + ACPI_OPTION ("-s ", "Update checksum for binary AML file"); + ACPI_OPTION ("-t", "Terse mode"); + ACPI_OPTION ("-v", "Display version information"); +- ACPI_OPTION ("-vd", "Display build date and time"); + } + + +@@ -298,11 +297,6 @@ + + return (1); + +- case 'd': +- +- printf (ACPI_COMMON_BUILD_TIME); +- return (1); +- + default: + + printf ("Unknown option: -v%s\n", AcpiGbl_Optarg); +diff -ur acpica-unix-20200528.orig/source/tools/acpidump/apmain.c acpica-unix-20200528/source/tools/acpidump/apmain.c +--- acpica-unix-20200528.orig/source/tools/acpidump/apmain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpidump/apmain.c 2020-07-02 23:34:06.206323171 +0200 +@@ -379,12 +379,6 @@ + fprintf (stderr, ACPI_COMMON_SIGNON (AP_UTILITY_NAME)); + return (1); + +- case 'd': +- +- fprintf (stderr, ACPI_COMMON_SIGNON (AP_UTILITY_NAME)); +- printf (ACPI_COMMON_BUILD_TIME); +- return (1); +- + default: + + printf ("Unknown option: -v%s\n", AcpiGbl_Optarg); +diff -ur acpica-unix-20200528.orig/source/tools/acpiexec/aemain.c acpica-unix-20200528/source/tools/acpiexec/aemain.c +--- acpica-unix-20200528.orig/source/tools/acpiexec/aemain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpiexec/aemain.c 2020-07-02 23:35:40.565491893 +0200 +@@ -280,7 +280,6 @@ + + ACPI_OPTION ("-v", "Display version information"); + ACPI_OPTION ("-va", "Display verbose dump of any memory leaks"); +- ACPI_OPTION ("-vd", "Display build date and time"); + ACPI_OPTION ("-vh", "Verbose exception handler output"); + ACPI_OPTION ("-vi", "Verbose initialization output"); + ACPI_OPTION ("-vr", "Verbose region handler output"); +@@ -546,11 +545,6 @@ + AcpiGbl_VerboseLeakDump = TRUE; + break; + +- case 'd': +- +- printf (ACPI_COMMON_BUILD_TIME); +- return (1); +- + case 'h': + + AcpiGbl_VerboseHandlers = TRUE; +diff -ur acpica-unix-20200528.orig/source/tools/acpihelp/ahmain.c acpica-unix-20200528/source/tools/acpihelp/ahmain.c +--- acpica-unix-20200528.orig/source/tools/acpihelp/ahmain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpihelp/ahmain.c 2020-07-02 23:37:16.832643773 +0200 +@@ -187,7 +187,6 @@ + ACPI_USAGE_HEADER ("acpihelp [Name/Prefix | HexValue]"); + ACPI_OPTION ("-h", "Display help"); + ACPI_OPTION ("-v", "Display version information"); +- ACPI_OPTION ("-vd", "Display build date and time"); + + ACPI_USAGE_TEXT ("\nAML Names and Encodings (ACPI Machine Language):\n"); + ACPI_OPTION ("-a [Name/Prefix | *]", "Display both ASL operator and AML opcode name(s)"); +@@ -317,11 +316,6 @@ + + return (1); + +- case 'd': +- +- printf (ACPI_COMMON_BUILD_TIME); +- return (1); +- + default: + + printf ("Unknown option: -v%s\n", AcpiGbl_Optarg); +diff -ur acpica-unix-20200528.orig/source/tools/acpisrc/asmain.c acpica-unix-20200528/source/tools/acpisrc/asmain.c +--- acpica-unix-20200528.orig/source/tools/acpisrc/asmain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpisrc/asmain.c 2020-07-02 23:37:35.904475746 +0200 +@@ -374,7 +374,6 @@ + ACPI_OPTION ("-s", "Generate source statistics only"); + ACPI_OPTION ("-v", "Display version information"); + ACPI_OPTION ("-vb", "Verbose mode"); +- ACPI_OPTION ("-vd", "Display build date and time"); + ACPI_OPTION ("-y", "Suppress file overwrite prompts"); + } + +@@ -479,11 +478,6 @@ + Gbl_VerboseMode = TRUE; + break; + +- case 'd': +- +- printf (ACPI_COMMON_BUILD_TIME); +- return (0); +- + default: + + printf ("Unknown option: -v%s\n", AcpiGbl_Optarg); +diff -ur acpica-unix-20200528.orig/source/tools/acpixtract/axmain.c acpica-unix-20200528/source/tools/acpixtract/axmain.c +--- acpica-unix-20200528.orig/source/tools/acpixtract/axmain.c 2020-07-02 23:06:04.941335225 +0200 ++++ acpica-unix-20200528/source/tools/acpixtract/axmain.c 2020-07-02 23:37:57.828282596 +0200 +@@ -181,7 +181,6 @@ + ACPI_OPTION ("-m", "Extract multiple DSDT/SSDTs to a single file"); + ACPI_OPTION ("-s ", "Extract all tables with "); + ACPI_OPTION ("-v", "Display version information"); +- ACPI_OPTION ("-vd", "Display build date and time"); + + ACPI_USAGE_TEXT ("\nExtract binary ACPI tables from text acpidump output\n"); + ACPI_USAGE_TEXT ("Default invocation extracts the DSDT and all SSDTs\n"); +@@ -259,11 +258,6 @@ + + exit (0); + +- case 'd': +- +- printf (ACPI_COMMON_BUILD_TIME); +- return (0); +- + default: + + printf ("Unknown option: -v%s\n", AcpiGbl_Optarg); diff --git a/ec_access.c b/ec_access.c new file mode 100644 index 0000000..dc196eb --- /dev/null +++ b/ec_access.c @@ -0,0 +1,240 @@ +/* + * ec_access.c + * + * Copyright (C) 2010 SUSE Products GmbH/Novell + * Author: + * Thomas Renninger + * + * This work is licensed under the terms of the GNU GPL, version 2. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#define EC_SPACE_SIZE 256 +#define SYSFS_PATH "/sys/kernel/debug/ec/ec0/io" + +/* TBD/Enhancements: + - Provide param for accessing different ECs (not supported by kernel yet) +*/ + +static int read_mode = -1; +static int sleep_time; +static int write_byte_offset = -1; +static int read_byte_offset = -1; +static uint8_t write_value = -1; + +void usage(char progname[], int exit_status) +{ + printf("Usage:\n"); + printf("1) %s -r [-s sleep]\n", basename(progname)); + printf("2) %s -b byte_offset\n", basename(progname)); + printf("3) %s -w byte_offset -v value\n\n", basename(progname)); + + puts("\t-r [-s sleep] : Dump EC registers"); + puts("\t If sleep is given, sleep x seconds,"); + puts("\t re-read EC registers and show changes"); + puts("\t-b offset : Read value" + " at byte_offset (in hex)"); + puts("\t-w offset -v value : " + "Write value at byte_offset"); + puts("\t-h : Print this help\n\n"); + puts("Offsets and values are in hexadecimal number sytem."); + puts("The offset and value must be between 0 and 0xff."); + exit(exit_status); +} + +void parse_opts(int argc, char *argv[]) +{ + int c; + + while ((c = getopt(argc, argv, "rs:b:w:v:h")) != -1) { + + switch (c) { + case 'r': + if (read_mode != -1) + usage (argv[0], EXIT_FAILURE); + read_mode = 1; + break; + case 's': + if (read_mode != -1 && read_mode != 1) + usage (argv[0], EXIT_FAILURE); + + sleep_time = atoi(optarg); + if (sleep_time <= 0) { + sleep_time = 0; + usage(argv[0], EXIT_FAILURE); + printf("Bad sleep time: %s\n", optarg); + } + break; + case 'b': + if (read_mode != -1) + usage (argv[0], EXIT_FAILURE); + read_mode = 1; + read_byte_offset = strtoul(optarg, NULL, 16); + break; + case 'w': + if (read_mode != -1) + usage (argv[0], EXIT_FAILURE); + read_mode = 0; + write_byte_offset = strtoul(optarg, NULL, 16); + break; + case 'v': + write_value = strtoul(optarg, NULL, 16); + break; + case 'h': + usage(argv[0], EXIT_SUCCESS); + default: + fprintf(stderr, "Unknown option!\n"); + usage(argv[0], EXIT_FAILURE); + } + } + if (read_mode == 0) { + if (write_byte_offset < 0 || + write_byte_offset >= EC_SPACE_SIZE) { + fprintf(stderr, "Wrong byte offset 0x%.2x, valid: " + "[0-0x%.2x]\n", + write_byte_offset, EC_SPACE_SIZE - 1); + usage(argv[0], EXIT_FAILURE); + } + if (write_value < 0 || + write_value >= 255) { + fprintf(stderr, "Wrong byte offset 0x%.2x, valid:" + "[0-0xff]\n", write_byte_offset); + usage(argv[0], EXIT_FAILURE); + } + } + if (read_mode == 1 && read_byte_offset != -1) { + if (read_byte_offset < -1 || + read_byte_offset >= EC_SPACE_SIZE) { + fprintf(stderr, "Wrong byte offset 0x%.2x, valid: " + "[0-0x%.2x]\n", + read_byte_offset, EC_SPACE_SIZE - 1); + usage(argv[0], EXIT_FAILURE); + } + } + /* Add additional parameter checks here */ +} + +void dump_ec(int fd) +{ + char buf[EC_SPACE_SIZE]; + char buf2[EC_SPACE_SIZE]; + int byte_off, bytes_read; + + bytes_read = read(fd, buf, EC_SPACE_SIZE); + + if (bytes_read == -1) + err(EXIT_FAILURE, "Could not read from %s\n", SYSFS_PATH); + + if (bytes_read != EC_SPACE_SIZE) + fprintf(stderr, "Could only read %d bytes\n", bytes_read); + + printf(" 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for (byte_off = 0; byte_off < bytes_read; byte_off++) { + if ((byte_off % 16) == 0) + printf("\n%.2X: ", byte_off); + printf(" %.2x ", (uint8_t)buf[byte_off]); + } + printf("\n"); + + if (!sleep_time) + return; + + printf("\n"); + lseek(fd, 0, SEEK_SET); + sleep(sleep_time); + + bytes_read = read(fd, buf2, EC_SPACE_SIZE); + + if (bytes_read == -1) + err(EXIT_FAILURE, "Could not read from %s\n", SYSFS_PATH); + + if (bytes_read != EC_SPACE_SIZE) + fprintf(stderr, "Could only read %d bytes\n", bytes_read); + + printf(" 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F"); + for (byte_off = 0; byte_off < bytes_read; byte_off++) { + if ((byte_off % 16) == 0) + printf("\n%.2X: ", byte_off); + + if (buf[byte_off] == buf2[byte_off]) + printf(" %.2x ", (uint8_t)buf2[byte_off]); + else + printf("*%.2x ", (uint8_t)buf2[byte_off]); + } + printf("\n"); +} + +void read_ec_val(int fd, int byte_offset) +{ + uint8_t buf; + int error; + + error = lseek(fd, byte_offset, SEEK_SET); + if (error != byte_offset) + err(EXIT_FAILURE, "Cannot set offset to 0x%.2x", byte_offset); + + error = read(fd, &buf, 1); + if (error != 1) + err(EXIT_FAILURE, "Could not read byte 0x%.2x from %s\n", + byte_offset, SYSFS_PATH); + printf("0x%.2x\n", buf); + return; +} + +void write_ec_val(int fd, int byte_offset, uint8_t value) +{ + int error; + + error = lseek(fd, byte_offset, SEEK_SET); + if (error != byte_offset) + err(EXIT_FAILURE, "Cannot set offset to 0x%.2x", byte_offset); + + error = write(fd, &value, 1); + if (error != 1) + err(EXIT_FAILURE, "Cannot write value 0x%.2x to offset 0x%.2x", + value, byte_offset); +} + +int main(int argc, char *argv[]) +{ + int file_mode = O_RDONLY; + int fd; + + parse_opts(argc, argv); + + if (read_mode == 0) + file_mode = O_WRONLY; + else if (read_mode == 1) + file_mode = O_RDONLY; + else + usage(argv[0], EXIT_FAILURE); + + fd = open(SYSFS_PATH, file_mode); + if (fd == -1) + err(EXIT_FAILURE, "%s", SYSFS_PATH); + + if (read_mode) + if (read_byte_offset == -1) + dump_ec(fd); + else if (read_byte_offset < 0 || + read_byte_offset >= EC_SPACE_SIZE) + usage(argv[0], EXIT_FAILURE); + else + read_ec_val(fd, read_byte_offset); + else + write_ec_val(fd, write_byte_offset, write_value); + close(fd); + + exit(EXIT_SUCCESS); +} diff --git a/wmidump-20211011.tar.xz b/wmidump-20211011.tar.xz new file mode 100644 index 0000000..fbbc42d --- /dev/null +++ b/wmidump-20211011.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d968de71fbd215771e48228344676cdbd52e9685ffacaf8305b0f69e4cf8d9b8 +size 3876 diff --git a/wmidump_add_she_bang.patch b/wmidump_add_she_bang.patch new file mode 100644 index 0000000..9f645eb --- /dev/null +++ b/wmidump_add_she_bang.patch @@ -0,0 +1,14 @@ +--- + wmidump/wmixtract.py | 2 ++ + 1 file changed, 2 insertions(+) + +Index: acpica-unix2-20130517/wmidump/wmixtract.py +=================================================================== +--- acpica-unix2-20130517.orig/wmidump/wmixtract.py ++++ acpica-unix2-20130517/wmidump/wmixtract.py +@@ -1,3 +1,5 @@ ++#!/usr/bin/python3 ++ + import sys + import re +