forked from acpica/acpica
-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged latest upstream master #2
Open
Lord-Kamina
wants to merge
173
commits into
RehabMan:master
Choose a base branch
from
Lord-Kamina:latest
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IORT revision D contains a few additions and fixes to currently-supported tables: - SMMUv3 proximity domain field is enlarged to 4 bytes for consistency with SRAT - Root complex nodes gain an address size limit field equivalent to that of named components - Named component nodes gain a way to describe PASID (SubstreamID) support, encoded in their flags Additionally, we fix a couple of outstanding points in passing: - Add the stall support flag for named components defined in revision C - Fix SMMUv3 HTTU override mask, which should always have been 2 bits Signed-off-by: Robin Murphy <[email protected]>
PMCG nodes were added by IORT revision C, with the unfortunate oversight that it only defined a single base address, and thus was incapable of properly describing PMCG implementations with PMCG_CFGR.RELOC_CTRS = 1, where the counters are in a separate page from the control registers. Revision D corrects this by clarifying the existing field as the page 0 base address and adding a second field to describe the page 1 address when implemented. With the spec now fit for purpose, let's support it. Signed-off-by: Robin Murphy <[email protected]>
The table header validation was intended for AML tables rather than data tables. This caused an error when disassembling tables with unusual table signatures such as the RSDP table. Signed-off-by: Erik Schmauss <[email protected]>
Signed-off-by: Erik Schmauss <[email protected]>
Completes the support and fixes a regression introduced in version 20180209.
Preparation for the implementation of owner lists instead of the inefficient existing Owner ID.
acpidump: Expand the table offset field to 32 bits. acpixtract: Add support to handle the expanded field. Backwards compatibility is maintained.
Version 20180508.
Version 20180508.
Cannot disable the fault handler until the command line options have been parsed.
disassembler: remove incorrect table header validation for data tables
This reverts commit 1f49c3b. The mechanism is not needed, method execution/deletion is already optimized, and the Unload() operator is never used.
This is useful if control-c will not automatically exit. This usually indicates a bug somewhere, but is useful for debugging.
A bit of additional information which is usefull during debug.
decimal makes no sense, and leads to something like this: acpiexec -x0x00ffffff This change cleans this up.
Debug level 0x00800000 will dump the current parse tree just before it is deleted.
ASLTS: adding package resolution with table load testing
IORT rev. D support
Don't need to call NsDumpTables unless the appropriate debug flag is set.
Usually there is no need to print extra/duplicate error messages. Option added to restore original behavior (-vh).
Module-level code execution has no method arguments or locals, so do not attempt to output values for these.
This change alters the parser so that the table load does not abort upon an error. Notable changes: If there is an error while parsing an element of the termlist, we will skip parsing the current termlist element and continue parsing to the next opcode in the termlist. If we get an error while parsing the conditional of If/Else/While or the device name of Scope, we will skip the body of the statement all together and pop the ParserState. If we get an error while parsing the base offset and length of an operation region declaration, we will remove the operation region from the namespace. Signed-off-by: Erik Schmauss <[email protected]>
AML parser: attempt to continue loading table after error
The Unload AML operator is no longer supported for the reasons below. An AE_NOT_IMPLEMENTED exception is returned. 1) A correct implementation on at least some hosts may not be possible. 2) Other ACPI implementations do not correctly/fully support it. 3) It requires host device driver support which is not known to exist. (To properly support namespace unload out from underneath.) 4) This AML operator has never been seen in the field.
Version 20180531.
Version 20180531.
Update to ACPICA code style.
Cleanup via: acpisrc -c acpica/source
There are some functions that attempt to store 2 String buffers in MsgBuffer. This causes compiler warnings due to potential overflow of MsgBuffer. By increasing the MsgBuffer, we retain current behavior for functions using StringBuffer. This also results in separating the size between MsgBuffer and StringBuffer. Signed-off-by: Erik Schmauss <[email protected]>
dangling open file.
iASL: add ability to report specific warnings or remarks as errors
iASL: remove obsolete AcpiGbl_DoExternals flag
Version 20181213.
Version 20181213.
Also adds a new firmware error function, AcpiBiosException.
Signed-off-by: Erik Schmauss <[email protected]>
Dump entire object/buffer for any memory leaks detected by the object/cache tracking mechanism.
iASL: update tpm2 template to revision 4
All ASL code in the test suite.
including tool signons.
Module-level code refers to executable ASL code that runs during table load. This is typically used in ASL to declare named objects based on a condition evaluated during table load like so: DefinitionBlock(...) { OpreationRegion (OPR1, SystemMemory, ...) Field (OPR1) { FLD1, 8 /* Assume that FLD1's value is 0x1 */ } /* The if statement below is referred to as module-level code */ If (FLD1) { /* Declare DEV1 conditionally */ Device (DEV1) {...} } Device (DEV2) { ... } } In legacy module-level code, the execution of the If statement was deferred after other modules were loaded. The order of code execution for the table above is the following: 1.) Load OPR1 to the ACPI Namespace 2.) Load FLD1 to the ACPI Namespace (not intended for drivers) 3.) Load DEV2 to the ACPI Namespace 4.) Execute If (FLD1) and load DEV1 if the condition is true This legacy approach can be problematic for tables that look like the following: DefinitionBlock(...) { OpreationRegion (OPR1, SystemMemory, ...) Field (OPR1) { FLD1, 8 /* Assume that FLD1's value is 0x1 */ } /* The if statement below is referred to as module-level code */ If (FLD1) { /* Declare DEV1 conditionally */ Device (DEV1) {...} } Scope (DEV1) { /* Add objects DEV1's scope */ Name (OBJ1, 0x1234) } } When loading this in the legacy approach, Scope DEV1 gets evaluated before the If statement. The following is the order of execution: 1.) Load OPR1 to the ACPI Namespace 2.) Load FLD1 to the ACPI Namespace (not intended for drivers) 3.) Add OBJ1 under DEV1's scope -- ERROR. DEV1 does not exist 4.) Execute If (FLD1) and load DEV1 if the condition is true The legacy approach can never succeed for tables like this due to the deferral of the module-level code. Due to this limitation, a new module-level code was developed. This new approach exeutes if statements in the order that they appear in the definition block. With this approach, the order of execution for the above defintion block is as follows: 1.) Load OPR1 to the ACPI Namespace 2.) Load FLD1 to the ACPI Namespace (not intended for drivers) 3.) Execute If (FLD1) and load DEV1 because the condition is true 4.) Add OBJ1 under DEV1's scope. Since DEV1 is loaded in the namespace in step 3, step 4 executes successfully. This change removes support for the legacy module-level code execution. From this point onward, the new module-level code execution will be the official approach. Signed-off-by: Erik Schmauss <[email protected]>
Version 20190108
Version 20190108
Signed-off-by: Erik Schmauss <[email protected]>
iASL: Makefile: support parent directories with spaces
Signed-off-by: Erik Schmauss <[email protected]>
Small update.
Nothing can be done with such a region. Just emit a warning so as not to abort a table load or running method.
Such a region is unusable.
- Fault on Field Units - Some restructuring - General cleanup of dbtest module
…l-code Remove legacy module-level code support
iASL: add explanation for nameseg lexing, no functional change
Attempting to improve error messages to clarify that errors are bubbled up from the original error, possibly across nested methods.
Certain references will cause runtime errors, such as a reference from outside a method to an object within the method. Such an object is only temporary and exists only during the execution of the method.
Signed-off-by: Erik Schmauss <[email protected]>
Signed-off-by: Erik Schmauss <[email protected]>
# Conflicts: # source/compiler/aslload.c # source/compiler/aslmessages.c # source/compiler/aslpredef.c
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I haven't thoroughly tested it but at least it builds and runs; I think I didn't fuck any of your hacks up.