summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #435 from SchmErik/tpm2rev4Robert Moore2019-01-071-6/+5
|\ | | | | iASL: update tpm2 template to revision 4
| * iASL: update tpm2 template to revision 4Erik Schmauss2018-12-181-6/+5
| | | | | | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | acpiexec: Add option to dump extra info for memory leaksRobert Moore2018-12-194-5/+21
|/ | | | | Dump entire object/buffer for any memory leaks detected by the object/cache tracking mechanism.
* Convert more ACPI errors to firmware errorsRobert Moore2018-12-135-4/+69
| | | | Also adds a new firmware error function, AcpiBiosException.
* Update version to 20181213R12_13_18Robert Moore2018-12-131-1/+1
| | | | Version 20181213.
* Logfile: Changes for version 20181213Robert Moore2018-12-131-2/+63
| | | | Version 20181213.
* Merge branch 'master' of ssh://ssh.github.com/acpica/acpicaRobert Moore2018-12-1210-44/+132
|\
| * Merge pull request #434 from SchmErik/cleanup-DoExternals-flagRobert Moore2018-12-126-40/+14
| |\ | | | | | | iASL: remove obsolete AcpiGbl_DoExternals flag
| | * iASL: remove obsolete AcpiGbl_DoExternals flagErik Schmauss2018-12-116-40/+14
| | | | | | | | | | | | | | | | | | | | | | | | This was meant to be a debug flag during the development of external opcode. This flag is no longer needed because generation of external opcodes are stable. Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
| * | Merge pull request #433 from SchmErik/iasl-ww-optionRobert Moore2018-12-125-4/+118
| |\ \ | | |/ | |/| iASL: add ability to report specific warnings or remarks as errors
| | * iASL: add the ability to report specific warnings or remarks as errorsErik Schmauss2018-12-115-4/+118
| |/ | | | | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | acpixtract: Close file before exitRobert Moore2018-12-121-0/+1
|/ | | | dangling open file.
* iASL: Add additional check for null pointerRobert Moore2018-12-071-0/+6
| | | | | | In the case where the parse tree is ill-formed. This can happen with unresolved symbols and a complex operator such as "switch".
* Merge pull request #432 from SchmErik/generic-serialRobert Moore2018-12-061-18/+2
|\ | | | | ACPICA: Fix handling of buffer-size in acpi_ex_write_data_to_field()
| * ACPICA: Fix handling of buffer-size in acpi_ex_write_data_to_field()Hans de Goede2018-12-061-18/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a back-port of Hans de Goede's patch. Generic Serial Bus transfers use a data struct like this: struct gsb_buffer { u8 status; u8 len; u8 data[0]; }; acpi_ex_write_data_to_field() copies the data which is to be written from the source-buffer to a temp-buffer. This is done because the OpReg-handler overwrites the status field and some transfers do a write + read-back. Commit f99b89eefeb6 ("ACPICA: Update for generic_serial_bus and attrib_raw_process_bytes protocol") acpi_ex_write_data_to_field() introduces a number of problems with this: 1) It drops a "length += 2" statement used to calculate the temp-buffer size causing the temp-buffer to only be 1/2 bytes large for byte/word transfers while it should be 3/4 bytes (taking the status and len field into account). This is already fixed in commit e324e10109fc ("ACPICA: Update for field unit access") which refactors the code. The ACPI 6.0 spec (ACPI_6.0.pdf) "5.5.2.4.5.2 Declaring and Using a GenericSerialBusData Buffer" (page 232) states that the GenericSerialBus Data Buffer Length field is only valid when doing a Read/Write Block (AttribBlock) transfer, but since the troublesome commit we unconditionally use the len field to determine how much data to copy from the source-buffer into the temp-buffer passed to the OpRegion. This causes 3 further issues: 2) This may lead to not copying enough data to the temp-buffer causing the OpRegion handler for the serial-bus to write garbage to the hardware. 3) The temp-buffer passed to the OpRegion is allocated to the size returned by acpi_ex_get_serial_access_length(), which may be as little as 1, so potentially this may lead to a write overflow of the temp-buffer. 4) Commit e324e10109fc ("ACPICA: Update for field unit access") drops a length check on the source-buffer, leading to a potential read overflow of the source-buffer. This commit fixes all 3 remaining issues by not looking at the len field at all (the interpretation of this field is left up to the OpRegion handler), and copying the minimum of the source- and temp-buffer sizes from the source-buffer to the temp-buffer. This fixes e.g. an Acer S1003 no longer booting since the troublesome commit. Fixes: f99b89eefeb6 (ACPICA: Update for generic_serial_bus and ...) Fixes: e324e10109fc (ACPICA: Update for field unit access) Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | acpibin: improve error handlingRobert Moore2018-12-061-1/+5
| | | | | | | | handle errors from fseek. Reported by Colin Ian King.
* | acpixtract: improved error handling, misc cleanupRobert Moore2018-12-063-25/+41
|/ | | | with assistance from Colin Ian King.
* Merge pull request #427 from SchmErik/cleanupRobert Moore2018-12-0611-38/+3
|\ | | | | Remove defines that use deprecated ACPI_NO_METHOD_EXECUTE flag
| * Remove defines that use deprecated ACPI_NO_METHOD_EXECUTE flagErik Schmauss2018-11-0711-38/+3
| | | | | | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #431 from SchmErik/oemxRobert Moore2018-12-063-1/+7
|\ \ | | | | | | disassembler: disassemble OEMx tables as AML
| * | disassembler: disassemble OEMx tables as AMLErik Schmauss2018-12-053-1/+7
| | |
* | | Merge branch 'master' of ssh://ssh.github.com/acpica/acpicaRobert Moore2018-12-062-0/+2
|\ \ \ | |/ /
| * | Merge pull request #430 from juikim/masterRobert Moore2018-11-292-0/+2
| |\ \ | | | | | | | | Add "Windows 2018.2" string in the _OSI support
| | * | Add "Windows 2018.2" string in the _OSI supportJung-uk Kim2018-11-212-0/+2
| |/ /
* | | Debug output: Add option to display method/object evaluationRobert Moore2018-12-068-3/+67
|/ / | | | | | | | | | | | | | | | | Adds entry/exit messages for all objects that are evaluated. Works for the kernel-level code as well as acpiexec. The "-eo" flag enables acpiexec to display these messages. The messages are very useful when debugging the flow of table initialization.
* | Expressions within package elements are not supportedRobert Moore2018-11-141-0/+26
| | | | | | | | | | | | | | | | Return AE_SUPPORT if encountered, fixes a previous fault if encountered. Note: Other ACPI implementations do not support this type of construct.
* | Update buffer-to-string conversionsRobert Moore2018-11-091-12/+37
| | | | | | | | | | Add "0x" prefix for hex values. Provides compatibility with other ACPI implementations.
* | acpihelp: Improve support for the special predefined namesRobert Moore2018-11-093-21/+121
|/ | | | Names such as _Lxx, Exx, EJx, etc.
* Add "Windows 2018" string in the _OSI supportRobert Moore2018-11-022-0/+2
| | | | Latest windows string.
* Update version to 20181031R10_31_18Robert Moore2018-10-311-1/+1
| | | | Version 20181031.
* Logfile: Changes for version 20181031Robert Moore2018-10-311-0/+50
| | | | Version 20181031.
* iASL: Enhanced error detection by validating that all NameSegRobert Moore2018-10-319-43/+147
| | | | | | | elements within a NamePatch actually exist. The previous behavior was spotty at best, and such errors could be improperly ignored at compiler time (never at runtime, however. There are two new error messages.
* Merge pull request #425 from SchmErik/dtunixdosErik Schmauss2018-10-301-1/+25
|\ | | | | iASL: properly detect continuation on dos files
| * iASL: skip carriage return earlier to avoid special-cases in later stages of ↵Erik Schmauss2018-10-261-1/+25
| | | | | | | | | | | | parsing Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #424 from SchmErik/tpm2rev3Erik Schmauss2018-10-307-0/+172
|\ \ | | | | | | iASL: add tpm2 rev 3 support
| * | iASL: add support for TPM2 rev 3 compilationErik Schmauss2018-10-251-0/+66
| | | | | | | | | | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
| * | iASL: adding definition and disassembly for TPM2 revision 3Erik Schmauss2018-10-246-0/+106
| |/ | | | | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #422 from SchmErik/trivialFix016Erik Schmauss2018-10-301-4/+4
|\ \ | |/ |/| ASLTS: Region: get rid of comments that cause converter error
| * ASLTS: Region: get rid of nested comments that cause converter errorErik Schmauss2018-10-241-4/+4
|/ | | | Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* iASL/Preprocessor: Remove an incorrect use of ACPI_FREERobert Moore2018-10-231-1/+0
| | | | | | Leftover from converting the proprocessor to use the local memory cache. Individual allocations cannot use ACPI_FREE, this will cause a fault. Seen immediately with the #endif directive.
* Merge pull request #421 from SchmErik/trivialFix015Robert Moore2018-10-191-1/+1
|\ | | | | iASL: add additional check for strings with length zero
| * iASL: add additional check for strings with length zeroErik Schmauss2018-10-181-1/+1
| | | | | | | | | | | | | | | | | | Without this check there is a bounds violation that occurs when DtTrim attempts to remove a double quote charater later in the function. The End gets set to 1 byte before Start. Suggested-by: Steven Noonan Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #420 from SchmErik/notfound-errRobert Moore2018-10-192-11/+15
|\ \ | | | | | | Fix parse loop to correctly skip extended opcodes and minor acpiexec cleanup
| * | acpiexec: clean up if statements by using macros to check return statusesErik Schmauss2018-10-171-10/+2
| | | | | | | | | | | | | | | Signed-off-by: Robert Moore <robert.moore@intel.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
| * | AML Parser: fix parse loop to correctly skip erroneous extended opcodesErik Schmauss2018-10-171-1/+13
| |/ | | | | | | | | | | | | | | | | | | | | | | AML opcodes come in two lengths: 1-byte opcodes and 2-byte, extended opcodes. If an error occurs due to illegal opcodes during table load, the AML parser needs to continue loading the table. In order to do this, it needs to skip parsing of the offending opcode and operands associated with that opcode. This change fixes the AML parse loop to correctly skip parsing of incorrect extended opcodes. Previously, only the short opcodes were skipped correctly. Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #419 from SchmErik/groupFlagRobert Moore2018-10-195-18/+4
|\ \ | | | | | | Remove AcpiGbl_GroupModuleLevelCode and only use AcpiGbl_ExecuteTable…
| * | Remove AcpiGbl_GroupModuleLevelCode and only use ↵Erik Schmauss2018-10-155-18/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AcpiGbl_ExecuteTablesAsMethods instead AcpiGbl_GroupModuleLevelCode and AcpiGbl_ExecuteTablesAsMethods both used to enable different table load behavior. A.) AcpiGbl_GroupModuleLevelCode enabled the legacy approach where ASL if statements are executed after the namespace object has been loaded. B.) AcpiGbl_ExecuteTablesAsMethods is currently used to enable the table load to be a method invocation. This meaning that ASL If statements are executed in-line rather than deferred until after the ACPI namespace has been populated. This is the correct behavior and option A will be removed in the future. We do not support a table load behavior where these variables are assigned the same value. In otherwords, we only support option A or B and do not need AcpiGbl_GroupModuleLevelCode to enable A. For now, AcpiGbl_ExecuteTablesAsMethods == 1 enables option B and AcpiGbl_ExecuteTablesAsMethods == 0 enables option A. Note: option A is expected to be removed in the future and option B will become the only supported table load behavior. Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #417 from SchmErik/gblAddrRobert Moore2018-10-191-0/+3
|\ \ | | | | | | AML interpreter: add region addresses in global list during initializ…
| * | AML interpreter: add region addresses in global list during initializationErik Schmauss2018-10-111-0/+3
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The table load process omitted adding the operation region address range to the global list. This omission is problematic because the OS queries the global list to check for address range conflicts before deciding which drivers to load. This commit may result in warning messages that look like the following: [ 7.871761] ACPI Warning: SystemIO range 0x00000428-0x0000042F conflicts with OpRegion 0x00000400-0x0000047F (\PMIO) (20180531/utaddress-213) [ 7.871769] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver However, these messages do not signify regressions. It is a result of properly adding address ranges within the global address list. Link: https://bugzilla.kernel.org/show_bug.cgi?id=200011 Tested-by: Jean-Marc Lenoir <archlinux@jihemel.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
* | Merge pull request #415 from SchmErik/trivialFix012Robert Moore2018-10-191-46/+76
|\ \ | | | | | | Debugger: refactor to fix unused variable warning